| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "extensions/browser/api/bluetooth_socket/bluetooth_socket_api.h" | 5 #include "extensions/browser/api/bluetooth_socket/bluetooth_socket_api.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "content/public/browser/browser_context.h" | 10 #include "content/public/browser/browser_context.h" |
| (...skipping 18 matching lines...) Expand all Loading... |
| 29 namespace api { | 29 namespace api { |
| 30 | 30 |
| 31 namespace { | 31 namespace { |
| 32 | 32 |
| 33 const char kDeviceNotFoundError[] = "Device not found"; | 33 const char kDeviceNotFoundError[] = "Device not found"; |
| 34 const char kInvalidPsmError[] = "Invalid PSM"; | 34 const char kInvalidPsmError[] = "Invalid PSM"; |
| 35 const char kInvalidUuidError[] = "Invalid UUID"; | 35 const char kInvalidUuidError[] = "Invalid UUID"; |
| 36 const char kPermissionDeniedError[] = "Permission denied"; | 36 const char kPermissionDeniedError[] = "Permission denied"; |
| 37 const char kSocketNotFoundError[] = "Socket not found"; | 37 const char kSocketNotFoundError[] = "Socket not found"; |
| 38 | 38 |
| 39 linked_ptr<SocketInfo> CreateSocketInfo(int socket_id, | 39 SocketInfo CreateSocketInfo(int socket_id, BluetoothApiSocket* socket) { |
| 40 BluetoothApiSocket* socket) { | |
| 41 DCHECK_CURRENTLY_ON(BluetoothApiSocket::kThreadId); | 40 DCHECK_CURRENTLY_ON(BluetoothApiSocket::kThreadId); |
| 42 linked_ptr<SocketInfo> socket_info(new SocketInfo()); | 41 SocketInfo socket_info; |
| 43 // This represents what we know about the socket, and does not call through | 42 // This represents what we know about the socket, and does not call through |
| 44 // to the system. | 43 // to the system. |
| 45 socket_info->socket_id = socket_id; | 44 socket_info.socket_id = socket_id; |
| 46 if (socket->name()) { | 45 if (socket->name()) { |
| 47 socket_info->name.reset(new std::string(*socket->name())); | 46 socket_info.name.reset(new std::string(*socket->name())); |
| 48 } | 47 } |
| 49 socket_info->persistent = socket->persistent(); | 48 socket_info.persistent = socket->persistent(); |
| 50 if (socket->buffer_size() > 0) { | 49 if (socket->buffer_size() > 0) { |
| 51 socket_info->buffer_size.reset(new int(socket->buffer_size())); | 50 socket_info.buffer_size.reset(new int(socket->buffer_size())); |
| 52 } | 51 } |
| 53 socket_info->paused = socket->paused(); | 52 socket_info.paused = socket->paused(); |
| 54 socket_info->connected = socket->IsConnected(); | 53 socket_info.connected = socket->IsConnected(); |
| 55 | 54 |
| 56 if (socket->IsConnected()) | 55 if (socket->IsConnected()) |
| 57 socket_info->address.reset(new std::string(socket->device_address())); | 56 socket_info.address.reset(new std::string(socket->device_address())); |
| 58 socket_info->uuid.reset(new std::string(socket->uuid().canonical_value())); | 57 socket_info.uuid.reset(new std::string(socket->uuid().canonical_value())); |
| 59 | 58 |
| 60 return socket_info; | 59 return socket_info; |
| 61 } | 60 } |
| 62 | 61 |
| 63 void SetSocketProperties(BluetoothApiSocket* socket, | 62 void SetSocketProperties(BluetoothApiSocket* socket, |
| 64 SocketProperties* properties) { | 63 SocketProperties* properties) { |
| 65 if (properties->name.get()) { | 64 if (properties->name.get()) { |
| 66 socket->set_name(*properties->name.get()); | 65 socket->set_name(*properties->name.get()); |
| 67 } | 66 } |
| 68 if (properties->persistent.get()) { | 67 if (properties->persistent.get()) { |
| (...skipping 569 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 638 return true; | 637 return true; |
| 639 } | 638 } |
| 640 | 639 |
| 641 void BluetoothSocketGetInfoFunction::Work() { | 640 void BluetoothSocketGetInfoFunction::Work() { |
| 642 BluetoothApiSocket* socket = GetSocket(params_->socket_id); | 641 BluetoothApiSocket* socket = GetSocket(params_->socket_id); |
| 643 if (!socket) { | 642 if (!socket) { |
| 644 error_ = kSocketNotFoundError; | 643 error_ = kSocketNotFoundError; |
| 645 return; | 644 return; |
| 646 } | 645 } |
| 647 | 646 |
| 648 linked_ptr<bluetooth_socket::SocketInfo> socket_info = | 647 results_ = bluetooth_socket::GetInfo::Results::Create( |
| 649 CreateSocketInfo(params_->socket_id, socket); | 648 CreateSocketInfo(params_->socket_id, socket)); |
| 650 results_ = bluetooth_socket::GetInfo::Results::Create(*socket_info); | |
| 651 } | 649 } |
| 652 | 650 |
| 653 BluetoothSocketGetSocketsFunction::BluetoothSocketGetSocketsFunction() {} | 651 BluetoothSocketGetSocketsFunction::BluetoothSocketGetSocketsFunction() {} |
| 654 | 652 |
| 655 BluetoothSocketGetSocketsFunction::~BluetoothSocketGetSocketsFunction() {} | 653 BluetoothSocketGetSocketsFunction::~BluetoothSocketGetSocketsFunction() {} |
| 656 | 654 |
| 657 bool BluetoothSocketGetSocketsFunction::Prepare() { return true; } | 655 bool BluetoothSocketGetSocketsFunction::Prepare() { return true; } |
| 658 | 656 |
| 659 void BluetoothSocketGetSocketsFunction::Work() { | 657 void BluetoothSocketGetSocketsFunction::Work() { |
| 660 std::vector<linked_ptr<bluetooth_socket::SocketInfo> > socket_infos; | 658 std::vector<bluetooth_socket::SocketInfo> socket_infos; |
| 661 base::hash_set<int>* resource_ids = GetSocketIds(); | 659 base::hash_set<int>* resource_ids = GetSocketIds(); |
| 662 if (resource_ids != NULL) { | 660 if (resource_ids) { |
| 663 for (base::hash_set<int>::iterator it = resource_ids->begin(); | 661 for (int socket_id : *resource_ids) { |
| 664 it != resource_ids->end(); | |
| 665 ++it) { | |
| 666 int socket_id = *it; | |
| 667 BluetoothApiSocket* socket = GetSocket(socket_id); | 662 BluetoothApiSocket* socket = GetSocket(socket_id); |
| 668 if (socket) { | 663 if (socket) { |
| 669 socket_infos.push_back(CreateSocketInfo(socket_id, socket)); | 664 socket_infos.push_back(CreateSocketInfo(socket_id, socket)); |
| 670 } | 665 } |
| 671 } | 666 } |
| 672 } | 667 } |
| 673 results_ = bluetooth_socket::GetSockets::Results::Create(socket_infos); | 668 results_ = bluetooth_socket::GetSockets::Results::Create(socket_infos); |
| 674 } | 669 } |
| 675 | 670 |
| 676 } // namespace api | 671 } // namespace api |
| 677 } // namespace extensions | 672 } // namespace extensions |
| OLD | NEW |