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

Side by Side Diff: mojo/edk/system/message_pipe_dispatcher.cc

Issue 1465183005: Rename mojo::TokenSerializer to mojo::Broker. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix win component Created 5 years 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "mojo/edk/system/message_pipe_dispatcher.h" 5 #include "mojo/edk/system/message_pipe_dispatcher.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "mojo/edk/embedder/embedder_internal.h" 10 #include "mojo/edk/embedder/embedder_internal.h"
11 #include "mojo/edk/embedder/platform_handle_utils.h" 11 #include "mojo/edk/embedder/platform_handle_utils.h"
12 #include "mojo/edk/embedder/platform_shared_buffer.h" 12 #include "mojo/edk/embedder/platform_shared_buffer.h"
13 #include "mojo/edk/embedder/platform_support.h" 13 #include "mojo/edk/embedder/platform_support.h"
14 #include "mojo/edk/system/broker.h"
14 #include "mojo/edk/system/configuration.h" 15 #include "mojo/edk/system/configuration.h"
15 #include "mojo/edk/system/message_in_transit.h" 16 #include "mojo/edk/system/message_in_transit.h"
16 #include "mojo/edk/system/options_validation.h" 17 #include "mojo/edk/system/options_validation.h"
17 #include "mojo/edk/system/transport_data.h" 18 #include "mojo/edk/system/transport_data.h"
18 19
19 #if defined(OS_WIN)
20 #include "mojo/edk/system/token_serializer_win.h"
21 #endif
22
23 namespace mojo { 20 namespace mojo {
24 namespace edk { 21 namespace edk {
25 22
26 // TODO(jam): do more tests on using channel on same thread if it supports it ( 23 // TODO(jam): do more tests on using channel on same thread if it supports it (
27 // i.e. with USE_CHROME_EDK and Windows). Also see ipc_channel_mojo.cc 24 // i.e. with USE_CHROME_EDK and Windows). Also see ipc_channel_mojo.cc
28 bool g_use_channel_on_io_thread_only = true; 25 bool g_use_channel_on_io_thread_only = true;
29 26
30 namespace { 27 namespace {
31 28
32 const size_t kInvalidMessagePipeHandleIndex = static_cast<size_t>(-1); 29 const size_t kInvalidMessagePipeHandleIndex = static_cast<size_t>(-1);
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 // (since we can be sure that the shell will respond to our IPCs, compared to 172 // (since we can be sure that the shell will respond to our IPCs, compared to
176 // the other end where we're sending the MP to, which may not be reading...). 173 // the other end where we're sending the MP to, which may not be reading...).
177 ScopedPlatformHandleVectorPtr GetReadPlatformHandles( 174 ScopedPlatformHandleVectorPtr GetReadPlatformHandles(
178 size_t num_platform_handles, 175 size_t num_platform_handles,
179 const void* platform_handle_table) { 176 const void* platform_handle_table) {
180 ScopedPlatformHandleVectorPtr rv(new PlatformHandleVector()); 177 ScopedPlatformHandleVectorPtr rv(new PlatformHandleVector());
181 rv->resize(num_platform_handles); 178 rv->resize(num_platform_handles);
182 179
183 const uint64_t* tokens = 180 const uint64_t* tokens =
184 static_cast<const uint64_t*>(platform_handle_table); 181 static_cast<const uint64_t*>(platform_handle_table);
185 internal::g_token_serializer->TokenToHandle( 182 internal::g_broker->TokenToHandle(tokens, num_platform_handles, &rv->at(0));
186 tokens, num_platform_handles, &rv->at(0));
187 return rv.Pass(); 183 return rv.Pass();
188 } 184 }
189 #endif 185 #endif
190 186
191 scoped_refptr<MessagePipeDispatcher> MessagePipeDispatcher::Deserialize( 187 scoped_refptr<MessagePipeDispatcher> MessagePipeDispatcher::Deserialize(
192 const void* source, 188 const void* source,
193 size_t size, 189 size_t size,
194 PlatformHandleVector* platform_handles) { 190 PlatformHandleVector* platform_handles) {
195 if (size != sizeof(SerializedMessagePipeHandleDispatcher)) { 191 if (size != sizeof(SerializedMessagePipeHandleDispatcher)) {
196 LOG(ERROR) << "Invalid serialized message pipe dispatcher (bad size)"; 192 LOG(ERROR) << "Invalid serialized message pipe dispatcher (bad size)";
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 // cont'd 430 // cont'd
435 if (transport_data_buffer_size != 0) { 431 if (transport_data_buffer_size != 0) {
436 // TODO(jam): copied from RawChannelWin::WriteNoLock( 432 // TODO(jam): copied from RawChannelWin::WriteNoLock(
437 PlatformHandleVector* all_platform_handles = 433 PlatformHandleVector* all_platform_handles =
438 message->transport_data()->platform_handles(); 434 message->transport_data()->platform_handles();
439 if (all_platform_handles) { 435 if (all_platform_handles) {
440 #if defined(OS_WIN) 436 #if defined(OS_WIN)
441 uint64_t* tokens = reinterpret_cast<uint64_t*>( 437 uint64_t* tokens = reinterpret_cast<uint64_t*>(
442 static_cast<char*>(message->transport_data()->buffer()) + 438 static_cast<char*>(message->transport_data()->buffer()) +
443 message->transport_data()->platform_handle_table_offset()); 439 message->transport_data()->platform_handle_table_offset());
444 internal::g_token_serializer->HandleToToken( 440 internal::g_broker->HandleToToken(
445 &all_platform_handles->at(0), all_platform_handles->size(), tokens); 441 &all_platform_handles->at(0), all_platform_handles->size(), tokens);
446 for (size_t i = 0; i < all_platform_handles->size(); i++) 442 for (size_t i = 0; i < all_platform_handles->size(); i++)
447 all_platform_handles->at(i) = PlatformHandle(); 443 all_platform_handles->at(i) = PlatformHandle();
448 #else 444 #else
449 for (size_t i = 0; i < all_platform_handles->size(); i++) { 445 for (size_t i = 0; i < all_platform_handles->size(); i++) {
450 serialized_fds_.push_back(all_platform_handles->at(i).fd); 446 serialized_fds_.push_back(all_platform_handles->at(i).fd);
451 serialized_message_fds_length_++; 447 serialized_message_fds_length_++;
452 all_platform_handles->at(i) = PlatformHandle(); 448 all_platform_handles->at(i) = PlatformHandle();
453 } 449 }
454 #endif 450 #endif
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after
855 LOG(WARNING) << "Enqueueing null dispatcher"; 851 LOG(WARNING) << "Enqueueing null dispatcher";
856 dispatchers->push_back(nullptr); 852 dispatchers->push_back(nullptr);
857 } 853 }
858 } 854 }
859 message->SetDispatchers(dispatchers.Pass()); 855 message->SetDispatchers(dispatchers.Pass());
860 return MOJO_RESULT_OK; 856 return MOJO_RESULT_OK;
861 } 857 }
862 858
863 } // namespace edk 859 } // namespace edk
864 } // namespace mojo 860 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698