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

Side by Side Diff: ipc/mojo/ipc_mojo_bootstrap.cc

Issue 1811433002: [mojo-edk] Expose notification source to MojoWatch callbacks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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 | mojo/public/cpp/bindings/binding.h » ('j') | mojo/public/cpp/bindings/binding.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include "ipc/mojo/ipc_mojo_bootstrap.h" 5 #include "ipc/mojo/ipc_mojo_bootstrap.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 30 matching lines...) Expand all
41 }; 41 };
42 42
43 MojoServerBootstrap::MojoServerBootstrap() = default; 43 MojoServerBootstrap::MojoServerBootstrap() = default;
44 44
45 void MojoServerBootstrap::Connect() { 45 void MojoServerBootstrap::Connect() {
46 DCHECK_EQ(state(), STATE_INITIALIZED); 46 DCHECK_EQ(state(), STATE_INITIALIZED);
47 47
48 bootstrap_.Bind(mojom::BootstrapPtrInfo(TakeHandle(), 0)); 48 bootstrap_.Bind(mojom::BootstrapPtrInfo(TakeHandle(), 0));
49 bootstrap_.set_connection_error_handler( 49 bootstrap_.set_connection_error_handler(
50 base::Bind(&MojoServerBootstrap::Fail, base::Unretained(this))); 50 base::Bind(&MojoServerBootstrap::Fail, base::Unretained(this)));
51 bootstrap_.SetAllowSyncDispatch(true);
51 52
52 IPC::mojom::ChannelAssociatedRequest send_channel_request; 53 IPC::mojom::ChannelAssociatedRequest send_channel_request;
53 IPC::mojom::ChannelAssociatedPtrInfo receive_channel; 54 IPC::mojom::ChannelAssociatedPtrInfo receive_channel;
54 55
55 bootstrap_.associated_group()->CreateAssociatedInterface( 56 bootstrap_.associated_group()->CreateAssociatedInterface(
56 mojo::AssociatedGroup::WILL_PASS_REQUEST, &send_channel_, 57 mojo::AssociatedGroup::WILL_PASS_REQUEST, &send_channel_,
57 &send_channel_request); 58 &send_channel_request);
58 bootstrap_.associated_group()->CreateAssociatedInterface( 59 bootstrap_.associated_group()->CreateAssociatedInterface(
59 mojo::AssociatedGroup::WILL_PASS_PTR, &receive_channel, 60 mojo::AssociatedGroup::WILL_PASS_PTR, &receive_channel,
60 &receive_channel_request_); 61 &receive_channel_request_);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 101
101 DISALLOW_COPY_AND_ASSIGN(MojoClientBootstrap); 102 DISALLOW_COPY_AND_ASSIGN(MojoClientBootstrap);
102 }; 103 };
103 104
104 MojoClientBootstrap::MojoClientBootstrap() : binding_(this) {} 105 MojoClientBootstrap::MojoClientBootstrap() : binding_(this) {}
105 106
106 void MojoClientBootstrap::Connect() { 107 void MojoClientBootstrap::Connect() {
107 binding_.Bind(TakeHandle()); 108 binding_.Bind(TakeHandle());
108 binding_.set_connection_error_handler( 109 binding_.set_connection_error_handler(
109 base::Bind(&MojoClientBootstrap::Fail, base::Unretained(this))); 110 base::Bind(&MojoClientBootstrap::Fail, base::Unretained(this)));
111 binding_.SetAllowSyncDispatch(true);
110 } 112 }
111 113
112 void MojoClientBootstrap::Init(mojom::ChannelAssociatedRequest receive_channel, 114 void MojoClientBootstrap::Init(mojom::ChannelAssociatedRequest receive_channel,
113 mojom::ChannelAssociatedPtrInfo send_channel, 115 mojom::ChannelAssociatedPtrInfo send_channel,
114 int32_t peer_pid, 116 int32_t peer_pid,
115 const mojo::Callback<void(int32_t)>& callback) { 117 const mojo::Callback<void(int32_t)>& callback) {
116 callback.Run(GetSelfPID()); 118 callback.Run(GetSelfPID());
117 set_state(STATE_READY); 119 set_state(STATE_READY);
118 binding_.set_connection_error_handler(mojo::Closure()); 120 binding_.set_connection_error_handler(mojo::Closure());
119 delegate()->OnPipesAvailable(std::move(send_channel), 121 delegate()->OnPipesAvailable(std::move(send_channel),
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 167
166 bool MojoBootstrap::HasFailed() const { 168 bool MojoBootstrap::HasFailed() const {
167 return state() == STATE_ERROR; 169 return state() == STATE_ERROR;
168 } 170 }
169 171
170 mojo::ScopedMessagePipeHandle MojoBootstrap::TakeHandle() { 172 mojo::ScopedMessagePipeHandle MojoBootstrap::TakeHandle() {
171 return std::move(handle_); 173 return std::move(handle_);
172 } 174 }
173 175
174 } // namespace IPC 176 } // namespace IPC
OLDNEW
« no previous file with comments | « no previous file | mojo/public/cpp/bindings/binding.h » ('j') | mojo/public/cpp/bindings/binding.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698