1d012387afef0ba02185ebe27bc6bb15551912e92Havoc Pennington/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
296a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington/* services.h  Service management
396a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington *
496a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington * Copyright (C) 2003  Red Hat, Inc.
596a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington *
643605a6f4e78a8c28afb4b1e924dff0301e0e95cHavoc Pennington * Licensed under the Academic Free License version 2.1
796a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington *
896a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington * This program is free software; you can redistribute it and/or modify
996a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington * it under the terms of the GNU General Public License as published by
1096a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington * the Free Software Foundation; either version 2 of the License, or
1196a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington * (at your option) any later version.
1296a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington *
1396a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington * This program is distributed in the hope that it will be useful,
1496a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington * but WITHOUT ANY WARRANTY; without even the implied warranty of
1596a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1696a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington * GNU General Public License for more details.
1796a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington *
1896a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington * You should have received a copy of the GNU General Public License
1996a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington * along with this program; if not, write to the Free Software
205baf2f856a9c6625993234855b07680da1c8916fTobias Mueller * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
2196a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington *
2296a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington */
2396a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington
2496a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington#ifndef BUS_SERVICES_H
2596a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington#define BUS_SERVICES_H
2696a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington
2796a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington#include <dbus/dbus.h>
2896a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington#include <dbus/dbus-string.h>
291e9b185b0c274ef0d684b1e43418388225321e72Havoc Pennington#include <dbus/dbus-hash.h>
3029560adcc79a259a0be3511c056ee7453aa26c04Havoc Pennington#include "connection.h"
316ecc14ffabcffb69aa938a67940db48272e05046Havoc Pennington#include "bus.h"
3296a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington
3396a9f80300b7794475a5451a60a07555ea3526beHavoc Penningtontypedef void (* BusServiceForeachFunction) (BusService       *service,
3496a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington                                            void             *data);
3596a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington
366be547d32f018c23ba56426a0bccd08baa2cf440Havoc PenningtonBusRegistry* bus_registry_new             (BusContext                  *context);
379f1a60dbba69844c0a04b3dd86280352736187ceMikael HallendalBusRegistry* bus_registry_ref             (BusRegistry                 *registry);
386be547d32f018c23ba56426a0bccd08baa2cf440Havoc Penningtonvoid         bus_registry_unref           (BusRegistry                 *registry);
396be547d32f018c23ba56426a0bccd08baa2cf440Havoc PenningtonBusService*  bus_registry_lookup          (BusRegistry                 *registry,
406be547d32f018c23ba56426a0bccd08baa2cf440Havoc Pennington                                           const DBusString            *service_name);
416be547d32f018c23ba56426a0bccd08baa2cf440Havoc PenningtonBusService*  bus_registry_ensure          (BusRegistry                 *registry,
426be547d32f018c23ba56426a0bccd08baa2cf440Havoc Pennington                                           const DBusString            *service_name,
431a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (J                                           DBusConnection              *owner_connection_if_created,
441a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (J					   dbus_uint32_t                flags,
456be547d32f018c23ba56426a0bccd08baa2cf440Havoc Pennington                                           BusTransaction              *transaction,
466be547d32f018c23ba56426a0bccd08baa2cf440Havoc Pennington                                           DBusError                   *error);
476be547d32f018c23ba56426a0bccd08baa2cf440Havoc Penningtonvoid         bus_registry_foreach         (BusRegistry                 *registry,
486be547d32f018c23ba56426a0bccd08baa2cf440Havoc Pennington                                           BusServiceForeachFunction    function,
496be547d32f018c23ba56426a0bccd08baa2cf440Havoc Pennington                                           void                        *data);
506be547d32f018c23ba56426a0bccd08baa2cf440Havoc Penningtondbus_bool_t  bus_registry_list_services   (BusRegistry                 *registry,
516be547d32f018c23ba56426a0bccd08baa2cf440Havoc Pennington                                           char                      ***listp,
526be547d32f018c23ba56426a0bccd08baa2cf440Havoc Pennington                                           int                         *array_len);
536be547d32f018c23ba56426a0bccd08baa2cf440Havoc Penningtondbus_bool_t  bus_registry_acquire_service (BusRegistry                 *registry,
546be547d32f018c23ba56426a0bccd08baa2cf440Havoc Pennington                                           DBusConnection              *connection,
556be547d32f018c23ba56426a0bccd08baa2cf440Havoc Pennington                                           const DBusString            *service_name,
566be547d32f018c23ba56426a0bccd08baa2cf440Havoc Pennington                                           dbus_uint32_t                flags,
576be547d32f018c23ba56426a0bccd08baa2cf440Havoc Pennington                                           dbus_uint32_t               *result,
586be547d32f018c23ba56426a0bccd08baa2cf440Havoc Pennington                                           BusTransaction              *transaction,
596be547d32f018c23ba56426a0bccd08baa2cf440Havoc Pennington                                           DBusError                   *error);
60b5e4d26adec0a9ec37a1bae7aeb5a68344b78ebfRobert McQueendbus_bool_t  bus_registry_release_service (BusRegistry                 *registry,
61b5e4d26adec0a9ec37a1bae7aeb5a68344b78ebfRobert McQueen                                           DBusConnection              *connection,
62b5e4d26adec0a9ec37a1bae7aeb5a68344b78ebfRobert McQueen                                           const DBusString            *service_name,
63b5e4d26adec0a9ec37a1bae7aeb5a68344b78ebfRobert McQueen                                           dbus_uint32_t               *result,
64b5e4d26adec0a9ec37a1bae7aeb5a68344b78ebfRobert McQueen                                           BusTransaction              *transaction,
65b5e4d26adec0a9ec37a1bae7aeb5a68344b78ebfRobert McQueen                                           DBusError                   *error);
66cdac3e058b922431f387351fd8ebf60a764485d1Colin Waltersdbus_bool_t  bus_registry_set_service_context_table (BusRegistry           *registry,
67cdac3e058b922431f387351fd8ebf60a764485d1Colin Walters						     DBusHashTable         *table);
686ecc14ffabcffb69aa938a67940db48272e05046Havoc Pennington
691a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (JBusService*     bus_service_ref                       (BusService     *service);
701a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (Jvoid            bus_service_unref                     (BusService     *service);
711a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (Jdbus_bool_t     bus_service_add_owner                 (BusService     *service,
721a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (J                                                       DBusConnection *connection,
731a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (J						       dbus_uint32_t   flags,
741a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (J                                                       BusTransaction *transaction,
751a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (J                                                       DBusError      *error);
761a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (Jdbus_bool_t     bus_service_swap_owner                (BusService     *service,
771a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (J                                                       DBusConnection *connection,
781a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (J                                                       BusTransaction *transaction,
791a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (J                                                       DBusError      *error);
801a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (Jdbus_bool_t     bus_service_remove_owner              (BusService     *service,
811a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (J                                                       DBusConnection *connection,
821a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (J                                                       BusTransaction *transaction,
831a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (J                                                       DBusError      *error);
841a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (Jdbus_bool_t     bus_service_has_owner                 (BusService     *service,
851a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (J                                                       DBusConnection *connection);
861a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (JBusOwner*       bus_service_get_primary_owner         (BusService     *service);
871a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (Jdbus_bool_t     bus_service_get_allow_replacement     (BusService     *service);
881a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (Jconst char*     bus_service_get_name                  (BusService     *service);
891a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (Jdbus_bool_t     bus_service_list_queued_owners        (BusService *service,
901a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (J                                                       DBusList  **return_list,
911a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (J                                                       DBusError  *error);
92a16e83f45d33ae5f3bd5966416c57c8ad4448ae8Anders Carlsson
931a163e765c0d6a86d2aa2ffb18a1d7e29a052e7aJohn (JDBusConnection* bus_service_get_primary_owners_connection (BusService     *service);
9496a9f80300b7794475a5451a60a07555ea3526beHavoc Pennington#endif /* BUS_SERVICES_H */
95