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

Unified 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: address review comments 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chromeos/dbus/bluetooth_device_client.h ('k') | chromeos/dbus/bluetooth_input_client.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chromeos/dbus/bluetooth_device_client.cc
diff --git a/chromeos/dbus/bluetooth_device_client.cc b/chromeos/dbus/bluetooth_device_client.cc
index 264de0d1f181e5e3cf76eb1cad7a6cbe51cd9307..10bda3fd6ab9c8d7dd60f86458d02ac5fbbbfb2a 100644
--- a/chromeos/dbus/bluetooth_device_client.cc
+++ b/chromeos/dbus/bluetooth_device_client.cc
@@ -20,8 +20,9 @@
namespace chromeos {
-BluetoothDeviceClient::Properties::Properties(dbus::ObjectProxy* object_proxy,
- PropertyChangedCallback callback)
+BluetoothDeviceClient::Properties::Properties(
+ dbus::ObjectProxy* object_proxy,
+ const PropertyChangedCallback& callback)
: BluetoothPropertySet(object_proxy,
bluetooth_device::kBluetoothDeviceInterface,
callback) {
@@ -464,18 +465,68 @@ class BluetoothDeviceClientImpl: public BluetoothDeviceClient,
// nothing.
class BluetoothDeviceClientStubImpl : public BluetoothDeviceClient {
public:
+ struct Properties : public BluetoothDeviceClient::Properties {
+ explicit Properties(const PropertyChangedCallback& callback)
+ : BluetoothDeviceClient::Properties(NULL, callback) {
+ }
+
+ virtual ~Properties() {
+ }
+
+ virtual void Get(dbus::PropertyBase* property,
+ dbus::PropertySet::GetCallback callback) OVERRIDE {
+ VLOG(1) << "Get " << property->name();
+ callback.Run(false);
+ }
+
+ virtual void GetAll() OVERRIDE {
+ VLOG(1) << "GetAll";
+ }
+
+ virtual void Set(dbus::PropertyBase *property,
+ dbus::PropertySet::SetCallback callback) OVERRIDE {
+ VLOG(1) << "Set " << property->name();
+ callback.Run(false);
+ }
+ };
+
+ BluetoothDeviceClientStubImpl() {
+ dbus::ObjectPath dev0("/fake/hci0/dev0");
+
+ Properties* properties = new Properties(base::Bind(
+ &BluetoothDeviceClientStubImpl::OnPropertyChanged,
+ base::Unretained(this),
+ dev0));
+ properties->address.ReplaceValue("00:11:22:33:44:55");
+ properties->name.ReplaceValue("Fake Device");
+ properties->paired.ReplaceValue(true);
+ properties->trusted.ReplaceValue(true);
+
+ properties_map_[dev0] = properties;
+ }
+
+ virtual ~BluetoothDeviceClientStubImpl() {
+ // Clean up Properties structures
+ STLDeleteValues(&properties_map_);
+ }
+
// BluetoothDeviceClient override.
virtual void AddObserver(Observer* observer) OVERRIDE {
+ observers_.AddObserver(observer);
}
// BluetoothDeviceClient override.
virtual void RemoveObserver(Observer* observer) OVERRIDE {
+ observers_.RemoveObserver(observer);
}
// BluetoothDeviceClient override.
virtual Properties* GetProperties(const dbus::ObjectPath& object_path)
OVERRIDE {
VLOG(1) << "GetProperties: " << object_path.value();
+ PropertiesMap::iterator iter = properties_map_.find(object_path);
+ if (iter != properties_map_.end())
+ return iter->second;
return NULL;
}
@@ -519,6 +570,20 @@ class BluetoothDeviceClientStubImpl : public BluetoothDeviceClient {
<< " " << node_path.value();
callback.Run(object_path, false);
}
+
+ private:
+ void OnPropertyChanged(dbus::ObjectPath object_path,
+ const std::string& property_name) {
+ FOR_EACH_OBSERVER(BluetoothDeviceClient::Observer, observers_,
+ DevicePropertyChanged(object_path, property_name));
+ }
+
+ // List of observers interested in event notifications from us.
+ ObserverList<Observer> observers_;
+
+ // Static properties we typedef.
+ typedef std::map<const dbus::ObjectPath, Properties *> PropertiesMap;
+ PropertiesMap properties_map_;
};
BluetoothDeviceClient::BluetoothDeviceClient() {
« no previous file with comments | « chromeos/dbus/bluetooth_device_client.h ('k') | chromeos/dbus/bluetooth_input_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698