buffet: Move commands/dbus_* our of libweave This code is owned by buffet now. BUG=brillo:1245 TEST='FEATURES=test emerge-gizmo buffet' Change-Id: I148336aba06a89167539fdd8d987080ec4cda82d Reviewed-on: https://chromium-review.googlesource.com/287126 Commit-Queue: Vitaly Buka <vitalybuka@chromium.org> Tested-by: Vitaly Buka <vitalybuka@chromium.org> Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
diff --git a/buffet/buffet.gyp b/buffet/buffet.gyp index d6fb0ad..8d22323 100644 --- a/buffet/buffet.gyp +++ b/buffet/buffet.gyp
@@ -27,6 +27,9 @@ 'sources': [ 'dbus_bindings/org.chromium.Buffet.Command.xml', 'dbus_bindings/org.chromium.Buffet.Manager.xml', + 'dbus_command_dispatcher.cc', + 'dbus_command_proxy.cc', + 'dbus_conversion.cc', 'dbus_constants.cc', 'manager.cc', '../libweave/src/base_api_handler.cc', @@ -37,9 +40,6 @@ '../libweave/src/commands/command_instance.cc', '../libweave/src/commands/command_manager.cc', '../libweave/src/commands/command_queue.cc', - '../libweave/src/commands/dbus_command_dispatcher.cc', - '../libweave/src/commands/dbus_command_proxy.cc', - '../libweave/src/commands/dbus_conversion.cc', '../libweave/src/commands/object_schema.cc', '../libweave/src/commands/prop_constraints.cc', '../libweave/src/commands/prop_types.cc', @@ -184,6 +184,8 @@ }, 'includes': ['../common-mk/common_test.gypi'], 'sources': [ + 'dbus_command_proxy_unittest.cc', + 'dbus_conversion_unittest.cc', '../libweave/src/base_api_handler_unittest.cc', '../libweave/src/buffet_config_unittest.cc', '../libweave/src/buffet_testrunner.cc', @@ -193,8 +195,6 @@ '../libweave/src/commands/command_instance_unittest.cc', '../libweave/src/commands/command_manager_unittest.cc', '../libweave/src/commands/command_queue_unittest.cc', - '../libweave/src/commands/dbus_command_proxy_unittest.cc', - '../libweave/src/commands/dbus_conversion_unittest.cc', '../libweave/src/commands/mock_command.cc', '../libweave/src/commands/object_schema_unittest.cc', '../libweave/src/commands/schema_utils_unittest.cc',
diff --git a/libweave/src/commands/dbus_command_dispatcher.cc b/buffet/dbus_command_dispatcher.cc similarity index 80% rename from libweave/src/commands/dbus_command_dispatcher.cc rename to buffet/dbus_command_dispatcher.cc index e11dbc3..39e106b 100644 --- a/libweave/src/commands/dbus_command_dispatcher.cc +++ b/buffet/dbus_command_dispatcher.cc
@@ -2,28 +2,28 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "libweave/src/commands/dbus_command_dispatcher.h" +#include "buffet/dbus_command_dispatcher.h" #include <chromeos/dbus/exported_object_manager.h> +#include "buffet/dbus_command_proxy.h" #include "buffet/dbus_constants.h" -#include "libweave/src/commands/dbus_command_proxy.h" #include "weave/command.h" using chromeos::dbus_utils::AsyncEventSequencer; using chromeos::dbus_utils::ExportedObjectManager; -namespace weave { +namespace buffet { DBusCommandDispacher::DBusCommandDispacher( const base::WeakPtr<ExportedObjectManager>& object_manager, - Commands* command_manager) + weave::Commands* command_manager) : object_manager_{object_manager} { command_manager->AddOnCommandAddedCallback(base::Bind( &DBusCommandDispacher::OnCommandAdded, weak_ptr_factory_.GetWeakPtr())); } -void DBusCommandDispacher::OnCommandAdded(Command* command) { +void DBusCommandDispacher::OnCommandAdded(weave::Command* command) { if (!object_manager_) return; std::unique_ptr<DBusCommandProxy> proxy{new DBusCommandProxy( @@ -33,4 +33,4 @@ command->AddObserver(proxy.release()); } -} // namespace weave +} // namespace buffet
diff --git a/libweave/src/commands/dbus_command_dispatcher.h b/buffet/dbus_command_dispatcher.h similarity index 81% rename from libweave/src/commands/dbus_command_dispatcher.h rename to buffet/dbus_command_dispatcher.h index e3c10ae..ae8e499 100644 --- a/libweave/src/commands/dbus_command_dispatcher.h +++ b/buffet/dbus_command_dispatcher.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef LIBWEAVE_SRC_COMMANDS_DBUS_COMMAND_DISPATCHER_H_ -#define LIBWEAVE_SRC_COMMANDS_DBUS_COMMAND_DISPATCHER_H_ +#ifndef BUFFET_DBUS_COMMAND_DISPATCHER_H_ +#define BUFFET_DBUS_COMMAND_DISPATCHER_H_ #include <map> #include <string> @@ -19,9 +19,7 @@ } // namespace dbus_utils } // namespace chromeos -namespace weave { - -class CommandInstance; +namespace buffet { // Implements D-Bus dispatch of commands. When OnCommandAdded is called, // DBusCommandDispacher creates an instance of DBusCommandProxy object and @@ -35,10 +33,10 @@ explicit DBusCommandDispacher( const base::WeakPtr<chromeos::dbus_utils::ExportedObjectManager>& object_manager, - Commands* command_manager); + weave::Commands* command_manager); private: - void OnCommandAdded(Command* command); + void OnCommandAdded(weave::Command* command); base::WeakPtr<chromeos::dbus_utils::ExportedObjectManager> object_manager_; int next_id_{0}; @@ -51,6 +49,6 @@ DISALLOW_COPY_AND_ASSIGN(DBusCommandDispacher); }; -} // namespace weave +} // namespace buffet -#endif // LIBWEAVE_SRC_COMMANDS_DBUS_COMMAND_DISPATCHER_H_ +#endif // BUFFET_DBUS_COMMAND_DISPATCHER_H_
diff --git a/libweave/src/commands/dbus_command_proxy.cc b/buffet/dbus_command_proxy.cc similarity index 93% rename from libweave/src/commands/dbus_command_proxy.cc rename to buffet/dbus_command_proxy.cc index 1ad5d59..d53355a 100644 --- a/libweave/src/commands/dbus_command_proxy.cc +++ b/buffet/dbus_command_proxy.cc
@@ -2,22 +2,22 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "libweave/src/commands/dbus_command_proxy.h" +#include "buffet/dbus_command_proxy.h" #include <chromeos/dbus/async_event_sequencer.h> #include <chromeos/dbus/exported_object_manager.h> -#include "libweave/src/commands/dbus_conversion.h" +#include "buffet/dbus_conversion.h" #include "weave/enum_to_string.h" using chromeos::dbus_utils::AsyncEventSequencer; using chromeos::dbus_utils::ExportedObjectManager; -namespace weave { +namespace buffet { DBusCommandProxy::DBusCommandProxy(ExportedObjectManager* object_manager, const scoped_refptr<dbus::Bus>& bus, - Command* command, + weave::Command* command, std::string object_path) : command_{command}, dbus_object_{object_manager, bus, dbus::ObjectPath{object_path}} {} @@ -100,4 +100,4 @@ command_->Done(); } -} // namespace weave +} // namespace buffet
diff --git a/libweave/src/commands/dbus_command_proxy.h b/buffet/dbus_command_proxy.h similarity index 85% rename from libweave/src/commands/dbus_command_proxy.h rename to buffet/dbus_command_proxy.h index 66ae17b..86d9c6e 100644 --- a/libweave/src/commands/dbus_command_proxy.h +++ b/buffet/dbus_command_proxy.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef LIBWEAVE_SRC_COMMANDS_DBUS_COMMAND_PROXY_H_ -#define LIBWEAVE_SRC_COMMANDS_DBUS_COMMAND_PROXY_H_ +#ifndef BUFFET_DBUS_COMMAND_PROXY_H_ +#define BUFFET_DBUS_COMMAND_PROXY_H_ #include <string> @@ -20,16 +20,14 @@ } // namespace dbus_utils } // namespace chromeos -namespace weave { +namespace buffet { -class CommandInstance; - -class DBusCommandProxy : public Command::Observer, +class DBusCommandProxy : public weave::Command::Observer, public org::chromium::Buffet::CommandInterface { public: DBusCommandProxy(chromeos::dbus_utils::ExportedObjectManager* object_manager, const scoped_refptr<dbus::Bus>& bus, - Command* command, + weave::Command* command, std::string object_path); ~DBusCommandProxy() override = default; @@ -57,7 +55,7 @@ // Handles calls to org.chromium.Buffet.Command.Done(). void Done() override; - Command* command_; + weave::Command* command_; org::chromium::Buffet::CommandAdaptor dbus_adaptor_{this}; chromeos::dbus_utils::DBusObject dbus_object_; @@ -66,6 +64,6 @@ DISALLOW_COPY_AND_ASSIGN(DBusCommandProxy); }; -} // namespace weave +} // namespace buffet -#endif // LIBWEAVE_SRC_COMMANDS_DBUS_COMMAND_PROXY_H_ +#endif // BUFFET_DBUS_COMMAND_PROXY_H_
diff --git a/libweave/src/commands/dbus_command_proxy_unittest.cc b/buffet/dbus_command_proxy_unittest.cc similarity index 89% rename from libweave/src/commands/dbus_command_proxy_unittest.cc rename to buffet/dbus_command_proxy_unittest.cc index 9d26892..93f5d01 100644 --- a/libweave/src/commands/dbus_command_proxy_unittest.cc +++ b/buffet/dbus_command_proxy_unittest.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "libweave/src/commands/dbus_command_proxy.h" +#include "buffet/dbus_command_proxy.h" #include <functional> #include <memory> @@ -16,14 +16,13 @@ #include <gtest/gtest.h> #include "buffet/dbus_constants.h" -#include "libweave/src/commands/unittest_utils.h" #include "weave/command.h" - #include "weave/enum_to_string.h" #include "weave/mock_command.h" #include "weave/mock_commands.h" +#include "weave/unittest_utils.h" -namespace weave { +namespace buffet { using ::testing::AnyNumber; using ::testing::Return; @@ -32,7 +31,8 @@ using chromeos::VariantDictionary; using chromeos::dbus_utils::AsyncEventSequencer; -using unittests::CreateDictionaryValue; +using weave::unittests::CreateDictionaryValue; +using weave::unittests::IsEqualValue; namespace { @@ -41,7 +41,7 @@ MATCHER_P(EqualToJson, json, "") { auto json_value = CreateDictionaryValue(json); - return unittests::IsEqualValue(*json_value, arg); + return IsEqualValue(*json_value, arg); } } // namespace @@ -64,8 +64,10 @@ .WillRepeatedly(ReturnRefOfCopy<std::string>("robot.jump")); EXPECT_CALL(command_, GetCategory()) .WillOnce(ReturnRefOfCopy<std::string>(kTestCommandCategoty)); - EXPECT_CALL(command_, GetStatus()).WillOnce(Return(CommandStatus::kQueued)); - EXPECT_CALL(command_, GetOrigin()).WillOnce(Return(CommandOrigin::kLocal)); + EXPECT_CALL(command_, GetStatus()) + .WillOnce(Return(weave::CommandStatus::kQueued)); + EXPECT_CALL(command_, GetOrigin()) + .WillOnce(Return(weave::CommandOrigin::kLocal)); EXPECT_CALL(command_, MockGetParameters()) .WillOnce(ReturnRefOfCopy<std::string>(R"({ 'height': 53, @@ -110,8 +112,8 @@ return GetCommandProxy(); } - CommandStatus GetCommandStatus() const { - CommandStatus status; + weave::CommandStatus GetCommandStatus() const { + weave::CommandStatus status; EXPECT_TRUE(StringToEnum(GetCommandAdaptor()->GetStatus(), &status)); return status; } @@ -119,7 +121,7 @@ scoped_refptr<dbus::MockExportedObject> mock_exported_object_command_; scoped_refptr<dbus::MockBus> bus_; - unittests::MockCommand command_; + weave::unittests::MockCommand command_; std::unique_ptr<DBusCommandProxy> proxy_; }; @@ -127,7 +129,7 @@ VariantDictionary params = { {"height", int32_t{53}}, {"_jumpType", std::string{"_withKick"}}, }; - EXPECT_EQ(CommandStatus::kQueued, GetCommandStatus()); + EXPECT_EQ(weave::CommandStatus::kQueued, GetCommandStatus()); EXPECT_EQ(params, GetCommandAdaptor()->GetParameters()); EXPECT_EQ(VariantDictionary{}, GetCommandAdaptor()->GetProgress()); EXPECT_EQ(VariantDictionary{}, GetCommandAdaptor()->GetResults()); @@ -161,9 +163,9 @@ TEST_F(DBusCommandProxyTest, OnStatusChanged) { EXPECT_CALL(*mock_exported_object_command_, SendSignal(_)).Times(1); EXPECT_CALL(command_, GetStatus()) - .WillOnce(Return(CommandStatus::kInProgress)); + .WillOnce(Return(weave::CommandStatus::kInProgress)); proxy_->OnStatusChanged(); - EXPECT_EQ(CommandStatus::kInProgress, GetCommandStatus()); + EXPECT_EQ(weave::CommandStatus::kInProgress, GetCommandStatus()); } TEST_F(DBusCommandProxyTest, SetProgress) { @@ -201,4 +203,4 @@ GetCommandInterface()->Done(); } -} // namespace weave +} // namespace buffet
diff --git a/libweave/src/commands/dbus_conversion.cc b/buffet/dbus_conversion.cc similarity index 95% rename from libweave/src/commands/dbus_conversion.cc rename to buffet/dbus_conversion.cc index d634081..51d35f1 100644 --- a/libweave/src/commands/dbus_conversion.cc +++ b/buffet/dbus_conversion.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "libweave/src/commands/dbus_conversion.h" +#include "buffet/dbus_conversion.h" #include <set> #include <string> @@ -10,11 +10,7 @@ #include <chromeos/type_name_undecorate.h> -#include "libweave/src/commands/object_schema.h" -#include "libweave/src/commands/prop_types.h" -#include "libweave/src/commands/prop_values.h" - -namespace weave { +namespace buffet { namespace { @@ -213,8 +209,7 @@ return result; chromeos::Error::AddToPrintf( - error, FROM_HERE, errors::commands::kDomain, - errors::commands::kUnknownType, "Type '%s' is not supported.", + error, FROM_HERE, "buffet", "unknown_type", "Type '%s' is not supported.", chromeos::UndecorateTypeName(any.GetType().name()).c_str()); return nullptr; @@ -248,4 +243,4 @@ return result; } -} // namespace weave +} // namespace buffet
diff --git a/libweave/src/commands/dbus_conversion.h b/buffet/dbus_conversion.h similarity index 73% rename from libweave/src/commands/dbus_conversion.h rename to buffet/dbus_conversion.h index 6464cb0..20c3f58 100644 --- a/libweave/src/commands/dbus_conversion.h +++ b/buffet/dbus_conversion.h
@@ -2,17 +2,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef LIBWEAVE_SRC_COMMANDS_DBUS_CONVERSION_H_ -#define LIBWEAVE_SRC_COMMANDS_DBUS_CONVERSION_H_ +#ifndef BUFFET_DBUS_CONVERSION_H_ +#define BUFFET_DBUS_CONVERSION_H_ #include <base/values.h> #include <chromeos/any.h> #include <chromeos/errors/error.h> #include <chromeos/variant_dictionary.h> -#include "libweave/src/commands/schema_utils.h" - -namespace weave { +namespace buffet { // Converts DictionaryValue to D-Bus variant dictionary. chromeos::VariantDictionary DictionaryToDBusVariantDictionary( @@ -23,6 +21,6 @@ const chromeos::VariantDictionary& object, chromeos::ErrorPtr* error); -} // namespace weave +} // namespace buffet -#endif // LIBWEAVE_SRC_COMMANDS_DBUS_CONVERSION_H_ +#endif // BUFFET_DBUS_CONVERSION_H_
diff --git a/libweave/src/commands/dbus_conversion_unittest.cc b/buffet/dbus_conversion_unittest.cc similarity index 95% rename from libweave/src/commands/dbus_conversion_unittest.cc rename to buffet/dbus_conversion_unittest.cc index 28c423a..7a00c35 100644 --- a/libweave/src/commands/dbus_conversion_unittest.cc +++ b/buffet/dbus_conversion_unittest.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "libweave/src/commands/dbus_conversion.h" +#include "buffet/dbus_conversion.h" #include <limits> #include <memory> @@ -15,16 +15,16 @@ #include <chromeos/variant_dictionary.h> #include <gtest/gtest.h> -#include "libweave/src/commands/object_schema.h" -#include "libweave/src/commands/unittest_utils.h" +#include "weave/unittest_utils.h" -namespace weave { +namespace buffet { namespace { using chromeos::Any; using chromeos::VariantDictionary; -using unittests::CreateDictionaryValue; +using weave::unittests::CreateDictionaryValue; +using weave::unittests::IsEqualValue; chromeos::VariantDictionary ToDBus(const base::DictionaryValue& object) { return DictionaryToDBusVariantDictionary(object); @@ -182,7 +182,7 @@ auto dict = CreateRandomDictionary(10000); auto varian_dict = ToDBus(*dict); auto dict_restored = FromDBus(varian_dict); - EXPECT_PRED2(unittests::IsEqualValue, *dict, *dict_restored); + EXPECT_PRED2(IsEqualValue, *dict, *dict_restored); } -} // namespace weave +} // namespace buffet
diff --git a/buffet/manager.cc b/buffet/manager.cc index 0b64d5b..85c61c1 100644 --- a/buffet/manager.cc +++ b/buffet/manager.cc
@@ -23,9 +23,8 @@ #include <dbus/object_path.h> #include <dbus/values_util.h> -// TODO(vitalybuka): Will be moved into buffet soon. -#include "libweave/src/commands/dbus_command_dispatcher.h" -#include "libweave/src/commands/dbus_conversion.h" +#include "buffet/dbus_command_dispatcher.h" +#include "buffet/dbus_conversion.h" #include "weave/enum_to_string.h" using chromeos::dbus_utils::AsyncEventSequencer; @@ -58,7 +57,7 @@ device_ = weave::Device::Create(); device_->Start(options, &dbus_object_, sequencer); - command_dispatcher_.reset(new weave::DBusCommandDispacher{ + command_dispatcher_.reset(new DBusCommandDispacher{ dbus_object_.GetObjectManager(), device_->GetCommands()}); device_->GetState()->AddOnChangedCallback( @@ -143,8 +142,7 @@ void Manager::UpdateState(DBusMethodResponsePtr<> response, const chromeos::VariantDictionary& property_set) { chromeos::ErrorPtr error; - auto properties = - weave::DictionaryFromDBusVariantDictionary(property_set, &error); + auto properties = DictionaryFromDBusVariantDictionary(property_set, &error); if (!properties) response->ReplyWithError(error.get());
diff --git a/buffet/manager.h b/buffet/manager.h index ef433e2..9dc84d8 100644 --- a/buffet/manager.h +++ b/buffet/manager.h
@@ -22,10 +22,6 @@ #include "buffet/org.chromium.Buffet.Manager.h" #include "weave/device.h" -namespace weave { -class DBusCommandDispacher; -} - namespace chromeos { namespace dbus_utils { class ExportedObjectManager; @@ -34,6 +30,8 @@ namespace buffet { +class DBusCommandDispacher; + template<typename... Types> using DBusMethodResponsePtr = std::unique_ptr<chromeos::dbus_utils::DBusMethodResponse<Types...>>; @@ -117,7 +115,7 @@ chromeos::dbus_utils::DBusObject dbus_object_; std::unique_ptr<weave::Device> device_; - std::unique_ptr<weave::DBusCommandDispacher> command_dispatcher_; + std::unique_ptr<DBusCommandDispacher> command_dispatcher_; base::WeakPtrFactory<Manager> weak_ptr_factory_{this}; DISALLOW_COPY_AND_ASSIGN(Manager);
diff --git a/libweave/src/commands/unittest_utils.cc b/libweave/src/commands/unittest_utils.cc index 18a7108..0b9c2e3 100644 --- a/libweave/src/commands/unittest_utils.cc +++ b/libweave/src/commands/unittest_utils.cc
@@ -5,7 +5,6 @@ #include "libweave/src/commands/unittest_utils.h" #include <base/json/json_reader.h> -#include <base/json/json_writer.h> namespace weave { namespace unittests {