| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |