buffet: Switch buffet::Manager to use DBusObject
Use DBusObject to implement "/org/chromium/Buffet/Manager" object.
BUG=chromium:374864
TEST=USE=buffet P2_TEST_FILTER="buffet::*" FEATURES=test emerge-link platform2
Change-Id: I91141ce76a1dbd4478577f2f7548f99a33241fb5
Reviewed-on: https://chromium-review.googlesource.com/212682
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/manager.h b/buffet/manager.h
index 2bb9d5f..73ed8aa 100644
--- a/buffet/manager.h
+++ b/buffet/manager.h
@@ -5,19 +5,17 @@
#ifndef BUFFET_MANAGER_H_
#define BUFFET_MANAGER_H_
+#include <map>
#include <memory>
#include <string>
#include <base/basictypes.h>
-#include <base/memory/scoped_ptr.h>
#include <base/memory/weak_ptr.h>
#include <base/values.h>
+#include <chromeos/dbus/dbus_object.h>
+#include <chromeos/error.h>
#include <chromeos/exported_property_set.h>
-#include <dbus/bus.h>
-#include <dbus/message.h>
-#include <dbus/object_path.h>
-#include "buffet/dbus_constants.h"
#include "buffet/device_registration_info.h"
namespace chromeos {
@@ -33,49 +31,37 @@
// The Manager is responsible for global state of Buffet. It exposes
// interfaces which affect the entire device such as device registration and
// device state.
-class Manager {
+class Manager final {
public:
- typedef base::Callback<void(bool success)> OnInitFinish;
-
- Manager(const base::WeakPtr<chromeos::dbus_utils::ExportedObjectManager>&
- object_manager);
- ~Manager();
- void Init(const OnInitFinish& cb);
+ explicit Manager(
+ const base::WeakPtr<chromeos::dbus_utils::ExportedObjectManager>&
+ object_manager);
+ void Init(
+ const chromeos::dbus_utils::AsyncEventSequencer::CompletionAction& cb);
private:
- struct Properties: public chromeos::dbus_utils::ExportedPropertySet {
- public:
- chromeos::dbus_utils::ExportedProperty<std::string> state_;
- explicit Properties(dbus::Bus* bus)
- : chromeos::dbus_utils::ExportedPropertySet(
- bus, dbus::ObjectPath(dbus_constants::kManagerServicePath)) {
- RegisterProperty(dbus_constants::kManagerInterface, "State", &state_);
- }
- virtual ~Properties() {}
- };
+ // DBus properties:
+ chromeos::dbus_utils::ExportedProperty<std::string> state_;
+ // DBus methods:
// Handles calls to org.chromium.Buffet.Manager.CheckDeviceRegistered().
- scoped_ptr<dbus::Response> HandleCheckDeviceRegistered(
- dbus::MethodCall* method_call);
+ std::string HandleCheckDeviceRegistered(chromeos::ErrorPtr* error);
// Handles calls to org.chromium.Buffet.Manager.GetDeviceInfo().
- scoped_ptr<dbus::Response> HandleGetDeviceInfo(
- dbus::MethodCall* method_call);
+ std::string HandleGetDeviceInfo(chromeos::ErrorPtr* error);
// Handles calls to org.chromium.Buffet.Manager.StartRegisterDevice().
- scoped_ptr<dbus::Response> HandleStartRegisterDevice(
- dbus::MethodCall* method_call);
+ std::string HandleStartRegisterDevice(chromeos::ErrorPtr* error,
+ const std::map<std::string,
+ std::unique_ptr<base::Value>>& params);
// Handles calls to org.chromium.Buffet.Manager.FinishRegisterDevice().
- scoped_ptr<dbus::Response> HandleFinishRegisterDevice(
- dbus::MethodCall* method_call);
+ std::string HandleFinishRegisterDevice(chromeos::ErrorPtr* error,
+ const std::string& user_auth_code);
// Handles calls to org.chromium.Buffet.Manager.UpdateState().
- scoped_ptr<dbus::Response> HandleUpdateState(
- dbus::MethodCall* method_call);
+ void HandleUpdateState(chromeos::ErrorPtr* error,
+ const std::string& json_state_fragment);
// Handles calls to org.chromium.Buffet.Manager.Test()
- scoped_ptr<::dbus::Response> HandleTestMethod(
- ::dbus::MethodCall* method_call);
+ void HandleTestMethod(chromeos::ErrorPtr* error);
- dbus::ExportedObject* exported_object_; // weak; owned by the Bus object.
- base::WeakPtr<chromeos::dbus_utils::ExportedObjectManager> object_manager_;
- scoped_ptr<Properties> properties_;
+ chromeos::dbus_utils::DBusObject dbus_object_;
std::shared_ptr<CommandManager> command_manager_;
std::unique_ptr<DeviceRegistrationInfo> device_info_;