{ -*- mode: C; c-file-style: "gnu" -*- }
{ dbus-shared.h  Stuff used by both dbus/dbus.h low-level and C/C++ binding APIs
 *
 * Copyright (C) 2004 Red Hat, Inc.
 *
 * Licensed under the Academic Free License version 2.1
 * 
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 * MA 02110-1301, USA.
 *
 }

{ Normally docs are in .c files, but there isn't a .c file for this. }
{
 * @defgroup DBusShared Shared constants 
 * @ingroup  DBus
 *
 * Shared constants.
 *
 * @brief Stuff used by both dbus/dbus.h low-level and C/C++ binding APIs 
 }


type
  DBusBusType =
  (
   DBUS_BUS_SESSION,    {< The login session bus }
   DBUS_BUS_SYSTEM,     {< The systemwide bus }
   DBUS_BUS_STARTER     {< The bus that started us, if any }
  );

  DBusHandlerResult =
  (
   DBUS_HANDLER_RESULT_HANDLED,         {< Message has had its effect }
   DBUS_HANDLER_RESULT_NOT_YET_HANDLED, {< Message has not had any effect }
   DBUS_HANDLER_RESULT_NEED_MEMORY      {< Need more memory to return another result }
  );

{ Services }
const
  DBUS_SERVICE_DBUS =     'org.freedesktop.DBus';

{ Paths }
  DBUS_PATH_DBUS =  '/org/freedesktop/DBus';
  DBUS_PATH_LOCAL = '/org/freedesktop/DBus/Local';

{ Interfaces, these #define don't do much other than
 * catch typos at compile time
 }
  DBUS_INTERFACE_DBUS =           'org.freedesktop.DBus';
  DBUS_INTERFACE_INTROSPECTABLE = 'org.freedesktop.DBus.Introspectable';
  DBUS_INTERFACE_PROPERTIES =     'org.freedesktop.DBus.Properties';
  DBUS_INTERFACE_PEER =           'org.freedesktop.DBus.Peer';

{ This is a special interface whose methods can only be invoked
 * by the local implementation (messages from remote apps aren't
 * allowed to specify this interface).
 }
  DBUS_INTERFACE_LOCAL = 'org.freedesktop.DBus.Local';

{ Owner flags }
  DBUS_NAME_FLAG_ALLOW_REPLACEMENT = $1; {< Allow another service to become the primary owner if requested }
  DBUS_NAME_FLAG_REPLACE_EXISTING =  $2; {< Request to replace the current primary owner }
  DBUS_NAME_FLAG_DO_NOT_QUEUE =      $4; {< If we can not become the primary owner do not place us in the queue }

{ Replies to request for a name }
  DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER = 1; {< Service has become the primary owner of the requested name }
  DBUS_REQUEST_NAME_REPLY_IN_QUEUE      = 2; {< Service could not become the primary owner and has been placed in the queue }
  DBUS_REQUEST_NAME_REPLY_EXISTS        = 3; {< Service is already in the queue }
  DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER = 4; {< Service is already the primary owner }

{ Replies to releasing a name }
  DBUS_RELEASE_NAME_REPLY_RELEASED       = 1; {< Service was released from the given name }
  DBUS_RELEASE_NAME_REPLY_NON_EXISTENT   = 2; {< The given name does not exist on the bus }
  DBUS_RELEASE_NAME_REPLY_NOT_OWNER      = 3; {< Service is not an owner of the given name }

{ Replies to service starts }
  DBUS_START_REPLY_SUCCESS         = 1; {< service was auto started }
  DBUS_START_REPLY_ALREADY_RUNNING = 2; {< service was already running }

