| 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_H_ | 5 #ifndef IPC_IPC_CHANNEL_H_ |
| 6 #define IPC_IPC_CHANNEL_H_ | 6 #define IPC_IPC_CHANNEL_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| 11 #include "base/compiler_specific.h" | 11 #include "base/compiler_specific.h" |
| 12 #include "base/process.h" |
| 12 #include "ipc/ipc_channel_handle.h" | 13 #include "ipc/ipc_channel_handle.h" |
| 13 #include "ipc/ipc_message.h" | 14 #include "ipc/ipc_message.h" |
| 14 | 15 |
| 15 namespace IPC { | 16 namespace IPC { |
| 16 | 17 |
| 17 //------------------------------------------------------------------------------ | 18 //------------------------------------------------------------------------------ |
| 18 // See | 19 // See |
| 19 // http://www.chromium.org/developers/design-documents/inter-process-communicati
on | 20 // http://www.chromium.org/developers/design-documents/inter-process-communicati
on |
| 20 // for overview of IPC in Chromium. | 21 // for overview of IPC in Chromium. |
| 21 | 22 |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 // Close this Channel explicitly. May be called multiple times. | 143 // Close this Channel explicitly. May be called multiple times. |
| 143 // On POSIX calling close on an IPC channel that listens for connections will | 144 // On POSIX calling close on an IPC channel that listens for connections will |
| 144 // cause it to close any accepted connections, and it will stop listening for | 145 // cause it to close any accepted connections, and it will stop listening for |
| 145 // new connections. If you just want to close the currently accepted | 146 // new connections. If you just want to close the currently accepted |
| 146 // connection and listen for new ones, use ResetToAcceptingConnectionState. | 147 // connection and listen for new ones, use ResetToAcceptingConnectionState. |
| 147 void Close(); | 148 void Close(); |
| 148 | 149 |
| 149 // Modify the Channel's listener. | 150 // Modify the Channel's listener. |
| 150 void set_listener(Listener* listener); | 151 void set_listener(Listener* listener); |
| 151 | 152 |
| 153 // Get the process ID for the connected peer. |
| 154 // Returns base::kNullProcessId if the peer is not connected yet. |
| 155 base::ProcessId peer_pid() const; |
| 156 |
| 152 // Send a message over the Channel to the listener on the other end. | 157 // Send a message over the Channel to the listener on the other end. |
| 153 // | 158 // |
| 154 // |message| must be allocated using operator new. This object will be | 159 // |message| must be allocated using operator new. This object will be |
| 155 // deleted once the contents of the Message have been sent. | 160 // deleted once the contents of the Message have been sent. |
| 156 virtual bool Send(Message* message) OVERRIDE; | 161 virtual bool Send(Message* message) OVERRIDE; |
| 157 | 162 |
| 158 #if defined(OS_POSIX) && !defined(OS_NACL) | 163 #if defined(OS_POSIX) && !defined(OS_NACL) |
| 159 // On POSIX an IPC::Channel wraps a socketpair(), this method returns the | 164 // On POSIX an IPC::Channel wraps a socketpair(), this method returns the |
| 160 // FD # for the client end of the socket. | 165 // FD # for the client end of the socket. |
| 161 // This method may only be called on the server side of a channel. | 166 // This method may only be called on the server side of a channel. |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 | 222 |
| 218 private: | 223 private: |
| 219 // PIMPL to which all channel calls are delegated. | 224 // PIMPL to which all channel calls are delegated. |
| 220 class ChannelImpl; | 225 class ChannelImpl; |
| 221 ChannelImpl *channel_impl_; | 226 ChannelImpl *channel_impl_; |
| 222 }; | 227 }; |
| 223 | 228 |
| 224 } // namespace IPC | 229 } // namespace IPC |
| 225 | 230 |
| 226 #endif // IPC_IPC_CHANNEL_H_ | 231 #endif // IPC_IPC_CHANNEL_H_ |
| OLD | NEW |