diff options
author | Richard Hult <richard@imendio.com> | 2004-03-16 18:00:35 +0000 |
---|---|---|
committer | Richard Hult <richard@imendio.com> | 2004-03-16 18:00:35 +0000 |
commit | 93f433a17a0aabff91a0384bf9c4f99c9cf30ae1 (patch) | |
tree | be2ffbc0160abfb63808d994d076faa67e4ff81a /dbus | |
parent | 24ffe79c80d376b058c2d154b2b5f0ef8fee1c36 (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')
-rw-r--r-- | dbus/dbus-message.c | 29 | ||||
-rw-r--r-- | dbus/dbus-message.h | 4 | ||||
-rw-r--r-- | dbus/dbus-protocol.h | 1 |
3 files changed, 34 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. diff --git a/dbus/dbus-message.h b/dbus/dbus-message.h index 3655d2e4..d9ddc94c 100644 --- a/dbus/dbus-message.h +++ b/dbus/dbus-message.h @@ -119,6 +119,10 @@ dbus_bool_t dbus_message_set_reply_serial (DBusMessage *message, dbus_uint32_t reply_serial); dbus_uint32_t dbus_message_get_reply_serial (DBusMessage *message); +void dbus_message_set_auto_activation (DBusMessage *message, + dbus_bool_t auto_activation); +dbus_bool_t dbus_message_get_auto_activation (DBusMessage *message); + dbus_bool_t dbus_message_get_path_decomposed (DBusMessage *message, char ***path); diff --git a/dbus/dbus-protocol.h b/dbus/dbus-protocol.h index f042f026..54d70e4e 100644 --- a/dbus/dbus-protocol.h +++ b/dbus/dbus-protocol.h @@ -72,6 +72,7 @@ extern "C" { /* Header flags */ #define DBUS_HEADER_FLAG_NO_REPLY_EXPECTED 0x1 +#define DBUS_HEADER_FLAG_AUTO_ACTIVATION 0x2 /* Header fields */ #define DBUS_HEADER_FIELD_INVALID 0 |