typedef struct _EmpathyTpTube EmpathyTpTube;
typedef struct _EmpathyTpTubeClass EmpathyTpTubeClass;
+typedef struct {
+ TpSocketAddressType type;
+ union {
+ struct socket_address_t {
+ GArray *path;
+ } socket;
+ struct inet_address_t {
+ gchar *hostname;
+ guint port;
+ } inet;
+ } a;
+} EmpathyTpTubeAddress;
+
struct _EmpathyTpTube {
GObject parent;
gpointer priv;
};
GType empathy_tp_tube_get_type (void) G_GNUC_CONST;
-EmpathyTpTube *empathy_tp_tube_new (TpChannel *channel, guint tube_id);
+EmpathyTpTube *empathy_tp_tube_new (TpChannel *channel);
EmpathyTpTube *empathy_tp_tube_new_stream_tube (EmpathyContact *contact,
TpSocketAddressType type, const gchar *hostname, guint port,
- const gchar *service);
+ const gchar *service, GHashTable *parameters);
+
+typedef void (EmpatyTpTubeAcceptStreamTubeCb) (EmpathyTpTube *tube,
+ const EmpathyTpTubeAddress *address, const GError *error,
+ gpointer user_data);
+
void empathy_tp_tube_accept_stream_tube (EmpathyTpTube *tube,
- TpSocketAddressType type);
-void empathy_tp_tube_get_socket (EmpathyTpTube *tube, gchar **hostname,
- guint *port);
+ TpSocketAddressType type, EmpatyTpTubeAcceptStreamTubeCb *callback,
+ gpointer user_data);
+
+typedef void (EmpathyTpTubeReadyCb)
+ (EmpathyTpTube *tube, const GError *error, gpointer user_data,
+ GObject *weak_object);
+
+void empathy_tp_tube_call_when_ready (EmpathyTpTube *tube,
+ EmpathyTpTubeReadyCb *callback, gpointer user_data, GDestroyNotify destroy,
+ GObject *weak_object);
G_END_DECLS