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

Side by Side Diff: device/bluetooth/dbus/bluetooth_le_advertisement_service_provider.cc

Issue 2907913002: Fix ManufacturerData and ServiceData DBus data type to match with bluez. (Closed)
Patch Set: Fix ManufacturerData and ServiceData DBus data type to match with bluez. Created 3 years, 6 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 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 "device/bluetooth/dbus/bluetooth_le_advertisement_service_provider.h" 5 #include "device/bluetooth/dbus/bluetooth_le_advertisement_service_provider.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 } 294 }
295 295
296 void AppendManufacturerData(dbus::MessageWriter* array_writer) { 296 void AppendManufacturerData(dbus::MessageWriter* array_writer) {
297 if (!manufacturer_data_) 297 if (!manufacturer_data_)
298 return; 298 return;
299 dbus::MessageWriter dict_entry_writer(NULL); 299 dbus::MessageWriter dict_entry_writer(NULL);
300 array_writer->OpenDictEntry(&dict_entry_writer); 300 array_writer->OpenDictEntry(&dict_entry_writer);
301 dict_entry_writer.AppendString( 301 dict_entry_writer.AppendString(
302 bluetooth_advertisement::kManufacturerDataProperty); 302 bluetooth_advertisement::kManufacturerDataProperty);
303 dbus::MessageWriter variant_writer(NULL); 303 dbus::MessageWriter variant_writer(NULL);
304 dict_entry_writer.OpenVariant("a{qay}", &variant_writer); 304 dict_entry_writer.OpenVariant("a{qv}", &variant_writer);
305 AppendManufacturerDataVariant(&variant_writer); 305 AppendManufacturerDataVariant(&variant_writer);
306 dict_entry_writer.CloseContainer(&variant_writer); 306 dict_entry_writer.CloseContainer(&variant_writer);
307 array_writer->CloseContainer(&dict_entry_writer); 307 array_writer->CloseContainer(&dict_entry_writer);
308 } 308 }
309 309
310 void AppendSolicitUUIDs(dbus::MessageWriter* array_writer) { 310 void AppendSolicitUUIDs(dbus::MessageWriter* array_writer) {
311 if (!solicit_uuids_) 311 if (!solicit_uuids_)
312 return; 312 return;
313 dbus::MessageWriter dict_entry_writer(NULL); 313 dbus::MessageWriter dict_entry_writer(NULL);
314 array_writer->OpenDictEntry(&dict_entry_writer); 314 array_writer->OpenDictEntry(&dict_entry_writer);
315 dict_entry_writer.AppendString( 315 dict_entry_writer.AppendString(
316 bluetooth_advertisement::kSolicitUUIDsProperty); 316 bluetooth_advertisement::kSolicitUUIDsProperty);
317 AppendArrayVariantOfStrings(&dict_entry_writer, *solicit_uuids_); 317 AppendArrayVariantOfStrings(&dict_entry_writer, *solicit_uuids_);
318 array_writer->CloseContainer(&dict_entry_writer); 318 array_writer->CloseContainer(&dict_entry_writer);
319 } 319 }
320 320
321 void AppendServiceData(dbus::MessageWriter* array_writer) { 321 void AppendServiceData(dbus::MessageWriter* array_writer) {
322 if (!service_data_) 322 if (!service_data_)
323 return; 323 return;
324 dbus::MessageWriter dict_entry_writer(NULL); 324 dbus::MessageWriter dict_entry_writer(NULL);
325 array_writer->OpenDictEntry(&dict_entry_writer); 325 array_writer->OpenDictEntry(&dict_entry_writer);
326 dict_entry_writer.AppendString( 326 dict_entry_writer.AppendString(
327 bluetooth_advertisement::kServiceDataProperty); 327 bluetooth_advertisement::kServiceDataProperty);
328 dbus::MessageWriter variant_writer(NULL); 328 dbus::MessageWriter variant_writer(NULL);
329 dict_entry_writer.OpenVariant("a{say}", &variant_writer); 329 dict_entry_writer.OpenVariant("a{sv}", &variant_writer);
330 AppendServiceDataVariant(&variant_writer); 330 AppendServiceDataVariant(&variant_writer);
331 dict_entry_writer.CloseContainer(&variant_writer); 331 dict_entry_writer.CloseContainer(&variant_writer);
332 array_writer->CloseContainer(&dict_entry_writer); 332 array_writer->CloseContainer(&dict_entry_writer);
333 } 333 }
334 334
335 void AppendManufacturerDataVariant(dbus::MessageWriter* writer) { 335 void AppendManufacturerDataVariant(dbus::MessageWriter* writer) {
336 DCHECK(manufacturer_data_); 336 DCHECK(manufacturer_data_);
337 dbus::MessageWriter array_writer(NULL); 337 dbus::MessageWriter array_writer(NULL);
338 writer->OpenArray("{qay}", &array_writer); 338 writer->OpenArray("{qv}", &array_writer);
339 for (const auto& m : *manufacturer_data_) { 339 for (const auto& m : *manufacturer_data_) {
340 dbus::MessageWriter entry_writer(NULL); 340 dbus::MessageWriter entry_writer(NULL);
341 341
342 array_writer.OpenDictEntry(&entry_writer); 342 array_writer.OpenDictEntry(&entry_writer);
343 343
344 entry_writer.AppendUint32(m.first); 344 entry_writer.AppendUint16(m.first);
345 entry_writer.AppendArrayOfBytes(m.second.data(), m.second.size()); 345 dbus::MessageWriter variant_writer(NULL);
346 entry_writer.OpenVariant("ay", &variant_writer);
347 variant_writer.AppendArrayOfBytes(m.second.data(), m.second.size());
348 entry_writer.CloseContainer(&variant_writer);
346 349
347 array_writer.CloseContainer(&entry_writer); 350 array_writer.CloseContainer(&entry_writer);
348 } 351 }
349 writer->CloseContainer(&array_writer); 352 writer->CloseContainer(&array_writer);
350 } 353 }
351 354
352 void AppendServiceDataVariant(dbus::MessageWriter* writer) { 355 void AppendServiceDataVariant(dbus::MessageWriter* writer) {
353 DCHECK(service_data_); 356 DCHECK(service_data_);
354 dbus::MessageWriter array_writer(NULL); 357 dbus::MessageWriter array_writer(NULL);
355 writer->OpenArray("{say}", &array_writer); 358 writer->OpenArray("{sv}", &array_writer);
356 for (const auto& m : *service_data_) { 359 for (const auto& m : *service_data_) {
357 dbus::MessageWriter entry_writer(NULL); 360 dbus::MessageWriter entry_writer(NULL);
358 361
359 array_writer.OpenDictEntry(&entry_writer); 362 array_writer.OpenDictEntry(&entry_writer);
360 363
361 entry_writer.AppendString(m.first); 364 entry_writer.AppendString(m.first);
362 entry_writer.AppendArrayOfBytes(m.second.data(), m.second.size()); 365 dbus::MessageWriter variant_writer(NULL);
366 entry_writer.OpenVariant("ay", &variant_writer);
367 variant_writer.AppendArrayOfBytes(m.second.data(), m.second.size());
368 entry_writer.CloseContainer(&variant_writer);
363 369
364 array_writer.CloseContainer(&entry_writer); 370 array_writer.CloseContainer(&entry_writer);
365 } 371 }
366 writer->CloseContainer(&array_writer); 372 writer->CloseContainer(&array_writer);
367 } 373 }
368 374
369 // Origin thread (i.e. the UI thread in production). 375 // Origin thread (i.e. the UI thread in production).
370 base::PlatformThreadId origin_thread_id_; 376 base::PlatformThreadId origin_thread_id_;
371 377
372 // D-Bus bus object is exported on, not owned by this object and must 378 // D-Bus bus object is exported on, not owned by this object and must
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 return base::MakeUnique<BluetoothAdvertisementServiceProviderImpl>( 425 return base::MakeUnique<BluetoothAdvertisementServiceProviderImpl>(
420 bus, object_path, delegate, type, std::move(service_uuids), 426 bus, object_path, delegate, type, std::move(service_uuids),
421 std::move(manufacturer_data), std::move(solicit_uuids), 427 std::move(manufacturer_data), std::move(solicit_uuids),
422 std::move(service_data)); 428 std::move(service_data));
423 } 429 }
424 return base::MakeUnique<FakeBluetoothLEAdvertisementServiceProvider>( 430 return base::MakeUnique<FakeBluetoothLEAdvertisementServiceProvider>(
425 object_path, delegate); 431 object_path, delegate);
426 } 432 }
427 433
428 } // namespace bluez 434 } // namespace bluez
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