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

Side by Side Diff: mojo/edk/embedder/embedder.cc

Issue 1529303004: Convert Pass()→std::move() in mojo/edk/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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
« no previous file with comments | « no previous file | mojo/edk/embedder/embedder_unittest.cc » ('j') | no next file with comments »
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 "mojo/edk/embedder/embedder.h" 5 #include "mojo/edk/embedder/embedder.h"
6 6
7 #include <utility>
8
7 #include "base/atomicops.h" 9 #include "base/atomicops.h"
8 #include "base/bind.h" 10 #include "base/bind.h"
9 #include "base/bind_helpers.h" 11 #include "base/bind_helpers.h"
10 #include "base/command_line.h" 12 #include "base/command_line.h"
11 #include "base/location.h" 13 #include "base/location.h"
12 #include "base/logging.h" 14 #include "base/logging.h"
13 #include "base/memory/scoped_ptr.h" 15 #include "base/memory/scoped_ptr.h"
14 #include "base/message_loop/message_loop.h" 16 #include "base/message_loop/message_loop.h"
15 #include "base/task_runner.h" 17 #include "base/task_runner.h"
16 #include "mojo/edk/embedder/embedder_internal.h" 18 #include "mojo/edk/embedder/embedder_internal.h"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 } 59 }
58 60
59 ScopedPlatformHandle ChildProcessLaunched(base::ProcessHandle child_process) { 61 ScopedPlatformHandle ChildProcessLaunched(base::ProcessHandle child_process) {
60 PlatformChannelPair token_channel; 62 PlatformChannelPair token_channel;
61 new ChildBrokerHost(child_process, token_channel.PassServerHandle()); 63 new ChildBrokerHost(child_process, token_channel.PassServerHandle());
62 return token_channel.PassClientHandle(); 64 return token_channel.PassClientHandle();
63 } 65 }
64 66
65 void ChildProcessLaunched(base::ProcessHandle child_process, 67 void ChildProcessLaunched(base::ProcessHandle child_process,
66 ScopedPlatformHandle server_pipe) { 68 ScopedPlatformHandle server_pipe) {
67 new ChildBrokerHost(child_process, server_pipe.Pass()); 69 new ChildBrokerHost(child_process, std::move(server_pipe));
68 } 70 }
69 71
70 void SetParentPipeHandle(ScopedPlatformHandle pipe) { 72 void SetParentPipeHandle(ScopedPlatformHandle pipe) {
71 ChildBroker::GetInstance()->SetChildBrokerHostHandle(pipe.Pass()); 73 ChildBroker::GetInstance()->SetChildBrokerHostHandle(std::move(pipe));
72 } 74 }
73 75
74 void Init() { 76 void Init() {
75 const base::CommandLine& command_line = 77 const base::CommandLine& command_line =
76 *base::CommandLine::ForCurrentProcess(); 78 *base::CommandLine::ForCurrentProcess();
77 if (command_line.HasSwitch("use-new-edk") && !internal::g_broker) 79 if (command_line.HasSwitch("use-new-edk") && !internal::g_broker)
78 BrokerState::GetInstance(); 80 BrokerState::GetInstance();
79 81
80 DCHECK(!internal::g_platform_support); 82 DCHECK(!internal::g_platform_support);
81 internal::g_platform_support = new SimplePlatformSupport(); 83 internal::g_platform_support = new SimplePlatformSupport();
82 84
83 DCHECK(!internal::g_core); 85 DCHECK(!internal::g_core);
84 internal::g_core = new Core(internal::g_platform_support); 86 internal::g_core = new Core(internal::g_platform_support);
85 } 87 }
86 88
87 MojoResult AsyncWait(MojoHandle handle, 89 MojoResult AsyncWait(MojoHandle handle,
88 MojoHandleSignals signals, 90 MojoHandleSignals signals,
89 const base::Callback<void(MojoResult)>& callback) { 91 const base::Callback<void(MojoResult)>& callback) {
90 return internal::g_core->AsyncWait(handle, signals, callback); 92 return internal::g_core->AsyncWait(handle, signals, callback);
91 } 93 }
92 94
93 MojoResult CreatePlatformHandleWrapper( 95 MojoResult CreatePlatformHandleWrapper(
94 ScopedPlatformHandle platform_handle, 96 ScopedPlatformHandle platform_handle,
95 MojoHandle* platform_handle_wrapper_handle) { 97 MojoHandle* platform_handle_wrapper_handle) {
96 DCHECK(platform_handle_wrapper_handle); 98 DCHECK(platform_handle_wrapper_handle);
97 99
98 scoped_refptr<Dispatcher> dispatcher = 100 scoped_refptr<Dispatcher> dispatcher =
99 PlatformHandleDispatcher::Create(platform_handle.Pass()); 101 PlatformHandleDispatcher::Create(std::move(platform_handle));
100 102
101 DCHECK(internal::g_core); 103 DCHECK(internal::g_core);
102 MojoHandle h = internal::g_core->AddDispatcher(dispatcher); 104 MojoHandle h = internal::g_core->AddDispatcher(dispatcher);
103 if (h == MOJO_HANDLE_INVALID) { 105 if (h == MOJO_HANDLE_INVALID) {
104 LOG(ERROR) << "Handle table full"; 106 LOG(ERROR) << "Handle table full";
105 dispatcher->Close(); 107 dispatcher->Close();
106 return MOJO_RESULT_RESOURCE_EXHAUSTED; 108 return MOJO_RESULT_RESOURCE_EXHAUSTED;
107 } 109 }
108 110
109 *platform_handle_wrapper_handle = h; 111 *platform_handle_wrapper_handle = h;
110 return MOJO_RESULT_OK; 112 return MOJO_RESULT_OK;
111 } 113 }
112 114
113 MojoResult PassWrappedPlatformHandle(MojoHandle platform_handle_wrapper_handle, 115 MojoResult PassWrappedPlatformHandle(MojoHandle platform_handle_wrapper_handle,
114 ScopedPlatformHandle* platform_handle) { 116 ScopedPlatformHandle* platform_handle) {
115 DCHECK(platform_handle); 117 DCHECK(platform_handle);
116 118
117 DCHECK(internal::g_core); 119 DCHECK(internal::g_core);
118 scoped_refptr<Dispatcher> dispatcher( 120 scoped_refptr<Dispatcher> dispatcher(
119 internal::g_core->GetDispatcher(platform_handle_wrapper_handle)); 121 internal::g_core->GetDispatcher(platform_handle_wrapper_handle));
120 if (!dispatcher) 122 if (!dispatcher)
121 return MOJO_RESULT_INVALID_ARGUMENT; 123 return MOJO_RESULT_INVALID_ARGUMENT;
122 124
123 if (dispatcher->GetType() != Dispatcher::Type::PLATFORM_HANDLE) 125 if (dispatcher->GetType() != Dispatcher::Type::PLATFORM_HANDLE)
124 return MOJO_RESULT_INVALID_ARGUMENT; 126 return MOJO_RESULT_INVALID_ARGUMENT;
125 127
126 *platform_handle = 128 *platform_handle = static_cast<PlatformHandleDispatcher*>(dispatcher.get())
127 static_cast<PlatformHandleDispatcher*>(dispatcher.get()) 129 ->PassPlatformHandle();
128 ->PassPlatformHandle()
129 .Pass();
130 return MOJO_RESULT_OK; 130 return MOJO_RESULT_OK;
131 } 131 }
132 132
133 void InitIPCSupport(ProcessDelegate* process_delegate, 133 void InitIPCSupport(ProcessDelegate* process_delegate,
134 scoped_refptr<base::TaskRunner> io_thread_task_runner) { 134 scoped_refptr<base::TaskRunner> io_thread_task_runner) {
135 // |Init()| must have already been called. 135 // |Init()| must have already been called.
136 DCHECK(internal::g_core); 136 DCHECK(internal::g_core);
137 internal::g_process_delegate = process_delegate; 137 internal::g_process_delegate = process_delegate;
138 internal::g_io_thread_task_runner = io_thread_task_runner.get(); 138 internal::g_io_thread_task_runner = io_thread_task_runner.get();
139 } 139 }
(...skipping 10 matching lines...) Expand all
150 ScopedPlatformHandle platform_handle) { 150 ScopedPlatformHandle platform_handle) {
151 MojoCreateMessagePipeOptions options = { 151 MojoCreateMessagePipeOptions options = {
152 static_cast<uint32_t>(sizeof(MojoCreateMessagePipeOptions)), 152 static_cast<uint32_t>(sizeof(MojoCreateMessagePipeOptions)),
153 MOJO_CREATE_MESSAGE_PIPE_OPTIONS_FLAG_TRANSFERABLE}; 153 MOJO_CREATE_MESSAGE_PIPE_OPTIONS_FLAG_TRANSFERABLE};
154 scoped_refptr<MessagePipeDispatcher> dispatcher = 154 scoped_refptr<MessagePipeDispatcher> dispatcher =
155 MessagePipeDispatcher::Create(options); 155 MessagePipeDispatcher::Create(options);
156 156
157 ScopedMessagePipeHandle rv( 157 ScopedMessagePipeHandle rv(
158 MessagePipeHandle(internal::g_core->AddDispatcher(dispatcher))); 158 MessagePipeHandle(internal::g_core->AddDispatcher(dispatcher)));
159 CHECK(rv.is_valid()); 159 CHECK(rv.is_valid());
160 dispatcher->Init(platform_handle.Pass(), nullptr, 0, nullptr, 0, nullptr, 160 dispatcher->Init(std::move(platform_handle), nullptr, 0, nullptr, 0, nullptr,
161 nullptr); 161 nullptr);
162 // TODO(vtl): The |.Pass()| below is only needed due to an MSVS bug; remove it 162 // TODO(vtl): The |.Pass()| below is only needed due to an MSVS bug; remove it
163 // once that's fixed. 163 // once that's fixed.
164 return rv.Pass(); 164 return rv;
165 } 165 }
166 166
167 } // namespace edk 167 } // namespace edk
168 } // namespace mojo 168 } // namespace mojo
OLDNEW
« no previous file with comments | « no previous file | mojo/edk/embedder/embedder_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698