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 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
259 // NOTE: Not all implementations support this. | 259 // NOTE: Not all implementations support this. |
260 virtual AssociatedInterfaceSupport* GetAssociatedInterfaceSupport(); | 260 virtual AssociatedInterfaceSupport* GetAssociatedInterfaceSupport(); |
261 | 261 |
262 // Overridden from ipc::Sender. | 262 // Overridden from ipc::Sender. |
263 // Send a message over the Channel to the listener on the other end. | 263 // Send a message over the Channel to the listener on the other end. |
264 // | 264 // |
265 // |message| must be allocated using operator new. This object will be | 265 // |message| must be allocated using operator new. This object will be |
266 // deleted once the contents of the Message have been sent. | 266 // deleted once the contents of the Message have been sent. |
267 bool Send(Message* message) override = 0; | 267 bool Send(Message* message) override = 0; |
268 | 268 |
269 // IsSendThreadSafe returns true iff it's safe to call |Send| from non-IO | |
270 // threads. This is constant for the lifetime of the |Channel|. | |
271 virtual bool IsSendThreadSafe() const; | |
272 | |
273 // NaCl in Non-SFI mode runs on Linux directly, and the following functions | 269 // NaCl in Non-SFI mode runs on Linux directly, and the following functions |
274 // compiled on Linux are also needed. Please see also comments in | 270 // compiled on Linux are also needed. Please see also comments in |
275 // components/nacl_nonsfi.gyp for more details. | 271 // components/nacl_nonsfi.gyp for more details. |
276 #if defined(OS_POSIX) && !defined(OS_NACL_SFI) | 272 #if defined(OS_POSIX) && !defined(OS_NACL_SFI) |
277 // On POSIX an IPC::Channel wraps a socketpair(), this method returns the | 273 // On POSIX an IPC::Channel wraps a socketpair(), this method returns the |
278 // FD # for the client end of the socket. | 274 // FD # for the client end of the socket. |
279 // This method may only be called on the server side of a channel. | 275 // This method may only be called on the server side of a channel. |
280 // This method can be called on any thread. | 276 // This method can be called on any thread. |
281 virtual int GetClientFileDescriptor() const = 0; | 277 virtual int GetClientFileDescriptor() const = 0; |
282 | 278 |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
362 | 358 |
363 #if defined(OS_POSIX) | 359 #if defined(OS_POSIX) |
364 // SocketPair() creates a pair of socket FDs suitable for using with | 360 // SocketPair() creates a pair of socket FDs suitable for using with |
365 // IPC::Channel. | 361 // IPC::Channel. |
366 IPC_EXPORT bool SocketPair(int* fd1, int* fd2); | 362 IPC_EXPORT bool SocketPair(int* fd1, int* fd2); |
367 #endif | 363 #endif |
368 | 364 |
369 } // namespace IPC | 365 } // namespace IPC |
370 | 366 |
371 #endif // IPC_IPC_CHANNEL_H_ | 367 #endif // IPC_IPC_CHANNEL_H_ |
OLD | NEW |