blob: 2eb2e2ab72c2a1a13ed9aa3722f893e05e3c4ff9 [file] [log] [blame]
Chris Sosa45d9f102014-03-24 11:18:54 -07001// Copyright 2014 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include <string>
6
Chris Sosa45d9f102014-03-24 11:18:54 -07007#include <base/command_line.h>
Alex Vakulenkoa8b95bc2014-08-27 11:00:57 -07008#include <chromeos/dbus/async_event_sequencer.h>
9#include <chromeos/dbus/exported_object_manager.h>
Alex Vakulenko74bd01b2014-09-08 17:07:19 -070010#include <chromeos/daemons/dbus_daemon.h>
11#include <chromeos/syslog_logging.h>
Chris Sosa45d9f102014-03-24 11:18:54 -070012
Alex Vakulenko89d9d5e2014-09-12 10:27:23 -070013#include "buffet/libbuffet/dbus_constants.h"
Christopher Wileya4915c42014-03-27 14:45:37 -070014#include "buffet/manager.h"
Chris Sosa45d9f102014-03-24 11:18:54 -070015
Christopher Wiley2d2d92b2014-07-29 14:07:10 -070016using chromeos::dbus_utils::AsyncEventSequencer;
Alex Vakulenko74bd01b2014-09-08 17:07:19 -070017using chromeos::DBusServiceDaemon;
18using buffet::dbus_constants::kServiceName;
19using buffet::dbus_constants::kRootServicePath;
Christopher Wiley90016242014-04-01 17:33:29 -070020
Alex Vakulenko74bd01b2014-09-08 17:07:19 -070021namespace buffet {
Chris Sosa45d9f102014-03-24 11:18:54 -070022
Alex Vakulenko74bd01b2014-09-08 17:07:19 -070023class Daemon : public DBusServiceDaemon {
24 public:
25 Daemon() : DBusServiceDaemon(kServiceName, kRootServicePath) {}
Chris Sosaababc5c2014-04-09 15:42:01 -070026
Alex Vakulenko74bd01b2014-09-08 17:07:19 -070027 protected:
28 void RegisterDBusObjectsAsync(AsyncEventSequencer* sequencer) override {
29 manager_.reset(new buffet::Manager(object_manager_->AsWeakPtr()));
30 manager_->RegisterAsync(
31 sequencer->GetHandler("Manager.RegisterAsync() failed.", true));
Chris Sosa45d9f102014-03-24 11:18:54 -070032 }
Chris Sosa45d9f102014-03-24 11:18:54 -070033
Alex Vakulenko74bd01b2014-09-08 17:07:19 -070034 private:
35 std::unique_ptr<buffet::Manager> manager_;
Chris Sosa45d9f102014-03-24 11:18:54 -070036
Alex Vakulenko74bd01b2014-09-08 17:07:19 -070037 DISALLOW_COPY_AND_ASSIGN(Daemon);
38};
Chris Sosa45d9f102014-03-24 11:18:54 -070039
Alex Vakulenko74bd01b2014-09-08 17:07:19 -070040} // namespace buffet
Chris Sosa45d9f102014-03-24 11:18:54 -070041
42int main(int argc, char* argv[]) {
Chris Sosa45d9f102014-03-24 11:18:54 -070043 CommandLine::Init(argc, argv);
Alex Vakulenko74bd01b2014-09-08 17:07:19 -070044 chromeos::InitLog(chromeos::kLogToSyslog | chromeos::kLogHeader);
45 buffet::Daemon daemon;
46 return daemon.Run();
Chris Sosa45d9f102014-03-24 11:18:54 -070047}