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

Side by Side Diff: device/bluetooth/bluetooth_adapter.cc

Issue 1096183003: bluetooth: Refactor bluetooth_adapter.cc for C++ style: dcl/dfn ordering. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bta-style-typedefs-
Patch Set: Created 5 years, 8 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 | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "device/bluetooth/bluetooth_adapter.h" 5 #include "device/bluetooth/bluetooth_adapter.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "device/bluetooth/bluetooth_device.h" 9 #include "device/bluetooth/bluetooth_device.h"
10 #include "device/bluetooth/bluetooth_discovery_session.h" 10 #include "device/bluetooth/bluetooth_discovery_session.h"
11 11
12 namespace device { 12 namespace device {
13 13
14 BluetoothAdapter::ServiceOptions::ServiceOptions() { 14 BluetoothAdapter::ServiceOptions::ServiceOptions() {
15 } 15 }
16 BluetoothAdapter::ServiceOptions::~ServiceOptions() { 16 BluetoothAdapter::ServiceOptions::~ServiceOptions() {
17 } 17 }
18 18
19 #if !defined(OS_CHROMEOS) && !defined(OS_WIN) && !defined(OS_MACOSX) 19 #if !defined(OS_CHROMEOS) && !defined(OS_WIN) && !defined(OS_MACOSX)
20 //static 20 //static
21 base::WeakPtr<BluetoothAdapter> BluetoothAdapter::CreateAdapter( 21 base::WeakPtr<BluetoothAdapter> BluetoothAdapter::CreateAdapter(
22 const InitCallback& init_callback) { 22 const InitCallback& init_callback) {
23 return base::WeakPtr<BluetoothAdapter>(); 23 return base::WeakPtr<BluetoothAdapter>();
24 } 24 }
25 #endif // !defined(OS_CHROMEOS) && !defined(OS_WIN) && !defined(OS_MACOSX) 25 #endif // !defined(OS_CHROMEOS) && !defined(OS_WIN) && !defined(OS_MACOSX)
26 26
27 base::WeakPtr<BluetoothAdapter> BluetoothAdapter::GetWeakPtrForTesting() {
28 return weak_ptr_factory_.GetWeakPtr();
29 }
30
27 #if defined(OS_CHROMEOS) 31 #if defined(OS_CHROMEOS)
28 void BluetoothAdapter::Shutdown() { 32 void BluetoothAdapter::Shutdown() {
29 NOTIMPLEMENTED(); 33 NOTIMPLEMENTED();
30 } 34 }
31 #endif 35 #endif
32 36
33 BluetoothAdapter::BluetoothAdapter() 37 void BluetoothAdapter::StartDiscoverySession(
34 : weak_ptr_factory_(this) { 38 const DiscoverySessionCallback& callback,
35 } 39 const ErrorCallback& error_callback) {
36 40 StartDiscoverySessionWithFilter(nullptr, callback, error_callback);
37 BluetoothAdapter::~BluetoothAdapter() {
38 STLDeleteValues(&devices_);
39 }
40
41 base::WeakPtr<BluetoothAdapter> BluetoothAdapter::GetWeakPtrForTesting() {
42 return weak_ptr_factory_.GetWeakPtr();
43 } 41 }
44 42
45 void BluetoothAdapter::StartDiscoverySessionWithFilter( 43 void BluetoothAdapter::StartDiscoverySessionWithFilter(
46 scoped_ptr<BluetoothDiscoveryFilter> discovery_filter, 44 scoped_ptr<BluetoothDiscoveryFilter> discovery_filter,
47 const DiscoverySessionCallback& callback, 45 const DiscoverySessionCallback& callback,
48 const ErrorCallback& error_callback) { 46 const ErrorCallback& error_callback) {
49 AddDiscoverySession(discovery_filter.get(), 47 AddDiscoverySession(discovery_filter.get(),
50 base::Bind(&BluetoothAdapter::OnStartDiscoverySession, 48 base::Bind(&BluetoothAdapter::OnStartDiscoverySession,
51 weak_ptr_factory_.GetWeakPtr(), 49 weak_ptr_factory_.GetWeakPtr(),
52 base::Passed(&discovery_filter), callback), 50 base::Passed(&discovery_filter), callback),
53 error_callback); 51 error_callback);
54 } 52 }
55 53
56 void BluetoothAdapter::StartDiscoverySession(
57 const DiscoverySessionCallback& callback,
58 const ErrorCallback& error_callback) {
59 StartDiscoverySessionWithFilter(nullptr, callback, error_callback);
60 }
61
62 scoped_ptr<BluetoothDiscoveryFilter>
63 BluetoothAdapter::GetMergedDiscoveryFilterHelper(
64 const BluetoothDiscoveryFilter* masked_filter,
65 bool omit) const {
66 scoped_ptr<BluetoothDiscoveryFilter> result;
67 bool first_merge = true;
68
69 std::set<BluetoothDiscoverySession*> temp(discovery_sessions_);
70 for (const auto& iter : temp) {
71 const BluetoothDiscoveryFilter* curr_filter = iter->GetDiscoveryFilter();
72
73 if (!iter->IsActive())
74 continue;
75
76 if (omit && curr_filter == masked_filter) {
77 // if masked_filter is pointing to empty filter, and there are
78 // multiple empty filters in discovery_sessions_, make sure we'll
79 // process next empty sessions.
80 omit = false;
81 continue;
82 }
83
84 if (first_merge) {
85 first_merge = false;
86 if (curr_filter) {
87 result.reset(new BluetoothDiscoveryFilter(
88 BluetoothDiscoveryFilter::Transport::TRANSPORT_DUAL));
89 result->CopyFrom(*curr_filter);
90 }
91 continue;
92 }
93
94 result = BluetoothDiscoveryFilter::Merge(result.get(), curr_filter);
95 }
96
97 return result.Pass();
98 }
99
100 scoped_ptr<BluetoothDiscoveryFilter> 54 scoped_ptr<BluetoothDiscoveryFilter>
101 BluetoothAdapter::GetMergedDiscoveryFilter() const { 55 BluetoothAdapter::GetMergedDiscoveryFilter() const {
102 return GetMergedDiscoveryFilterHelper(nullptr, false); 56 return GetMergedDiscoveryFilterHelper(nullptr, false);
103 } 57 }
104 58
105 scoped_ptr<BluetoothDiscoveryFilter> 59 scoped_ptr<BluetoothDiscoveryFilter>
106 BluetoothAdapter::GetMergedDiscoveryFilterMasked( 60 BluetoothAdapter::GetMergedDiscoveryFilterMasked(
107 BluetoothDiscoveryFilter* masked_filter) const { 61 BluetoothDiscoveryFilter* masked_filter) const {
108 return GetMergedDiscoveryFilterHelper(masked_filter, true); 62 return GetMergedDiscoveryFilterHelper(masked_filter, true);
109 } 63 }
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 } 130 }
177 } 131 }
178 132
179 BluetoothDevice::PairingDelegate* BluetoothAdapter::DefaultPairingDelegate() { 133 BluetoothDevice::PairingDelegate* BluetoothAdapter::DefaultPairingDelegate() {
180 if (pairing_delegates_.empty()) 134 if (pairing_delegates_.empty())
181 return NULL; 135 return NULL;
182 136
183 return pairing_delegates_.front().first; 137 return pairing_delegates_.front().first;
184 } 138 }
185 139
140 BluetoothAdapter::BluetoothAdapter() : weak_ptr_factory_(this) {
141 }
142
143 BluetoothAdapter::~BluetoothAdapter() {
144 STLDeleteValues(&devices_);
145 }
146
186 void BluetoothAdapter::OnStartDiscoverySession( 147 void BluetoothAdapter::OnStartDiscoverySession(
187 scoped_ptr<BluetoothDiscoveryFilter> discovery_filter, 148 scoped_ptr<BluetoothDiscoveryFilter> discovery_filter,
188 const DiscoverySessionCallback& callback) { 149 const DiscoverySessionCallback& callback) {
189 VLOG(1) << "Discovery session started!"; 150 VLOG(1) << "Discovery session started!";
190 scoped_ptr<BluetoothDiscoverySession> discovery_session( 151 scoped_ptr<BluetoothDiscoverySession> discovery_session(
191 new BluetoothDiscoverySession(scoped_refptr<BluetoothAdapter>(this), 152 new BluetoothDiscoverySession(scoped_refptr<BluetoothAdapter>(this),
192 discovery_filter.Pass())); 153 discovery_filter.Pass()));
193 discovery_sessions_.insert(discovery_session.get()); 154 discovery_sessions_.insert(discovery_session.get());
194 callback.Run(discovery_session.Pass()); 155 callback.Run(discovery_session.Pass());
195 } 156 }
(...skipping 10 matching lines...) Expand all
206 (*iter)->MarkAsInactive(); 167 (*iter)->MarkAsInactive();
207 } 168 }
208 } 169 }
209 170
210 void BluetoothAdapter::DiscoverySessionBecameInactive( 171 void BluetoothAdapter::DiscoverySessionBecameInactive(
211 BluetoothDiscoverySession* discovery_session) { 172 BluetoothDiscoverySession* discovery_session) {
212 DCHECK(!discovery_session->IsActive()); 173 DCHECK(!discovery_session->IsActive());
213 discovery_sessions_.erase(discovery_session); 174 discovery_sessions_.erase(discovery_session);
214 } 175 }
215 176
177 scoped_ptr<BluetoothDiscoveryFilter>
178 BluetoothAdapter::GetMergedDiscoveryFilterHelper(
179 const BluetoothDiscoveryFilter* masked_filter,
180 bool omit) const {
181 scoped_ptr<BluetoothDiscoveryFilter> result;
182 bool first_merge = true;
183
184 std::set<BluetoothDiscoverySession*> temp(discovery_sessions_);
185 for (const auto& iter : temp) {
186 const BluetoothDiscoveryFilter* curr_filter = iter->GetDiscoveryFilter();
187
188 if (!iter->IsActive())
189 continue;
190
191 if (omit && curr_filter == masked_filter) {
192 // if masked_filter is pointing to empty filter, and there are
193 // multiple empty filters in discovery_sessions_, make sure we'll
194 // process next empty sessions.
195 omit = false;
196 continue;
197 }
198
199 if (first_merge) {
200 first_merge = false;
201 if (curr_filter) {
202 result.reset(new BluetoothDiscoveryFilter(
203 BluetoothDiscoveryFilter::Transport::TRANSPORT_DUAL));
204 result->CopyFrom(*curr_filter);
205 }
206 continue;
207 }
208
209 result = BluetoothDiscoveryFilter::Merge(result.get(), curr_filter);
210 }
211
212 return result.Pass();
213 }
214
216 } // namespace device 215 } // namespace device
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698