#include "_gen/svc.h"

#include <telepathy-glib/dbus.h>
#include "_gen/signals-marshal.h"

static const DBusGObjectInfo _salut_svc_connection_future_object_info;

struct _SalutSvcConnectionFUTUREClass {
    GTypeInterface parent_class;
    salut_svc_connection_future_ensure_sidecar_impl ensure_sidecar;
};

static void salut_svc_connection_future_base_init (gpointer klass);

GType
salut_svc_connection_future_get_type (void)
{
  static GType type = 0;

  if (G_UNLIKELY (type == 0))
    {
      static const GTypeInfo info = {
        sizeof (SalutSvcConnectionFUTUREClass),
        salut_svc_connection_future_base_init, /* base_init */
        NULL, /* base_finalize */
        NULL, /* class_init */
        NULL, /* class_finalize */
        NULL, /* class_data */
        0,
        0, /* n_preallocs */
        NULL /* instance_init */
      };

      type = g_type_register_static (G_TYPE_INTERFACE,
          "SalutSvcConnectionFUTURE", &info, 0);
    }

  return type;
}

/**
 * salut_svc_connection_future_ensure_sidecar_impl:
 * @self: The object implementing this interface
 * @in_Main_Interface: const gchar * (FIXME, generate documentation)
 * @context: Used to return values or throw an error
 *
 * The signature of an implementation of the D-Bus method
 * EnsureSidecar on interface org.freedesktop.Telepathy.Connection.FUTURE.
 */
static void
salut_svc_connection_future_ensure_sidecar (SalutSvcConnectionFUTURE *self,
    const gchar *in_Main_Interface,
    DBusGMethodInvocation *context)
{
  salut_svc_connection_future_ensure_sidecar_impl impl = (SALUT_SVC_CONNECTION_FUTURE_GET_CLASS (self)->ensure_sidecar);

  if (impl != NULL)
    {
      (impl) (self,
        in_Main_Interface,
        context);
    }
  else
    {
      tp_dbus_g_method_return_not_implemented (context);
    }
}

/**
 * salut_svc_connection_future_implement_ensure_sidecar:
 * @klass: A class whose instances implement this interface
 * @impl: A callback used to implement the EnsureSidecar D-Bus method
 *
 * Register an implementation for the EnsureSidecar method in the vtable
 * of an implementation of this interface. To be called from
 * the interface init function.
 */
void
salut_svc_connection_future_implement_ensure_sidecar (SalutSvcConnectionFUTUREClass *klass, salut_svc_connection_future_ensure_sidecar_impl impl)
{
  klass->ensure_sidecar = impl;
}

static inline void
salut_svc_connection_future_base_init_once (gpointer klass G_GNUC_UNUSED)
{
  static TpDBusPropertiesMixinPropInfo properties[1] = {
      { 0, 0, NULL, 0, NULL, NULL }
  };
  static TpDBusPropertiesMixinIfaceInfo interface =
      { 0, properties, NULL, NULL };

  interface.dbus_interface = g_quark_from_static_string ("org.freedesktop.Telepathy.Connection.FUTURE");
  tp_svc_interface_set_dbus_properties_info (SALUT_TYPE_SVC_CONNECTION_FUTURE, &interface);

  dbus_g_object_type_install_info (salut_svc_connection_future_get_type (),
      &_salut_svc_connection_future_object_info);
}
static void
salut_svc_connection_future_base_init (gpointer klass)
{
  static gboolean initialized = FALSE;

  if (!initialized)
    {
      initialized = TRUE;
      salut_svc_connection_future_base_init_once (klass);
    }
}
static const DBusGMethodInfo _salut_svc_connection_future_methods[] = {
  { (GCallback) salut_svc_connection_future_ensure_sidecar, _salut_ext_marshal_VOID__STRING_POINTER, 0 },
};

static const DBusGObjectInfo _salut_svc_connection_future_object_info = {
  0,
  _salut_svc_connection_future_methods,
  1,
"org.freedesktop.Telepathy.Connection.FUTURE\0EnsureSidecar\0A\0Main_Interface\0I\0s\0Path\0O\0F\0N\0o\0Properties\0O\0F\0N\0a{sv}\0\0\0",
"\0\0",
"\0\0",
};

static const DBusGObjectInfo _salut_svc_olpc_activity_properties_object_info;

struct _SalutSvcOLPCActivityPropertiesClass {
    GTypeInterface parent_class;
    salut_svc_olpc_activity_properties_set_properties_impl set_properties;
    salut_svc_olpc_activity_properties_get_properties_impl get_properties;
    salut_svc_olpc_activity_properties_get_activity_impl get_activity;
};

