blob: 92d035b694b82a660820500b6979e7236aba9bbd [file] [log] [blame]
// Copyright 2014 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 "content/renderer/bluetooth/web_bluetooth_impl.h"
#include "content/child/thread_safe_sender.h"
#include "content/renderer/bluetooth/bluetooth_dispatcher.h"
#include "ipc/ipc_message.h"
namespace content {
WebBluetoothImpl::WebBluetoothImpl(ThreadSafeSender* thread_safe_sender)
: WebBluetoothImpl(thread_safe_sender, MSG_ROUTING_NONE) {}
WebBluetoothImpl::WebBluetoothImpl(ThreadSafeSender* thread_safe_sender,
int frame_routing_id)
: thread_safe_sender_(thread_safe_sender),
frame_routing_id_(frame_routing_id) {}
WebBluetoothImpl::~WebBluetoothImpl() {
}
void WebBluetoothImpl::requestDevice(
const blink::WebRequestDeviceOptions& options,
blink::WebBluetoothRequestDeviceCallbacks* callbacks) {
GetDispatcher()->requestDevice(frame_routing_id_, options, callbacks);
}
void WebBluetoothImpl::connectGATT(
const blink::WebString& device_id,
blink::WebBluetoothConnectGATTCallbacks* callbacks) {
GetDispatcher()->connectGATT(device_id, callbacks);
}
void WebBluetoothImpl::getPrimaryService(
const blink::WebString& device_id,
const blink::WebString& service_uuid,
blink::WebBluetoothGetPrimaryServiceCallbacks* callbacks) {
GetDispatcher()->getPrimaryService(device_id, service_uuid, callbacks);
}
void WebBluetoothImpl::getCharacteristic(
const blink::WebString& service_instance_id,
const blink::WebString& characteristic_uuid,
blink::WebBluetoothGetCharacteristicCallbacks* callbacks) {
GetDispatcher()->getCharacteristic(service_instance_id, characteristic_uuid,
callbacks);
}
void WebBluetoothImpl::readValue(
const blink::WebString& characteristic_instance_id,
blink::WebBluetoothReadValueCallbacks* callbacks) {
GetDispatcher()->readValue(characteristic_instance_id, callbacks);
}
void WebBluetoothImpl::writeValue(
const blink::WebString& characteristic_instance_id,
const blink::WebVector<uint8_t>& value,
blink::WebBluetoothWriteValueCallbacks* callbacks) {
GetDispatcher()->writeValue(characteristic_instance_id, value, callbacks);
}
void WebBluetoothImpl::startNotifications(
const blink::WebString& characteristic_instance_id,
blink::WebBluetoothGATTCharacteristic* characteristic,
blink::WebBluetoothNotificationsCallbacks* callbacks) {
GetDispatcher()->startNotifications(characteristic_instance_id,
characteristic, callbacks);
}
void WebBluetoothImpl::stopNotifications(
const blink::WebString& characteristic_instance_id,
blink::WebBluetoothGATTCharacteristic* characteristic,
blink::WebBluetoothNotificationsCallbacks* callbacks) {
GetDispatcher()->stopNotifications(characteristic_instance_id, characteristic,
callbacks);
}
void WebBluetoothImpl::characteristicObjectRemoved(
const blink::WebString& characteristic_instance_id,
blink::WebBluetoothGATTCharacteristic* characteristic) {
GetDispatcher()->characteristicObjectRemoved(characteristic_instance_id,
characteristic);
}
void WebBluetoothImpl::registerCharacteristicObject(
const blink::WebString& characteristic_instance_id,
blink::WebBluetoothGATTCharacteristic* characteristic) {
GetDispatcher()->registerCharacteristicObject(characteristic_instance_id,
characteristic);
}
BluetoothDispatcher* WebBluetoothImpl::GetDispatcher() {
return BluetoothDispatcher::GetOrCreateThreadSpecificInstance(
thread_safe_sender_.get());
}
} // namespace content