xref: /aosp_15_r20/external/libbrillo/brillo/glib/abstract_dbus_service.cc (revision 1a96fba65179ea7d3f56207137718607415c5953)
1*1a96fba6SXin Li // Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2*1a96fba6SXin Li // Use of this source code is governed by a BSD-style license that can be
3*1a96fba6SXin Li // found in the LICENSE file.
4*1a96fba6SXin Li 
5*1a96fba6SXin Li #include <base/logging.h>
6*1a96fba6SXin Li 
7*1a96fba6SXin Li #include "brillo/glib/abstract_dbus_service.h"
8*1a96fba6SXin Li 
9*1a96fba6SXin Li namespace brillo {
10*1a96fba6SXin Li namespace dbus {
11*1a96fba6SXin Li 
Register(const brillo::dbus::BusConnection & conn)12*1a96fba6SXin Li bool AbstractDbusService::Register(const brillo::dbus::BusConnection& conn) {
13*1a96fba6SXin Li   return RegisterExclusiveService(conn,
14*1a96fba6SXin Li                                   service_interface(),
15*1a96fba6SXin Li                                   service_name(),
16*1a96fba6SXin Li                                   service_path(),
17*1a96fba6SXin Li                                   service_object());
18*1a96fba6SXin Li }
19*1a96fba6SXin Li 
Run()20*1a96fba6SXin Li bool AbstractDbusService::Run() {
21*1a96fba6SXin Li   if (!main_loop()) {
22*1a96fba6SXin Li     LOG(ERROR) << "No run loop. Call Initialize before use.";
23*1a96fba6SXin Li     return false;
24*1a96fba6SXin Li   }
25*1a96fba6SXin Li   ::g_main_loop_run(main_loop());
26*1a96fba6SXin Li   DLOG(INFO) << "Run() completed";
27*1a96fba6SXin Li   return true;
28*1a96fba6SXin Li }
29*1a96fba6SXin Li 
Shutdown()30*1a96fba6SXin Li bool AbstractDbusService::Shutdown() {
31*1a96fba6SXin Li   ::g_main_loop_quit(main_loop());
32*1a96fba6SXin Li   return true;
33*1a96fba6SXin Li }
34*1a96fba6SXin Li 
35*1a96fba6SXin Li }  // namespace dbus
36*1a96fba6SXin Li }  // namespace brillo
37