| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "device/bluetooth/bluetooth_device_mac.h" |
| |
| #include "device/bluetooth/bluetooth_adapter_mac.h" |
| |
| static NSString* const kConnectErrorDomain = @"ConnectErrorCode"; |
| static NSString* const kGattErrorDomain = @"GattErrorCode"; |
| |
| namespace device { |
| |
| BluetoothDeviceMac::BluetoothDeviceMac(BluetoothAdapterMac* adapter) |
| : BluetoothDevice(adapter) {} |
| |
| BluetoothDeviceMac::~BluetoothDeviceMac() { |
| } |
| |
| NSError* BluetoothDeviceMac::GetNSErrorFromConnectErrorCode( |
| BluetoothDevice::ConnectErrorCode error_code) { |
| // TODO(http://crbug.com/585894): Need to convert the error. |
| return [NSError errorWithDomain:kConnectErrorDomain |
| code:error_code |
| userInfo:nil]; |
| } |
| |
| BluetoothDevice::ConnectErrorCode |
| BluetoothDeviceMac::GetConnectErrorCodeFromNSError(NSError* error) { |
| if ([error.domain isEqualToString:kConnectErrorDomain]) { |
| BluetoothDevice::ConnectErrorCode connect_error_code = |
| (BluetoothDevice::ConnectErrorCode)error.code; |
| if (connect_error_code >= 0 || |
| connect_error_code < BluetoothDevice::NUM_CONNECT_ERROR_CODES) { |
| return connect_error_code; |
| } |
| DCHECK(false); |
| return BluetoothDevice::ERROR_FAILED; |
| } |
| // TODO(http://crbug.com/585894): Need to convert the error. |
| return BluetoothDevice::ERROR_FAILED; |
| } |
| |
| NSError* BluetoothDeviceMac::GetNSErrorFromGattErrorCode( |
| BluetoothGattService::GattErrorCode error_code) { |
| // TODO(http://crbug.com/619595): Need to convert the GattErrorCode vale to |
| // a CBError value. |
| return |
| [NSError errorWithDomain:kGattErrorDomain code:error_code userInfo:nil]; |
| } |
| |
| BluetoothGattService::GattErrorCode |
| BluetoothDeviceMac::GetGattErrorCodeFromNSError(NSError* error) { |
| if ([error.domain isEqualToString:kGattErrorDomain]) { |
| BluetoothGattService::GattErrorCode gatt_error_code = |
| (BluetoothGattService::GattErrorCode)error.code; |
| if (gatt_error_code >= 0 || |
| gatt_error_code <= BluetoothGattService::GATT_ERROR_NOT_SUPPORTED) { |
| return gatt_error_code; |
| } |
| NOTREACHED(); |
| return BluetoothGattService::GATT_ERROR_FAILED; |
| } |
| // TODO(http://crbug.com/619595): Need to convert the error code from |
| // CoreBluetooth to a GattErrorCode value. |
| return BluetoothGattService::GATT_ERROR_FAILED; |
| } |
| |
| } // namespace device |