enum {
    SIGNAL_OLPC_ACTIVITY_PROPERTIES_ActivityPropertiesChanged,
    N_OLPC_ACTIVITY_PROPERTIES_SIGNALS
};
static guint olpc_activity_properties_signals[N_OLPC_ACTIVITY_PROPERTIES_SIGNALS] = {0};

static void salut_svc_olpc_activity_properties_base_init (gpointer klass);

GType
salut_svc_olpc_activity_properties_get_type (void)
{
  static GType type = 0;

  if (G_UNLIKELY (type == 0))
    {
      static const GTypeInfo info = {
        sizeof (SalutSvcOLPCActivityPropertiesClass),
        salut_svc_olpc_activity_properties_base_init, /* base_init */
        NULL, /* base_finalize */
        NULL, /* class_init */
        NULL, /* class_finalize */
        NULL, /* class_data */
        0,
        0, /* n_preallocs */
        NULL /* instance_init */
      };

      type = g_type_register_static (G_TYPE_INTERFACE,
          "SalutSvcOLPCActivityProperties", &info, 0);
    }

  return type;
}

/**
 * salut_svc_olpc_activity_properties_set_properties_impl:
 * @self: The object implementing this interface
 * @in_room: guint  (FIXME, generate documentation)
 * @in_properties: GHashTable * (FIXME, generate documentation)
 * @context: Used to return values or throw an error
 *
 * The signature of an implementation of the D-Bus method
 * SetProperties on interface org.laptop.Telepathy.ActivityProperties.
 */
static void
salut_svc_olpc_activity_properties_set_properties (SalutSvcOLPCActivityProperties *self,
    guint in_room,
    GHashTable *in_properties,
    DBusGMethodInvocation *context)
{
  salut_svc_olpc_activity_properties_set_properties_impl impl = (SALUT_SVC_OLPC_ACTIVITY_PROPERTIES_GET_CLASS (self)->set_properties);

  if (impl != NULL)
    {
      (impl) (self,
        in_room,
        in_properties,
        context);
    }
  else
    {
      tp_dbus_g_method_return_not_implemented (context);
    }
}

/**
 * salut_svc_olpc_activity_properties_implement_set_properties:
 * @klass: A class whose instances implement this interface
 * @impl: A callback used to implement the SetProperties D-Bus method
 *
 * Register an implementation for the SetProperties method in the vtable
 * of an implementation of this interface. To be called from
 * the interface init function.
 */
void
salut_svc_olpc_activity_properties_implement_set_properties (SalutSvcOLPCActivityPropertiesClass *klass, salut_svc_olpc_activity_properties_set_properties_impl impl)
{
  klass->set_properties = impl;
}

/**
 * salut_svc_olpc_activity_properties_get_properties_impl:
 * @self: The object implementing this interface
 * @in_room: guint  (FIXME, generate documentation)
 * @context: Used to return values or throw an error
 *
 * The signature of an implementation of the D-Bus method
 * GetProperties on interface org.laptop.Telepathy.ActivityProperties.
 */
static void
salut_svc_olpc_activity_properties_get_properties (SalutSvcOLPCActivityProperties *self,
    guint in_room,
    DBusGMethodInvocation *context)
{
  salut_svc_olpc_activity_properties_get_properties_impl impl = (SALUT_SVC_OLPC_ACTIVITY_PROPERTIES_GET_CLASS (self)->get_properties);

  if (impl != NULL)
    {
      (impl) (self,
        in_room,
        context);
    }
  else
    {
      tp_dbus_g_method_return_not_implemented (context);
    }
}

/**
 * salut_svc_olpc_activity_properties_implement_get_properties:
 * @klass: A class whose instances implement this interface
 * @impl: A callback used to implement the GetProperties D-Bus method
 *
 * Register an implementation for the GetProperties method in the vtable
 * of an implementation of this interface. To be called from
 * the interface init function.
 */
void
salut_svc_olpc_activity_properties_implement_get_properties (SalutSvcOLPCActivityPropertiesClass *klass, salut_svc_olpc_activity_properties_get_properties_impl impl)
{
  klass->get_properties = impl;
}

/**
 * salut_svc_olpc_activity_properties_get_activity_impl:
 * @self: The object implementing this interface
 * @in_activity_id: const gchar * (FIXME, generate documentation)
 * @context: Used to return values or throw an error
 *
 * The signature of an implementation of the D-Bus method
 * GetActivity on interface org.laptop.Telepathy.ActivityProperties.
 */
