// Copyright (c) 2010 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 <base/logging.h>

#include "brillo/glib/abstract_dbus_service.h"

namespace brillo {
namespace dbus {

bool AbstractDbusService::Register(const brillo::dbus::BusConnection& conn) {
  return RegisterExclusiveService(conn,
                                  service_interface(),
                                  service_name(),
                                  service_path(),
                                  service_object());
}

bool AbstractDbusService::Run() {
  if (!main_loop()) {
    LOG(ERROR) << "No run loop. Call Initialize before use.";
    return false;
  }
  ::g_main_loop_run(main_loop());
  DLOG(INFO) << "Run() completed";
  return true;
}

bool AbstractDbusService::Shutdown() {
  ::g_main_loop_quit(main_loop());
  return true;
}

}  // namespace dbus
}  // namespace brillo