summaryrefslogtreecommitdiffstats
path: root/dbus/dbus-message.c
diff options
context:
space:
mode:
authorRichard Hult <richard@imendio.com>2004-03-16 18:00:35 +0000
committerRichard Hult <richard@imendio.com>2004-03-16 18:00:35 +0000
commit93f433a17a0aabff91a0384bf9c4f99c9cf30ae1 (patch)
treebe2ffbc0160abfb63808d994d076faa67e4ff81a /dbus/dbus-message.c
parent24ffe79c80d376b058c2d154b2b5f0ef8fee1c36 (diff)
2004-03-16 Richard Hult <richard@imendio.com>
* bus/activation.c: (bus_activation_service_created), (bus_activation_send_pending_auto_activation_messages), (bus_activation_activate_service): * bus/activation.h: * bus/dispatch.c: (bus_dispatch), (check_nonexistent_service_auto_activation), (check_service_auto_activated), (check_segfault_service_auto_activation), (check_existent_service_auto_activation), (bus_dispatch_test): * bus/driver.c: (bus_driver_handle_activate_service): * bus/services.c: (bus_registry_acquire_service): * dbus/dbus-message.c: (dbus_message_set_auto_activation), (dbus_message_get_auto_activation): * dbus/dbus-message.h: * dbus/dbus-protocol.h: Implement auto-activation.
Diffstat (limited to 'dbus/dbus-message.c')
-rw-r--r--dbus/dbus-message.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/dbus/dbus-message.c b/dbus/dbus-message.c
index ffaef43c..696b2503 100644
--- a/dbus/dbus-message.c
+++ b/dbus/dbus-message.c
@@ -4387,6 +4387,35 @@ dbus_message_get_no_reply (DBusMessage *message)
return (*header & DBUS_HEADER_FLAG_NO_REPLY_EXPECTED) != 0;
}
+void
+dbus_message_set_auto_activation (DBusMessage *message,
+ dbus_bool_t auto_activation)
+{
+ char *header;
+
+ _dbus_return_if_fail (message != NULL);
+ _dbus_return_if_fail (!message->locked);
+
+ header = _dbus_string_get_data_len (&message->header, FLAGS_OFFSET, 1);
+
+ if (auto_activation)
+ *header |= DBUS_HEADER_FLAG_AUTO_ACTIVATION;
+ else
+ *header &= ~DBUS_HEADER_FLAG_AUTO_ACTIVATION;
+}
+
+dbus_bool_t
+dbus_message_get_auto_activation (DBusMessage *message)
+{
+ const char *header;
+
+ _dbus_return_val_if_fail (message != NULL, FALSE);
+
+ header = _dbus_string_get_const_data_len (&message->header, FLAGS_OFFSET, 1);
+
+ return (*header & DBUS_HEADER_FLAG_AUTO_ACTIVATION) != 0;
+}
+
/**
* Gets the service which originated this message,
* or #NULL if unknown or inapplicable.