static void
salut_svc_olpc_activity_properties_get_activity (SalutSvcOLPCActivityProperties *self,
    const gchar *in_activity_id,
    DBusGMethodInvocation *context)
{
  salut_svc_olpc_activity_properties_get_activity_impl impl = (SALUT_SVC_OLPC_ACTIVITY_PROPERTIES_GET_CLASS (self)->get_activity);

  if (impl != NULL)
    {
      (impl) (self,
        in_activity_id,
        context);
    }
  else
    {
      tp_dbus_g_method_return_not_implemented (context);
    }
}

/**
 * salut_svc_olpc_activity_properties_implement_get_activity:
 * @klass: A class whose instances implement this interface
 * @impl: A callback used to implement the GetActivity D-Bus method
 *
 * Register an implementation for the GetActivity method in the vtable
 * of an implementation of this interface. To be called from
 * the interface init function.
 */
void
salut_svc_olpc_activity_properties_implement_get_activity (SalutSvcOLPCActivityPropertiesClass *klass, salut_svc_olpc_activity_properties_get_activity_impl impl)
{
  klass->get_activity = impl;
}

/**
 * salut_svc_olpc_activity_properties_emit_activity_properties_changed:
 * @instance: The object implementing this interface
 * @arg_room: guint  (FIXME, generate documentation)
 * @arg_properties: GHashTable * (FIXME, generate documentation)
 *
 * Type-safe wrapper around g_signal_emit to emit the
 * ActivityPropertiesChanged signal on interface org.laptop.Telepathy.ActivityProperties.
 */
void
salut_svc_olpc_activity_properties_emit_activity_properties_changed (gpointer instance,
    guint arg_room,
    GHashTable *arg_properties)
{
  g_assert (instance != NULL);
  g_assert (G_TYPE_CHECK_INSTANCE_TYPE (instance, SALUT_TYPE_SVC_OLPC_ACTIVITY_PROPERTIES));
  g_signal_emit (instance,
      olpc_activity_properties_signals[SIGNAL_OLPC_ACTIVITY_PROPERTIES_ActivityPropertiesChanged],
      0,
      arg_room,
      arg_properties);
}

static inline void
salut_svc_olpc_activity_properties_base_init_once (gpointer klass G_GNUC_UNUSED)
{
  static TpDBusPropertiesMixinPropInfo properties[1] = {
      { 0, 0, NULL, 0, NULL, NULL }
  };
  static TpDBusPropertiesMixinIfaceInfo interface =
      { 0, properties, NULL, NULL };

  interface.dbus_interface = g_quark_from_static_string ("org.laptop.Telepathy.ActivityProperties");
  tp_svc_interface_set_dbus_properties_info (SALUT_TYPE_SVC_OLPC_ACTIVITY_PROPERTIES, &interface);

  olpc_activity_properties_signals[SIGNAL_OLPC_ACTIVITY_PROPERTIES_ActivityPropertiesChanged] =
  g_signal_new ("activity-properties-changed",
      G_OBJECT_CLASS_TYPE (klass),
      G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED,
      0,
      NULL, NULL,
      _salut_ext_marshal_VOID__UINT_BOXED,
      G_TYPE_NONE,
      2,
      G_TYPE_UINT,
      (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)));

  dbus_g_object_type_install_info (salut_svc_olpc_activity_properties_get_type (),
      &_salut_svc_olpc_activity_properties_object_info);
}
static void
salut_svc_olpc_activity_properties_base_init (gpointer klass)
{
  static gboolean initialized = FALSE;

  if (!initialized)
    {
      initialized = TRUE;
      salut_svc_olpc_activity_properties_base_init_once (klass);
    }
}
static const DBusGMethodInfo _salut_svc_olpc_activity_properties_methods[] = {
  { (GCallback) salut_svc_olpc_activity_properties_set_properties, _salut_ext_marshal_VOID__UINT_BOXED_POINTER, 0 },
  { (GCallback) salut_svc_olpc_activity_properties_get_properties, g_cclosure_marshal_VOID__UINT_POINTER, 85 },
  { (GCallback) salut_svc_olpc_activity_properties_get_activity, _salut_ext_marshal_VOID__STRING_POINTER, 174 },
};

static const DBusGObjectInfo _salut_svc_olpc_activity_properties_object_info = {
  0,
  _salut_svc_olpc_activity_properties_methods,
  3,
"org.laptop.Telepathy.ActivityProperties\0SetProperties\0A\0room\0I\0u\0properties\0I\0a{sv}\0\0org.laptop.Telepathy.ActivityProperties\0GetProperties\0A\0room\0I\0u\0properties\0O\0F\0N\0a{sv}\0\0org.laptop.Telepathy.ActivityProperties\0GetActivity\0A\0activity_id\0I\0s\0room\0O\0F\0N\0u\0\0\0",
"org.laptop.Telepathy.ActivityProperties\0ActivityPropertiesChanged\0\0",
"\0\0",
};

