blob: 7cb37fbc467cb4527ee36dd8c5f6f9a3b5949e57 [file] [log] [blame]
// Copyright 2014 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 <string>
#include <base/command_line.h>
#include <chromeos/dbus/async_event_sequencer.h>
#include <chromeos/dbus/exported_object_manager.h>
#include <chromeos/daemons/dbus_daemon.h>
#include <chromeos/syslog_logging.h>
#include "buffet/dbus_constants.h"
#include "buffet/manager.h"
using chromeos::dbus_utils::AsyncEventSequencer;
using chromeos::DBusServiceDaemon;
using buffet::dbus_constants::kServiceName;
using buffet::dbus_constants::kRootServicePath;
namespace buffet {
class Daemon : public DBusServiceDaemon {
public:
Daemon() : DBusServiceDaemon(kServiceName, kRootServicePath) {}
protected:
void RegisterDBusObjectsAsync(AsyncEventSequencer* sequencer) override {
manager_.reset(new buffet::Manager(object_manager_->AsWeakPtr()));
manager_->RegisterAsync(
sequencer->GetHandler("Manager.RegisterAsync() failed.", true));
}
private:
std::unique_ptr<buffet::Manager> manager_;
DISALLOW_COPY_AND_ASSIGN(Daemon);
};
} // namespace buffet
int main(int argc, char* argv[]) {
CommandLine::Init(argc, argv);
chromeos::InitLog(chromeos::kLogToSyslog | chromeos::kLogHeader);
buffet::Daemon daemon;
return daemon.Run();
}