2003-05-13 James Willcox <jwillcox@gnome.org>
authorJames Willcox <jwillcox@gnome.org>
Wed, 14 May 2003 02:40:41 +0000 (02:40 +0000)
committerJames Willcox <jwillcox@gnome.org>
Wed, 14 May 2003 02:40:41 +0000 (02:40 +0000)
* configure.in:
* bus/activation.c: (bus_activation_service_created),
(bus_activation_activate_service):
* bus/driver.c: (bus_driver_send_service_deleted),
(bus_driver_send_service_created), (bus_driver_send_service_lost),
(bus_driver_send_service_acquired),
(bus_driver_send_welcome_message),
(bus_driver_handle_list_services):
* bus/session.conf.in:
* dbus/dbus-bus.c: (dbus_bus_acquire_service),
(dbus_bus_service_exists), (dbus_bus_activate_service):
* dbus/dbus-bus.h:

Add some convenience API which lets you activate a service, and did a
bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
and dbus_message_get_args()

ChangeLog
bus/activation.c
bus/driver.c
bus/session.conf.in
configure.in
dbus/dbus-bus.c
dbus/dbus-bus.h
dbus/dbus-message.c

index 292693c..4a1890b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+2003-05-13  James Willcox  <jwillcox@gnome.org>
+
+       * configure.in:
+       * bus/activation.c: (bus_activation_service_created),
+       (bus_activation_activate_service):
+       * bus/driver.c: (bus_driver_send_service_deleted),
+       (bus_driver_send_service_created), (bus_driver_send_service_lost),
+       (bus_driver_send_service_acquired),
+       (bus_driver_send_welcome_message),
+       (bus_driver_handle_list_services):
+       * bus/session.conf.in:
+       * dbus/dbus-bus.c: (dbus_bus_acquire_service),
+       (dbus_bus_service_exists), (dbus_bus_activate_service):
+       * dbus/dbus-bus.h:
+
+       Add some convenience API which lets you activate a service, and did a
+       bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
+       and dbus_message_get_args()
+
 2003-05-11  Havoc Pennington  <hp@pobox.com>
 
        * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid 
index 3682eec..a52fa4b 100644 (file)
@@ -595,7 +595,7 @@ bus_activation_service_created (BusActivation  *activation,
 
          if (!dbus_message_append_args (message,
                                         DBUS_TYPE_UINT32, DBUS_ACTIVATION_REPLY_ACTIVATED,
-                                        0))
+                                        DBUS_TYPE_INVALID))
            {
              dbus_message_unref (message);
              BUS_SET_OOM (error);
@@ -877,7 +877,7 @@ bus_activation_activate_service (BusActivation  *activation,
 
       if (!dbus_message_append_args (message,
                                     DBUS_TYPE_UINT32, DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE, 
-                                    0))
+                                    DBUS_TYPE_INVALID))
        {
           _dbus_verbose ("No memory to set args of reply to activate message\n");
          BUS_SET_OOM (error);
index 3c4847b..e0afd8e 100644 (file)
@@ -60,7 +60,7 @@ bus_driver_send_service_deleted (const char     *service_name,
   if (!dbus_message_set_sender (message, DBUS_SERVICE_DBUS) ||
       !dbus_message_append_args (message,
                                  DBUS_TYPE_STRING, service_name,
-                                 0))
+                                 DBUS_TYPE_INVALID))
     {
       dbus_message_unref (message);
       BUS_SET_OOM (error);
@@ -100,7 +100,7 @@ bus_driver_send_service_created (const char     *service_name,
   
   if (!dbus_message_append_args (message,
                                  DBUS_TYPE_STRING, service_name,
-                                 0))
+                                 DBUS_TYPE_INVALID))
     {
       dbus_message_unref (message);
       BUS_SET_OOM (error);
@@ -133,7 +133,7 @@ bus_driver_send_service_lost (DBusConnection *connection,
   
   if (!dbus_message_append_args (message,
                                  DBUS_TYPE_STRING, service_name,
-                                 0))
+                                 DBUS_TYPE_INVALID))
     {
       dbus_message_unref (message);
       BUS_SET_OOM (error);
@@ -174,7 +174,7 @@ bus_driver_send_service_acquired (DBusConnection *connection,
   
   if (!dbus_message_append_args (message,
                                  DBUS_TYPE_STRING, service_name,
-                                 0))
+                                 DBUS_TYPE_INVALID))
     {
       dbus_message_unref (message);
       BUS_SET_OOM (error);
@@ -352,7 +352,7 @@ bus_driver_send_welcome_message (DBusConnection *connection,
   
   if (!dbus_message_append_args (welcome,
                                  DBUS_TYPE_STRING, name,
-                                 NULL))
+                                 DBUS_TYPE_INVALID))
     {
       dbus_message_unref (welcome);
       BUS_SET_OOM (error);
@@ -403,7 +403,7 @@ bus_driver_handle_list_services (DBusConnection *connection,
   
   if (!dbus_message_append_args (reply,
                                  DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, services, len,
-                                 0))
+                                 DBUS_TYPE_INVALID))
     {
       dbus_free_string_array (services);
       dbus_message_unref (reply);
@@ -447,7 +447,7 @@ bus_driver_handle_acquire_service (DBusConnection *connection,
   if (!dbus_message_get_args (message, error,
                               DBUS_TYPE_STRING, &name,
                               DBUS_TYPE_UINT32, &flags,
-                              0))
+                              DBUS_TYPE_INVALID))
     return FALSE;
   
   _dbus_verbose ("Trying to own service %s with flags 0x%x\n", name, flags);
