1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef COMPONENTS_COPRESENCE_SOCKETS_TRANSPORTS_COPRESENCE_SOCKET_BLUETOOTH_H_
6 #define COMPONENTS_COPRESENCE_SOCKETS_TRANSPORTS_COPRESENCE_SOCKET_BLUETOOTH_H_
10 #include "base/macros.h"
11 #include "base/memory/ref_counted.h"
12 #include "base/memory/weak_ptr.h"
13 #include "components/copresence_sockets/public/copresence_socket.h"
14 #include "device/bluetooth/bluetooth_socket.h"
20 namespace copresence_sockets {
22 // A CopresenceSocketBluetooth is the Bluetooth implementation of a
23 // CopresenceSocket. This is currently a thin wrapper around BluetoothSocket.
24 class CopresenceSocketBluetooth : public CopresenceSocket {
26 explicit CopresenceSocketBluetooth(
27 const scoped_refptr<device::BluetoothSocket>& socket);
28 ~CopresenceSocketBluetooth() override;
30 // CopresenceSocket overrides:
31 bool Send(const scoped_refptr<net::IOBuffer>& buffer,
32 int buffer_size) override;
33 void Receive(const ReceiveCallback& callback) override;
36 void OnSendComplete(int status);
37 void OnSendError(const std::string& message);
39 void OnReceive(int size, scoped_refptr<net::IOBuffer> io_buffer);
40 void OnReceiveError(device::BluetoothSocket::ErrorReason reason,
41 const std::string& message);
43 scoped_refptr<device::BluetoothSocket> socket_;
44 ReceiveCallback receive_callback_;
48 base::WeakPtrFactory<CopresenceSocketBluetooth> weak_ptr_factory_;
50 DISALLOW_COPY_AND_ASSIGN(CopresenceSocketBluetooth);
53 } // namespace copresence_sockets
55 #endif // COMPONENTS_COPRESENCE_SOCKETS_TRANSPORTS_COPRESENCE_SOCKET_BLUETOOTH_H_