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