/* Generated by dbus-binding-tool; do not edit! */

#include <glib.h>
#include <dbus/dbus-glib.h>

G_BEGIN_DECLS

#ifndef _DBUS_GLIB_ASYNC_DATA_FREE
#define _DBUS_GLIB_ASYNC_DATA_FREE
static
#ifdef G_HAVE_INLINE
inline
#endif
void
_dbus_glib_async_data_free (gpointer stuff)
{
	g_slice_free (DBusGAsyncData, stuff);
}
#endif

#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Type_Tubes
#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Type_Tubes

static
#ifdef G_HAVE_INLINE
inline
#endif
gboolean
tp_chan_type_tubes_get_available_stream_tube_types (DBusGProxy *proxy, GHashTable** OUT_arg0, GError **error)

{
  return dbus_g_proxy_call (proxy, "GetAvailableStreamTubeTypes", error, G_TYPE_INVALID, dbus_g_type_get_map ("GHashTable", G_TYPE_UINT, dbus_g_type_get_collection ("GArray", G_TYPE_UINT)), OUT_arg0, G_TYPE_INVALID);
}

typedef void (*tp_chan_type_tubes_get_available_stream_tube_types_reply) (DBusGProxy *proxy, GHashTable *OUT_arg0, GError *error, gpointer userdata);

static void
tp_chan_type_tubes_get_available_stream_tube_types_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
{
  DBusGAsyncData *data = (DBusGAsyncData*) user_data;
  GError *error = NULL;
  GHashTable* OUT_arg0;
  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_map ("GHashTable", G_TYPE_UINT, dbus_g_type_get_collection ("GArray", G_TYPE_UINT)), &OUT_arg0, G_TYPE_INVALID);
  (*(tp_chan_type_tubes_get_available_stream_tube_types_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
  return;
}

static
#ifdef G_HAVE_INLINE
inline
#endif
DBusGProxyCall*
tp_chan_type_tubes_get_available_stream_tube_types_async (DBusGProxy *proxy, tp_chan_type_tubes_get_available_stream_tube_types_reply callback, gpointer userdata)

{
  DBusGAsyncData *stuff;
  stuff = g_slice_new (DBusGAsyncData);
  stuff->cb = G_CALLBACK (callback);
  stuff->userdata = userdata;
  return dbus_g_proxy_begin_call (proxy, "GetAvailableStreamTubeTypes", tp_chan_type_tubes_get_available_stream_tube_types_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_INVALID);
}
static
#ifdef G_HAVE_INLINE
inline
#endif
gboolean
tp_chan_type_tubes_get_available_tube_types (DBusGProxy *proxy, GArray** OUT_arg0, GError **error)

{
  return dbus_g_proxy_call (proxy, "GetAvailableTubeTypes", error, G_TYPE_INVALID, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), OUT_arg0, G_TYPE_INVALID);
}

typedef void (*tp_chan_type_tubes_get_available_tube_types_reply) (DBusGProxy *proxy, GArray *OUT_arg0, GError *error, gpointer userdata);

static void
tp_chan_type_tubes_get_available_tube_types_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
{
  DBusGAsyncData *data = (DBusGAsyncData*) user_data;
  GError *error = NULL;
  GArray* OUT_arg0;
  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), &OUT_arg0, G_TYPE_INVALID);
  (*(tp_chan_type_tubes_get_available_tube_types_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
  return;
}

static
#ifdef G_HAVE_INLINE
inline
#endif
DBusGProxyCall*
tp_chan_type_tubes_get_available_tube_types_async (DBusGProxy *proxy, tp_chan_type_tubes_get_available_tube_types_reply callback, gpointer userdata)

{
  DBusGAsyncData *stuff;
  stuff = g_slice_new (DBusGAsyncData);
  stuff->cb = G_CALLBACK (callback);
  stuff->userdata = userdata;
  return dbus_g_proxy_begin_call (proxy, "GetAvailableTubeTypes", tp_chan_type_tubes_get_available_tube_types_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_INVALID);
}
static
#ifdef G_HAVE_INLINE
inline
#endif
gboolean
tp_chan_type_tubes_list_tubes (DBusGProxy *proxy, GPtrArray** OUT_arg0, GError **error)

{
  return dbus_g_proxy_call (proxy, "ListTubes", error, G_TYPE_INVALID, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), G_TYPE_UINT, G_TYPE_INVALID)), OUT_arg0, G_TYPE_INVALID);
}