static const DBusGObjectInfo _salut_svc_olpc_buddy_info_object_info;

struct _SalutSvcOLPCBuddyInfoClass {
    GTypeInterface parent_class;
    salut_svc_olpc_buddy_info_set_properties_impl set_properties;
    salut_svc_olpc_buddy_info_get_properties_impl get_properties;
    salut_svc_olpc_buddy_info_set_activities_impl set_activities;
    salut_svc_olpc_buddy_info_add_activity_impl add_activity;
    salut_svc_olpc_buddy_info_get_activities_impl get_activities;
    salut_svc_olpc_buddy_info_set_current_activity_impl set_current_activity;
    salut_svc_olpc_buddy_info_get_current_activity_impl get_current_activity;
};

enum {
    SIGNAL_OLPC_BUDDY_INFO_PropertiesChanged,
    SIGNAL_OLPC_BUDDY_INFO_ActivitiesChanged,
    SIGNAL_OLPC_BUDDY_INFO_CurrentActivityChanged,
    N_OLPC_BUDDY_INFO_SIGNALS
};
static guint olpc_buddy_info_signals[N_OLPC_BUDDY_INFO_SIGNALS] = {0};

static void salut_svc_olpc_buddy_info_base_init (gpointer klass);

GType
salut_svc_olpc_buddy_info_get_type (void)
{
  static GType type = 0;

  if (G_UNLIKELY (type == 0))
    {
      static const GTypeInfo info = {
        sizeof (SalutSvcOLPCBuddyInfoClass),
        salut_svc_olpc_buddy_info_base_init, /* base_init */
        NULL, /* base_finalize */
        NULL, /* class_init */
        NULL, /* class_finalize */
        NULL, /* class_data */
        0,
        0, /* n_preallocs */
        NULL /* instance_init */
      };

      type = g_type_register_static (G_TYPE_INTERFACE,
          "SalutSvcOLPCBuddyInfo", &info, 0);
    }

  return type;
}

/**
 * salut_svc_olpc_buddy_info_set_properties_impl:
 * @self: The object implementing this interface
 * @in_properties: GHashTable * (FIXME, generate documentation)
 * @context: Used to return values or throw an error
 *
 * The signature of an implementation of the D-Bus method
 * SetProperties on interface org.laptop.Telepathy.BuddyInfo.
 */
static void
salut_svc_olpc_buddy_info_set_properties (SalutSvcOLPCBuddyInfo *self,
    GHashTable *in_properties,
    DBusGMethodInvocation *context)
{
  salut_svc_olpc_buddy_info_set_properties_impl impl = (SALUT_SVC_OLPC_BUDDY_INFO_GET_CLASS (self)->set_properties);

  if (impl != NULL)
    {
      (impl) (self,
        in_properties,
        context);
    }
  else
    {
      tp_dbus_g_method_return_not_implemented (context);
    }
}

/**
 * salut_svc_olpc_buddy_info_implement_set_properties:
 * @klass: A class whose instances implement this interface
 * @impl: A callback used to implement the SetProperties D-Bus method
 *
 * Register an implementation for the SetProperties method in the vtable
 * of an implementation of this interface. To be called from
 * the interface init function.
 */
void
salut_svc_olpc_buddy_info_implement_set_properties (SalutSvcOLPCBuddyInfoClass *klass, salut_svc_olpc_buddy_info_set_properties_impl impl)
{
  klass->set_properties = impl;
}

/**
 * salut_svc_olpc_buddy_info_get_properties_impl:
 * @self: The object implementing this interface
 * @in_contact: guint  (FIXME, generate documentation)
 * @context: Used to return values or throw an error
 *
 * The signature of an implementation of the D-Bus method
 * GetProperties on interface org.laptop.Telepathy.BuddyInfo.
 */
static void
salut_svc_olpc_buddy_info_get_properties (SalutSvcOLPCBuddyInfo *self,
    guint in_contact,
    DBusGMethodInvocation *context)
{
  salut_svc_olpc_buddy_info_get_properties_impl impl = (SALUT_SVC_OLPC_BUDDY_INFO_GET_CLASS (self)->get_properties);

  if (impl != NULL)
    {
      (impl) (self,
        in_contact,
        context);
    }
  else
    {
      tp_dbus_g_method_return_not_implemented (context);
    }
}

