chiark / gitweb /
socket: disable GC for pre-allocated per-connection service until it is used
[elogind.git] / src / job.h
index 1ae97b75d02a0d7087e33bc32dd369e21252d6e4..a69c4aaf1d55b65cfbb004b84ddf83074c3d5109 100644 (file)
--- a/src/job.h
+++ b/src/job.h
@@ -80,6 +80,7 @@ struct JobDependency {
         LIST_FIELDS(JobDependency, object);
 
         bool matters;
+        bool conflicts;
 };
 
 struct Job {
@@ -102,19 +103,26 @@ struct Job {
         JobType type;
         JobState state;
 
+        Watch timer_watch;
+
+        /* Note that this bus object is not ref counted here. */
+        DBusConnection *bus;
+        char *bus_client;
+
         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;
 };
 
 Job* job_new(Manager *m, JobType type, Unit *unit);
 void job_free(Job *job);
 void job_dump(Job *j, FILE*f, const char *prefix);
 
-JobDependency* job_dependency_new(Job *subject, Job *object, bool matters);
+JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts);
 void job_dependency_free(JobDependency *l);
 void job_dependency_delete(Job *subject, Job *object, bool *matters);
 
@@ -133,9 +141,14 @@ bool job_is_runnable(Job *j);
 void job_add_to_run_queue(Job *j);
 void job_add_to_dbus_queue(Job *j);
 
+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);
 
+char *job_dbus_path(Job *j);
+
 const char* job_type_to_string(JobType t);
 JobType job_type_from_string(const char *s);
 
@@ -145,6 +158,4 @@ JobState job_state_from_string(const char *s);
 const char* job_mode_to_string(JobMode t);
 JobMode job_mode_from_string(const char *s);
 
-char *job_dbus_path(Job *j);
-
 #endif