typedef void (*tp_chan_type_tubes_list_tubes_reply) (DBusGProxy *proxy, GPtrArray *OUT_arg0, GError *error, gpointer userdata);

static void
tp_chan_type_tubes_list_tubes_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
{
  DBusGAsyncData *data = (DBusGAsyncData*) user_data;
  GError *error = NULL;
  GPtrArray* OUT_arg0;
  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), G_TYPE_UINT, G_TYPE_INVALID)), &OUT_arg0, G_TYPE_INVALID);
  (*(tp_chan_type_tubes_list_tubes_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
  return;
}

static
#ifdef G_HAVE_INLINE
inline
#endif
DBusGProxyCall*
tp_chan_type_tubes_list_tubes_async (DBusGProxy *proxy, tp_chan_type_tubes_list_tubes_reply callback, gpointer userdata)

{
  DBusGAsyncData *stuff;
  stuff = g_slice_new (DBusGAsyncData);
  stuff->cb = G_CALLBACK (callback);
  stuff->userdata = userdata;
  return dbus_g_proxy_begin_call (proxy, "ListTubes", tp_chan_type_tubes_list_tubes_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_INVALID);
}
static
#ifdef G_HAVE_INLINE
inline
#endif
gboolean
tp_chan_type_tubes_offer_dbus_tube (DBusGProxy *proxy, const char * IN_service, const GHashTable* IN_parameters, guint* OUT_arg2, GError **error)

{
  return dbus_g_proxy_call (proxy, "OfferDBusTube", error, G_TYPE_STRING, IN_service, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), IN_parameters, G_TYPE_INVALID, G_TYPE_UINT, OUT_arg2, G_TYPE_INVALID);
}

typedef void (*tp_chan_type_tubes_offer_dbus_tube_reply) (DBusGProxy *proxy, guint OUT_arg2, GError *error, gpointer userdata);

static void
tp_chan_type_tubes_offer_dbus_tube_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
{
  DBusGAsyncData *data = (DBusGAsyncData*) user_data;
  GError *error = NULL;
  guint OUT_arg2;
  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_UINT, &OUT_arg2, G_TYPE_INVALID);
  (*(tp_chan_type_tubes_offer_dbus_tube_reply)data->cb) (proxy, OUT_arg2, error, data->userdata);
  return;
}

static
#ifdef G_HAVE_INLINE
inline
#endif
DBusGProxyCall*
tp_chan_type_tubes_offer_dbus_tube_async (DBusGProxy *proxy, const char * IN_service, const GHashTable* IN_parameters, tp_chan_type_tubes_offer_dbus_tube_reply callback, gpointer userdata)

{
  DBusGAsyncData *stuff;
  stuff = g_slice_new (DBusGAsyncData);
  stuff->cb = G_CALLBACK (callback);
  stuff->userdata = userdata;
  return dbus_g_proxy_begin_call (proxy, "OfferDBusTube", tp_chan_type_tubes_offer_dbus_tube_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_STRING, IN_service, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), IN_parameters, G_TYPE_INVALID);
}
static
#ifdef G_HAVE_INLINE
inline
#endif
gboolean
tp_chan_type_tubes_offer_stream_tube (DBusGProxy *proxy, const char * IN_service, const GHashTable* IN_parameters, const guint IN_address_type, const GValue* IN_address, const guint IN_access_control, const GValue* IN_access_control_param, guint* OUT_arg6, GError **error)

{
  return dbus_g_proxy_call (proxy, "OfferStreamTube", error, G_TYPE_STRING, IN_service, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), IN_parameters, G_TYPE_UINT, IN_address_type, G_TYPE_VALUE, IN_address, G_TYPE_UINT, IN_access_control, G_TYPE_VALUE, IN_access_control_param, G_TYPE_INVALID, G_TYPE_UINT, OUT_arg6, G_TYPE_INVALID);
}

