| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef IPC_IPC_CHANNEL_POSIX_H_ | 5 #ifndef IPC_IPC_CHANNEL_POSIX_H_ |
| 6 #define IPC_IPC_CHANNEL_POSIX_H_ | 6 #define IPC_IPC_CHANNEL_POSIX_H_ |
| 7 | 7 |
| 8 #include "ipc/ipc_channel.h" | 8 #include "ipc/ipc_channel.h" |
| 9 | 9 |
| 10 #include <sys/socket.h> // for CMSG macros | 10 #include <sys/socket.h> // for CMSG macros |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 // | 42 // |
| 43 // The HELLO message from the client to the server is always sent using | 43 // The HELLO message from the client to the server is always sent using |
| 44 // sendmsg because it will contain the file descriptor that the server | 44 // sendmsg because it will contain the file descriptor that the server |
| 45 // needs to send file descriptors in later messages. | 45 // needs to send file descriptors in later messages. |
| 46 #define IPC_USES_READWRITE 1 | 46 #define IPC_USES_READWRITE 1 |
| 47 #endif | 47 #endif |
| 48 | 48 |
| 49 namespace IPC { | 49 namespace IPC { |
| 50 | 50 |
| 51 class Channel::ChannelImpl : public internal::ChannelReader, | 51 class Channel::ChannelImpl : public internal::ChannelReader, |
| 52 public MessageLoopForIO::Watcher { | 52 public base::MessageLoopForIO::Watcher { |
| 53 public: | 53 public: |
| 54 // Mirror methods of Channel, see ipc_channel.h for description. | 54 // Mirror methods of Channel, see ipc_channel.h for description. |
| 55 ChannelImpl(const IPC::ChannelHandle& channel_handle, Mode mode, | 55 ChannelImpl(const IPC::ChannelHandle& channel_handle, Mode mode, |
| 56 Listener* listener); | 56 Listener* listener); |
| 57 virtual ~ChannelImpl(); | 57 virtual ~ChannelImpl(); |
| 58 bool Connect(); | 58 bool Connect(); |
| 59 void Close(); | 59 void Close(); |
| 60 bool Send(Message* message); | 60 bool Send(Message* message); |
| 61 int GetClientFileDescriptor(); | 61 int GetClientFileDescriptor(); |
| 62 int TakeClientFileDescriptor(); | 62 int TakeClientFileDescriptor(); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 // MessageLoopForIO::Watcher implementation. | 111 // MessageLoopForIO::Watcher implementation. |
| 112 virtual void OnFileCanReadWithoutBlocking(int fd) OVERRIDE; | 112 virtual void OnFileCanReadWithoutBlocking(int fd) OVERRIDE; |
| 113 virtual void OnFileCanWriteWithoutBlocking(int fd) OVERRIDE; | 113 virtual void OnFileCanWriteWithoutBlocking(int fd) OVERRIDE; |
| 114 | 114 |
| 115 Mode mode_; | 115 Mode mode_; |
| 116 | 116 |
| 117 base::ProcessId peer_pid_; | 117 base::ProcessId peer_pid_; |
| 118 | 118 |
| 119 // After accepting one client connection on our server socket we want to | 119 // After accepting one client connection on our server socket we want to |
| 120 // stop listening. | 120 // stop listening. |
| 121 MessageLoopForIO::FileDescriptorWatcher server_listen_connection_watcher_; | 121 base::MessageLoopForIO::FileDescriptorWatcher |
| 122 MessageLoopForIO::FileDescriptorWatcher read_watcher_; | 122 server_listen_connection_watcher_; |
| 123 MessageLoopForIO::FileDescriptorWatcher write_watcher_; | 123 base::MessageLoopForIO::FileDescriptorWatcher read_watcher_; |
| 124 base::MessageLoopForIO::FileDescriptorWatcher write_watcher_; |
| 124 | 125 |
| 125 // Indicates whether we're currently blocked waiting for a write to complete. | 126 // Indicates whether we're currently blocked waiting for a write to complete. |
| 126 bool is_blocked_on_write_; | 127 bool is_blocked_on_write_; |
| 127 bool waiting_connect_; | 128 bool waiting_connect_; |
| 128 | 129 |
| 129 // If sending a message blocks then we use this variable | 130 // If sending a message blocks then we use this variable |
| 130 // to keep track of where we are. | 131 // to keep track of where we are. |
| 131 size_t message_send_bytes_written_; | 132 size_t message_send_bytes_written_; |
| 132 | 133 |
| 133 // File descriptor we're listening on for new connections if we listen | 134 // File descriptor we're listening on for new connections if we listen |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 // If non-zero, overrides the process ID sent in the hello message. | 191 // If non-zero, overrides the process ID sent in the hello message. |
| 191 static int global_pid_; | 192 static int global_pid_; |
| 192 #endif // OS_LINUX | 193 #endif // OS_LINUX |
| 193 | 194 |
| 194 DISALLOW_IMPLICIT_CONSTRUCTORS(ChannelImpl); | 195 DISALLOW_IMPLICIT_CONSTRUCTORS(ChannelImpl); |
| 195 }; | 196 }; |
| 196 | 197 |
| 197 } // namespace IPC | 198 } // namespace IPC |
| 198 | 199 |
| 199 #endif // IPC_IPC_CHANNEL_POSIX_H_ | 200 #endif // IPC_IPC_CHANNEL_POSIX_H_ |
| OLD | NEW |