/**
 * salut_svc_olpc_buddy_info_implement_get_properties:
 * @klass: A class whose instances implement this interface
 * @impl: A callback used to implement the GetProperties D-Bus method
 *
 * Register an implementation for the GetProperties method in the vtable
 * of an implementation of this interface. To be called from
 * the interface init function.
 */
void
salut_svc_olpc_buddy_info_implement_get_properties (SalutSvcOLPCBuddyInfoClass *klass, salut_svc_olpc_buddy_info_get_properties_impl impl)
{
  klass->get_properties = impl;
}

/**
 * salut_svc_olpc_buddy_info_set_activities_impl:
 * @self: The object implementing this interface
 * @in_activities: const GPtrArray * (FIXME, generate documentation)
 * @context: Used to return values or throw an error
 *
 * The signature of an implementation of the D-Bus method
 * SetActivities on interface org.laptop.Telepathy.BuddyInfo.
 */
static void
salut_svc_olpc_buddy_info_set_activities (SalutSvcOLPCBuddyInfo *self,
    const GPtrArray *in_activities,
    DBusGMethodInvocation *context)
{
  salut_svc_olpc_buddy_info_set_activities_impl impl = (SALUT_SVC_OLPC_BUDDY_INFO_GET_CLASS (self)->set_activities);

  if (impl != NULL)
    {
      (impl) (self,
        in_activities,
        context);
    }
  else
    {
      tp_dbus_g_method_return_not_implemented (context);
    }
}

/**
 * salut_svc_olpc_buddy_info_implement_set_activities:
 * @klass: A class whose instances implement this interface
 * @impl: A callback used to implement the SetActivities D-Bus method
 *
 * Register an implementation for the SetActivities method in the vtable
 * of an implementation of this interface. To be called from
 * the interface init function.
 */
void
salut_svc_olpc_buddy_info_implement_set_activities (SalutSvcOLPCBuddyInfoClass *klass, salut_svc_olpc_buddy_info_set_activities_impl impl)
{
  klass->set_activities = impl;
}

/**
 * salut_svc_olpc_buddy_info_add_activity_impl:
 * @self: The object implementing this interface
 * @in_id: const gchar * (FIXME, generate documentation)
 * @in_handle: guint  (FIXME, generate documentation)
 * @context: Used to return values or throw an error
 *
 * The signature of an implementation of the D-Bus method
 * AddActivity on interface org.laptop.Telepathy.BuddyInfo.
 */
static void
salut_svc_olpc_buddy_info_add_activity (SalutSvcOLPCBuddyInfo *self,
    const gchar *in_id,
    guint in_handle,
    DBusGMethodInvocation *context)
{
  salut_svc_olpc_buddy_info_add_activity_impl impl = (SALUT_SVC_OLPC_BUDDY_INFO_GET_CLASS (self)->add_activity);

  if (impl != NULL)
    {
      (impl) (self,
        in_id,
        in_handle,
        context);
    }
  else
    {
      tp_dbus_g_method_return_not_implemented (context);
    }
}

/**
 * salut_svc_olpc_buddy_info_implement_add_activity:
 * @klass: A class whose instances implement this interface
 * @impl: A callback used to implement the AddActivity D-Bus method
 *
 * Register an implementation for the AddActivity method in the vtable
 * of an implementation of this interface. To be called from
 * the interface init function.
 */
void
salut_svc_olpc_buddy_info_implement_add_activity (SalutSvcOLPCBuddyInfoClass *klass, salut_svc_olpc_buddy_info_add_activity_impl impl)
{
  klass->add_activity = impl;
}

/**
 * salut_svc_olpc_buddy_info_get_activities_impl:
 * @self: The object implementing this interface
 * @in_contact: guint  (FIXME, generate documentation)
 * @context: Used to return values or throw an error
 *
 * The signature of an implementation of the D-Bus method
 * GetActivities on interface org.laptop.Telepathy.BuddyInfo.
 */
static void
salut_svc_olpc_buddy_info_get_activities (SalutSvcOLPCBuddyInfo *self,
    guint in_contact,
    DBusGMethodInvocation *context)
{
  salut_svc_olpc_buddy_info_get_activities_impl impl = (SALUT_SVC_OLPC_BUDDY_INFO_GET_CLASS (self)->get_activities);

  if (impl != NULL)
    {
      (impl) (self,
        in_contact,
        context);
    }
  else
    {
      tp_dbus_g_method_return_not_implemented (context);
    }
}

/**
 * salut_svc_olpc_buddy_info_implement_get_activities:
 * @klass: A class whose instances implement this interface
 * @impl: A callback used to implement the GetActivities D-Bus method
 *
 * Register an implementation for the GetActivities method in the vtable
 * of an implementation of this interface. To be called from
 * the interface init function.
 */