typedef void (*tp_chan_type_tubes_offer_stream_tube_reply) (DBusGProxy *proxy, guint OUT_arg6, GError *error, gpointer userdata);

static void
tp_chan_type_tubes_offer_stream_tube_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
{
  DBusGAsyncData *data = (DBusGAsyncData*) user_data;
  GError *error = NULL;
  guint OUT_arg6;
  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_UINT, &OUT_arg6, G_TYPE_INVALID);
  (*(tp_chan_type_tubes_offer_stream_tube_reply)data->cb) (proxy, OUT_arg6, error, data->userdata);
  return;
}

static
#ifdef G_HAVE_INLINE
inline
#endif
DBusGProxyCall*
tp_chan_type_tubes_offer_stream_tube_async (DBusGProxy *proxy, const char * IN_service, const GHashTable* IN_parameters, const guint IN_address_type, const GValue* IN_address, const guint IN_access_control, const GValue* IN_access_control_param, tp_chan_type_tubes_offer_stream_tube_reply callback, gpointer userdata)

{
  DBusGAsyncData *stuff;
  stuff = g_slice_new (DBusGAsyncData);
  stuff->cb = G_CALLBACK (callback);
  stuff->userdata = userdata;
  return dbus_g_proxy_begin_call (proxy, "OfferStreamTube", tp_chan_type_tubes_offer_stream_tube_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_STRING, IN_service, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), IN_parameters, G_TYPE_UINT, IN_address_type, G_TYPE_VALUE, IN_address, G_TYPE_UINT, IN_access_control, G_TYPE_VALUE, IN_access_control_param, G_TYPE_INVALID);
}
static
#ifdef G_HAVE_INLINE
inline
#endif
gboolean
tp_chan_type_tubes_accept_dbus_tube (DBusGProxy *proxy, const guint IN_id, char ** OUT_address, GError **error)

{
  return dbus_g_proxy_call (proxy, "AcceptDBusTube", error, G_TYPE_UINT, IN_id, G_TYPE_INVALID, G_TYPE_STRING, OUT_address, G_TYPE_INVALID);
}

typedef void (*tp_chan_type_tubes_accept_dbus_tube_reply) (DBusGProxy *proxy, char * OUT_address, GError *error, gpointer userdata);

static void
tp_chan_type_tubes_accept_dbus_tube_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
{
  DBusGAsyncData *data = (DBusGAsyncData*) user_data;
  GError *error = NULL;
  char * OUT_address;
  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_STRING, &OUT_address, G_TYPE_INVALID);
  (*(tp_chan_type_tubes_accept_dbus_tube_reply)data->cb) (proxy, OUT_address, error, data->userdata);
  return;
}

static
#ifdef G_HAVE_INLINE
inline
#endif
DBusGProxyCall*
tp_chan_type_tubes_accept_dbus_tube_async (DBusGProxy *proxy, const guint IN_id, tp_chan_type_tubes_accept_dbus_tube_reply callback, gpointer userdata)

{
  DBusGAsyncData *stuff;
  stuff = g_slice_new (DBusGAsyncData);
  stuff->cb = G_CALLBACK (callback);
  stuff->userdata = userdata;
  return dbus_g_proxy_begin_call (proxy, "AcceptDBusTube", tp_chan_type_tubes_accept_dbus_tube_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_UINT, IN_id, G_TYPE_INVALID);
}
static
#ifdef G_HAVE_INLINE
inline
#endif
gboolean
tp_chan_type_tubes_accept_stream_tube (DBusGProxy *proxy, const guint IN_id, const guint IN_address_type, const guint IN_access_control, const GValue* IN_access_control_param, GValue* OUT_address, GError **error)

{
  return dbus_g_proxy_call (proxy, "AcceptStreamTube", error, G_TYPE_UINT, IN_id, G_TYPE_UINT, IN_address_type, G_TYPE_UINT, IN_access_control, G_TYPE_VALUE, IN_access_control_param, G_TYPE_INVALID, G_TYPE_VALUE, OUT_address, G_TYPE_INVALID);
}

typedef void (*tp_chan_type_tubes_accept_stream_tube_reply) (DBusGProxy *proxy, GValue OUT_address, GError *error, gpointer userdata);

