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

Unified Diff: mojo/system/proxy_message_pipe_endpoint.cc

Issue 68993005: Mojo: More plumbing to support sending handles over MessagePipes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/system/proxy_message_pipe_endpoint.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/system/proxy_message_pipe_endpoint.cc
diff --git a/mojo/system/proxy_message_pipe_endpoint.cc b/mojo/system/proxy_message_pipe_endpoint.cc
index fce2e437ccdf434835f8a424974f21510808dda0..f9b9e56e3da2d6da127a3a0a8d2f5c1a48d7a223 100644
--- a/mojo/system/proxy_message_pipe_endpoint.cc
+++ b/mojo/system/proxy_message_pipe_endpoint.cc
@@ -54,7 +54,7 @@ bool ProxyMessagePipeEndpoint::OnPeerClose() {
if (EnqueueMessage(MessageInTransit::Create(
MessageInTransit::kTypeMessagePipe,
MessageInTransit::kSubtypeMessagePipePeerClosed,
- NULL, 0)) != MOJO_RESULT_OK) {
+ NULL, 0), NULL) != MOJO_RESULT_OK) {
// TODO(vtl): Do something more sensible on error here?
LOG(WARNING) << "Failed to send peer closed control message";
}
@@ -65,13 +65,22 @@ bool ProxyMessagePipeEndpoint::OnPeerClose() {
return !paused_message_queue_.empty();
}
-MojoResult ProxyMessagePipeEndpoint::EnqueueMessage(MessageInTransit* message) {
+MojoResult ProxyMessagePipeEndpoint::EnqueueMessage(
+ MessageInTransit* message,
+ const std::vector<Dispatcher*>* dispatchers) {
DCHECK(is_open_);
// If our (local) peer isn't open, we should only be enqueueing our own
// control messages.
DCHECK(is_peer_open_ ||
(message->type() == MessageInTransit::kTypeMessagePipe));
+ // TODO(vtl): Support sending handles over OS pipes.
+ if (dispatchers) {
+ message->Destroy();
+ NOTIMPLEMENTED();
+ return MOJO_RESULT_UNIMPLEMENTED;
+ }
+
MojoResult rv = MOJO_RESULT_OK;
if (is_running()) {
@@ -116,7 +125,7 @@ bool ProxyMessagePipeEndpoint::Run(MessageInTransit::EndpointId remote_id) {
paused_message_queue_.begin();
it != paused_message_queue_.end();
++it) {
- result = EnqueueMessage(*it);
+ result = EnqueueMessage(*it, NULL);
if (result != MOJO_RESULT_OK) {
// TODO(vtl): Do something more sensible on error here?
LOG(WARNING) << "Failed to send message";
« no previous file with comments | « mojo/system/proxy_message_pipe_endpoint.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698