aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Vakulenko <avakulenko@google.com>2015-12-10 10:01:36 -0800
committerAlex Vakulenko <avakulenko@google.com>2015-12-10 12:28:28 -0800
commit14b3e6e052de2e706cfa6f011c5db83fb6ca6e65 (patch)
tree38cb77f038a3ff400bab5ed84f457bfe2524dc79
parent3bd3ececdd8ab45b6b2e81c8fbbbe60c850c2a2c (diff)
downloadweaved-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.mk4
-rw-r--r--buffet/dbus_bindings/com.android.Weave.Manager.dbus-xml13
-rw-r--r--buffet/dbus_command_dispatcher.cc2
-rw-r--r--buffet/manager.cc30
-rw-r--r--buffet/manager.h4
5 files changed, 32 insertions, 21 deletions
diff --git a/Android.mk b/Android.mk
index 9d75d9d..7ebdf2b 100644
--- a/Android.mk
+++ b/Android.mk
@@ -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,