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

Side by Side Diff: content/child/bluetooth/bluetooth_dispatcher.cc

Issue 1217983004: bluetooth: browser-side implementation of writeValue. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bluetooth-origin
Patch Set: Remove comment Created 5 years, 5 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
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 "content/child/bluetooth/bluetooth_dispatcher.h" 5 #include "content/child/bluetooth/bluetooth_dispatcher.h"
6 6
7 #include "base/lazy_instance.h" 7 #include "base/lazy_instance.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/thread_task_runner_handle.h" 10 #include "base/thread_task_runner_handle.h"
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 IPC_MESSAGE_HANDLER(BluetoothMsg_GetPrimaryServiceError, 156 IPC_MESSAGE_HANDLER(BluetoothMsg_GetPrimaryServiceError,
157 OnGetPrimaryServiceError); 157 OnGetPrimaryServiceError);
158 IPC_MESSAGE_HANDLER(BluetoothMsg_GetCharacteristicSuccess, 158 IPC_MESSAGE_HANDLER(BluetoothMsg_GetCharacteristicSuccess,
159 OnGetCharacteristicSuccess); 159 OnGetCharacteristicSuccess);
160 IPC_MESSAGE_HANDLER(BluetoothMsg_GetCharacteristicError, 160 IPC_MESSAGE_HANDLER(BluetoothMsg_GetCharacteristicError,
161 OnGetCharacteristicError); 161 OnGetCharacteristicError);
162 IPC_MESSAGE_HANDLER(BluetoothMsg_ReadCharacteristicValueSuccess, 162 IPC_MESSAGE_HANDLER(BluetoothMsg_ReadCharacteristicValueSuccess,
163 OnReadValueSuccess); 163 OnReadValueSuccess);
164 IPC_MESSAGE_HANDLER(BluetoothMsg_ReadCharacteristicValueError, 164 IPC_MESSAGE_HANDLER(BluetoothMsg_ReadCharacteristicValueError,
165 OnReadValueError); 165 OnReadValueError);
166 IPC_MESSAGE_HANDLER(BluetoothMsg_WriteCharacteristicValueSuccess,
167 OnWriteValueSuccess);
168 IPC_MESSAGE_HANDLER(BluetoothMsg_WriteCharacteristicValueError,
169 OnWriteValueError);
166 IPC_MESSAGE_UNHANDLED(handled = false) 170 IPC_MESSAGE_UNHANDLED(handled = false)
167 IPC_END_MESSAGE_MAP() 171 IPC_END_MESSAGE_MAP()
168 DCHECK(handled) << "Unhandled message:" << msg.type(); 172 DCHECK(handled) << "Unhandled message:" << msg.type();
169 } 173 }
170 174
171 void BluetoothDispatcher::requestDevice( 175 void BluetoothDispatcher::requestDevice(
172 const WebRequestDeviceOptions& options, 176 const WebRequestDeviceOptions& options,
173 blink::WebBluetoothRequestDeviceCallbacks* callbacks) { 177 blink::WebBluetoothRequestDeviceCallbacks* callbacks) {
174 int request_id = pending_requests_.Add(callbacks); 178 int request_id = pending_requests_.Add(callbacks);
175 179
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 } 230 }
227 231
228 void BluetoothDispatcher::readValue( 232 void BluetoothDispatcher::readValue(
229 const blink::WebString& characteristic_instance_id, 233 const blink::WebString& characteristic_instance_id,
230 blink::WebBluetoothReadValueCallbacks* callbacks) { 234 blink::WebBluetoothReadValueCallbacks* callbacks) {
231 int request_id = pending_read_value_requests_.Add(callbacks); 235 int request_id = pending_read_value_requests_.Add(callbacks);
232 Send(new BluetoothHostMsg_ReadValue(CurrentWorkerId(), request_id, 236 Send(new BluetoothHostMsg_ReadValue(CurrentWorkerId(), request_id,
233 characteristic_instance_id.utf8())); 237 characteristic_instance_id.utf8()));
234 } 238 }
235 239
240 void BluetoothDispatcher::writeValue(
241 const blink::WebString& characteristic_instance_id,
242 const std::vector<uint8_t>& value,
243 blink::WebBluetoothWriteValueCallbacks* callbacks) {
244 int request_id = pending_write_value_requests_.Add(callbacks);
245
246 Send(new BluetoothHostMsg_WriteValue(
247 CurrentWorkerId(), request_id, characteristic_instance_id.utf8(), value));
248 }
249
236 void BluetoothDispatcher::OnWorkerRunLoopStopped() { 250 void BluetoothDispatcher::OnWorkerRunLoopStopped() {
237 delete this; 251 delete this;
238 } 252 }
239 253
240 void BluetoothDispatcher::OnRequestDeviceSuccess( 254 void BluetoothDispatcher::OnRequestDeviceSuccess(
241 int thread_id, 255 int thread_id,
242 int request_id, 256 int request_id,
243 const BluetoothDevice& device) { 257 const BluetoothDevice& device) {
244 DCHECK(pending_requests_.Lookup(request_id)) << request_id; 258 DCHECK(pending_requests_.Lookup(request_id)) << request_id;
245 259
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
397 pending_read_value_requests_.Lookup(request_id) 411 pending_read_value_requests_.Lookup(request_id)
398 ->onError(new WebBluetoothError( 412 ->onError(new WebBluetoothError(
399 // TODO(ortuno): Return more descriptive error messages. 413 // TODO(ortuno): Return more descriptive error messages.
400 // http://crbug.com/490419 414 // http://crbug.com/490419
401 WebBluetoothErrorFromBluetoothError(error_type), 415 WebBluetoothErrorFromBluetoothError(error_type),
402 WebString::fromUTF8(error_message))); 416 WebString::fromUTF8(error_message)));
403 417
404 pending_read_value_requests_.Remove(request_id); 418 pending_read_value_requests_.Remove(request_id);
405 } 419 }
406 420
421 void BluetoothDispatcher::OnWriteValueSuccess(int thread_id, int request_id) {
422 DCHECK(pending_write_value_requests_.Lookup(request_id)) << request_id;
423
424 pending_write_value_requests_.Lookup(request_id)->onSuccess();
425
426 pending_write_value_requests_.Remove(request_id);
427 }
428
429 void BluetoothDispatcher::OnWriteValueError(int thread_id,
430 int request_id,
431 BluetoothError error_type,
432 const std::string& error_message) {
433 DCHECK(pending_write_value_requests_.Lookup(request_id)) << request_id;
434
435 pending_write_value_requests_.Lookup(request_id)
436 ->onError(
437 new WebBluetoothError(WebBluetoothErrorFromBluetoothError(error_type),
438 WebString::fromUTF8(error_message)));
439
440 pending_write_value_requests_.Remove(request_id);
441 }
442
407 } // namespace content 443 } // namespace content
OLDNEW
« no previous file with comments | « content/child/bluetooth/bluetooth_dispatcher.h ('k') | content/child/bluetooth/web_bluetooth_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698