Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(190)

Side by Side Diff: ipc/ipc_channel.h

Issue 2301123004: Mojo Channel: Fix deferred proxy dispatch; support paused channels (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | ipc/ipc_channel_common.cc » ('j') | ipc/ipc_channel_proxy.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 // Connect the pipe. On the server side, this will initiate 215 // Connect the pipe. On the server side, this will initiate
216 // waiting for connections. On the client, it attempts to 216 // waiting for connections. On the client, it attempts to
217 // connect to a pre-existing pipe. Note, calling Connect() 217 // connect to a pre-existing pipe. Note, calling Connect()
218 // will not block the calling thread and may complete 218 // will not block the calling thread and may complete
219 // asynchronously. 219 // asynchronously.
220 // 220 //
221 // The subclass implementation must call WillConnect() at the beginning of its 221 // The subclass implementation must call WillConnect() at the beginning of its
222 // implementation. 222 // implementation.
223 virtual bool Connect() WARN_UNUSED_RESULT = 0; 223 virtual bool Connect() WARN_UNUSED_RESULT = 0;
224 224
225 // Similar to (and exclusive to) Connect() above, but blocks outgoing messages
226 // until a future call to Unpause().
227 //
228 // Not all implementations support ConnectPaused(). Note that this interface
229 // exists only to facilitate weird behavior where some Channel consumers want
230 // force some early messages to be transmitted before ones which were sent
yzshen1 2016/09/02 22:03:36 nit: force -> to force?
Ken Rockot(use gerrit already) 2016/09/06 17:21:27 Done
231 // earlier. This allows that to be done without the consumer implementing
232 // their own message queueing support which may be incompatible with the
233 // Channel's internal queueing behavior.
234 virtual bool ConnectPaused() WARN_UNUSED_RESULT;
235
236 // Unpause the pipe. This allows subsequent Send() calls to transmit messages
237 // immediately, without queueing. If |flush| is true, any messages queued
238 // while paused will be flushed immediately upon unpausing. Otherwise you must
239 // call Flush() explicitly.
240 //
241 // Not all implementations support Unpause(). See ConnectPaused() above for
242 // details.
243 virtual void Unpause(bool flush);
244
245 // Manually flush the pipe. This is only useful exactly once, and only after
246 // a call to Unpause(false), in order to explicitly flush out any
247 // messages which were queued prior to unpausing.
248 //
249 // Not all implementations support Flush(). See ConnectPaused() above for
250 // details.
251 virtual void Flush();
252
225 // Close this Channel explicitly. May be called multiple times. 253 // Close this Channel explicitly. May be called multiple times.
226 // On POSIX calling close on an IPC channel that listens for connections will 254 // On POSIX calling close on an IPC channel that listens for connections will
227 // cause it to close any accepted connections, and it will stop listening for 255 // cause it to close any accepted connections, and it will stop listening for
228 // new connections. If you just want to close the currently accepted 256 // new connections. If you just want to close the currently accepted
229 // connection and listen for new ones, use ResetToAcceptingConnectionState. 257 // connection and listen for new ones, use ResetToAcceptingConnectionState.
230 virtual void Close() = 0; 258 virtual void Close() = 0;
231 259
232 // Get its own process id. This value is told to the peer. 260 // Get its own process id. This value is told to the peer.
233 virtual base::ProcessId GetSelfPID() const = 0; 261 virtual base::ProcessId GetSelfPID() const = 0;
234 262
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 368
341 #if defined(OS_POSIX) 369 #if defined(OS_POSIX)
342 // SocketPair() creates a pair of socket FDs suitable for using with 370 // SocketPair() creates a pair of socket FDs suitable for using with
343 // IPC::Channel. 371 // IPC::Channel.
344 IPC_EXPORT bool SocketPair(int* fd1, int* fd2); 372 IPC_EXPORT bool SocketPair(int* fd1, int* fd2);
345 #endif 373 #endif
346 374
347 } // namespace IPC 375 } // namespace IPC
348 376
349 #endif // IPC_IPC_CHANNEL_H_ 377 #endif // IPC_IPC_CHANNEL_H_
OLDNEW
« no previous file with comments | « no previous file | ipc/ipc_channel_common.cc » ('j') | ipc/ipc_channel_proxy.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698