summaryrefslogtreecommitdiffstats
path: root/base/message_loop.cc
diff options
context:
space:
mode:
authorblundell@chromium.org <blundell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-30 17:29:40 +0000
committerblundell@chromium.org <blundell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-30 17:29:40 +0000
commitd6bafc3147d479a5396d8f24f9ddd3110326b58f (patch)
treeef9d8457468d7e4ea0aeb588f47bde11ff0ef1b8 /base/message_loop.cc
parentb5cdf10bef9fd68fe9b1d52c44113b50b7456f01 (diff)
downloadchromium_src-d6bafc3147d479a5396d8f24f9ddd3110326b58f.zip
chromium_src-d6bafc3147d479a5396d8f24f9ddd3110326b58f.tar.gz
chromium_src-d6bafc3147d479a5396d8f24f9ddd3110326b58f.tar.bz2
Provide an iOS message pump for IO implementation.
The implementation is done as a subclass of MessagePumpNSRunLoop. It is conceptually quite similar to the libevent implementation (message_pump_libevent*), on which it is based. Review URL: https://chromiumcodereview.appspot.com/11412101 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170470 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/message_loop.cc')
-rw-r--r--base/message_loop.cc22
1 files changed, 20 insertions, 2 deletions
diff --git a/base/message_loop.cc b/base/message_loop.cc
index f427993..5428026 100644
--- a/base/message_loop.cc
+++ b/base/message_loop.cc
@@ -27,7 +27,7 @@
#if defined(OS_MACOSX)
#include "base/message_pump_mac.h"
#endif
-#if defined(OS_POSIX)
+#if defined(OS_POSIX) && !defined(OS_IOS)
#include "base/message_pump_libevent.h"
#endif
#if defined(OS_ANDROID)
@@ -157,6 +157,9 @@ MessageLoop::MessageLoop(Type type)
#if defined(OS_WIN)
#define MESSAGE_PUMP_UI new base::MessagePumpForUI()
#define MESSAGE_PUMP_IO new base::MessagePumpForIO()
+#elif defined(OS_IOS)
+#define MESSAGE_PUMP_UI base::MessagePumpMac::Create()
+#define MESSAGE_PUMP_IO new base::MessagePumpIOSForIO()
#elif defined(OS_MACOSX)
#define MESSAGE_PUMP_UI base::MessagePumpMac::Create()
#define MESSAGE_PUMP_IO new base::MessagePumpLibevent()
@@ -776,6 +779,21 @@ bool MessageLoopForIO::WaitForIOCompletion(DWORD timeout, IOHandler* filter) {
return pump_io()->WaitForIOCompletion(timeout, filter);
}
+#elif defined(OS_IOS)
+
+bool MessageLoopForIO::WatchFileDescriptor(int fd,
+ bool persistent,
+ Mode mode,
+ FileDescriptorWatcher *controller,
+ Watcher *delegate) {
+ return pump_io()->WatchFileDescriptor(
+ fd,
+ persistent,
+ mode,
+ controller,
+ delegate);
+}
+
#elif defined(OS_POSIX) && !defined(OS_NACL)
bool MessageLoopForIO::WatchFileDescriptor(int fd,
@@ -786,7 +804,7 @@ bool MessageLoopForIO::WatchFileDescriptor(int fd,
return pump_libevent()->WatchFileDescriptor(
fd,
persistent,
- static_cast<base::MessagePumpLibevent::Mode>(mode),
+ mode,
controller,
delegate);
}