| Index: chrome/common/ipc_channel_posix.h
|
| ===================================================================
|
| --- chrome/common/ipc_channel_posix.h (revision 6915)
|
| +++ chrome/common/ipc_channel_posix.h (working copy)
|
| @@ -11,10 +11,11 @@
|
| #include <string>
|
|
|
| #include "base/message_loop.h"
|
| +#include "third_party/libevent/event.h"
|
|
|
| namespace IPC {
|
|
|
| -class Channel::ChannelImpl : public MessageLoopForIO::Watcher {
|
| +class Channel::ChannelImpl : public MessageLoopForIO::FileWatcher {
|
| public:
|
| // Mirror methods of Channel, see ipc_channel.h for description.
|
| ChannelImpl(const std::wstring& channel_id, Mode mode, Listener* listener);
|
| @@ -30,20 +31,28 @@
|
| bool ProcessIncomingMessages();
|
| bool ProcessOutgoingMessages();
|
|
|
| - void OnFileCanReadWithoutBlocking(int fd);
|
| - void OnFileCanWriteWithoutBlocking(int fd);
|
| + void OnFileReadReady(int fd);
|
| + void OnFileWriteReady(int fd);
|
|
|
| Mode mode_;
|
|
|
| - // After accepting one client connection on our server socket we want to
|
| - // stop listening.
|
| - MessageLoopForIO::FileDescriptorWatcher server_listen_connection_watcher_;
|
| - MessageLoopForIO::FileDescriptorWatcher read_watcher_;
|
| - MessageLoopForIO::FileDescriptorWatcher write_watcher_;
|
| + // Wrapper for Libevent event.
|
| + // TODO(playmobil): MessageLoopForIO needs to better encapsulate libevent.
|
| + struct EventHolder {
|
| + EventHolder() : is_active(false) {}
|
| + ~EventHolder() {}
|
|
|
| - // Are we currently blocked waiting for a write to complete.
|
| - bool is_blocked_on_write_;
|
| + bool is_active;
|
|
|
| + // libevent's set functions set all the needed members of this struct, so no
|
| + // need to initialize before use.
|
| + struct event event;
|
| + };
|
| +
|
| + EventHolder *server_listen_connection_event_;
|
| + EventHolder *read_event_;
|
| + EventHolder *write_event_;
|
| +
|
| // If sending a message blocks then we use this variable
|
| // to keep track of where we are.
|
| size_t message_send_bytes_written_;
|
|
|