Chromium Code Reviews| 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 |