|
1 /* -*- mode: C; c-file-style: "gnu" -*- */ |
|
2 /* bus.h message bus context object |
|
3 * |
|
4 * Copyright (C) 2003 Red Hat, Inc. |
|
5 * Portion Copyright © 2008 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. |
|
6 * Licensed under the Academic Free License version 2.1 |
|
7 * |
|
8 * This program is free software; you can redistribute it and/or modify |
|
9 * it under the terms of the GNU General Public License as published by |
|
10 * the Free Software Foundation; either version 2 of the License, or |
|
11 * (at your option) any later version. |
|
12 * |
|
13 * This program is distributed in the hope that it will be useful, |
|
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
16 * GNU General Public License for more details. |
|
17 * |
|
18 * You should have received a copy of the GNU General Public License |
|
19 * along with this program; if not, write to the Free Software |
|
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
21 * |
|
22 */ |
|
23 |
|
24 #ifndef BUS_BUS_H |
|
25 #define BUS_BUS_H |
|
26 |
|
27 #ifndef __SYMBIAN32__ |
|
28 #include <config.h> |
|
29 #else |
|
30 #include "config.h" |
|
31 #endif //__SYMBAIN32__ |
|
32 |
|
33 #include <dbus/dbus.h> |
|
34 #ifndef __SYMBIAN32__ |
|
35 #include <dbus/dbus-string.h> |
|
36 #include <dbus/dbus-mainloop.h> |
|
37 #include <dbus/dbus-userdb.h> |
|
38 #else |
|
39 #include "dbus-string.h" |
|
40 #include "dbus-mainloop.h" |
|
41 #include "dbus-userdb.h" |
|
42 #endif //__SYMBAIN32__ |
|
43 |
|
44 typedef struct BusActivation BusActivation; |
|
45 typedef struct BusConnections BusConnections; |
|
46 typedef struct BusContext BusContext; |
|
47 typedef struct BusPolicy BusPolicy; |
|
48 typedef struct BusClientPolicy BusClientPolicy; |
|
49 typedef struct BusPolicyRule BusPolicyRule; |
|
50 typedef struct BusRegistry BusRegistry; |
|
51 typedef struct BusSELinuxID BusSELinuxID; |
|
52 typedef struct BusService BusService; |
|
53 typedef struct BusOwner BusOwner; |
|
54 typedef struct BusTransaction BusTransaction; |
|
55 typedef struct BusMatchmaker BusMatchmaker; |
|
56 typedef struct BusMatchRule BusMatchRule; |
|
57 |
|
58 typedef struct |
|
59 { |
|
60 long max_incoming_bytes; /**< How many incoming message bytes for a single connection */ |
|
61 long max_outgoing_bytes; /**< How many outgoing bytes can be queued for a single connection */ |
|
62 long max_message_size; /**< Max size of a single message in bytes */ |
|
63 int activation_timeout; /**< How long to wait for an activation to time out */ |
|
64 int auth_timeout; /**< How long to wait for an authentication to time out */ |
|
65 int max_completed_connections; /**< Max number of authorized connections */ |
|
66 int max_incomplete_connections; /**< Max number of incomplete connections */ |
|
67 int max_connections_per_user; /**< Max number of connections auth'd as same user */ |
|
68 int max_pending_activations; /**< Max number of pending activations for the entire bus */ |
|
69 int max_services_per_connection; /**< Max number of owned services for a single connection */ |
|
70 int max_match_rules_per_connection; /**< Max number of match rules for a single connection */ |
|
71 int max_replies_per_connection; /**< Max number of replies that can be pending for each connection */ |
|
72 int reply_timeout; /**< How long to wait before timing out a reply */ |
|
73 } BusLimits; |
|
74 |
|
75 typedef enum |
|
76 { |
|
77 FORK_FOLLOW_CONFIG_FILE, |
|
78 FORK_ALWAYS, |
|
79 FORK_NEVER |
|
80 } ForceForkSetting; |
|
81 |
|
82 BusContext* bus_context_new (const DBusString *config_file, |
|
83 ForceForkSetting force_fork, |
|
84 int print_addr_fd, |
|
85 int print_pid_fd, |
|
86 DBusError *error); |
|
87 dbus_bool_t bus_context_reload_config (BusContext *context, |
|
88 DBusError *error); |
|
89 void bus_context_shutdown (BusContext *context); |
|
90 BusContext* bus_context_ref (BusContext *context); |
|
91 void bus_context_unref (BusContext *context); |
|
92 const char* bus_context_get_type (BusContext *context); |
|
93 const char* bus_context_get_address (BusContext *context); |
|
94 BusRegistry* bus_context_get_registry (BusContext *context); |
|
95 BusConnections* bus_context_get_connections (BusContext *context); |
|
96 BusActivation* bus_context_get_activation (BusContext *context); |
|
97 BusMatchmaker* bus_context_get_matchmaker (BusContext *context); |
|
98 DBusLoop* bus_context_get_loop (BusContext *context); |
|
99 DBusUserDatabase* bus_context_get_user_database (BusContext *context); |
|
100 |
|
101 dbus_bool_t bus_context_allow_user (BusContext *context, |
|
102 unsigned long uid); |
|
103 BusPolicy* bus_context_get_policy (BusContext *context); |
|
104 |
|
105 BusClientPolicy* bus_context_create_client_policy (BusContext *context, |
|
106 DBusConnection *connection, |
|
107 DBusError *error); |
|
108 int bus_context_get_activation_timeout (BusContext *context); |
|
109 int bus_context_get_auth_timeout (BusContext *context); |
|
110 int bus_context_get_max_completed_connections (BusContext *context); |
|
111 int bus_context_get_max_incomplete_connections (BusContext *context); |
|
112 int bus_context_get_max_connections_per_user (BusContext *context); |
|
113 int bus_context_get_max_pending_activations (BusContext *context); |
|
114 int bus_context_get_max_services_per_connection (BusContext *context); |
|
115 int bus_context_get_max_match_rules_per_connection (BusContext *context); |
|
116 int bus_context_get_max_replies_per_connection (BusContext *context); |
|
117 int bus_context_get_reply_timeout (BusContext *context); |
|
118 dbus_bool_t bus_context_check_security_policy (BusContext *context, |
|
119 BusTransaction *transaction, |
|
120 DBusConnection *sender, |
|
121 DBusConnection *addressed_recipient, |
|
122 DBusConnection *proposed_recipient, |
|
123 DBusMessage *message, |
|
124 DBusError *error); |
|
125 |
|
126 #endif /* BUS_BUS_H */ |