unsigned long *uid);
typedef dbus_bool_t (*DBusTransportGetUnixPIDFunction) (DBusTransport *transport,
unsigned long *uid);
+typedef DBusMessage * (*DBusTransportSendSyncCallFunction) (DBusTransport *transport,
+ DBusMessage *message);
typedef dbus_bool_t (*DBusTransportAssureProtocolFunction) (DBusMessage **message);
/**
* Object representing a transport such as a socket.
DBusTransportGetUnixUserFunction get_unix_user_function; /**< Function for getting Unix user ID */
DBusTransportGetUnixPIDFunction get_unix_process_id_function; /**< Function for getting Unix process ID */
DBusTransportAssureProtocolFunction assure_protocol_function; /**< Function for converting messages, if needed */
+ DBusTransportSendSyncCallFunction send_sync_call_function; /**< Function for sending synchronous calls */
int protocol; /**< type of protocol for this transport */
unsigned int disconnected : 1; /**< #TRUE if we are disconnected. */
DBusTransportGetUnixUserFunction function);
void _dbus_transport_set_get_unix_process_id_function (DBusTransport *transport,
DBusTransportGetUnixPIDFunction function);
+void _dbus_transport_set_send_sync_call_function (DBusTransport *transport,
+ DBusTransportSendSyncCallFunction function);
void _dbus_transport_set_assure_protocol_function (DBusTransport *transport,
DBusTransportAssureProtocolFunction function,
int protocol);
transport->get_unix_user_function = _dbus_transport_default_get_unix_user;
transport->get_unix_process_id_function = _dbus_transport_default_get_unix_process_id;
transport->assure_protocol_function = _dbus_message_assure_dbus1;
+ transport->send_sync_call_function = NULL;
transport->protocol = DBUS_MAJOR_PROTOCOL_VERSION;
return TRUE;
return transport->assure_protocol_function (message);
}
+DBusMessage *
+_dbus_transport_send_sync_call (DBusTransport *transport,
+ DBusMessage **message)
+{
+ return transport->send_sync_call_function (transport, message);
+}
+
int
_dbus_transport_get_protocol (DBusTransport *transport)
{
}
/**
+ * Returns TRUE if the transport supports sending synchronous calls.
+ *
+ * @param transport the transport
+ * @returns #TRUE if TRUE it is possible to send sync call across the transport.
+ */
+dbus_bool_t
+_dbus_transport_can_send_sync_call (DBusTransport *transport)
+{
+ if (transport->send_sync_call_function)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+/**
* Gets the address of a transport. It will be
* #NULL for a server-side transport.
*
}
/**
+ * Sets a function used to send synchronous calls.
+ *
+ * @param transport the transport
+ * @param function the getter function
+ */
+void
+_dbus_transport_set_send_sync_call_function (DBusTransport *transport,
+ DBusTransportSendSyncCallFunction function)
+{
+ transport->send_sync_call_function = function;
+}
+
+/**
* Sets a function used to assure that messages have correct protocol version
*
* @param transport the transport
dbus_bool_t _dbus_transport_try_to_authenticate (DBusTransport *transport);
dbus_bool_t _dbus_transport_get_is_anonymous (DBusTransport *transport);
dbus_bool_t _dbus_transport_can_pass_unix_fd (DBusTransport *transport);
+dbus_bool_t _dbus_transport_can_send_sync_call (DBusTransport *transport);
const char* _dbus_transport_get_address (DBusTransport *transport);
const char* _dbus_transport_get_server_id (DBusTransport *transport);
dbus_bool_t _dbus_transport_assure_protocol_version (DBusTransport *transport,
DBusMessage **message);
+DBusMessage* _dbus_transport_send_sync_call (DBusTransport *transport,
+ DBusMessage **message);
/* if DBUS_ENABLE_STATS */