main.cc revision b91fd4923f411705be97fbc5c0ada37481c0cd8d
16bead48129845a2bc0d6ff347f3d7e232004d59Nam T. Nguyen// Copyright 2014 The Chromium OS Authors. All rights reserved.
26bead48129845a2bc0d6ff347f3d7e232004d59Nam T. Nguyen// Use of this source code is governed by a BSD-style license that can be
36bead48129845a2bc0d6ff347f3d7e232004d59Nam T. Nguyen// found in the LICENSE file.
46bead48129845a2bc0d6ff347f3d7e232004d59Nam T. Nguyen
5b91fd4923f411705be97fbc5c0ada37481c0cd8dDarren Krahn#include <memory>
66bead48129845a2bc0d6ff347f3d7e232004d59Nam T. Nguyen#include <string>
76bead48129845a2bc0d6ff347f3d7e232004d59Nam T. Nguyen
86bead48129845a2bc0d6ff347f3d7e232004d59Nam T. Nguyen#include <base/command_line.h>
9da5dd42c581f324bcfa96b0e4f3513cc6e331d67Alex Vakulenko#include <chromeos/daemons/dbus_daemon.h>
10da5dd42c581f324bcfa96b0e4f3513cc6e331d67Alex Vakulenko#include <chromeos/dbus/async_event_sequencer.h>
116bead48129845a2bc0d6ff347f3d7e232004d59Nam T. Nguyen#include <chromeos/syslog_logging.h>
126bead48129845a2bc0d6ff347f3d7e232004d59Nam T. Nguyen
13b91fd4923f411705be97fbc5c0ada37481c0cd8dDarren Krahn#include "attestation/common/dbus_interface.h"
14ab0cddda9971f97781fc9f6cbc76095ba7542abfAlex Vakulenko#include "attestation/server/attestation_service.h"
15b91fd4923f411705be97fbc5c0ada37481c0cd8dDarren Krahn#include "attestation/server/dbus_service.h"
166bead48129845a2bc0d6ff347f3d7e232004d59Nam T. Nguyen
17da5dd42c581f324bcfa96b0e4f3513cc6e331d67Alex Vakulenkousing chromeos::dbus_utils::AsyncEventSequencer;
1845fc1234b4f1a1c1cfdd44774350a70b26b9b630Alex Vakulenko
19da5dd42c581f324bcfa96b0e4f3513cc6e331d67Alex Vakulenkoclass AttestationDaemon : public chromeos::DBusServiceDaemon {
20da5dd42c581f324bcfa96b0e4f3513cc6e331d67Alex Vakulenko public:
21da5dd42c581f324bcfa96b0e4f3513cc6e331d67Alex Vakulenko  AttestationDaemon()
22b91fd4923f411705be97fbc5c0ada37481c0cd8dDarren Krahn      : chromeos::DBusServiceDaemon(attestation::kAttestationServiceName) {
23b91fd4923f411705be97fbc5c0ada37481c0cd8dDarren Krahn    attestation_service_.reset(new attestation::AttestationService);
24b91fd4923f411705be97fbc5c0ada37481c0cd8dDarren Krahn    CHECK(attestation_service_->Initialize());
25b91fd4923f411705be97fbc5c0ada37481c0cd8dDarren Krahn  }
266bead48129845a2bc0d6ff347f3d7e232004d59Nam T. Nguyen
27da5dd42c581f324bcfa96b0e4f3513cc6e331d67Alex Vakulenko protected:
28da5dd42c581f324bcfa96b0e4f3513cc6e331d67Alex Vakulenko  void RegisterDBusObjectsAsync(AsyncEventSequencer* sequencer) override {
29b91fd4923f411705be97fbc5c0ada37481c0cd8dDarren Krahn    dbus_service_.reset(new attestation::DBusService(
30b91fd4923f411705be97fbc5c0ada37481c0cd8dDarren Krahn        bus_,
31b91fd4923f411705be97fbc5c0ada37481c0cd8dDarren Krahn        attestation_service_.get()));
32b91fd4923f411705be97fbc5c0ada37481c0cd8dDarren Krahn    dbus_service_->Register(sequencer->GetHandler("Register() failed.", true));
33da5dd42c581f324bcfa96b0e4f3513cc6e331d67Alex Vakulenko  }
346bead48129845a2bc0d6ff347f3d7e232004d59Nam T. Nguyen
35da5dd42c581f324bcfa96b0e4f3513cc6e331d67Alex Vakulenko private:
36b91fd4923f411705be97fbc5c0ada37481c0cd8dDarren Krahn  std::unique_ptr<attestation::AttestationInterface> attestation_service_;
37b91fd4923f411705be97fbc5c0ada37481c0cd8dDarren Krahn  std::unique_ptr<attestation::DBusService> dbus_service_;
386bead48129845a2bc0d6ff347f3d7e232004d59Nam T. Nguyen
39da5dd42c581f324bcfa96b0e4f3513cc6e331d67Alex Vakulenko  DISALLOW_COPY_AND_ASSIGN(AttestationDaemon);
40da5dd42c581f324bcfa96b0e4f3513cc6e331d67Alex Vakulenko};
416bead48129845a2bc0d6ff347f3d7e232004d59Nam T. Nguyen
42da5dd42c581f324bcfa96b0e4f3513cc6e331d67Alex Vakulenkoint main(int argc, char* argv[]) {
433518664c4f5d8215aed7e0b92e6f4ea4a8902195Alex Vakulenko  base::CommandLine::Init(argc, argv);
44da5dd42c581f324bcfa96b0e4f3513cc6e331d67Alex Vakulenko  chromeos::InitLog(chromeos::kLogToSyslog | chromeos::kLogToStderr);
45da5dd42c581f324bcfa96b0e4f3513cc6e331d67Alex Vakulenko  AttestationDaemon daemon;
46da5dd42c581f324bcfa96b0e4f3513cc6e331d67Alex Vakulenko  return daemon.Run();
476bead48129845a2bc0d6ff347f3d7e232004d59Nam T. Nguyen}
48