| Index: chromeos/dbus/bluetooth_profile_manager_client.cc
|
| diff --git a/chromeos/dbus/bluetooth_profile_manager_client.cc b/chromeos/dbus/bluetooth_profile_manager_client.cc
|
| index ee2fe2b5d1fd05e1afe24e19f30f196a7407add6..b38e7cd99990cfb5a8aba46450abfe74db4c2bf7 100644
|
| --- a/chromeos/dbus/bluetooth_profile_manager_client.cc
|
| +++ b/chromeos/dbus/bluetooth_profile_manager_client.cc
|
| @@ -18,11 +18,7 @@ const char BluetoothProfileManagerClient::kNoResponseError[] =
|
| "org.chromium.Error.NoResponse";
|
|
|
|
|
| -BluetoothProfileManagerClient::Options::Options()
|
| - : role(SYMMETRIC),
|
| - require_authentication(false),
|
| - require_authorization(false),
|
| - auto_connect(true) {
|
| +BluetoothProfileManagerClient::Options::Options() {
|
| }
|
|
|
| BluetoothProfileManagerClient::Options::~Options() {
|
| @@ -56,22 +52,24 @@ class BluetoothProfileManagerClientImpl
|
|
|
| dbus::MessageWriter dict_writer(NULL);
|
|
|
| - // Always send Name, even if empty string.
|
| - array_writer.OpenDictEntry(&dict_writer);
|
| - dict_writer.AppendString(bluetooth_profile_manager::kNameOption);
|
| - dict_writer.AppendVariantOfString(options.name);
|
| - array_writer.CloseContainer(&dict_writer);
|
| + // Send Name if provided.
|
| + if (options.name.get() != NULL) {
|
| + array_writer.OpenDictEntry(&dict_writer);
|
| + dict_writer.AppendString(bluetooth_profile_manager::kNameOption);
|
| + dict_writer.AppendVariantOfString(*(options.name));
|
| + array_writer.CloseContainer(&dict_writer);
|
| + }
|
|
|
| - // Don't send Service if not provided.
|
| - if (options.service.length()) {
|
| + // Send Service if provided.
|
| + if (options.service.get() != NULL) {
|
| dbus::MessageWriter dict_writer(NULL);
|
| array_writer.OpenDictEntry(&dict_writer);
|
| dict_writer.AppendString(bluetooth_profile_manager::kServiceOption);
|
| - dict_writer.AppendVariantOfString(options.service);
|
| + dict_writer.AppendVariantOfString(*(options.service));
|
| array_writer.CloseContainer(&dict_writer);
|
| }
|
|
|
| - // Don't send the default Role since there's no value for it.
|
| + // Send Role if not the default value.
|
| if (options.role != SYMMETRIC) {
|
| dbus::MessageWriter dict_writer(NULL);
|
| array_writer.OpenDictEntry(&dict_writer);
|
| @@ -87,67 +85,75 @@ class BluetoothProfileManagerClientImpl
|
| array_writer.CloseContainer(&dict_writer);
|
| }
|
|
|
| - // Don't send Channel unless given.
|
| - if (options.channel) {
|
| + // Send Channel if provided.
|
| + if (options.channel.get() != NULL) {
|
| dbus::MessageWriter dict_writer(NULL);
|
| array_writer.OpenDictEntry(&dict_writer);
|
| dict_writer.AppendString(bluetooth_profile_manager::kChannelOption);
|
| - dict_writer.AppendVariantOfUint16(options.channel);
|
| + dict_writer.AppendVariantOfUint16(*(options.channel));
|
| array_writer.CloseContainer(&dict_writer);
|
| }
|
|
|
| - // Don't send PSM unless given.
|
| - if (options.psm) {
|
| + // Send PSM if provided.
|
| + if (options.psm.get() != NULL) {
|
| dbus::MessageWriter dict_writer(NULL);
|
| array_writer.OpenDictEntry(&dict_writer);
|
| dict_writer.AppendString(bluetooth_profile_manager::kPSMOption);
|
| - dict_writer.AppendVariantOfUint16(options.psm);
|
| + dict_writer.AppendVariantOfUint16(*(options.psm));
|
| + array_writer.CloseContainer(&dict_writer);
|
| + }
|
| +
|
| + // Send RequireAuthentication if provided.
|
| + if (options.require_authentication.get() != NULL) {
|
| + array_writer.OpenDictEntry(&dict_writer);
|
| + dict_writer.AppendString(
|
| + bluetooth_profile_manager::kRequireAuthenticationOption);
|
| + dict_writer.AppendVariantOfBool(*(options.require_authentication));
|
| + array_writer.CloseContainer(&dict_writer);
|
| + }
|
| +
|
| + // Send RequireAuthorization if provided.
|
| + if (options.require_authorization.get() != NULL) {
|
| + array_writer.OpenDictEntry(&dict_writer);
|
| + dict_writer.AppendString(
|
| + bluetooth_profile_manager::kRequireAuthorizationOption);
|
| + dict_writer.AppendVariantOfBool(*(options.require_authorization));
|
| + array_writer.CloseContainer(&dict_writer);
|
| + }
|
| +
|
| + // Send AutoConnect if provided.
|
| + if (options.auto_connect.get() != NULL) {
|
| + array_writer.OpenDictEntry(&dict_writer);
|
| + dict_writer.AppendString(
|
| + bluetooth_profile_manager::kAutoConnectOption);
|
| + dict_writer.AppendVariantOfBool(*(options.auto_connect));
|
| array_writer.CloseContainer(&dict_writer);
|
| }
|
|
|
| - // Always send RequireAuthentication, RequireAuthorization and AutoConnect.
|
| - array_writer.OpenDictEntry(&dict_writer);
|
| - dict_writer.AppendString(
|
| - bluetooth_profile_manager::kRequireAuthenticationOption);
|
| - dict_writer.AppendVariantOfBool(options.require_authentication);
|
| - array_writer.CloseContainer(&dict_writer);
|
| -
|
| - array_writer.OpenDictEntry(&dict_writer);
|
| - dict_writer.AppendString(
|
| - bluetooth_profile_manager::kRequireAuthorizationOption);
|
| - dict_writer.AppendVariantOfBool(options.require_authorization);
|
| - array_writer.CloseContainer(&dict_writer);
|
| -
|
| - array_writer.OpenDictEntry(&dict_writer);
|
| - dict_writer.AppendString(
|
| - bluetooth_profile_manager::kAutoConnectOption);
|
| - dict_writer.AppendVariantOfBool(options.auto_connect);
|
| - array_writer.CloseContainer(&dict_writer);
|
| -
|
| - // Don't send ServiceRecord if not provided.
|
| - if (options.service_record.length()) {
|
| + // Send ServiceRecord if provided.
|
| + if (options.service_record.get() != NULL) {
|
| dbus::MessageWriter dict_writer(NULL);
|
| array_writer.OpenDictEntry(&dict_writer);
|
| dict_writer.AppendString(bluetooth_profile_manager::kServiceRecordOption);
|
| - dict_writer.AppendVariantOfString(options.service_record);
|
| + dict_writer.AppendVariantOfString(*(options.service_record));
|
| array_writer.CloseContainer(&dict_writer);
|
| }
|
|
|
| - // Don't send Version if not provided.
|
| - if (options.version) {
|
| + // Send Version if provided.
|
| + if (options.version.get() != NULL) {
|
| dbus::MessageWriter dict_writer(NULL);
|
| array_writer.OpenDictEntry(&dict_writer);
|
| dict_writer.AppendString(bluetooth_profile_manager::kVersionOption);
|
| - dict_writer.AppendVariantOfUint16(options.version);
|
| + dict_writer.AppendVariantOfUint16(*(options.version));
|
| array_writer.CloseContainer(&dict_writer);
|
| }
|
|
|
| - // Don't send Features if not provided.
|
| - if (options.features) {
|
| + // Send Features if provided.
|
| + if (options.features.get() != NULL) {
|
| dbus::MessageWriter dict_writer(NULL);
|
| array_writer.OpenDictEntry(&dict_writer);
|
| dict_writer.AppendString(bluetooth_profile_manager::kFeaturesOption);
|
| - dict_writer.AppendVariantOfUint16(options.features);
|
| + dict_writer.AppendVariantOfUint16(*(options.features));
|
| array_writer.CloseContainer(&dict_writer);
|
| }
|
|
|
|
|