ossrv_pub/dbus/inc/dbus-shared.h
changeset 0 e4d67989cc36
equal deleted inserted replaced
-1:000000000000 0:e4d67989cc36
       
     1 /* -*- mode: C; c-file-style: "gnu" -*- */
       
     2 /* dbus-shared.h  Stuff used by both dbus/dbus.h low-level and C/C++ binding APIs
       
     3  *
       
     4  * Copyright (C) 2004 Red Hat, Inc.
       
     5  *
       
     6  * Licensed under the Academic Free License version 2.1
       
     7  * 
       
     8  * This program is free software; you can redistribute it and/or modify
       
     9  * it under the terms of the GNU General Public License as published by
       
    10  * the Free Software Foundation; either version 2 of the License, or
       
    11  * (at your option) any later version.
       
    12  *
       
    13  * This program is distributed in the hope that it will be useful,
       
    14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
       
    15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
       
    16  * GNU General Public License for more details.
       
    17  * 
       
    18  * You should have received a copy of the GNU General Public License
       
    19  * along with this program; if not, write to the Free Software
       
    20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
       
    21  *
       
    22  */
       
    23 
       
    24 #ifndef DBUS_SHARED_H
       
    25 #define DBUS_SHARED_H
       
    26 
       
    27 /* Don't include anything in here from anywhere else. It's
       
    28  * intended for use by any random library.
       
    29  */
       
    30 
       
    31 #ifdef  __cplusplus
       
    32 extern "C" {
       
    33 #if 0
       
    34 } /* avoids confusing emacs indentation */
       
    35 #endif
       
    36 #endif
       
    37 
       
    38 /* Normally docs are in .c files, but there isn't a .c file for this. */
       
    39 /**
       
    40  * @defgroup DBusShared Shared constants 
       
    41  * @ingroup  DBus
       
    42  *
       
    43  * @brief Shared header included by both libdbus and C/C++ bindings such as the GLib bindings.
       
    44  *
       
    45  * Usually a C/C++ binding such as the GLib or Qt binding won't want to include dbus.h in its
       
    46  * public headers. However, a few constants and macros may be useful to include; those are
       
    47  * found here and in dbus-protocol.h
       
    48  *
       
    49  * @{
       
    50  */
       
    51 
       
    52 
       
    53 /**
       
    54  * Well-known bus types. See dbus_bus_get().
       
    55  */
       
    56 typedef enum
       
    57 {
       
    58   DBUS_BUS_SESSION,    /**< The login session bus */
       
    59   DBUS_BUS_SYSTEM,     /**< The systemwide bus */
       
    60   DBUS_BUS_STARTER     /**< The bus that started us, if any */
       
    61 } DBusBusType;
       
    62 
       
    63 /**
       
    64  * Results that a message handler can return.
       
    65  */
       
    66 typedef enum
       
    67 {
       
    68   DBUS_HANDLER_RESULT_HANDLED,         /**< Message has had its effect - no need to run more handlers. */ 
       
    69   DBUS_HANDLER_RESULT_NOT_YET_HANDLED, /**< Message has not had any effect - see if other handlers want it. */
       
    70   DBUS_HANDLER_RESULT_NEED_MEMORY      /**< Need more memory in order to return #DBUS_HANDLER_RESULT_HANDLED or #DBUS_HANDLER_RESULT_NOT_YET_HANDLED. Please try again later with more memory. */
       
    71 } DBusHandlerResult;
       
    72 
       
    73 /* Bus names */
       
    74 
       
    75 /** The bus name used to talk to the bus itself. */
       
    76 #define DBUS_SERVICE_DBUS      "org.freedesktop.DBus"
       
    77 
       
    78 /* Paths */
       
    79 /** The object path used to talk to the bus itself. */
       
    80 #define DBUS_PATH_DBUS  "/org/freedesktop/DBus"
       
    81 /** The object path used in local/in-process-generated messages. */
       
    82 #define DBUS_PATH_LOCAL "/org/freedesktop/DBus/Local"
       
    83 
       
    84 /* Interfaces, these #define don't do much other than
       
    85  * catch typos at compile time
       
    86  */
       
    87 /** The interface exported by the object with #DBUS_SERVICE_DBUS and #DBUS_PATH_DBUS */
       
    88 #define DBUS_INTERFACE_DBUS           "org.freedesktop.DBus"
       
    89 /** The interface supported by introspectable objects */
       
    90 #define DBUS_INTERFACE_INTROSPECTABLE "org.freedesktop.DBus.Introspectable"
       
    91 /** The interface supported by objects with properties */
       
    92 #define DBUS_INTERFACE_PROPERTIES     "org.freedesktop.DBus.Properties"
       
    93 /** The interface supported by most dbus peers */
       
    94 #define DBUS_INTERFACE_PEER           "org.freedesktop.DBus.Peer"
       
    95 
       
    96 /** This is a special interface whose methods can only be invoked
       
    97  * by the local implementation (messages from remote apps aren't
       
    98  * allowed to specify this interface).
       
    99  */
       
   100 #define DBUS_INTERFACE_LOCAL "org.freedesktop.DBus.Local"
       
   101 
       
   102 /* Owner flags */
       
   103 #define DBUS_NAME_FLAG_ALLOW_REPLACEMENT 0x1 /**< Allow another service to become the primary owner if requested */
       
   104 #define DBUS_NAME_FLAG_REPLACE_EXISTING  0x2 /**< Request to replace the current primary owner */
       
   105 #define DBUS_NAME_FLAG_DO_NOT_QUEUE      0x4 /**< If we can not become the primary owner do not place us in the queue */
       
   106 
       
   107 /* Replies to request for a name */
       
   108 #define DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER  1 /**< Service has become the primary owner of the requested name */
       
   109 #define DBUS_REQUEST_NAME_REPLY_IN_QUEUE       2 /**< Service could not become the primary owner and has been placed in the queue */
       
   110 #define DBUS_REQUEST_NAME_REPLY_EXISTS         3 /**< Service is already in the queue */
       
   111 #define DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER  4 /**< Service is already the primary owner */
       
   112 
       
   113 /* Replies to releasing a name */
       
   114 #define DBUS_RELEASE_NAME_REPLY_RELEASED        1 /**< Service was released from the given name */
       
   115 #define DBUS_RELEASE_NAME_REPLY_NON_EXISTENT    2 /**< The given name does not exist on the bus */
       
   116 #define DBUS_RELEASE_NAME_REPLY_NOT_OWNER       3 /**< Service is not an owner of the given name */
       
   117 
       
   118 /* Replies to service starts */
       
   119 #define DBUS_START_REPLY_SUCCESS         1 /**< Service was auto started */
       
   120 #define DBUS_START_REPLY_ALREADY_RUNNING 2 /**< Service was already running */
       
   121 
       
   122 /** @} */
       
   123 
       
   124 #ifdef __cplusplus
       
   125 #if 0
       
   126 { /* avoids confusing emacs indentation */
       
   127 #endif
       
   128 }
       
   129 #endif
       
   130 
       
   131 #endif /* DBUS_SHARED_H */