diff options
author | Lennart Poettering <lennart@poettering.net> | 2013-11-19 21:12:59 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2013-11-20 20:52:36 +0100 |
commit | 718db96199eb307751264e4163555662c9a389fa (patch) | |
tree | 9ec8467596ba1acba76bb6273c7797baf68c1a00 /src/core/job.h | |
parent | 3febea3a0b0a968ea281e7959c1654cbaf95c9bf (diff) |
core: convert PID 1 to libsystemd-bus
This patch converts PID 1 to libsystemd-bus and thus drops the
dependency on libdbus. The only remaining code using libdbus is a test
case that validates our bus marshalling against libdbus' marshalling,
and this dependency can be turned off.
This patch also adds a couple of things to libsystem-bus, that are
necessary to make the port work:
- Synthesizing of "Disconnected" messages when bus connections are
severed.
- Support for attaching multiple vtables for the same interface on the
same path.
This patch also fixes the SetDefaultTarget() and GetDefaultTarget() bus
calls which used an inappropriate signature.
As a side effect we will now generate PropertiesChanged messages which
carry property contents, rather than just invalidation information.
Diffstat (limited to 'src/core/job.h')
-rw-r--r-- | src/core/job.h | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/src/core/job.h b/src/core/job.h index be9d278b0c..60bb87d75a 100644 --- a/src/core/job.h +++ b/src/core/job.h @@ -27,7 +27,6 @@ typedef struct Job Job; typedef struct JobDependency JobDependency; -typedef struct JobBusClient JobBusClient; typedef enum JobType JobType; typedef enum JobState JobState; typedef enum JobMode JobMode; @@ -102,6 +101,7 @@ enum JobResult { _JOB_RESULT_INVALID = -1 }; +#include "sd-event.h" #include "manager.h" #include "unit.h" #include "hashmap.h" @@ -120,13 +120,6 @@ struct JobDependency { bool conflicts; }; -struct JobBusClient { - LIST_FIELDS(JobBusClient, client); - /* Note that this bus object is not ref counted here. */ - DBusConnection *bus; - char name[0]; -}; - struct Job { Manager *manager; Unit *unit; @@ -147,10 +140,11 @@ struct Job { JobType type; JobState state; - Watch timer_watch; + sd_event_source *timer_event_source; + usec_t begin_usec; /* There can be more than one client, because of job merging. */ - LIST_HEAD(JobBusClient, bus_client_list); + Set *subscribed; JobResult result; @@ -165,8 +159,6 @@ struct Job { bool irreversible:1; }; -JobBusClient* job_bus_client_new(DBusConnection *connection, const char *name); - Job* job_new(Unit *unit, JobType type); Job* job_new_raw(Unit *unit); void job_free(Job *job); @@ -210,7 +202,6 @@ 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, JobResult result, bool recursive); |