Index: mojo/edk/system/message_pipe.h |
diff --git a/mojo/edk/system/message_pipe.h b/mojo/edk/system/message_pipe.h |
index 431b5a61d3919f88ca7a7098c93e0f7b6dd8708e..6b75eb8d5327369b5ff78656ee22c562f055bb57 100644 |
--- a/mojo/edk/system/message_pipe.h |
+++ b/mojo/edk/system/message_pipe.h |
@@ -31,6 +31,7 @@ namespace system { |
class Awakable; |
class Channel; |
class ChannelEndpoint; |
+class MessageInTransitQueue; |
// |MessagePipe| is the secondary object implementing a message pipe (see the |
// explanatory comment in core.cc). It is typically owned by the dispatcher(s) |
@@ -46,6 +47,14 @@ class MOJO_SYSTEM_IMPL_EXPORT MessagePipe : public ChannelEndpointClient { |
static MessagePipe* CreateLocalProxy( |
scoped_refptr<ChannelEndpoint>* channel_endpoint); |
+ // Similar to |CreateLocalProxy()|, except that it'll do so from an existing |
+ // |ChannelEndpoint| (whose |ReplaceClient()| it'll call) and take |
+ // |message_queue|'s contents as already-received incoming messages. If |
+ // |channel_endpoint| is null, this will create a "half-open" message pipe. |
+ static MessagePipe* CreateLocalProxyFromExisting( |
+ MessageInTransitQueue* message_queue, |
+ ChannelEndpoint* channel_endpoint); |
+ |
// Creates a |MessagePipe| with a |ProxyMessagePipeEndpoint| on port 0 and a |
// |LocalMessagePipeEndpoint| on port 1. |*channel_endpoint| is set to the |
// (newly-created) |ChannelEndpoint| for the former. |