DBusError *error);
dbus_bool_t
+bus_driver_send_connection_overflow (DBusConnection *connection,
+ BusTransaction *transaction,
+ DBusError *error)
+{
+ DBusMessage *message;
+ dbus_bool_t retval;
+ const char *name;
+
+ _DBUS_ASSERT_ERROR_IS_CLEAR (error);
+
+ message = dbus_message_new_signal (DBUS_PATH_DBUS,
+ DBUS_INTERFACE_TIZEN,
+ DBUS_TIZEN_CONNECTION_OVERFLOW_SIGNAL);
+
+ if (message == NULL)
+ {
+ BUS_SET_OOM (error);
+ return FALSE;
+ }
+
+ if (!dbus_message_set_sender (message, DBUS_SERVICE_DBUS))
+ goto oom;
+
+ name = bus_connection_get_name (connection);
+
+ if (!dbus_message_append_args (message,
+ DBUS_TYPE_STRING, &name,
+ DBUS_TYPE_INVALID))
+ goto oom;
+
+ _dbus_assert (dbus_message_has_signature (message, "s"));
+
+ if (!bus_transaction_capture (transaction, NULL, NULL, message))
+ goto oom;
+
+ switch (bus_dispatch_matches (transaction, NULL, NULL, message, NULL, error))
+ {
+ case BUS_RESULT_TRUE:
+ retval = TRUE;
+ break;
+ case BUS_RESULT_FALSE:
+ retval = FALSE;
+ break;
+ case BUS_RESULT_LATER:
+ default:
+ /* should never happen */
+ _dbus_assert_not_reached ("bus_dispatch_matches returned BUS_RESULT_LATER unexpectedly");
+ retval = FALSE;
+ break;
+ }
+ dbus_message_unref (message);
+
+ return retval;
+
+ oom:
+ dbus_message_unref (message);
+ BUS_SET_OOM (error);
+ return FALSE;
+}
+
+dbus_bool_t
bus_driver_send_service_owner_changed (const char *service_name,
const char *old_owner,
const char *new_owner,
DBusMessage *message,
DBusError *error);
+dbus_bool_t bus_driver_send_connection_overflow (DBusConnection *connection,
+ BusTransaction *transaction,
+ DBusError *error);
+
#endif /* BUS_DRIVER_H */
/** The interface supported by most dbus peers */
#define DBUS_INTERFACE_PEER "org.freedesktop.DBus.Peer"
+/** The interface for Tizen extensions */
+#define DBUS_INTERFACE_TIZEN "org.tizen.DBus"
+#define DBUS_TIZEN_CONNECTION_OVERFLOW_SIGNAL "ConnectionOverflow"
+
/** This is a special interface whose methods can only be invoked
* by the local implementation (messages from remote apps aren't
* allowed to specify this interface).