dbus-daemon: send signals on connection overflow
[platform/upstream/dbus.git] / bus / connection.h
index c936021..6da99a3 100644 (file)
@@ -31,6 +31,7 @@
 typedef dbus_bool_t (* BusConnectionForeachFunction) (DBusConnection *connection, 
                                                       void           *data);
 
+DBusLoop*       bus_connection_get_loop           (DBusConnection *connection);
 
 BusConnections* bus_connections_new               (BusContext                   *context);
 BusConnections* bus_connections_ref               (BusConnections               *connections);
@@ -45,6 +46,8 @@ void            bus_connections_foreach_active    (BusConnections
                                                    void                         *data);
 BusContext*     bus_connections_get_context       (BusConnections               *connections);
 void            bus_connections_increment_stamp   (BusConnections               *connections);
+dbus_bool_t     bus_connections_reload_policy     (BusConnections               *connections,
+                                                   DBusError                    *error);
 BusContext*     bus_connection_get_context        (DBusConnection               *connection);
 BusConnections* bus_connection_get_connections    (DBusConnection               *connection);
 BusRegistry*    bus_connection_get_registry       (DBusConnection               *connection);
@@ -52,8 +55,11 @@ BusActivation*  bus_connection_get_activation     (DBusConnection
 BusMatchmaker*  bus_connection_get_matchmaker     (DBusConnection               *connection);
 const char *    bus_connection_get_loginfo        (DBusConnection        *connection);
 BusSELinuxID*   bus_connection_get_selinux_id     (DBusConnection               *connection);
+BusAppArmorConfinement* bus_connection_dup_apparmor_confinement (DBusConnection *connection);
 dbus_bool_t     bus_connections_check_limits      (BusConnections               *connections,
                                                    DBusConnection               *requesting_completion,
+                                                   const char                  **limit_name_out,
+                                                   int                          *limit_out,
                                                    DBusError                    *error);
 void            bus_connections_expire_incomplete (BusConnections               *connections);
 
@@ -79,6 +85,23 @@ dbus_bool_t bus_connection_preallocate_oom_error (DBusConnection *connection);
 void        bus_connection_send_oom_error        (DBusConnection *connection,
                                                   DBusMessage    *in_reply_to);
 
+dbus_bool_t         bus_connection_has_deferred_messages    (DBusConnection *connection);
+dbus_bool_t         bus_connection_queue_deferred_message   (DBusConnection *connection,
+                                                             BusDeferredMessage *message,
+                                                             dbus_bool_t prepend);
+BusDeferredMessage *bus_connection_pop_deferred_message     (DBusConnection *connection);
+dbus_bool_t         bus_connection_putback_deferred_message (DBusConnection *connection,
+                                                             BusDeferredMessage *message);
+void                bus_connection_remove_deferred_message  (DBusConnection *connection,
+                                                             BusDeferredMessage *message);
+void                bus_connection_dispatch_deferred        (DBusConnection *connection);
+void                bus_connection_clear_deferred_messages  (DBusConnection *connection);
+
+/* called by policy.c */
+dbus_bool_t bus_connection_is_service_owner_by_prefix (DBusConnection *connection,
+                                                       const char *name_prefix);
+const DBusList *bus_connection_get_owned_services_list (DBusConnection *connection);
+
 /* called by signals.c */
 dbus_bool_t bus_connection_add_match_rule      (DBusConnection *connection,
                                                 BusMatchRule   *rule);
@@ -114,16 +137,33 @@ dbus_bool_t      bus_connection_get_unix_groups  (DBusConnection       *connecti
                                                   DBusError            *error);
 BusClientPolicy* bus_connection_get_policy  (DBusConnection       *connection);
 
+dbus_bool_t bus_connection_is_monitor (DBusConnection  *connection);
+dbus_bool_t bus_connection_be_monitor (DBusConnection  *connection,
+                                       BusTransaction  *transaction,
+                                       DBusList       **rules,
+                                       DBusError       *error);
+#ifdef DBUS_ENABLE_CYNARA
+const char *bus_connection_get_cynara_session_id (DBusConnection *connection);
+#endif
+
 /* transaction API so we can send or not send a block of messages as a whole */
 
 typedef void (* BusTransactionCancelFunction) (void *data);
 
 BusTransaction* bus_transaction_new              (BusContext                   *context);
 BusContext*     bus_transaction_get_context      (BusTransaction               *transaction);
-BusConnections* bus_transaction_get_connections  (BusTransaction               *transaction);
 dbus_bool_t     bus_transaction_send             (BusTransaction               *transaction,
                                                   DBusConnection               *connection,
+                                                  DBusMessage                  *message,
+                                                  dbus_bool_t                   deferred_dispatch);
+dbus_bool_t     bus_transaction_capture          (BusTransaction               *transaction,
+                                                  DBusConnection               *connection,
+                                                  DBusConnection               *addressed_recipient,
                                                   DBusMessage                  *message);
+dbus_bool_t     bus_transaction_capture_error_reply (BusTransaction            *transaction,
+                                                  DBusConnection               *addressed_recipient,
+                                                  const DBusError              *error,
+                                                  DBusMessage                  *in_reply_to);
 dbus_bool_t     bus_transaction_send_from_driver (BusTransaction               *transaction,
                                                   DBusConnection               *connection,
                                                   DBusMessage                  *message);
@@ -133,14 +173,16 @@ dbus_bool_t     bus_transaction_send_error_reply (BusTransaction               *
                                                   DBusMessage                  *in_reply_to);
 void            bus_transaction_cancel_and_free  (BusTransaction               *transaction);
 void            bus_transaction_execute_and_free (BusTransaction               *transaction);
+DBusList *      bus_transaction_copy_connections (BusTransaction               *transaction);
 dbus_bool_t     bus_transaction_add_cancel_hook  (BusTransaction               *transaction,
                                                   BusTransactionCancelFunction  cancel_function,
                                                   void                         *data,
                                                   DBusFreeFunction              free_data_function);
 
-/* called by stats.c, only present if DBUS_ENABLE_STATS */
 int bus_connections_get_n_active                  (BusConnections *connections);
 int bus_connections_get_n_incomplete              (BusConnections *connections);
+
+/* called by stats.c, only present if DBUS_ENABLE_STATS */
 int bus_connections_get_total_match_rules         (BusConnections *connections);
 int bus_connections_get_peak_match_rules          (BusConnections *connections);
 int bus_connections_get_peak_match_rules_per_conn (BusConnections *connections);
@@ -151,4 +193,7 @@ int bus_connections_get_peak_bus_names_per_conn   (BusConnections *connections);
 int bus_connection_get_peak_match_rules           (DBusConnection *connection);
 int bus_connection_get_peak_bus_names             (DBusConnection *connection);
 
+int bus_connection_get_n_pending_replies          (DBusConnection *connection);
+int bus_connection_get_peak_pending_replies      (DBusConnection *connection);
+
 #endif /* BUS_CONNECTION_H */