From 93f433a17a0aabff91a0384bf9c4f99c9cf30ae1 Mon Sep 17 00:00:00 2001 From: Richard Hult Date: Tue, 16 Mar 2004 18:00:35 +0000 Subject: 2004-03-16 Richard Hult * 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. --- dbus/dbus-message.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'dbus/dbus-message.c') 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. -- cgit