const void *data);
/* standard methods calls on objects */
+ EAPI DBusPendingCall *e_dbus_introspect(E_DBus_Connection *conn, const char *bus,
+ const char *object_path, E_DBus_Method_Return_Cb cb_return, const void *data);
EAPI DBusPendingCall *e_dbus_peer_ping(E_DBus_Connection *conn, const char *destination,
const char *path, E_DBus_Method_Return_Cb cb_return,
const void *data);
return ret;
}
+/**
+ * Calls the Introspect method on a given bus and object path.
+ * @param conn The dbus connection to use
+ * @param bus The bus to call the method on
+ * @param object_path The path of the bus to call on
+ * @param cb_return The callback to call on reply from dbus
+ * @param data The data to associate with the callback
+ * @return A pending dbus call
+ */
+EAPI DBusPendingCall *
+e_dbus_introspect(E_DBus_Connection *conn, const char *bus, const char *object_path, E_DBus_Method_Return_Cb cb_return, const void *data)
+{
+ DBusPendingCall *ret;
+ DBusMessage *msg;
+
+ if (!conn)
+ {
+ ERR("E-dbus Error: no connection for use with introspection");
+ return NULL;
+ }
+
+ msg = dbus_message_new_method_call
+ (bus, object_path, "org.freedesktop.DBus.Introspectable", "Introspect");
+ if (!msg)
+ return NULL;
+ ret = e_dbus_message_send(conn, msg, cb_return, -1, (void *)data);
+ dbus_message_unref(msg);
+ return ret;
+}
+
EAPI DBusPendingCall *
e_dbus_request_name(E_DBus_Connection *conn, const char *name, unsigned int flags, E_DBus_Method_Return_Cb cb_return, const void *data)
{