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

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

Issue 14508007: dbus: Add FakeOldBluetooth{Adapter,Device,Manager} (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove unnecessary lines. Created 7 years, 7 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_adapter_client.h" 5 #include "chromeos/dbus/bluetooth_adapter_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"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "base/stl_util.h" 13 #include "base/stl_util.h"
14 #include "chromeos/dbus/bluetooth_device_client.h" 14 #include "chromeos/dbus/bluetooth_device_client.h"
15 #include "chromeos/dbus/bluetooth_manager_client.h" 15 #include "chromeos/dbus/bluetooth_manager_client.h"
16 #include "chromeos/dbus/bluetooth_property.h" 16 #include "chromeos/dbus/bluetooth_property.h"
17 #include "chromeos/dbus/fake_old_bluetooth_adapter_client.h"
17 #include "dbus/bus.h" 18 #include "dbus/bus.h"
18 #include "dbus/message.h" 19 #include "dbus/message.h"
19 #include "dbus/object_path.h" 20 #include "dbus/object_path.h"
20 #include "dbus/object_proxy.h" 21 #include "dbus/object_proxy.h"
21 #include "third_party/cros_system_api/dbus/service_constants.h" 22 #include "third_party/cros_system_api/dbus/service_constants.h"
22 23
23 namespace { 24 namespace {
24 25
25 // The |CreatePairedDevice| DBus call needs a longer timeout than the default 26 // The |CreatePairedDevice| DBus call needs a longer timeout than the default
26 // in order to allow BlueZ to timeout this call first. See crosbug.com/37387. 27 // in order to allow BlueZ to timeout this call first. See crosbug.com/37387.
(...skipping 701 matching lines...) Expand 10 before | Expand all | Expand 10 after
728 729
729 // Weak pointer factory for generating 'this' pointers that might live longer 730 // Weak pointer factory for generating 'this' pointers that might live longer
730 // than we do. 731 // than we do.
731 // Note: This should remain the last member so it'll be destroyed and 732 // Note: This should remain the last member so it'll be destroyed and
732 // invalidate its weak pointers before any other members are destroyed. 733 // invalidate its weak pointers before any other members are destroyed.
733 base::WeakPtrFactory<BluetoothAdapterClientImpl> weak_ptr_factory_; 734 base::WeakPtrFactory<BluetoothAdapterClientImpl> weak_ptr_factory_;
734 735
735 DISALLOW_COPY_AND_ASSIGN(BluetoothAdapterClientImpl); 736 DISALLOW_COPY_AND_ASSIGN(BluetoothAdapterClientImpl);
736 }; 737 };
737 738
738 // The BluetoothAdapterClient implementation used on Linux desktop, which does
739 // nothing.
740 class BluetoothAdapterClientStubImpl : public BluetoothAdapterClient {
741 public:
742 struct Properties : public BluetoothAdapterClient::Properties {
743 explicit Properties(const PropertyChangedCallback& callback)
744 : BluetoothAdapterClient::Properties(NULL, callback) {
745 }
746
747 virtual ~Properties() {
748 }
749
750 virtual void Get(dbus::PropertyBase* property,
751 dbus::PropertySet::GetCallback callback) OVERRIDE {
752 VLOG(1) << "Get " << property->name();
753 callback.Run(false);
754 }
755
756 virtual void GetAll() OVERRIDE {
757 VLOG(1) << "GetAll";
758 }
759
760 virtual void Set(dbus::PropertyBase *property,
761 dbus::PropertySet::SetCallback callback) OVERRIDE {
762 VLOG(1) << "Set " << property->name();
763 if (property->name() == "Powered") {
764 property->ReplaceValueWithSetValue();
765 callback.Run(true);
766 } else {
767 callback.Run(false);
768 }
769 }
770 };
771
772 BluetoothAdapterClientStubImpl() {
773 properties_.reset(new Properties(base::Bind(
774 &BluetoothAdapterClientStubImpl::OnPropertyChanged,
775 base::Unretained(this))));
776
777 properties_->address.ReplaceValue("hci0");
778 properties_->name.ReplaceValue("Fake Adapter");
779 properties_->pairable.ReplaceValue(true);
780
781 std::vector<dbus::ObjectPath> devices;
782 devices.push_back(dbus::ObjectPath("/fake/hci0/dev0"));
783 properties_->devices.ReplaceValue(devices);
784 }
785
786 // BluetoothAdapterClient override.
787 virtual void AddObserver(Observer* observer) OVERRIDE {
788 observers_.AddObserver(observer);
789 }
790
791 // BluetoothAdapterClient override.
792 virtual void RemoveObserver(Observer* observer) OVERRIDE {
793 observers_.RemoveObserver(observer);
794 }
795
796 // BluetoothAdapterClient override.
797 virtual Properties* GetProperties(const dbus::ObjectPath& object_path)
798 OVERRIDE {
799 VLOG(1) << "GetProperties: " << object_path.value();
800 if (object_path.value() == "/fake/hci0")
801 return properties_.get();
802 else
803 return NULL;
804 }
805
806 // BluetoothAdapterClient override.
807 virtual void RequestSession(const dbus::ObjectPath& object_path,
808 const AdapterCallback& callback) OVERRIDE {
809 VLOG(1) << "RequestSession: " << object_path.value();
810 callback.Run(object_path, false);
811 }
812
813 // BluetoothAdapterClient override.
814 virtual void ReleaseSession(const dbus::ObjectPath& object_path,
815 const AdapterCallback& callback) OVERRIDE {
816 VLOG(1) << "ReleaseSession: " << object_path.value();
817 callback.Run(object_path, false);
818 }
819
820 // BluetoothAdapterClient override.
821 virtual void StartDiscovery(const dbus::ObjectPath& object_path,
822 const AdapterCallback& callback) OVERRIDE {
823 VLOG(1) << "StartDiscovery: " << object_path.value();
824 callback.Run(object_path, false);
825 }
826
827 // BluetoothAdapterClient override.
828 virtual void StopDiscovery(const dbus::ObjectPath& object_path,
829 const AdapterCallback& callback) OVERRIDE {
830 VLOG(1) << "StopDiscovery: " << object_path.value();
831 callback.Run(object_path, false);
832 }
833
834 // BluetoothAdapterClient override.
835 virtual void FindDevice(const dbus::ObjectPath& object_path,
836 const std::string& address,
837 const DeviceCallback& callback) OVERRIDE {
838 VLOG(1) << "FindDevice: " << object_path.value() << " " << address;
839 callback.Run(dbus::ObjectPath(), false);
840 }
841
842 // BluetoothAdapterClient override.
843 virtual void CreateDevice(const dbus::ObjectPath& object_path,
844 const std::string& address,
845 const CreateDeviceCallback& callback,
846 const CreateDeviceErrorCallback& error_callback)
847 OVERRIDE {
848 VLOG(1) << "CreateDevice: " << object_path.value() << " " << address;
849 error_callback.Run("", "");
850 }
851
852 // BluetoothAdapterClient override.
853 virtual void CreatePairedDevice(
854 const dbus::ObjectPath& object_path, const std::string& address,
855 const dbus::ObjectPath& agent_path, const std::string& capability,
856 const CreateDeviceCallback& callback,
857 const CreateDeviceErrorCallback& error_callback) OVERRIDE {
858 VLOG(1) << "CreatePairedDevice: " << object_path.value() << " " << address
859 << " " << agent_path.value() << " " << capability;
860 error_callback.Run("", "");
861 }
862
863 // BluetoothAdapterClient override.
864 virtual void CancelDeviceCreation(const dbus::ObjectPath& object_path,
865 const std::string& address,
866 const AdapterCallback& callback) OVERRIDE {
867 VLOG(1) << "CancelDeviceCreation: " << object_path.value()
868 << " " << address;
869 callback.Run(object_path, false);
870 }
871
872 // BluetoothAdapterClient override.
873 virtual void RemoveDevice(const dbus::ObjectPath& object_path,
874 const dbus::ObjectPath& device_path,
875 const AdapterCallback& callback) OVERRIDE {
876 VLOG(1) << "RemoveDevice: " << object_path.value()
877 << " " << device_path.value();
878 callback.Run(object_path, false);
879 }
880
881 // BluetoothAdapterClient override.
882 virtual void RegisterAgent(const dbus::ObjectPath& object_path,
883 const dbus::ObjectPath& agent_path,
884 const std::string& capability,
885 const AdapterCallback& callback) OVERRIDE {
886 VLOG(1) << "RegisterAgent: " << object_path.value()
887 << " " << agent_path.value();
888 callback.Run(object_path, false);
889 }
890
891 // BluetoothAdapterClient override.
892 virtual void UnregisterAgent(const dbus::ObjectPath& object_path,
893 const dbus::ObjectPath& agent_path,
894 const AdapterCallback& callback) OVERRIDE {
895 VLOG(1) << "UnregisterAgent: " << object_path.value()
896 << " " << agent_path.value();
897 callback.Run(object_path, false);
898 }
899
900 private:
901 void OnPropertyChanged(const std::string& property_name) {
902 FOR_EACH_OBSERVER(BluetoothAdapterClient::Observer, observers_,
903 AdapterPropertyChanged(dbus::ObjectPath("/fake/hci0"),
904 property_name));
905 }
906
907 // List of observers interested in event notifications from us.
908 ObserverList<Observer> observers_;
909
910 // Static properties we return.
911 scoped_ptr<Properties> properties_;
912 };
913
914 BluetoothAdapterClient::BluetoothAdapterClient() { 739 BluetoothAdapterClient::BluetoothAdapterClient() {
915 } 740 }
916 741
917 BluetoothAdapterClient::~BluetoothAdapterClient() { 742 BluetoothAdapterClient::~BluetoothAdapterClient() {
918 } 743 }
919 744
920 BluetoothAdapterClient* BluetoothAdapterClient::Create( 745 BluetoothAdapterClient* BluetoothAdapterClient::Create(
921 DBusClientImplementationType type, 746 DBusClientImplementationType type,
922 dbus::Bus* bus, 747 dbus::Bus* bus,
923 BluetoothManagerClient* manager_client) { 748 BluetoothManagerClient* manager_client) {
924 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) 749 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION)
925 return new BluetoothAdapterClientImpl(bus, manager_client); 750 return new BluetoothAdapterClientImpl(bus, manager_client);
926 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); 751 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type);
927 return new BluetoothAdapterClientStubImpl(); 752 return new FakeOldBluetoothAdapterClient();
928 } 753 }
929 754
930 } // namespace chromeos 755 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698