Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(619)

Side by Side Diff: components/copresence_endpoints/transports/bluetooth/copresence_socket_bluetooth.cc

Issue 895783002: Remove the Copresence Endpoints API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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_endpoints/transports/bluetooth/copresence_socket _bluetooth.h"
6
7 #include "base/bind.h"
8 #include "base/message_loop/message_loop.h"
9 #include "base/strings/string_piece.h"
10 #include "device/bluetooth/bluetooth_socket.h"
11 #include "net/base/io_buffer.h"
12
13 namespace {
14
15 // TODO(rkc): This number is totally arbitrary. Figure out what this should be.
16 const int kMaxReceiveBytes = 4096;
17
18 } // namespace
19
20 namespace copresence_endpoints {
21
22 CopresenceSocketBluetooth::CopresenceSocketBluetooth(
23 const scoped_refptr<device::BluetoothSocket>& socket)
24 : socket_(socket), receiving_(false), weak_ptr_factory_(this) {
25 }
26
27 CopresenceSocketBluetooth::~CopresenceSocketBluetooth() {
28 receiving_ = false;
29 }
30
31 bool CopresenceSocketBluetooth::Send(const scoped_refptr<net::IOBuffer>& buffer,
32 int buffer_size) {
33 VLOG(3) << "Starting sending of data with size = " << buffer_size;
34 socket_->Send(buffer, buffer_size,
35 base::Bind(&CopresenceSocketBluetooth::OnSendComplete,
36 weak_ptr_factory_.GetWeakPtr()),
37 base::Bind(&CopresenceSocketBluetooth::OnSendError,
38 weak_ptr_factory_.GetWeakPtr()));
39 return true;
40 }
41
42 void CopresenceSocketBluetooth::Receive(const ReceiveCallback& callback) {
43 VLOG(3) << "Starting Receive.";
44 receiving_ = true;
45 receive_callback_ = callback;
46 socket_->Receive(kMaxReceiveBytes,
47 base::Bind(&CopresenceSocketBluetooth::OnReceive,
48 weak_ptr_factory_.GetWeakPtr()),
49 base::Bind(&CopresenceSocketBluetooth::OnReceiveError,
50 weak_ptr_factory_.GetWeakPtr()));
51 }
52
53 void CopresenceSocketBluetooth::OnSendComplete(int status) {
54 VLOG(3) << "Send Completed. Status = " << status;
55 }
56
57 void CopresenceSocketBluetooth::OnSendError(const std::string& message) {
58 LOG(ERROR) << "Bluetooth send error: " << message;
59 }
60
61 void CopresenceSocketBluetooth::OnReceive(
62 int size,
63 scoped_refptr<net::IOBuffer> io_buffer) {
64 VLOG(3) << "Data received with size = " << size
65 << " and receiving_ = " << receiving_;
66 // Dispatch the data to the callback and go back to listening for more data.
67 receive_callback_.Run(io_buffer, size);
68
69 // We cancelled receiving due to an error. Don't post more receive tasks.
70 if (!receiving_)
71 return;
72
73 // Post a task to delay the read until the socket is available, as
74 // calling Receive again at this point would error with ERR_IO_PENDING.
75 base::MessageLoop::current()->PostTask(
76 FROM_HERE,
77 base::Bind(&device::BluetoothSocket::Receive, socket_, kMaxReceiveBytes,
78 base::Bind(&CopresenceSocketBluetooth::OnReceive,
79 weak_ptr_factory_.GetWeakPtr()),
80 base::Bind(&CopresenceSocketBluetooth::OnReceiveError,
81 weak_ptr_factory_.GetWeakPtr())));
82 }
83
84 void CopresenceSocketBluetooth::OnReceiveError(
85 device::BluetoothSocket::ErrorReason reason,
86 const std::string& message) {
87 LOG(ERROR) << "Bluetooth receive error: " << message;
88 if (reason == device::BluetoothSocket::kIOPending)
89 return;
90
91 receiving_ = false;
92 }
93
94 } // namespace copresence_endpoints
OLDNEW
« no previous file with comments | « components/copresence_endpoints/transports/bluetooth/copresence_socket_bluetooth.h ('k') | extensions/browser/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698