OLD | NEW |
---|---|
(Empty) | |
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. | |
4 | |
5 #include "components/copresence_sockets/mediums/bluetooth/copresence_socket_blue tooth.h" | |
6 | |
7 #include "base/bind.h" | |
8 #include "device/bluetooth/bluetooth_socket.h" | |
9 #include "net/base/io_buffer.h" | |
10 | |
11 namespace { | |
12 | |
13 // TODO(rkc): This number is totaly arbitrary. Figure out what this should be. | |
14 const int kMaxReceiveBytes = 4096; | |
15 | |
16 } // namespace | |
17 | |
18 namespace copresence_sockets { | |
19 | |
20 CopresenceSocketBluetooth::CopresenceSocketBluetooth( | |
21 scoped_refptr<device::BluetoothSocket> socket) | |
22 : socket_(socket) { | |
23 } | |
24 | |
25 CopresenceSocketBluetooth::~CopresenceSocketBluetooth() { | |
26 } | |
27 | |
28 bool CopresenceSocketBluetooth::Send(const std::string& data) { | |
29 scoped_refptr<net::StringIOBuffer> buffer = new net::StringIOBuffer(data); | |
30 socket_->Send( | |
31 buffer, | |
32 buffer->size(), | |
33 base::Bind(&CopresenceSocketBluetooth::OnSendComplete, AsWeakPtr()), | |
34 base::Bind(&CopresenceSocketBluetooth::OnSendError, AsWeakPtr())); | |
35 return true; | |
36 } | |
37 | |
38 void CopresenceSocketBluetooth::Receive(ReceiveCallback callback) { | |
39 receive_callback_ = callback; | |
40 socket_->Receive( | |
41 4096, | |
42 base::Bind(&CopresenceSocketBluetooth::OnReceive, AsWeakPtr()), | |
43 base::Bind(&CopresenceSocketBluetooth::OnReceiveError, AsWeakPtr())); | |
44 } | |
45 | |
46 void CopresenceSocketBluetooth::OnSendComplete(int status) { | |
47 } | |
48 void CopresenceSocketBluetooth::OnSendError(const std::string& message) { | |
Cait (Slow)
2014/09/30 17:56:01
nit: blank line in between function definitions.
rkc
2014/10/01 19:08:23
Done.
| |
49 LOG(ERROR) << "Bluetooth send error: " << message; | |
50 } | |
51 | |
52 void CopresenceSocketBluetooth::OnReceive( | |
53 int size, | |
54 scoped_refptr<net::IOBuffer> io_buffer) { | |
55 // Dispatch the data to the callback and go back to listening for more data. | |
56 receive_callback_.Run(std::string(io_buffer->data(), size)); | |
57 socket_->Receive( | |
58 kMaxReceiveBytes, | |
59 base::Bind(&CopresenceSocketBluetooth::OnReceive, AsWeakPtr()), | |
60 base::Bind(&CopresenceSocketBluetooth::OnReceiveError, AsWeakPtr())); | |
61 } | |
62 | |
63 void CopresenceSocketBluetooth::OnReceiveError( | |
64 device::BluetoothSocket::ErrorReason reason, | |
Cait (Slow)
2014/09/30 17:56:01
Looks like the |reason| param is not used?
rkc
2014/10/01 19:08:23
Done.
| |
65 const std::string& message) { | |
66 LOG(ERROR) << "Bluetooth receive error: " << message; | |
67 } | |
68 | |
69 } // namespace copresence_sockets | |
OLD | NEW |