void
salut_svc_olpc_buddy_info_implement_get_activities (SalutSvcOLPCBuddyInfoClass *klass, salut_svc_olpc_buddy_info_get_activities_impl impl)
{
  klass->get_activities = impl;
}

/**
 * salut_svc_olpc_buddy_info_set_current_activity_impl:
 * @self: The object implementing this interface
 * @in_activity: const gchar * (FIXME, generate documentation)
 * @in_channel: guint  (FIXME, generate documentation)
 * @context: Used to return values or throw an error
 *
 * The signature of an implementation of the D-Bus method
 * SetCurrentActivity on interface org.laptop.Telepathy.BuddyInfo.
 */
static void
salut_svc_olpc_buddy_info_set_current_activity (SalutSvcOLPCBuddyInfo *self,
    const gchar *in_activity,
    guint in_channel,
    DBusGMethodInvocation *context)
{
  salut_svc_olpc_buddy_info_set_current_activity_impl impl = (SALUT_SVC_OLPC_BUDDY_INFO_GET_CLASS (self)->set_current_activity);

  if (impl != NULL)
    {
      (impl) (self,
        in_activity,
        in_channel,
        context);
    }
  else
    {
      tp_dbus_g_method_return_not_implemented (context);
    }
}

/**
 * salut_svc_olpc_buddy_info_implement_set_current_activity:
 * @klass: A class whose instances implement this interface
 * @impl: A callback used to implement the SetCurrentActivity D-Bus method
 *
 * Register an implementation for the SetCurrentActivity method in the vtable
 * of an implementation of this interface. To be called from
 * the interface init function.
 */
void
salut_svc_olpc_buddy_info_implement_set_current_activity (SalutSvcOLPCBuddyInfoClass *klass, salut_svc_olpc_buddy_info_set_current_activity_impl impl)
{
  klass->set_current_activity = impl;
}

/**
 * salut_svc_olpc_buddy_info_get_current_activity_impl:
 * @self: The object implementing this interface
 * @in_contact: guint  (FIXME, generate documentation)
 * @context: Used to return values or throw an error
 *
 * The signature of an implementation of the D-Bus method
 * GetCurrentActivity on interface org.laptop.Telepathy.BuddyInfo.
 */
static void
salut_svc_olpc_buddy_info_get_current_activity (SalutSvcOLPCBuddyInfo *self,
    guint in_contact,
    DBusGMethodInvocation *context)
{
  salut_svc_olpc_buddy_info_get_current_activity_impl impl = (SALUT_SVC_OLPC_BUDDY_INFO_GET_CLASS (self)->get_current_activity);

  if (impl != NULL)
    {
      (impl) (self,
        in_contact,
        context);
    }
  else
    {
      tp_dbus_g_method_return_not_implemented (context);
    }
}

/**
 * salut_svc_olpc_buddy_info_implement_get_current_activity:
 * @klass: A class whose instances implement this interface
 * @impl: A callback used to implement the GetCurrentActivity D-Bus method
 *
 * Register an implementation for the GetCurrentActivity method in the vtable
 * of an implementation of this interface. To be called from
 * the interface init function.
 */
void
salut_svc_olpc_buddy_info_implement_get_current_activity (SalutSvcOLPCBuddyInfoClass *klass, salut_svc_olpc_buddy_info_get_current_activity_impl impl)
{
  klass->get_current_activity = impl;
}

/**
 * salut_svc_olpc_buddy_info_emit_properties_changed:
 * @instance: The object implementing this interface
 * @arg_contact: guint  (FIXME, generate documentation)
 * @arg_properties: GHashTable * (FIXME, generate documentation)
 *
 * Type-safe wrapper around g_signal_emit to emit the
 * PropertiesChanged signal on interface org.laptop.Telepathy.BuddyInfo.
 */
void
salut_svc_olpc_buddy_info_emit_properties_changed (gpointer instance,
    guint arg_contact,
    GHashTable *arg_properties)
{
  g_assert (instance != NULL);
  g_assert (G_TYPE_CHECK_INSTANCE_TYPE (instance, SALUT_TYPE_SVC_OLPC_BUDDY_INFO));
  g_signal_emit (instance,
      olpc_buddy_info_signals[SIGNAL_OLPC_BUDDY_INFO_PropertiesChanged],
      0,
      arg_contact,
      arg_properties);
}

/**
 * salut_svc_olpc_buddy_info_emit_activities_changed:
 * @instance: The object implementing this interface
 * @arg_contact: guint  (FIXME, generate documentation)
 * @arg_activities: const GPtrArray * (FIXME, generate documentation)
 *
 * Type-safe wrapper around g_signal_emit to emit the
 * ActivitiesChanged signal on interface org.laptop.Telepathy.BuddyInfo.
 */
