Move deregistration of shutdown consumers into LAHandlerService
[profile/ivi/node-startup-controller.git] / boot-manager / la-handler-service.h
1 /* vi:set et ai sw=2 sts=2 ts=2: */
2 /* -
3  * Copyright (c) 2012 GENIVI.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  */
9
10 #ifndef __LA_HANDLER_SERVICE_H__
11 #define __LA_HANDLER_SERVICE_H__
12
13 #include <gio/gio.h>
14
15 #include <common/nsm-consumer-dbus.h>
16
17 #include <boot-manager/job-manager.h>
18
19 G_BEGIN_DECLS
20
21 #define LA_HANDLER_TYPE_SERVICE            (la_handler_service_get_type ())
22 #define LA_HANDLER_SERVICE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), LA_HANDLER_TYPE_SERVICE, LAHandlerService))
23 #define LA_HANDLER_SERVICE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), LA_HANDLER_TYPE_SERVICE, LAHandlerServiceClass))
24 #define LA_HANDLER_IS_SERVICE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LA_HANDLER_TYPE_SERVICE))
25 #define LA_HANDLER_IS_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LA_HANDLER_TYPE_SERVICE)
26 #define LA_HANDLER_SERVICE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), LA_HANDLER_TYPE_SERVICE, LAHandlerServiceClass))
27
28 typedef struct _LAHandlerServiceClass LAHandlerServiceClass;
29 typedef struct _LAHandlerService      LAHandlerService;
30
31 GType             la_handler_service_get_type             (void) G_GNUC_CONST;
32
33 LAHandlerService *la_handler_service_new                  (GDBusConnection    *connection,
34                                                            JobManager         *job_manager) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT;
35 gboolean          la_handler_service_start                (LAHandlerService   *service,
36                                                            GError            **error);
37 void              la_handler_service_register             (LAHandlerService   *service,
38                                                            const gchar        *unit,
39                                                            const gchar        *mode,
40                                                            guint               timeout,
41                                                            GAsyncReadyCallback callback,
42                                                            gpointer            user_data);
43 NSMConsumer      *la_handler_service_get_nsm_consumer     (LAHandlerService   *service);
44 void              la_handler_service_deregister_consumers (LAHandlerService   *service);
45
46 G_END_DECLS
47
48 #endif /* !__LA_HANDLER_SERVICE_H__ */
49