chiark / gitweb /
add org.freedesktop.DBus.Properies.Set method
[elogind.git] / src / job.h
index ce2bb0600b51feec7d8a26d8068a64c6d1596ef4..de0c1d2317aa318009444e0d7c08a27931a9f6db 100644 (file)
--- a/src/job.h
+++ b/src/job.h
@@ -1,4 +1,4 @@
-/*-*- Mode: C; c-basic-offset: 8 -*-*/
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
 
 #ifndef foojobhfoo
 #define foojobhfoo
@@ -30,6 +30,7 @@ typedef struct JobDependency JobDependency;
 typedef enum JobType JobType;
 typedef enum JobState JobState;
 typedef enum JobMode JobMode;
+typedef enum JobResult JobResult;
 
 #include "manager.h"
 #include "unit.h"
@@ -66,10 +67,21 @@ enum JobMode {
         JOB_FAIL,
         JOB_REPLACE,
         JOB_ISOLATE,
+        JOB_IGNORE_DEPENDENCIES,
         _JOB_MODE_MAX,
         _JOB_MODE_INVALID = -1
 };
 
+enum JobResult {
+        JOB_DONE,
+        JOB_CANCELED,
+        JOB_TIMEOUT,
+        JOB_FAILED,
+        JOB_DEPENDENCY,
+        _JOB_RESULT_MAX,
+        _JOB_RESULT_INVALID = -1
+};
+
 struct JobDependency {
         /* Encodes that the 'subject' job needs the 'object' job in
          * some way. This structure is used only while building a transaction. */
@@ -109,13 +121,15 @@ struct Job {
         DBusConnection *bus;
         char *bus_client;
 
+        JobResult result;
+
         bool installed:1;
         bool in_run_queue:1;
         bool matters_to_anchor:1;
         bool override:1;
         bool in_dbus_queue:1;
         bool sent_dbus_new_signal:1;
-        bool failed:1;
+        bool ignore_deps:1;
 };
 
 Job* job_new(Manager *m, JobType type, Unit *unit);
@@ -144,7 +158,7 @@ int job_start_timer(Job *j);
 void job_timer_event(Job *j, uint64_t n_elapsed, Watch *w);
 
 int job_run_and_invalidate(Job *j);
-int job_finish_and_invalidate(Job *j, bool success);
+int job_finish_and_invalidate(Job *j, JobResult result);
 
 char *job_dbus_path(Job *j);
 
@@ -157,4 +171,7 @@ JobState job_state_from_string(const char *s);
 const char* job_mode_to_string(JobMode t);
 JobMode job_mode_from_string(const char *s);
 
+const char* job_result_to_string(JobResult t);
+JobResult job_result_from_string(const char *s);
+
 #endif