void
salut_svc_olpc_buddy_info_emit_activities_changed (gpointer instance,
    guint arg_contact,
    const GPtrArray *arg_activities)
{
  g_assert (instance != NULL);
  g_assert (G_TYPE_CHECK_INSTANCE_TYPE (instance, SALUT_TYPE_SVC_OLPC_BUDDY_INFO));
  g_signal_emit (instance,
      olpc_buddy_info_signals[SIGNAL_OLPC_BUDDY_INFO_ActivitiesChanged],
      0,
      arg_contact,
      arg_activities);
}

/**
 * salut_svc_olpc_buddy_info_emit_current_activity_changed:
 * @instance: The object implementing this interface
 * @arg_contact: guint  (FIXME, generate documentation)
 * @arg_activity: const gchar * (FIXME, generate documentation)
 * @arg_channel: guint  (FIXME, generate documentation)
 *
 * Type-safe wrapper around g_signal_emit to emit the
 * CurrentActivityChanged signal on interface org.laptop.Telepathy.BuddyInfo.
 */
void
salut_svc_olpc_buddy_info_emit_current_activity_changed (gpointer instance,
    guint arg_contact,
    const gchar *arg_activity,
    guint arg_channel)
{
  g_assert (instance != NULL);
  g_assert (G_TYPE_CHECK_INSTANCE_TYPE (instance, SALUT_TYPE_SVC_OLPC_BUDDY_INFO));
  g_signal_emit (instance,
      olpc_buddy_info_signals[SIGNAL_OLPC_BUDDY_INFO_CurrentActivityChanged],
      0,
      arg_contact,
      arg_activity,
      arg_channel);
}

static inline void
salut_svc_olpc_buddy_info_base_init_once (gpointer klass G_GNUC_UNUSED)
{
  static TpDBusPropertiesMixinPropInfo properties[1] = {
      { 0, 0, NULL, 0, NULL, NULL }
  };
  static TpDBusPropertiesMixinIfaceInfo interface =
      { 0, properties, NULL, NULL };

  interface.dbus_interface = g_quark_from_static_string ("org.laptop.Telepathy.BuddyInfo");
  tp_svc_interface_set_dbus_properties_info (SALUT_TYPE_SVC_OLPC_BUDDY_INFO, &interface);

  olpc_buddy_info_signals[SIGNAL_OLPC_BUDDY_INFO_PropertiesChanged] =
  g_signal_new ("properties-changed",
      G_OBJECT_CLASS_TYPE (klass),
      G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED,
      0,
      NULL, NULL,
      _salut_ext_marshal_VOID__UINT_BOXED,
      G_TYPE_NONE,
      2,
      G_TYPE_UINT,
      (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)));

  olpc_buddy_info_signals[SIGNAL_OLPC_BUDDY_INFO_ActivitiesChanged] =
  g_signal_new ("activities-changed",
      G_OBJECT_CLASS_TYPE (klass),
      G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED,
      0,
      NULL, NULL,
      _salut_ext_marshal_VOID__UINT_BOXED,
      G_TYPE_NONE,
      2,
      G_TYPE_UINT,
      (dbus_g_type_get_collection ("GPtrArray", (dbus_g_type_get_struct ("GValueArray", G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INVALID)))));

  olpc_buddy_info_signals[SIGNAL_OLPC_BUDDY_INFO_CurrentActivityChanged] =
  g_signal_new ("current-activity-changed",
      G_OBJECT_CLASS_TYPE (klass),
      G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED,
      0,
      NULL, NULL,
      _salut_ext_marshal_VOID__UINT_STRING_UINT,
      G_TYPE_NONE,
      3,
      G_TYPE_UINT,
      G_TYPE_STRING,
      G_TYPE_UINT);

  dbus_g_object_type_install_info (salut_svc_olpc_buddy_info_get_type (),
      &_salut_svc_olpc_buddy_info_object_info);
}
static void
salut_svc_olpc_buddy_info_base_init (gpointer klass)
{
  static gboolean initialized = FALSE;

  if (!initialized)
    {
      initialized = TRUE;
      salut_svc_olpc_buddy_info_base_init_once (klass);
    }
}
static const DBusGMethodInfo _salut_svc_olpc_buddy_info_methods[] = {
  { (GCallback) salut_svc_olpc_buddy_info_set_properties, _salut_ext_marshal_VOID__BOXED_POINTER, 0 },
  { (GCallback) salut_svc_olpc_buddy_info_get_properties, g_cclosure_marshal_VOID__UINT_POINTER, 67 },
  { (GCallback) salut_svc_olpc_buddy_info_set_activities, _salut_ext_marshal_VOID__BOXED_POINTER, 150 },
  { (GCallback) salut_svc_olpc_buddy_info_add_activity, _salut_ext_marshal_VOID__STRING_UINT_POINTER, 217 },
  { (GCallback) salut_svc_olpc_buddy_info_get_activities, g_cclosure_marshal_VOID__UINT_POINTER, 281 },
  { (GCallback) salut_svc_olpc_buddy_info_set_current_activity, _salut_ext_marshal_VOID__STRING_UINT_POINTER, 364 },
  { (GCallback) salut_svc_olpc_buddy_info_get_current_activity, g_cclosure_marshal_VOID__UINT_POINTER, 442 },
};

