00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef BUS_BUS_H
00025 #define BUS_BUS_H
00026
00027 #include <config.h>
00028
00029 #include <dbus/dbus.h>
00030 #include <dbus/dbus-string.h>
00031 #include <dbus/dbus-mainloop.h>
00032 #include <dbus/dbus-userdb.h>
00033
00034 typedef struct BusActivation BusActivation;
00035 typedef struct BusConnections BusConnections;
00036 typedef struct BusContext BusContext;
00037 typedef struct BusPolicy BusPolicy;
00038 typedef struct BusClientPolicy BusClientPolicy;
00039 typedef struct BusPolicyRule BusPolicyRule;
00040 typedef struct BusRegistry BusRegistry;
00041 typedef struct BusService BusService;
00042 typedef struct BusTransaction BusTransaction;
00043 typedef struct BusMatchmaker BusMatchmaker;
00044 typedef struct BusMatchRule BusMatchRule;
00045
00046 typedef struct
00047 {
00048 long max_incoming_bytes;
00049 long max_outgoing_bytes;
00050 long max_message_size;
00051 int activation_timeout;
00052 int auth_timeout;
00053 int max_completed_connections;
00054 int max_incomplete_connections;
00055 int max_connections_per_user;
00056 int max_pending_activations;
00057 int max_services_per_connection;
00058 int max_match_rules_per_connection;
00059 } BusLimits;
00060
00061 BusContext* bus_context_new (const DBusString *config_file,
00062 dbus_bool_t force_fork,
00063 int print_addr_fd,
00064 int print_pid_fd,
00065 DBusError *error);
00066 void bus_context_shutdown (BusContext *context);
00067 void bus_context_ref (BusContext *context);
00068 void bus_context_unref (BusContext *context);
00069 const char* bus_context_get_type (BusContext *context);
00070 const char* bus_context_get_address (BusContext *context);
00071 BusRegistry* bus_context_get_registry (BusContext *context);
00072 BusConnections* bus_context_get_connections (BusContext *context);
00073 BusActivation* bus_context_get_activation (BusContext *context);
00074 BusMatchmaker* bus_context_get_matchmaker (BusContext *context);
00075 DBusLoop* bus_context_get_loop (BusContext *context);
00076 DBusUserDatabase* bus_context_get_user_database (BusContext *context);
00077 dbus_bool_t bus_context_allow_user (BusContext *context,
00078 unsigned long uid);
00079 BusClientPolicy* bus_context_create_client_policy (BusContext *context,
00080 DBusConnection *connection,
00081 DBusError *error);
00082 int bus_context_get_activation_timeout (BusContext *context);
00083 int bus_context_get_auth_timeout (BusContext *context);
00084 int bus_context_get_max_completed_connections (BusContext *context);
00085 int bus_context_get_max_incomplete_connections (BusContext *context);
00086 int bus_context_get_max_connections_per_user (BusContext *context);
00087 int bus_context_get_max_pending_activations (BusContext *context);
00088 int bus_context_get_max_services_per_connection (BusContext *context);
00089 int bus_context_get_max_match_rules_per_connection (BusContext *context);
00090 dbus_bool_t bus_context_check_security_policy (BusContext *context,
00091 DBusConnection *sender,
00092 DBusConnection *addressed_recipient,
00093 DBusConnection *proposed_recipient,
00094 DBusMessage *message,
00095 DBusError *error);
00096
00097
00098 #endif