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;
};
struct _EmpathyTpTubeClass {
};
GType empathy_tp_tube_get_type (void) G_GNUC_CONST;
-EmpathyTpTube *empathy_tp_tube_new (TpChannel *channel, guint tube_id);
-void empathy_tp_tube_accept_ipv4_stream_tube (EmpathyTpTube *tube);
-void empathy_tp_tube_accept_unix_stream_tube (EmpathyTpTube *tube);
-void empathy_tp_tube_get_ipv4_socket (EmpathyTpTube *tube, gchar **hostname,
- guint *port);
-gchar * empathy_tp_tube_get_unix_socket (EmpathyTpTube *tube);
-
-void empathy_offer_ipv4_stream_tube (EmpathyContact *contact,
- const gchar *hostname, guint port, const gchar *service);
+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, 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, 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