Path: blob/master/thirdparty/linuxbsd_headers/dbus/dbus-shared.h
9903 views
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */1/* dbus-shared.h Stuff used by both dbus/dbus.h low-level and C/C++ binding APIs2*3* Copyright (C) 2004 Red Hat, Inc.4*5* Licensed under the Academic Free License version 2.16*7* This program is free software; you can redistribute it and/or modify8* it under the terms of the GNU General Public License as published by9* the Free Software Foundation; either version 2 of the License, or10* (at your option) any later version.11*12* This program is distributed in the hope that it will be useful,13* but WITHOUT ANY WARRANTY; without even the implied warranty of14* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the15* GNU General Public License for more details.16*17* You should have received a copy of the GNU General Public License18* along with this program; if not, write to the Free Software19* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA20*21*/2223#ifndef DBUS_SHARED_H24#define DBUS_SHARED_H2526/* Don't include anything in here from anywhere else. It's27* intended for use by any random library.28*/2930#ifdef __cplusplus31extern "C" {32#if 033} /* avoids confusing emacs indentation */34#endif35#endif3637/* Normally docs are in .c files, but there isn't a .c file for this. */38/**39* @defgroup DBusShared Shared constants40* @ingroup DBus41*42* @brief Shared header included by both libdbus and C/C++ bindings such as the GLib bindings.43*44* Usually a C/C++ binding such as the GLib or Qt binding won't want to include dbus.h in its45* public headers. However, a few constants and macros may be useful to include; those are46* found here and in dbus-protocol.h47*48* @{49*/505152/**53* Well-known bus types. See dbus_bus_get().54*/55typedef enum56{57DBUS_BUS_SESSION, /**< The login session bus */58DBUS_BUS_SYSTEM, /**< The systemwide bus */59DBUS_BUS_STARTER /**< The bus that started us, if any */60} DBusBusType;6162/**63* Results that a message handler can return.64*/65typedef enum66{67DBUS_HANDLER_RESULT_HANDLED, /**< Message has had its effect - no need to run more handlers. */68DBUS_HANDLER_RESULT_NOT_YET_HANDLED, /**< Message has not had any effect - see if other handlers want it. */69DBUS_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. */70} DBusHandlerResult;7172/* Bus names */7374/** The bus name used to talk to the bus itself. */75#define DBUS_SERVICE_DBUS "org.freedesktop.DBus"7677/* Paths */78/** The object path used to talk to the bus itself. */79#define DBUS_PATH_DBUS "/org/freedesktop/DBus"80/** The object path used in local/in-process-generated messages. */81#define DBUS_PATH_LOCAL "/org/freedesktop/DBus/Local"8283/* Interfaces, these #define don't do much other than84* catch typos at compile time85*/86/** The interface exported by the object with #DBUS_SERVICE_DBUS and #DBUS_PATH_DBUS */87#define DBUS_INTERFACE_DBUS "org.freedesktop.DBus"88/** The monitoring interface exported by the dbus-daemon */89#define DBUS_INTERFACE_MONITORING "org.freedesktop.DBus.Monitoring"9091/** The verbose interface exported by the dbus-daemon */92#define DBUS_INTERFACE_VERBOSE "org.freedesktop.DBus.Verbose"93/** The interface supported by introspectable objects */94#define DBUS_INTERFACE_INTROSPECTABLE "org.freedesktop.DBus.Introspectable"95/** The interface supported by objects with properties */96#define DBUS_INTERFACE_PROPERTIES "org.freedesktop.DBus.Properties"97/** The interface supported by most dbus peers */98#define DBUS_INTERFACE_PEER "org.freedesktop.DBus.Peer"99100/** This is a special interface whose methods can only be invoked101* by the local implementation (messages from remote apps aren't102* allowed to specify this interface).103*/104#define DBUS_INTERFACE_LOCAL "org.freedesktop.DBus.Local"105106/* Owner flags */107#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT 0x1 /**< Allow another service to become the primary owner if requested */108#define DBUS_NAME_FLAG_REPLACE_EXISTING 0x2 /**< Request to replace the current primary owner */109#define DBUS_NAME_FLAG_DO_NOT_QUEUE 0x4 /**< If we can not become the primary owner do not place us in the queue */110111/* Replies to request for a name */112#define DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER 1 /**< Service has become the primary owner of the requested name */113#define DBUS_REQUEST_NAME_REPLY_IN_QUEUE 2 /**< Service could not become the primary owner and has been placed in the queue */114#define DBUS_REQUEST_NAME_REPLY_EXISTS 3 /**< Service is already in the queue */115#define DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER 4 /**< Service is already the primary owner */116117/* Replies to releasing a name */118#define DBUS_RELEASE_NAME_REPLY_RELEASED 1 /**< Service was released from the given name */119#define DBUS_RELEASE_NAME_REPLY_NON_EXISTENT 2 /**< The given name does not exist on the bus */120#define DBUS_RELEASE_NAME_REPLY_NOT_OWNER 3 /**< Service is not an owner of the given name */121122/* Replies to service starts */123#define DBUS_START_REPLY_SUCCESS 1 /**< Service was auto started */124#define DBUS_START_REPLY_ALREADY_RUNNING 2 /**< Service was already running */125126/** @} */127128#ifdef __cplusplus129#if 0130{ /* avoids confusing emacs indentation */131#endif132}133#endif134135#endif /* DBUS_SHARED_H */136137138