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

Side by Side Diff: chromeos/dbus/bluetooth_device_client.cc

Issue 10823301: bluetooth: Create stub manager, adapter and device. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 4 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chromeos/dbus/bluetooth_device_client.h" 5 #include "chromeos/dbus/bluetooth_device_client.h"
6 6
7 #include <map> 7 #include <map>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after
457 // List of observers interested in event notifications from us. 457 // List of observers interested in event notifications from us.
458 ObserverList<BluetoothDeviceClient::Observer> observers_; 458 ObserverList<BluetoothDeviceClient::Observer> observers_;
459 459
460 DISALLOW_COPY_AND_ASSIGN(BluetoothDeviceClientImpl); 460 DISALLOW_COPY_AND_ASSIGN(BluetoothDeviceClientImpl);
461 }; 461 };
462 462
463 // The BluetoothDeviceClient implementation used on Linux desktop, which does 463 // The BluetoothDeviceClient implementation used on Linux desktop, which does
464 // nothing. 464 // nothing.
465 class BluetoothDeviceClientStubImpl : public BluetoothDeviceClient { 465 class BluetoothDeviceClientStubImpl : public BluetoothDeviceClient {
466 public: 466 public:
467 struct Properties : public BluetoothDeviceClient::Properties {
468 explicit Properties(PropertyChangedCallback callback)
satorux1 2012/08/14 16:54:19 const PropertyChangedCallback&
keybuk 2012/08/14 17:40:32 Done.
469 : BluetoothDeviceClient::Properties(NULL, callback) {
470 }
471
472 virtual ~Properties() {
473 }
474
475 virtual void Get(dbus::PropertyBase* property,
476 dbus::PropertySet::GetCallback callback) OVERRIDE {
477 VLOG(1) << "Get " << property->name();
478 callback.Run(false);
479 }
480
481 virtual void GetAll() OVERRIDE {
482 VLOG(1) << "GetAll";
483 }
484
485 virtual void Set(dbus::PropertyBase *property,
486 dbus::PropertySet::SetCallback callback) OVERRIDE {
487 VLOG(1) << "Set " << property->name();
488 callback.Run(false);
489 }
490 };
491
492 BluetoothDeviceClientStubImpl() {
493 dbus::ObjectPath dev0("/fake/hci0/dev0");
494
495 Properties* properties = new Properties(base::Bind(
496 &BluetoothDeviceClientStubImpl::OnPropertyChanged,
497 base::Unretained(this),
498 dev0));
499 properties->address.ReplaceValue("00:11:22:33:44:55");
500 properties->name.ReplaceValue("Fake Device");
501 properties->paired.ReplaceValue(true);
502 properties->trusted.ReplaceValue(true);
503
504 properties_map_[dev0] = properties;
505 }
506
507 virtual ~BluetoothDeviceClientStubImpl() {
508 // Clean up Properties structures
bryeung 2012/08/14 13:10:30 This could be done with STLDeleteContainerPairSeco
satorux1 2012/08/14 16:54:19 You meant STLDeleteValues?
keybuk 2012/08/14 17:40:32 Done.
509 for (PropertiesMap::iterator iter = properties_map_.begin();
510 iter != properties_map_.end(); ++iter)
511 delete iter->second;
512 }
513
467 // BluetoothDeviceClient override. 514 // BluetoothDeviceClient override.
468 virtual void AddObserver(Observer* observer) OVERRIDE { 515 virtual void AddObserver(Observer* observer) OVERRIDE {
516 observers_.AddObserver(observer);
469 } 517 }
470 518
471 // BluetoothDeviceClient override. 519 // BluetoothDeviceClient override.
472 virtual void RemoveObserver(Observer* observer) OVERRIDE { 520 virtual void RemoveObserver(Observer* observer) OVERRIDE {
521 observers_.RemoveObserver(observer);
473 } 522 }
474 523
475 // BluetoothDeviceClient override. 524 // BluetoothDeviceClient override.
476 virtual Properties* GetProperties(const dbus::ObjectPath& object_path) 525 virtual Properties* GetProperties(const dbus::ObjectPath& object_path)
477 OVERRIDE { 526 OVERRIDE {
478 VLOG(1) << "GetProperties: " << object_path.value(); 527 VLOG(1) << "GetProperties: " << object_path.value();
528 PropertiesMap::iterator iter = properties_map_.find(object_path);
529 if (iter != properties_map_.end())
530 return iter->second;
479 return NULL; 531 return NULL;
480 } 532 }
481 533
482 // BluetoothDeviceClient override. 534 // BluetoothDeviceClient override.
483 virtual void DiscoverServices(const dbus::ObjectPath& object_path, 535 virtual void DiscoverServices(const dbus::ObjectPath& object_path,
484 const std::string& pattern, 536 const std::string& pattern,
485 const ServicesCallback& callback) OVERRIDE { 537 const ServicesCallback& callback) OVERRIDE {
486 VLOG(1) << "DiscoverServices: " << object_path.value() << " " << pattern; 538 VLOG(1) << "DiscoverServices: " << object_path.value() << " " << pattern;
487 539
488 ServiceMap services; 540 ServiceMap services;
(...skipping 23 matching lines...) Expand all
512 } 564 }
513 565
514 // BluetoothDeviceClient override. 566 // BluetoothDeviceClient override.
515 virtual void RemoveNode(const dbus::ObjectPath& object_path, 567 virtual void RemoveNode(const dbus::ObjectPath& object_path,
516 const dbus::ObjectPath& node_path, 568 const dbus::ObjectPath& node_path,
517 const DeviceCallback& callback) OVERRIDE { 569 const DeviceCallback& callback) OVERRIDE {
518 VLOG(1) << "RemoveNode: " << object_path.value() 570 VLOG(1) << "RemoveNode: " << object_path.value()
519 << " " << node_path.value(); 571 << " " << node_path.value();
520 callback.Run(object_path, false); 572 callback.Run(object_path, false);
521 } 573 }
574
575 private:
576 // List of observers interested in event notifications from us.
satorux1 2012/08/14 16:54:19 move this to |observers_|; below?
keybuk 2012/08/14 17:40:32 Done.
577 void OnPropertyChanged(dbus::ObjectPath object_path,
578 const std::string& property_name) {
579 FOR_EACH_OBSERVER(BluetoothDeviceClient::Observer, observers_,
580 DevicePropertyChanged(object_path, property_name));
581 }
582
583 ObserverList<Observer> observers_;
584
585 // Static properties we typedef.
586 typedef std::map<const dbus::ObjectPath, Properties *> PropertiesMap;
587 PropertiesMap properties_map_;
522 }; 588 };
523 589
524 BluetoothDeviceClient::BluetoothDeviceClient() { 590 BluetoothDeviceClient::BluetoothDeviceClient() {
525 } 591 }
526 592
527 BluetoothDeviceClient::~BluetoothDeviceClient() { 593 BluetoothDeviceClient::~BluetoothDeviceClient() {
528 } 594 }
529 595
530 BluetoothDeviceClient* BluetoothDeviceClient::Create( 596 BluetoothDeviceClient* BluetoothDeviceClient::Create(
531 DBusClientImplementationType type, 597 DBusClientImplementationType type,
532 dbus::Bus* bus, 598 dbus::Bus* bus,
533 BluetoothAdapterClient* adapter_client) { 599 BluetoothAdapterClient* adapter_client) {
534 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) 600 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION)
535 return new BluetoothDeviceClientImpl(bus, adapter_client); 601 return new BluetoothDeviceClientImpl(bus, adapter_client);
536 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); 602 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type);
537 return new BluetoothDeviceClientStubImpl(); 603 return new BluetoothDeviceClientStubImpl();
538 } 604 }
539 605
540 } // namespace chromeos 606 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698