]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/core/dbus-unit.h
core: add transient units
[thirdparty/systemd.git] / src / core / dbus-unit.h
CommitLineData
03467c88 1/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
4139c1b2 2
c2f1db8f 3#pragma once
4139c1b2
LP
4
5/***
6 This file is part of systemd.
7
8 Copyright 2010 Lennart Poettering
9
10 systemd is free software; you can redistribute it and/or modify it
5430f7f2
LP
11 under the terms of the GNU Lesser General Public License as published by
12 the Free Software Foundation; either version 2.1 of the License, or
4139c1b2
LP
13 (at your option) any later version.
14
15 systemd is distributed in the hope that it will be useful, but
16 WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5430f7f2 18 Lesser General Public License for more details.
4139c1b2 19
5430f7f2 20 You should have received a copy of the GNU Lesser General Public License
4139c1b2
LP
21 along with systemd; If not, see <http://www.gnu.org/licenses/>.
22***/
23
24#include <dbus/dbus.h>
25
26#include "manager.h"
d200735e 27#include "dbus-common.h"
4139c1b2
LP
28
29#define BUS_UNIT_INTERFACE \
4288f619
LP
30 " <interface name=\"org.freedesktop.systemd1.Unit\">\n" \
31 " <method name=\"Start\">\n" \
32 " <arg name=\"mode\" type=\"s\" direction=\"in\"/>\n" \
33 " <arg name=\"job\" type=\"o\" direction=\"out\"/>\n" \
34 " </method>\n" \
35 " <method name=\"Stop\">\n" \
36 " <arg name=\"mode\" type=\"s\" direction=\"in\"/>\n" \
37 " <arg name=\"job\" type=\"o\" direction=\"out\"/>\n" \
38 " </method>\n" \
6f28c033
LP
39 " <method name=\"Reload\">\n" \
40 " <arg name=\"mode\" type=\"s\" direction=\"in\"/>\n" \
41 " <arg name=\"job\" type=\"o\" direction=\"out\"/>\n" \
42 " </method>\n" \
4288f619
LP
43 " <method name=\"Restart\">\n" \
44 " <arg name=\"mode\" type=\"s\" direction=\"in\"/>\n" \
45 " <arg name=\"job\" type=\"o\" direction=\"out\"/>\n" \
46 " </method>\n" \
9a1ac7b9
LP
47 " <method name=\"TryRestart\">\n" \
48 " <arg name=\"mode\" type=\"s\" direction=\"in\"/>\n" \
49 " <arg name=\"job\" type=\"o\" direction=\"out\"/>\n" \
50 " </method>\n" \
6f28c033
LP
51 " <method name=\"ReloadOrRestart\">\n" \
52 " <arg name=\"mode\" type=\"s\" direction=\"in\"/>\n" \
53 " <arg name=\"job\" type=\"o\" direction=\"out\"/>\n" \
54 " </method>\n" \
55 " <method name=\"ReloadOrTryRestart\">\n" \
4288f619
LP
56 " <arg name=\"mode\" type=\"s\" direction=\"in\"/>\n" \
57 " <arg name=\"job\" type=\"o\" direction=\"out\"/>\n" \
58 " </method>\n" \
8a0867d6
LP
59 " <method name=\"Kill\">\n" \
60 " <arg name=\"who\" type=\"s\" direction=\"in\"/>\n" \
8a0867d6
LP
61 " <arg name=\"signal\" type=\"i\" direction=\"in\"/>\n" \
62 " </method>\n" \
63 " <method name=\"ResetFailed\"/>\n" \
8e2af478 64 " <method name=\"SetProperties\">\n" \
241da328 65 " <arg name=\"runtime\" type=\"b\" direction=\"in\"/>\n" \
8e2af478
LP
66 " <arg name=\"properties\" type=\"a(sv)\" direction=\"in\"/>\n" \
67 " </method>\n" \
4288f619
LP
68 " <property name=\"Id\" type=\"s\" access=\"read\"/>\n" \
69 " <property name=\"Names\" type=\"as\" access=\"read\"/>\n" \
8fe914ec 70 " <property name=\"Following\" type=\"s\" access=\"read\"/>\n" \
4ec9a8a4 71 " <property name=\"Slice\" type=\"s\" access=\"read\"/>\n" \
4288f619
LP
72 " <property name=\"Requires\" type=\"as\" access=\"read\"/>\n" \
73 " <property name=\"RequiresOverridable\" type=\"as\" access=\"read\"/>\n" \
74 " <property name=\"Requisite\" type=\"as\" access=\"read\"/>\n" \
75 " <property name=\"RequisiteOverridable\" type=\"as\" access=\"read\"/>\n" \
76 " <property name=\"Wants\" type=\"as\" access=\"read\"/>\n" \
4b20075e
LP
77 " <property name=\"BindsTo\" type=\"as\" access=\"read\"/>\n" \
78 " <property name=\"PartOf\" type=\"as\" access=\"read\"/>\n" \
4288f619
LP
79 " <property name=\"RequiredBy\" type=\"as\" access=\"read\"/>\n" \
80 " <property name=\"RequiredByOverridable\" type=\"as\" access=\"read\"/>\n" \
81 " <property name=\"WantedBy\" type=\"as\" access=\"read\"/>\n" \
b81884e7 82 " <property name=\"BoundBy\" type=\"as\" access=\"read\"/>\n" \
4b20075e 83 " <property name=\"ConsistsOf\" type=\"as\" access=\"read\"/>\n" \
4288f619 84 " <property name=\"Conflicts\" type=\"as\" access=\"read\"/>\n" \
69dd2852 85 " <property name=\"ConflictedBy\" type=\"as\" access=\"read\"/>\n" \
4288f619
LP
86 " <property name=\"Before\" type=\"as\" access=\"read\"/>\n" \
87 " <property name=\"After\" type=\"as\" access=\"read\"/>\n" \
5de9682c 88 " <property name=\"OnFailure\" type=\"as\" access=\"read\"/>\n" \
4dcc1cb4
LP
89 " <property name=\"Triggers\" type=\"as\" access=\"read\"/>\n" \
90 " <property name=\"TriggeredBy\" type=\"as\" access=\"read\"/>\n" \
7f2cddae
LP
91 " <property name=\"PropagatesReloadTo\" type=\"as\" access=\"read\"/>\n" \
92 " <property name=\"ReloadPropagatedFrom\" type=\"as\" access=\"read\"/>\n" \
7c8fa05c 93 " <property name=\"RequiresMountsFor\" type=\"as\" access=\"read\"/>\n" \
4288f619 94 " <property name=\"Description\" type=\"s\" access=\"read\"/>\n" \
1b64d026 95 " <property name=\"SourcePath\" type=\"s\" access=\"read\"/>\n" \
2875e22b 96 " <property name=\"DropInPaths\" type=\"as\" access=\"read\"/>\n" \
49dbfa7b 97 " <property name=\"Documentation\" type=\"as\" access=\"read\"/>\n" \
4288f619
LP
98 " <property name=\"LoadState\" type=\"s\" access=\"read\"/>\n" \
99 " <property name=\"ActiveState\" type=\"s\" access=\"read\"/>\n" \
100 " <property name=\"SubState\" type=\"s\" access=\"read\"/>\n" \
101 " <property name=\"FragmentPath\" type=\"s\" access=\"read\"/>\n" \
a4375746 102 " <property name=\"UnitFileState\" type=\"s\" access=\"read\"/>\n" \
4288f619 103 " <property name=\"InactiveExitTimestamp\" type=\"t\" access=\"read\"/>\n" \
b21a0ef8 104 " <property name=\"InactiveExitTimestampMonotonic\" type=\"t\" access=\"read\"/>\n" \
4288f619 105 " <property name=\"ActiveEnterTimestamp\" type=\"t\" access=\"read\"/>\n" \
b21a0ef8 106 " <property name=\"ActiveEnterTimestampMonotonic\" type=\"t\" access=\"read\"/>\n" \
4288f619 107 " <property name=\"ActiveExitTimestamp\" type=\"t\" access=\"read\"/>\n" \
b21a0ef8 108 " <property name=\"ActiveExitTimestampMonotonic\" type=\"t\" access=\"read\"/>\n" \
4288f619 109 " <property name=\"InactiveEnterTimestamp\" type=\"t\" access=\"read\"/>\n" \
b21a0ef8 110 " <property name=\"InactiveEnterTimestampMonotonic\" type=\"t\" access=\"read\"/>\n" \
4288f619 111 " <property name=\"CanStart\" type=\"b\" access=\"read\"/>\n" \
b5e9dba8 112 " <property name=\"CanStop\" type=\"b\" access=\"read\"/>\n" \
c8f4d764 113 " <property name=\"CanReload\" type=\"b\" access=\"read\"/>\n" \
2528a7a6 114 " <property name=\"CanIsolate\" type=\"b\" access=\"read\"/>\n" \
4288f619 115 " <property name=\"Job\" type=\"(uo)\" access=\"read\"/>\n" \
b4a16b7b 116 " <property name=\"StopWhenUnneeded\" type=\"b\" access=\"read\"/>\n" \
b5e9dba8
LP
117 " <property name=\"RefuseManualStart\" type=\"b\" access=\"read\"/>\n" \
118 " <property name=\"RefuseManualStop\" type=\"b\" access=\"read\"/>\n" \
c8f4d764 119 " <property name=\"AllowIsolate\" type=\"b\" access=\"read\"/>\n" \
a68c7a7a 120 " <property name=\"DefaultDependencies\" type=\"b\" access=\"read\"/>\n" \
c8f4d764
LP
121 " <property name=\"OnFailureIsolate\" type=\"b\" access=\"read\"/>\n" \
122 " <property name=\"IgnoreOnIsolate\" type=\"b\" access=\"read\"/>\n" \
7a6000a6 123 " <property name=\"IgnoreOnSnapshot\" type=\"b\" access=\"read\"/>\n" \
45fb0699 124 " <property name=\"NeedDaemonReload\" type=\"b\" access=\"read\"/>\n" \
faf919f1 125 " <property name=\"JobTimeoutUSec\" type=\"t\" access=\"read\"/>\n" \
90bbc946 126 " <property name=\"ConditionTimestamp\" type=\"t\" access=\"read\"/>\n" \
b21a0ef8 127 " <property name=\"ConditionTimestampMonotonic\" type=\"t\" access=\"read\"/>\n" \
90bbc946 128 " <property name=\"ConditionResult\" type=\"b\" access=\"read\"/>\n" \
9f39404c 129 " <property name=\"LoadError\" type=\"(ss)\" access=\"read\"/>\n" \
4ad49000 130 " <property name=\"ControlGroup\" type=\"s\" access=\"read\"/>\n" \
c2756a68 131 " <property name=\"Transient\" type=\"b\" access=\"read\"/>\n" \
4288f619 132 " </interface>\n"
4139c1b2 133
05feefe0
LP
134#define BUS_UNIT_INTERFACES_LIST \
135 BUS_GENERIC_INTERFACES_LIST \
136 "org.freedesktop.systemd1.Unit\0"
137
d200735e 138extern const BusProperty bus_unit_properties[];
4139c1b2 139
4139c1b2
LP
140void bus_unit_send_change_signal(Unit *u);
141void bus_unit_send_removed_signal(Unit *u);
142
8e2af478
LP
143DBusHandlerResult bus_unit_queue_job(DBusConnection *connection, DBusMessage *message, Unit *u, JobType type, JobMode mode, bool reload_if_possible);
144
c2756a68 145int bus_unit_set_properties(Unit *u, DBusMessageIter *i, UnitSetPropertiesMode mode, bool commit, DBusError *error);
246aa6dd 146
4139c1b2
LP
147extern const DBusObjectPathVTable bus_unit_vtable;
148
4288f619 149extern const char bus_unit_interface[];