@@ -510,7 +510,7 @@ bus_driver_handle_service_exists (DBusConnection *connection,
   
   if (!dbus_message_get_args (message, error,
                               DBUS_TYPE_STRING, &name,
-                              0))
+                              DBUS_TYPE_INVALID))
     return FALSE;
 
   retval = FALSE;
@@ -567,7 +567,7 @@ bus_driver_handle_activate_service (DBusConnection *connection,
   if (!dbus_message_get_args (message, error,
                               DBUS_TYPE_STRING, &name,
                               DBUS_TYPE_UINT32, &flags,
-                              0))
+                              DBUS_TYPE_INVALID))
     {
       _DBUS_ASSERT_ERROR_IS_SET (error);
       _dbus_verbose ("No memory to get arguments to ActivateService\n");
index 4feca23..673d873 100644 (file)
@@ -10,6 +10,8 @@
 
   <listen>unix:tmpdir=@DBUS_SESSION_SOCKET_DIR@</listen>
 
+  <servicedir>@EXPANDED_LIBDIR@/dbus-1.0/services</servicedir>
+
   <policy context="default">
     <!-- Allow everything -->
     <allow send="*"/>
index f95da56..1b71774 100644 (file)
@@ -548,6 +548,12 @@ EXPANDED_BINDIR=`eval echo $BINDIR_TMP`
 prefix=$old_prefix
 AC_SUBST(EXPANDED_BINDIR)
 
+old_exec_prefix=${exec_prefix}
+test "x$exec_prefix" = xNONE && eval exec_prefix=${prefix}
+eval EXPANDED_LIBDIR=${libdir}
+exec_prefix=${old_exec_prefix}
+AC_SUBST(EXPANDED_LIBDIR)
+
 #### Check our operating system
 operating_system=unknown
 if test -f /etc/redhat-release || test -f $EXPANDED_SYSCONFDIR/redhat-release ; then
@@ -630,6 +636,7 @@ fi
 AC_SUBST(DBUS_SESSION_SOCKET_DIR)
 
 
+
 AC_OUTPUT([
 Doxyfile
 dbus/dbus-arch-deps.h
@@ -707,4 +714,4 @@ if test x$enable_asserts = xyes; then
 fi
 if test x$enable_checks = xno; then
         echo "NOTE: building without checks for arguments passed to public API makes it harder to debug apps using D-BUS, but will slightly decrease D-BUS library size and _very_ slightly improve performance."
-fi
\ No newline at end of file
+fi
index 9627341..dee9b9f 100644 (file)
@@ -465,7 +465,7 @@ dbus_bus_register (DBusConnection *connection,
     goto out;
   else if (!dbus_message_get_args (reply, error,
                                    DBUS_TYPE_STRING, &name,
-                                   0))
+                                   DBUS_TYPE_INVALID))
     goto out;
   
   bd->base_service = name;
@@ -576,7 +576,7 @@ dbus_bus_acquire_service (DBusConnection *connection,
   if (!dbus_message_append_args (message,
                                 DBUS_TYPE_STRING, service_name,
                                 DBUS_TYPE_UINT32, flags,
-                                0))
+                                DBUS_TYPE_INVALID))
     {
       dbus_message_unref (message);
       _DBUS_SET_OOM (error);
@@ -603,7 +603,7 @@ dbus_bus_acquire_service (DBusConnection *connection,
   
   if (!dbus_message_get_args (reply, error,
                               DBUS_TYPE_UINT32, &service_result,
-                              0))
+                              DBUS_TYPE_INVALID))
     {
       _DBUS_ASSERT_ERROR_IS_SET (error);
       dbus_message_unref (reply);
@@ -647,7 +647,7 @@ dbus_bus_service_exists (DBusConnection *connection,
   
   if (!dbus_message_append_args (message,
                                 DBUS_TYPE_STRING, service_name,
-                                0))
+                                DBUS_TYPE_INVALID))
     {
       dbus_message_unref (message);
       _DBUS_SET_OOM (error);
@@ -665,7 +665,7 @@ dbus_bus_service_exists (DBusConnection *connection,
 
   if (!dbus_message_get_args (reply, error,
                               DBUS_TYPE_UINT32, &exists,
-                              0))
+                              DBUS_TYPE_INVALID))
     {
       _DBUS_ASSERT_ERROR_IS_SET (error);
       return FALSE;
@@ -674,4 +674,71 @@ dbus_bus_service_exists (DBusConnection *connection,
   return (exists != FALSE);
 }
 
+/**
+ * Activates a given service
+ *
+ * @param connection the connection
+ * @param service_name the service name
+ * @param flags the flags
+ * @param result a place to store the result of the activation, which will
+ * be one of DBUS_ACTIVATION_REPLY_ACTIVATED or
+ * DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE if successful.  Pass NULL if you
+ * don't care about the result.
+ * @param error location to store any errors
+ * @returns #TRUE if the activation succeeded, #FALSE if not
+ *
+ * @todo document what the flags do
+ */
+dbus_bool_t
+dbus_bus_activate_service (DBusConnection *connection,
+                          const char     *service_name,
+                          dbus_uint32_t   flags,
+                          dbus_uint32_t  *result,
+                          DBusError      *error)
+{
+  DBusMessage *msg;
+  DBusMessage *reply;
+
+  msg = dbus_message_new (DBUS_MESSAGE_ACTIVATE_SERVICE,
+                         DBUS_SERVICE_DBUS);
+
+  if (!dbus_message_append_args (msg, DBUS_TYPE_STRING, service_name,
+                                DBUS_TYPE_UINT32, flags, DBUS_TYPE_INVALID))
+    {
+      dbus_message_unref (msg);
+      _DBUS_SET_OOM (error);
+      return FALSE;
+    }
+
+  reply = dbus_connection_send_with_reply_and_block (connection, msg,
+                                                        -1, error);
+  dbus_message_unref (msg);
+
+  if (reply == NULL)
+    {
+      _DBUS_ASSERT_ERROR_IS_SET (error);
+      return FALSE;
+    }
+
+  if (dbus_set_error_from_message (error, reply))
+    {
+      _DBUS_ASSERT_ERROR_IS_SET (error);
+      dbus_message_unref (reply);
+      return FALSE;
+    }
+
+  if (result != NULL &&
+      !dbus_message_get_args (reply, error, DBUS_TYPE_UINT32,
+                             result, DBUS_TYPE_INVALID))
+    {
+      _DBUS_ASSERT_ERROR_IS_SET (error);
+      dbus_message_unref (reply);
+      return FALSE;
+    }
+  
+  dbus_message_unref (reply);
+  return TRUE;
+}
+
+
 /** @} */
index e3ec054..a62a746 100644 (file)
@@ -53,6 +53,12 @@ dbus_bool_t     dbus_bus_service_exists   (DBusConnection *connection,
                                           const char     *service_name,
                                           DBusError      *error);
 
+dbus_bool_t     dbus_bus_activate_service (DBusConnection *connection,
+                                          const char     *service_name,
+                                          dbus_uint32_t   flags,
+                                          dbus_uint32_t  *reply,
+                                          DBusError      *error);
+
 DBUS_END_DECLS;
 
 #endif /* DBUS_BUS_H */
index 7c89d73..4d80425 100644 (file)
@@ -1229,7 +1229,7 @@ dbus_message_get_destination (DBusMessage *message)
  * followed by the value to add.  Array values are specified by an int
  * typecode followed by a pointer to the array followed by an int
  * giving the length of the array.  The argument list must be
- * terminated with DBUS_TYPE_INVALID.
+ * terminated with #DBUS_TYPE_INVALID.
  *
  * This function doesn't support dicts or non-fundamental arrays.
  *
@@ -1421,7 +1421,7 @@ dbus_message_append_args_valist (DBusMessage *message,
  * Gets arguments from a message given a variable argument list.
  * The variable argument list should contain the type of the
  * argumen followed by a pointer to where the value should be
- * stored. The list is terminated with 0.
+ * stored. The list is terminated with #DBUS_TYPE_INVALID.
  *
  * @param message the message
  * @param error error to be filled in on failure