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

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

Issue 1350183002: EDK: More scoped_ptr -> std::unique_ptr conversions. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: gah Created 5 years, 3 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 | « mojo/edk/system/mapping_table.cc ('k') | mojo/edk/system/message_in_transit.h » ('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 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/master_connection_manager.h" 5 #include "mojo/edk/system/master_connection_manager.h"
6 6
7 #include <memory>
8
7 #include "base/bind.h" 9 #include "base/bind.h"
8 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
9 #include "base/location.h" 11 #include "base/location.h"
10 #include "base/logging.h" 12 #include "base/logging.h"
11 #include "base/message_loop/message_loop.h" 13 #include "base/message_loop/message_loop.h"
12 #include "base/synchronization/waitable_event.h" 14 #include "base/synchronization/waitable_event.h"
13 #include "mojo/edk/embedder/master_process_delegate.h" 15 #include "mojo/edk/embedder/master_process_delegate.h"
14 #include "mojo/edk/embedder/platform_channel_pair.h" 16 #include "mojo/edk/embedder/platform_channel_pair.h"
15 #include "mojo/edk/embedder/platform_handle.h" 17 #include "mojo/edk/embedder/platform_handle.h"
16 #include "mojo/edk/embedder/platform_handle_vector.h" 18 #include "mojo/edk/embedder/platform_handle_vector.h"
17 #include "mojo/edk/system/connection_manager_messages.h" 19 #include "mojo/edk/system/connection_manager_messages.h"
18 #include "mojo/edk/system/message_in_transit.h" 20 #include "mojo/edk/system/message_in_transit.h"
19 #include "mojo/edk/system/raw_channel.h" 21 #include "mojo/edk/system/raw_channel.h"
20 #include "mojo/edk/system/transport_data.h" 22 #include "mojo/edk/system/transport_data.h"
23 #include "mojo/edk/util/make_unique.h"
21 #include "mojo/public/cpp/system/macros.h" 24 #include "mojo/public/cpp/system/macros.h"
22 25
23 namespace mojo { 26 namespace mojo {
24 namespace system { 27 namespace system {
25 28
26 namespace { 29 namespace {
27 30
28 const ProcessIdentifier kFirstSlaveProcessIdentifier = 2; 31 const ProcessIdentifier kFirstSlaveProcessIdentifier = 2;
29 32
30 static_assert(kMasterProcessIdentifier != kInvalidProcessIdentifier, 33 static_assert(kMasterProcessIdentifier != kInvalidProcessIdentifier,
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 ConnectionManagerResultToMessageInTransitSubtype(result), num_bytes, 189 ConnectionManagerResultToMessageInTransitSubtype(result), num_bytes,
187 bytes)); 190 bytes));
188 191
189 if (result == Result::SUCCESS_CONNECT_NEW_CONNECTION) { 192 if (result == Result::SUCCESS_CONNECT_NEW_CONNECTION) {
190 DCHECK_EQ(message_view.subtype(), 193 DCHECK_EQ(message_view.subtype(),
191 MessageInTransit::Subtype::CONNECTION_MANAGER_CONNECT); 194 MessageInTransit::Subtype::CONNECTION_MANAGER_CONNECT);
192 DCHECK(platform_handle.is_valid()); 195 DCHECK(platform_handle.is_valid());
193 embedder::ScopedPlatformHandleVectorPtr platform_handles( 196 embedder::ScopedPlatformHandleVectorPtr platform_handles(
194 new embedder::PlatformHandleVector()); 197 new embedder::PlatformHandleVector());
195 platform_handles->push_back(platform_handle.release()); 198 platform_handles->push_back(platform_handle.release());
196 response->SetTransportData(make_scoped_ptr( 199 response->SetTransportData(util::MakeUnique<TransportData>(
197 new TransportData(platform_handles.Pass(), 200 platform_handles.Pass(),
198 raw_channel_->GetSerializedPlatformHandleSize()))); 201 raw_channel_->GetSerializedPlatformHandleSize()));
199 } else { 202 } else {
200 DCHECK(!platform_handle.is_valid()); 203 DCHECK(!platform_handle.is_valid());
201 } 204 }
202 205
203 if (!raw_channel_->WriteMessage(response.Pass())) { 206 if (!raw_channel_->WriteMessage(response.Pass())) {
204 LOG(ERROR) << "WriteMessage failed"; 207 LOG(ERROR) << "WriteMessage failed";
205 FatalError(); // WARNING: This destroys us. 208 FatalError(); // WARNING: This destroys us.
206 return; 209 return;
207 } 210 }
208 } 211 }
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 << ": first Connect() from process identifier " 550 << ": first Connect() from process identifier "
548 << process_identifier; 551 << process_identifier;
549 *peer_process_identifier = peer; 552 *peer_process_identifier = peer;
550 *is_first = true; 553 *is_first = true;
551 return ConnectImplHelperNoLock(process_identifier, peer, platform_handle); 554 return ConnectImplHelperNoLock(process_identifier, peer, platform_handle);
552 } 555 }
553 556
554 // The remaining cases all result in |it| being removed from 557 // The remaining cases all result in |it| being removed from
555 // |pending_connects_| and deleting |info|. 558 // |pending_connects_| and deleting |info|.
556 pending_connects_.erase(it); 559 pending_connects_.erase(it);
557 scoped_ptr<PendingConnectInfo> info_deleter(info); 560 std::unique_ptr<PendingConnectInfo> info_deleter(info);
558 561
559 // |remaining_connectee| should be the same as |process_identifier|. 562 // |remaining_connectee| should be the same as |process_identifier|.
560 ProcessIdentifier remaining_connectee; 563 ProcessIdentifier remaining_connectee;
561 if (info->state == PendingConnectInfo::State::AWAITING_CONNECT_FROM_FIRST) { 564 if (info->state == PendingConnectInfo::State::AWAITING_CONNECT_FROM_FIRST) {
562 remaining_connectee = info->first; 565 remaining_connectee = info->first;
563 peer = info->second; 566 peer = info->second;
564 } else if (info->state == 567 } else if (info->state ==
565 PendingConnectInfo::State::AWAITING_CONNECT_FROM_SECOND) { 568 PendingConnectInfo::State::AWAITING_CONNECT_FROM_SECOND) {
566 remaining_connectee = info->second; 569 remaining_connectee = info->second;
567 peer = info->first; 570 peer = info->first;
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 668
666 void MasterConnectionManager::AddSlaveOnPrivateThread( 669 void MasterConnectionManager::AddSlaveOnPrivateThread(
667 embedder::SlaveInfo slave_info, 670 embedder::SlaveInfo slave_info,
668 embedder::ScopedPlatformHandle platform_handle, 671 embedder::ScopedPlatformHandle platform_handle,
669 ProcessIdentifier slave_process_identifier, 672 ProcessIdentifier slave_process_identifier,
670 base::WaitableEvent* event) { 673 base::WaitableEvent* event) {
671 DCHECK(platform_handle.is_valid()); 674 DCHECK(platform_handle.is_valid());
672 DCHECK(event); 675 DCHECK(event);
673 AssertOnPrivateThread(); 676 AssertOnPrivateThread();
674 677
675 scoped_ptr<Helper> helper(new Helper(this, slave_process_identifier, 678 std::unique_ptr<Helper> helper(new Helper(
676 slave_info, platform_handle.Pass())); 679 this, slave_process_identifier, slave_info, platform_handle.Pass()));
677 helper->Init(); 680 helper->Init();
678 681
679 DCHECK(helpers_.find(slave_process_identifier) == helpers_.end()); 682 DCHECK(helpers_.find(slave_process_identifier) == helpers_.end());
680 helpers_[slave_process_identifier] = helper.release(); 683 helpers_[slave_process_identifier] = helper.release();
681 684
682 DVLOG(1) << "Added slave process identifier " << slave_process_identifier; 685 DVLOG(1) << "Added slave process identifier " << slave_process_identifier;
683 event->Signal(); 686 event->Signal();
684 } 687 }
685 688
686 void MasterConnectionManager::OnError(ProcessIdentifier process_identifier) { 689 void MasterConnectionManager::OnError(ProcessIdentifier process_identifier) {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
733 } 736 }
734 737
735 void MasterConnectionManager::AssertOnPrivateThread() const { 738 void MasterConnectionManager::AssertOnPrivateThread() const {
736 // This should only be called after |Init()| and before |Shutdown()|. 739 // This should only be called after |Init()| and before |Shutdown()|.
737 DCHECK(private_thread_.message_loop()); 740 DCHECK(private_thread_.message_loop());
738 DCHECK_EQ(base::MessageLoop::current(), private_thread_.message_loop()); 741 DCHECK_EQ(base::MessageLoop::current(), private_thread_.message_loop());
739 } 742 }
740 743
741 } // namespace system 744 } // namespace system
742 } // namespace mojo 745 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/edk/system/mapping_table.cc ('k') | mojo/edk/system/message_in_transit.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698