static const DBusGObjectInfo _salut_svc_olpc_buddy_info_object_info = {
  0,
  _salut_svc_olpc_buddy_info_methods,
  7,
"org.laptop.Telepathy.BuddyInfo\0SetProperties\0A\0properties\0I\0a{sv}\0\0org.laptop.Telepathy.BuddyInfo\0GetProperties\0A\0contact\0I\0u\0properties\0O\0F\0N\0a{sv}\0\0org.laptop.Telepathy.BuddyInfo\0SetActivities\0A\0activities\0I\0a(su)\0\0org.laptop.Telepathy.BuddyInfo\0AddActivity\0A\0id\0I\0s\0handle\0I\0u\0\0org.laptop.Telepathy.BuddyInfo\0GetActivities\0A\0contact\0I\0u\0activities\0O\0F\0N\0a(su)\0\0org.laptop.Telepathy.BuddyInfo\0SetCurrentActivity\0A\0activity\0I\0s\0channel\0I\0u\0\0org.laptop.Telepathy.BuddyInfo\0GetCurrentActivity\0A\0contact\0I\0u\0activity\0O\0F\0N\0s\0channel\0O\0F\0N\0u\0\0\0",
"org.laptop.Telepathy.BuddyInfo\0PropertiesChanged\0org.laptop.Telepathy.BuddyInfo\0ActivitiesChanged\0org.laptop.Telepathy.BuddyInfo\0CurrentActivityChanged\0\0",
"\0\0",
};

static const DBusGObjectInfo _salut_svc_salut_plugin_test_object_info;

struct _SalutSvcSalutPluginTestClass {
    GTypeInterface parent_class;
};

static void salut_svc_salut_plugin_test_base_init (gpointer klass);

GType
salut_svc_salut_plugin_test_get_type (void)
{
  static GType type = 0;

  if (G_UNLIKELY (type == 0))
    {
      static const GTypeInfo info = {
        sizeof (SalutSvcSalutPluginTestClass),
        salut_svc_salut_plugin_test_base_init, /* base_init */
        NULL, /* base_finalize */
        NULL, /* class_init */
        NULL, /* class_finalize */
        NULL, /* class_data */
        0,
        0, /* n_preallocs */
        NULL /* instance_init */
      };

      type = g_type_register_static (G_TYPE_INTERFACE,
          "SalutSvcSalutPluginTest", &info, 0);
    }

  return type;
}

static inline void
salut_svc_salut_plugin_test_base_init_once (gpointer klass G_GNUC_UNUSED)
{
  static TpDBusPropertiesMixinPropInfo properties[1] = {
      { 0, 0, NULL, 0, NULL, NULL }
  };
  static TpDBusPropertiesMixinIfaceInfo interface =
      { 0, properties, NULL, NULL };

  interface.dbus_interface = g_quark_from_static_string ("org.freedesktop.Telepathy.Salut.Plugin.Test");
  tp_svc_interface_set_dbus_properties_info (SALUT_TYPE_SVC_SALUT_PLUGIN_TEST, &interface);

  dbus_g_object_type_install_info (salut_svc_salut_plugin_test_get_type (),
      &_salut_svc_salut_plugin_test_object_info);
}
static void
salut_svc_salut_plugin_test_base_init (gpointer klass)
{
  static gboolean initialized = FALSE;

  if (!initialized)
    {
      initialized = TRUE;
      salut_svc_salut_plugin_test_base_init_once (klass);
    }
}
static const DBusGMethodInfo _salut_svc_salut_plugin_test_methods[] = {
};

static const DBusGObjectInfo _salut_svc_salut_plugin_test_object_info = {
  0,
  _salut_svc_salut_plugin_test_methods,
  0,
"\0",
"\0\0",
"\0\0",
};


