blob: 903f9b94ff1842c43d17374e0e1c31f8d3d11815 [file] [log] [blame]
// Copyright 2015 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "leaderd/manager.h"
using chromeos::dbus_utils::AsyncEventSequencer;
using chromeos::dbus_utils::DBusObject;
using chromeos::dbus_utils::ExportedObjectManager;
using org::chromium::leaderd::ManagerAdaptor;
namespace leaderd {
namespace {
const char kPingResponse[] = "Hello world!";
} // namespace
Manager::Manager(ExportedObjectManager* object_manager)
: dbus_object_{new DBusObject{object_manager,
object_manager->GetBus(),
ManagerAdaptor::GetObjectPath()}} {
}
void Manager::RegisterAsync(const CompletionAction& completion_callback) {
scoped_refptr<AsyncEventSequencer> sequencer(new AsyncEventSequencer());
dbus_adaptor_.RegisterWithDBusObject(dbus_object_.get());
dbus_object_->RegisterAsync(
sequencer->GetHandler("Failed exporting Manager.", true));
sequencer->OnAllTasksCompletedCall({completion_callback});
}
std::string Manager::Ping() {
return kPingResponse;
}
} // namespace leaderd