static void
tp_chan_type_tubes_accept_stream_tube_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
{
  DBusGAsyncData *data = (DBusGAsyncData*) user_data;
  GError *error = NULL;
  GValue OUT_address = { 0, };
  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_VALUE, &OUT_address, G_TYPE_INVALID);
  (*(tp_chan_type_tubes_accept_stream_tube_reply)data->cb) (proxy, OUT_address, error, data->userdata);
  return;
}

static
#ifdef G_HAVE_INLINE
inline
#endif
DBusGProxyCall*
tp_chan_type_tubes_accept_stream_tube_async (DBusGProxy *proxy, const guint IN_id, const guint IN_address_type, const guint IN_access_control, const GValue* IN_access_control_param, tp_chan_type_tubes_accept_stream_tube_reply callback, gpointer userdata)

{
  DBusGAsyncData *stuff;
  stuff = g_slice_new (DBusGAsyncData);
  stuff->cb = G_CALLBACK (callback);
  stuff->userdata = userdata;
  return dbus_g_proxy_begin_call (proxy, "AcceptStreamTube", tp_chan_type_tubes_accept_stream_tube_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_UINT, IN_id, G_TYPE_UINT, IN_address_type, G_TYPE_UINT, IN_access_control, G_TYPE_VALUE, IN_access_control_param, G_TYPE_INVALID);
}
static
#ifdef G_HAVE_INLINE
inline
#endif
gboolean
tp_chan_type_tubes_close_tube (DBusGProxy *proxy, const guint IN_id, GError **error)

{
  return dbus_g_proxy_call (proxy, "CloseTube", error, G_TYPE_UINT, IN_id, G_TYPE_INVALID, G_TYPE_INVALID);
}

typedef void (*tp_chan_type_tubes_close_tube_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);

static void
tp_chan_type_tubes_close_tube_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
{
  DBusGAsyncData *data = (DBusGAsyncData*) user_data;
  GError *error = NULL;
  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
  (*(tp_chan_type_tubes_close_tube_reply)data->cb) (proxy, error, data->userdata);
  return;
}

static
#ifdef G_HAVE_INLINE
inline
#endif
DBusGProxyCall*
tp_chan_type_tubes_close_tube_async (DBusGProxy *proxy, const guint IN_id, tp_chan_type_tubes_close_tube_reply callback, gpointer userdata)

{
  DBusGAsyncData *stuff;
  stuff = g_slice_new (DBusGAsyncData);
  stuff->cb = G_CALLBACK (callback);
  stuff->userdata = userdata;
  return dbus_g_proxy_begin_call (proxy, "CloseTube", tp_chan_type_tubes_close_tube_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_UINT, IN_id, G_TYPE_INVALID);
}
static
#ifdef G_HAVE_INLINE
inline
#endif
gboolean
tp_chan_type_tubes_get_dbus_tube_address (DBusGProxy *proxy, const guint IN_id, char ** OUT_arg1, GError **error)

{
  return dbus_g_proxy_call (proxy, "GetDBusTubeAddress", error, G_TYPE_UINT, IN_id, G_TYPE_INVALID, G_TYPE_STRING, OUT_arg1, G_TYPE_INVALID);
}

typedef void (*tp_chan_type_tubes_get_dbus_tube_address_reply) (DBusGProxy *proxy, char * OUT_arg1, GError *error, gpointer userdata);

static void
tp_chan_type_tubes_get_dbus_tube_address_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
{
  DBusGAsyncData *data = (DBusGAsyncData*) user_data;
  GError *error = NULL;
  char * OUT_arg1;
  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_STRING, &OUT_arg1, G_TYPE_INVALID);
  (*(tp_chan_type_tubes_get_dbus_tube_address_reply)data->cb) (proxy, OUT_arg1, error, data->userdata);
  return;
}

static
#ifdef G_HAVE_INLINE
inline
#endif
DBusGProxyCall*
tp_chan_type_tubes_get_dbus_tube_address_async (DBusGProxy *proxy, const guint IN_id, tp_chan_type_tubes_get_dbus_tube_address_reply callback, gpointer userdata)

