Merge branch 'franred/drop-rebase' of roadtrain.codethink.co.uk:genivi/boot-manager
[profile/ivi/node-startup-controller.git] / boot-manager / job-manager.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 __JOB_MANAGER_H__
11 #define __JOB_MANAGER_H__
12
13 #include <boot-manager/systemd-manager-dbus.h>
14
15 G_BEGIN_DECLS
16
17 #define TYPE_JOB_MANAGER            (job_manager_get_type())
18 #define JOB_MANAGER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_JOB_MANAGER, JobManager))
19 #define JOB_MANAGER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_JOB_MANAGER, JobManagerClass))
20 #define IS_JOB_MANAGER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_JOB_MANAGER))
21 #define IS_JOB_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass, TYPE_JOB_MANAGER))
22 #define JOB_MANAGER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj, TYPE_JOB_MANAGER, JobManagerClass))
23
24 typedef struct _JobManagerClass JobManagerClass;
25 typedef struct _JobManager      JobManager;
26
27 typedef void (*JobManagerCallback) (JobManager  *manager,
28                                     const gchar *unit,
29                                     const gchar *result,
30                                     GError      *error,
31                                     gpointer     user_data);
32
33 GType       job_manager_get_type (void) G_GNUC_CONST;
34 JobManager *job_manager_new      (GDBusConnection   *connection,
35                                   SystemdManager    *systemd_manager) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT;
36 void        job_manager_start    (JobManager        *manager,
37                                   const gchar       *unit,
38                                   GCancellable      *cancellable,
39                                   JobManagerCallback callback,
40                                   gpointer           user_data);
41 void        job_manager_stop     (JobManager        *manager,
42                                   const gchar       *unit,
43                                   GCancellable      *cancellable,
44                                   JobManagerCallback callback,
45                                   gpointer           user_data);
46
47 G_END_DECLS
48
49 #endif /* !__JOB_MANAGER_H__ */