buffet: Stub for StartDevice method.
This introduces StartDevice method with stub implementation
and allows buffet_client to invoke it.
BUG=None
TEST=cros_workon_make buffet --test and manual.
Change-Id: I3f89ed3fc735c0521041484bb9fdebc43d9d4b79
Reviewed-on: https://chromium-review.googlesource.com/220771
Commit-Queue: Anton Muhin <antonm@chromium.org>
Tested-by: Anton Muhin <antonm@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/buffet_client.cc b/buffet/buffet_client.cc
index bde5abe..f8ef56e 100644
--- a/buffet/buffet_client.cc
+++ b/buffet/buffet_client.cc
@@ -38,6 +38,7 @@
void usage() {
std::cerr << "Possible commands:" << std::endl;
std::cerr << " " << kManagerTestMethod << " <message>" << std::endl;
+ std::cerr << " " << kManagerStartDevice << std::endl;
std::cerr << " " << kManagerCheckDeviceRegistered << std::endl;
std::cerr << " " << kManagerGetDeviceInfo << std::endl;
std::cerr << " " << kManagerStartRegisterDevice
@@ -88,6 +89,26 @@
return EX_OK;
}
+ int CallManagerStartDevice(const CommandLine::StringVector& args) {
+ if (!args.empty()) {
+ std::cerr << "Invalid number of arguments for "
+ << "Manager." << kManagerStartDevice << std::endl;
+ usage();
+ return EX_USAGE;
+ }
+
+ ErrorPtr error;
+ auto response = CallMethodAndBlock(
+ manager_proxy_,
+ kManagerInterface, kManagerStartDevice, &error);
+ if (!response || !ExtractMethodCallResults(response.get(), &error)) {
+ std::cout << "Failed to receive a response:"
+ << error->GetMessage() << std::endl;
+ return EX_UNAVAILABLE;
+ }
+ return EX_OK;
+ }
+
int CallManagerCheckDeviceRegistered(const CommandLine::StringVector& args) {
if (!args.empty()) {
std::cerr << "Invalid number of arguments for "
@@ -298,6 +319,9 @@
if (command.compare(kManagerTestMethod) == 0) {
err = helper.CallTestMethod(args);
+ } else if (command.compare(kManagerStartDevice) == 0 ||
+ command.compare("sd") == 0) {
+ err = helper.CallManagerStartDevice(args);
} else if (command.compare(kManagerCheckDeviceRegistered) == 0 ||
command.compare("cr") == 0) {
err = helper.CallManagerCheckDeviceRegistered(args);
diff --git a/buffet/libbuffet/dbus_constants.cc b/buffet/libbuffet/dbus_constants.cc
index be5c16c..fba4c79 100644
--- a/buffet/libbuffet/dbus_constants.cc
+++ b/buffet/libbuffet/dbus_constants.cc
@@ -15,6 +15,7 @@
const char kManagerInterface[] = "org.chromium.Buffet.Manager";
const char kManagerServicePath[] = "/org/chromium/Buffet/Manager";
+const char kManagerStartDevice[] = "StartDevice";
const char kManagerCheckDeviceRegistered[] = "CheckDeviceRegistered";
const char kManagerGetDeviceInfo[] = "GetDeviceInfo";
const char kManagerStartRegisterDevice[] = "StartRegisterDevice";
diff --git a/buffet/libbuffet/dbus_constants.h b/buffet/libbuffet/dbus_constants.h
index 5890d36..0d0c63b 100644
--- a/buffet/libbuffet/dbus_constants.h
+++ b/buffet/libbuffet/dbus_constants.h
@@ -22,6 +22,7 @@
LIBBUFFET_EXPORT extern const char kManagerServicePath[];
// Methods exposed as part of kManagerInterface.
+LIBBUFFET_EXPORT extern const char kManagerStartDevice[];
LIBBUFFET_EXPORT extern const char kManagerCheckDeviceRegistered[];
LIBBUFFET_EXPORT extern const char kManagerGetDeviceInfo[];
LIBBUFFET_EXPORT extern const char kManagerStartRegisterDevice[];
diff --git a/buffet/manager.cc b/buffet/manager.cc
index 10d36cf..01716f4 100644
--- a/buffet/manager.cc
+++ b/buffet/manager.cc
@@ -36,6 +36,9 @@
void Manager::RegisterAsync(const AsyncEventSequencer::CompletionAction& cb) {
chromeos::dbus_utils::DBusInterface* itf =
dbus_object_.AddOrGetInterface(dbus_constants::kManagerInterface);
+ itf->AddMethodHandler(dbus_constants::kManagerStartDevice,
+ base::Unretained(this),
+ &Manager::HandleStartDevice);
itf->AddMethodHandler(dbus_constants::kManagerCheckDeviceRegistered,
base::Unretained(this),
&Manager::HandleCheckDeviceRegistered);
@@ -68,6 +71,11 @@
device_info_->Load();
}
+void Manager::HandleStartDevice(chromeos::ErrorPtr* error) {
+ LOG(INFO) << "Received call to Manager.StartDevice()";
+ LOG(INFO) << "Not implemented";
+}
+
std::string Manager::HandleCheckDeviceRegistered(chromeos::ErrorPtr* error) {
LOG(INFO) << "Received call to Manager.CheckDeviceRegistered()";
std::string device_id;
diff --git a/buffet/manager.h b/buffet/manager.h
index 4648b95..8d7ab13 100644
--- a/buffet/manager.h
+++ b/buffet/manager.h
@@ -43,6 +43,8 @@
private:
// DBus methods:
+ // Handles calls to org.chromium.Buffet.Manager.StartDevice().
+ void HandleStartDevice(chromeos::ErrorPtr* error);
// Handles calls to org.chromium.Buffet.Manager.CheckDeviceRegistered().
std::string HandleCheckDeviceRegistered(chromeos::ErrorPtr* error);
// Handles calls to org.chromium.Buffet.Manager.GetDeviceInfo().