diff options
author | Alex Vakulenko <avakulenko@google.com> | 2015-12-10 10:01:36 -0800 |
---|---|---|
committer | Alex Vakulenko <avakulenko@google.com> | 2015-12-10 12:28:28 -0800 |
commit | 14b3e6e052de2e706cfa6f011c5db83fb6ca6e65 (patch) | |
tree | 38cb77f038a3ff400bab5ed84f457bfe2524dc79 | |
parent | 3bd3ececdd8ab45b6b2e81c8fbbbe60c850c2a2c (diff) | |
download | weaved-14b3e6e052de2e706cfa6f011c5db83fb6ca6e65.tar.gz |
Remove deprecated libweave APIsbrillo-m8-releasebrillo-m8-dev
With libweave old (commanddef/state) APIs officially deprecated, removed
their usage from weaved. In places when weaved loads legacy command/state
definitions for vendor daemons, this couldn't be done yet, so the
deprecated API warnings were temporary disabled in the make file.
Also removed D-Bus methods/properties to work with the legacy state
snapshot and instead exposed Components/Traits properties out of the daemon.
BUG: 25917706
Change-Id: I328aff526f284dc69560a7bd7907ad838c0365e2
-rw-r--r-- | Android.mk | 4 | ||||
-rw-r--r-- | buffet/dbus_bindings/com.android.Weave.Manager.dbus-xml | 13 | ||||
-rw-r--r-- | buffet/dbus_command_dispatcher.cc | 2 | ||||
-rw-r--r-- | buffet/manager.cc | 30 | ||||
-rw-r--r-- | buffet/manager.h | 4 |
5 files changed, 32 insertions, 21 deletions
@@ -63,7 +63,9 @@ include $(CLEAR_VARS) LOCAL_MODULE := buffet-common LOCAL_CPP_EXTENSION := $(buffetCommonCppExtension) LOCAL_CFLAGS := $(buffetCommonCFlags) -LOCAL_CPPFLAGS := $(buffetCommonCppFlags) +# TODO(avakulenko): Remove -Wno-deprecated-declarations when legacy libweave +# APIs are removed (see: b/25917708). +LOCAL_CPPFLAGS := $(buffetCommonCppFlags) -Wno-deprecated-declarations LOCAL_C_INCLUDES := $(buffetCommonCIncludes) LOCAL_SHARED_LIBRARIES := $(buffetSharedLibraries) LOCAL_STATIC_LIBRARIES := diff --git a/buffet/dbus_bindings/com.android.Weave.Manager.dbus-xml b/buffet/dbus_bindings/com.android.Weave.Manager.dbus-xml index ad26785..ecbb511 100644 --- a/buffet/dbus_bindings/com.android.Weave.Manager.dbus-xml +++ b/buffet/dbus_bindings/com.android.Weave.Manager.dbus-xml @@ -23,10 +23,6 @@ <arg name="property_set" type="a{sv}" direction="in"/> <annotation name="org.chromium.DBus.Method.Kind" value="async"/> </method> - <method name="GetState"> - <arg name="device_info" type="s" direction="out"/> - <annotation name="org.chromium.DBus.Method.Kind" value="normal"/> - </method> <method name="AddCommand"> <arg name="json_command" type="s" direction="in"/> <arg name="id" type="s" direction="out"/> @@ -59,9 +55,14 @@ GCD ID if the device is registered or empty otherwise. </tp:docstring> </property> - <property name="State" type="s" access="read"> + <property name="Components" type="s" access="read"> + <tp:docstring> + JSON with device component tree. + </tp:docstring> + </property> + <property name="Traits" type="s" access="read"> <tp:docstring> - JSON with state of the devices. + JSON with device trait definitions. </tp:docstring> </property> <property name="OemName" type="s" access="read"> diff --git a/buffet/dbus_command_dispatcher.cc b/buffet/dbus_command_dispatcher.cc index 2fc39b3..d23d071 100644 --- a/buffet/dbus_command_dispatcher.cc +++ b/buffet/dbus_command_dispatcher.cc @@ -30,7 +30,7 @@ DBusCommandDispacher::DBusCommandDispacher( const base::WeakPtr<ExportedObjectManager>& object_manager, weave::Device* device) : object_manager_{object_manager} { - device->AddCommandHandler("", + device->AddCommandHandler("", "", base::Bind(&DBusCommandDispacher::OnCommandAdded, weak_ptr_factory_.GetWeakPtr())); } diff --git a/buffet/manager.cc b/buffet/manager.cc index 85a9024..4cfa902 100644 --- a/buffet/manager.cc +++ b/buffet/manager.cc @@ -236,8 +236,15 @@ void Manager::CreateDevice() { command_dispatcher_.reset( new DBusCommandDispacher{dbus_object_.GetObjectManager(), device_.get()}); + device_->AddTraitDefsChangedCallback( + base::Bind(&Manager::OnTraitDefsChanged, + weak_ptr_factory_.GetWeakPtr())); device_->AddStateChangedCallback( - base::Bind(&Manager::OnStateChanged, weak_ptr_factory_.GetWeakPtr())); + base::Bind(&Manager::OnComponentTreeChanged, + weak_ptr_factory_.GetWeakPtr())); + device_->AddComponentTreeChangedCallback( + base::Bind(&Manager::OnComponentTreeChanged, + weak_ptr_factory_.GetWeakPtr())); device_->AddGcdStateChangedCallback( base::Bind(&Manager::OnGcdStateChanged, weak_ptr_factory_.GetWeakPtr())); @@ -315,13 +322,6 @@ void Manager::UpdateState(DBusMethodResponsePtr<> response, response->Return(); } -bool Manager::GetState(brillo::ErrorPtr* error, std::string* state) { - const base::DictionaryValue& json = device_->GetState(); - base::JSONWriter::WriteWithOptions( - json, base::JSONWriter::OPTIONS_PRETTY_PRINT, state); - return true; -} - void Manager::AddCommand(DBusMethodResponsePtr<std::string> response, const std::string& json_command) { std::string error_message; @@ -352,12 +352,20 @@ std::string Manager::TestMethod(const std::string& message) { return message; } -void Manager::OnStateChanged() { - const base::DictionaryValue& state = device_->GetState(); +void Manager::OnTraitDefsChanged() { + const base::DictionaryValue& state = device_->GetTraits(); + std::string json; + base::JSONWriter::WriteWithOptions( + state, base::JSONWriter::OPTIONS_PRETTY_PRINT, &json); + dbus_adaptor_.SetTraits(json); +} + +void Manager::OnComponentTreeChanged() { + const base::DictionaryValue& state = device_->GetComponents(); std::string json; base::JSONWriter::WriteWithOptions( state, base::JSONWriter::OPTIONS_PRETTY_PRINT, &json); - dbus_adaptor_.SetState(json); + dbus_adaptor_.SetComponents(json); } void Manager::OnGcdStateChanged(weave::GcdState state) { diff --git a/buffet/manager.h b/buffet/manager.h index 1dea711..9522340 100644 --- a/buffet/manager.h +++ b/buffet/manager.h @@ -93,7 +93,6 @@ class Manager final : public com::android::Weave::ManagerInterface { void UpdateState(DBusMethodResponsePtr<> response, const std::string& component, const brillo::VariantDictionary& property_set) override; - bool GetState(brillo::ErrorPtr* error, std::string* state) override; void AddCommand(DBusMethodResponsePtr<std::string> response, const std::string& json_command) override; std::string TestMethod(const std::string& message) override; @@ -101,7 +100,8 @@ class Manager final : public com::android::Weave::ManagerInterface { void StartPrivet(const Options& options, brillo::dbus_utils::AsyncEventSequencer* sequencer); - void OnStateChanged(); + void OnTraitDefsChanged(); + void OnComponentTreeChanged(); void OnGcdStateChanged(weave::GcdState state); void OnConfigChanged(const weave::Settings& settings); void OnPairingStart(const std::string& session_id, |