{
  DBusGAsyncData *stuff;
  stuff = g_slice_new (DBusGAsyncData);
  stuff->cb = G_CALLBACK (callback);
  stuff->userdata = userdata;
  return dbus_g_proxy_begin_call (proxy, "GetDBusTubeAddress", tp_chan_type_tubes_get_dbus_tube_address_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_UINT, IN_id, G_TYPE_INVALID);
}
static
#ifdef G_HAVE_INLINE
inline
#endif
gboolean
tp_chan_type_tubes_get_dbus_names (DBusGProxy *proxy, const guint IN_id, GPtrArray** OUT_arg1, GError **error)

{
  return dbus_g_proxy_call (proxy, "GetDBusNames", error, G_TYPE_UINT, IN_id, G_TYPE_INVALID, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_INVALID)), OUT_arg1, G_TYPE_INVALID);
}

typedef void (*tp_chan_type_tubes_get_dbus_names_reply) (DBusGProxy *proxy, GPtrArray *OUT_arg1, GError *error, gpointer userdata);

static void
tp_chan_type_tubes_get_dbus_names_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
{
  DBusGAsyncData *data = (DBusGAsyncData*) user_data;
  GError *error = NULL;
  GPtrArray* OUT_arg1;
  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_INVALID)), &OUT_arg1, G_TYPE_INVALID);
  (*(tp_chan_type_tubes_get_dbus_names_reply)data->cb) (proxy, OUT_arg1, error, data->userdata);
  return;
}

static
#ifdef G_HAVE_INLINE
inline
#endif
DBusGProxyCall*
tp_chan_type_tubes_get_dbus_names_async (DBusGProxy *proxy, const guint IN_id, tp_chan_type_tubes_get_dbus_names_reply callback, gpointer userdata)

{
  DBusGAsyncData *stuff;
  stuff = g_slice_new (DBusGAsyncData);
  stuff->cb = G_CALLBACK (callback);
  stuff->userdata = userdata;
  return dbus_g_proxy_begin_call (proxy, "GetDBusNames", tp_chan_type_tubes_get_dbus_names_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_UINT, IN_id, G_TYPE_INVALID);
}
static
#ifdef G_HAVE_INLINE
inline
#endif
gboolean
tp_chan_type_tubes_get_stream_tube_socket_address (DBusGProxy *proxy, const guint IN_id, guint* OUT_address_type, GValue* OUT_address, GError **error)

{
  return dbus_g_proxy_call (proxy, "GetStreamTubeSocketAddress", error, G_TYPE_UINT, IN_id, G_TYPE_INVALID, G_TYPE_UINT, OUT_address_type, G_TYPE_VALUE, OUT_address, G_TYPE_INVALID);
}

typedef void (*tp_chan_type_tubes_get_stream_tube_socket_address_reply) (DBusGProxy *proxy, guint OUT_address_type, GValue OUT_address, GError *error, gpointer userdata);

static void
tp_chan_type_tubes_get_stream_tube_socket_address_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
{
  DBusGAsyncData *data = (DBusGAsyncData*) user_data;
  GError *error = NULL;
  guint OUT_address_type;
  GValue OUT_address = { 0, };
  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_UINT, &OUT_address_type, G_TYPE_VALUE, &OUT_address, G_TYPE_INVALID);
  (*(tp_chan_type_tubes_get_stream_tube_socket_address_reply)data->cb) (proxy, OUT_address_type, OUT_address, error, data->userdata);
  return;
}

static
#ifdef G_HAVE_INLINE
inline
#endif
DBusGProxyCall*
tp_chan_type_tubes_get_stream_tube_socket_address_async (DBusGProxy *proxy, const guint IN_id, tp_chan_type_tubes_get_stream_tube_socket_address_reply callback, gpointer userdata)

{
  DBusGAsyncData *stuff;
  stuff = g_slice_new (DBusGAsyncData);
  stuff->cb = G_CALLBACK (callback);
  stuff->userdata = userdata;
  return dbus_g_proxy_begin_call (proxy, "GetStreamTubeSocketAddress", tp_chan_type_tubes_get_stream_tube_socket_address_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_UINT, IN_id, G_TYPE_INVALID);
}
#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Type_Tubes */

G_END_DECLS
