## Service-side Channel Group and Conference interfaces

Service-side Channel Group and Conference interfaces — Groups of contacts

## Synopsis

    #include <telepathy-glib/svc-channel.h>

                        TpSvcChannelInterfaceGroup;
                        TpSvcChannelInterfaceGroupClass;
    void                (*tp_svc_channel_interface_group_add_members_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             const GArray *in_Contacts,
                                                             const gchar *in_Message,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_group_implement_add_members
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_add_members_impl impl);
    void                tp_svc_channel_interface_group_return_from_add_members
                                                            (DBusGMethodInvocation *context);
    void                (*tp_svc_channel_interface_group_get_all_members_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_group_implement_get_all_members
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_get_all_members_impl impl);
    void                tp_svc_channel_interface_group_return_from_get_all_members
                                                            (DBusGMethodInvocation *context,
                                                             const GArray *out_Members,
                                                             const GArray *out_Local_Pending,
                                                             const GArray *out_Remote_Pending);
    void                (*tp_svc_channel_interface_group_get_group_flags_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_group_implement_get_group_flags
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_get_group_flags_impl impl);
    void                tp_svc_channel_interface_group_return_from_get_group_flags
                                                            (DBusGMethodInvocation *context,
                                                             guint out_Group_Flags);
    void                (*tp_svc_channel_interface_group_get_handle_owners_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             const GArray *in_Handles,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_group_implement_get_handle_owners
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_get_handle_owners_impl impl);
    void                tp_svc_channel_interface_group_return_from_get_handle_owners
                                                            (DBusGMethodInvocation *context,
                                                             const GArray *out_Owners);
    void                (*tp_svc_channel_interface_group_get_local_pending_members_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_group_implement_get_local_pending_members
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_get_local_pending_members_impl impl);
    void                tp_svc_channel_interface_group_return_from_get_local_pending_members
                                                            (DBusGMethodInvocation *context,
                                                             const GArray *out_Handles);
    void                (*tp_svc_channel_interface_group_get_local_pending_members_with_info_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_group_implement_get_local_pending_members_with_info
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_get_local_pending_members_with_info_impl impl);
    void                tp_svc_channel_interface_group_return_from_get_local_pending_members_with_info
                                                            (DBusGMethodInvocation *context,
                                                             const GPtrArray *out_Info);
    void                (*tp_svc_channel_interface_group_get_members_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_group_implement_get_members
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_get_members_impl impl);
    void                tp_svc_channel_interface_group_return_from_get_members
                                                            (DBusGMethodInvocation *context,
                                                             const GArray *out_Handles);
    void                (*tp_svc_channel_interface_group_get_remote_pending_members_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_group_implement_get_remote_pending_members
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_get_remote_pending_members_impl impl);
    void                tp_svc_channel_interface_group_return_from_get_remote_pending_members
                                                            (DBusGMethodInvocation *context,
                                                             const GArray *out_Handles);
    void                (*tp_svc_channel_interface_group_get_self_handle_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_group_implement_get_self_handle
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_get_self_handle_impl impl);
    void                tp_svc_channel_interface_group_return_from_get_self_handle
                                                            (DBusGMethodInvocation *context,
                                                             guint out_Self_Handle);
    void                (*tp_svc_channel_interface_group_remove_members_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             const GArray *in_Contacts,
                                                             const gchar *in_Message,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_group_implement_remove_members
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_remove_members_impl impl);
    void                tp_svc_channel_interface_group_return_from_remove_members
                                                            (DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_group_emit_group_flags_changed
                                                            (gpointer instance,
                                                             guint arg_Added,
                                                             guint arg_Removed);
    void                tp_svc_channel_interface_group_emit_members_changed
                                                            (gpointer instance,
                                                             const gchar *arg_Message,
                                                             const GArray *arg_Added,
                                                             const GArray *arg_Removed,
                                                             const GArray *arg_Local_Pending,
                                                             const GArray *arg_Remote_Pending,
                                                             guint arg_Actor,
                                                             guint arg_Reason);
    void                tp_svc_channel_interface_group_emit_members_changed_detailed
                                                            (gpointer instance,
                                                             const GArray *arg_Added,
                                                             const GArray *arg_Removed,
                                                             const GArray *arg_Local_Pending,
                                                             const GArray *arg_Remote_Pending,
                                                             GHashTable *arg_Details);
    void                tp_svc_channel_interface_group_implement_remove_members_with_reason
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_remove_members_with_reason_impl impl);
    void                (*tp_svc_channel_interface_group_remove_members_with_reason_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             const GArray *in_Contacts,
                                                             const gchar *in_Message,
                                                             guint in_Reason,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_group_return_from_remove_members_with_reason
                                                            (DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_group_emit_handle_owners_changed
                                                            (gpointer instance,
                                                             GHashTable *arg_Added,
                                                             const GArray *arg_Removed);
    void                tp_svc_channel_interface_group_emit_self_handle_changed
                                                            (gpointer instance,
                                                             guint arg_Self_Handle);

                        TpSvcChannelInterfaceConference;
                        TpSvcChannelInterfaceConferenceClass;
    void                tp_svc_channel_interface_conference_emit_channel_merged
                                                            (gpointer instance,
                                                             const gchar *arg_Channel,
                                                             guint arg_Channel_Specific_Handle,
                                                             GHashTable *arg_Properties);
    void                tp_svc_channel_interface_conference_emit_channel_removed
                                                            (gpointer instance,
                                                             const gchar *arg_Channel,
                                                             GHashTable *arg_Details);

## Object Hierarchy

      GInterface
       +----TpSvcChannelInterfaceGroup

      GInterface
       +----TpSvcChannelInterfaceConference

## Signals

      "group-flags-changed"                            : Has Details
      "handle-owners-changed"                          : Has Details
      "handle-owners-changed-detailed"                 : Has Details
      "members-changed"                                : Has Details
      "members-changed-detailed"                       : Has Details
      "self-contact-changed"                           : Has Details
      "self-handle-changed"                            : Has Details
      "channel-merged"                                 : Has Details
      "channel-removed"                                : Has Details

## Description

Many Telepathy Channel objects can be seen as representing groups or sets of contacts. The Telepathy specification represents this by a common interface, Group. This section documents the auto-generated GInterface used to implement the Group interface.

Contacts can be in four states:

* in the group (the "members" set)

* "local pending" (waiting to be added to the group by the local client calling `AddMembers()`)

* "remote pending" (waiting to be added to the group by some other action, probably by someone else)

* no relationship with the group at all

For instance, chatrooms implement the Group interface. Contacts in the chatroom are members, and contacts who we've invited to the group, or contacts who've requested permission to join, are remote pending. If the local user has been invited by another contact, they will appear in the local-pending set until they accept or decline the invitation.

Since 0.11.16, telepathy-glib also includes basic support for the Conference interface, which represents a Group channel that can be initiated by merging or upgrading individual 1-1 channels.

## Details

### TpSvcChannelInterfaceGroup

    typedef struct _TpSvcChannelInterfaceGroup TpSvcChannelInterfaceGroup;

Dummy typedef representing any implementation of this interface.

### TpSvcChannelInterfaceGroupClass

    typedef struct _TpSvcChannelInterfaceGroupClass TpSvcChannelInterfaceGroupClass;

The class of TpSvcChannelInterfaceGroup.

In a full implementation of this interface (i.e. all methods implemented), the interface initialization function used in `G_IMPLEMENT_INTERFACE()` would typically look like this:

    static void
    implement_channel_interface_group (gpointer klass,
        gpointer unused G_GNUC_UNUSED)
    {
    #define IMPLEMENT(x) tp_svc_channel_interface_group_implement_##x (\
      klass, my_object_##x)
      IMPLEMENT (add_members);
      IMPLEMENT (get_all_members);
      IMPLEMENT (get_group_flags);
      IMPLEMENT (get_handle_owners);
      IMPLEMENT (get_local_pending_members);
      IMPLEMENT (get_local_pending_members_with_info);
      IMPLEMENT (get_members);
      IMPLEMENT (get_remote_pending_members);
      IMPLEMENT (get_self_handle);
      IMPLEMENT (remove_members);
      IMPLEMENT (remove_members_with_reason);
    #undef IMPLEMENT
    }

### tp_svc_channel_interface_group_add_members_impl ()

    void                (*tp_svc_channel_interface_group_add_members_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             const GArray *in_Contacts,
                                                             const gchar *in_Message,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method AddMembers on interface org.freedesktop.Telepathy.Channel.Interface.Group.

`self` : | The object implementing this interface
`in_Contacts` : | const GArray * (FIXME, generate documentation)
`in_Message` : | const gchar * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_channel_interface_group_implement_add_members ()

    void                tp_svc_channel_interface_group_implement_add_members
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_add_members_impl impl);

Register an implementation for the AddMembers method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the AddMembers D-Bus method

### tp_svc_channel_interface_group_return_from_add_members ()

    void                tp_svc_channel_interface_group_return_from_add_members
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_channel_interface_group_get_all_members_impl ()

    void                (*tp_svc_channel_interface_group_get_all_members_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method GetAllMembers on interface org.freedesktop.Telepathy.Channel.Interface.Group.

`self` : | The object implementing this interface
`context` : | Used to return values or throw an error

### tp_svc_channel_interface_group_implement_get_all_members ()

    void                tp_svc_channel_interface_group_implement_get_all_members
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_get_all_members_impl impl);

Register an implementation for the GetAllMembers method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the GetAllMembers D-Bus method

### tp_svc_channel_interface_group_return_from_get_all_members ()

    void                tp_svc_channel_interface_group_return_from_get_all_members
                                                            (DBusGMethodInvocation *context,
                                                             const GArray *out_Members,
                                                             const GArray *out_Local_Pending,
                                                             const GArray *out_Remote_Pending);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context
`out_Members` : | const GArray * (FIXME, generate documentation)
`out_Local_Pending` : | const GArray * (FIXME, generate documentation)
`out_Remote_Pending` : | const GArray * (FIXME, generate documentation)

### tp_svc_channel_interface_group_get_group_flags_impl ()

    void                (*tp_svc_channel_interface_group_get_group_flags_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method GetGroupFlags on interface org.freedesktop.Telepathy.Channel.Interface.Group.

`self` : | The object implementing this interface
`context` : | Used to return values or throw an error

### tp_svc_channel_interface_group_implement_get_group_flags ()

    void                tp_svc_channel_interface_group_implement_get_group_flags
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_get_group_flags_impl impl);

Register an implementation for the GetGroupFlags method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the GetGroupFlags D-Bus method

### tp_svc_channel_interface_group_return_from_get_group_flags ()

    void                tp_svc_channel_interface_group_return_from_get_group_flags
                                                            (DBusGMethodInvocation *context,
                                                             guint out_Group_Flags);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context
`out_Group_Flags` : | guint (FIXME, generate documentation)

### tp_svc_channel_interface_group_get_handle_owners_impl ()

    void                (*tp_svc_channel_interface_group_get_handle_owners_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             const GArray *in_Handles,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method GetHandleOwners on interface org.freedesktop.Telepathy.Channel.Interface.Group.

`self` : | The object implementing this interface
`in_Handles` : | const GArray * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_channel_interface_group_implement_get_handle_owners ()

    void                tp_svc_channel_interface_group_implement_get_handle_owners
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_get_handle_owners_impl impl);

Register an implementation for the GetHandleOwners method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the GetHandleOwners D-Bus method

### tp_svc_channel_interface_group_return_from_get_handle_owners ()

    void                tp_svc_channel_interface_group_return_from_get_handle_owners
                                                            (DBusGMethodInvocation *context,
                                                             const GArray *out_Owners);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context
`out_Owners` : | const GArray * (FIXME, generate documentation)

### tp_svc_channel_interface_group_get_local_pending_members_impl ()

    void                (*tp_svc_channel_interface_group_get_local_pending_members_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method GetLocalPendingMembers on interface org.freedesktop.Telepathy.Channel.Interface.Group.

`self` : | The object implementing this interface
`context` : | Used to return values or throw an error

### tp_svc_channel_interface_group_implement_get_local_pending_members ()

    void                tp_svc_channel_interface_group_implement_get_local_pending_members
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_get_local_pending_members_impl impl);

Register an implementation for the GetLocalPendingMembers method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the GetLocalPendingMembers D-Bus method

### tp_svc_channel_interface_group_return_from_get_local_pending_members ()

    void                tp_svc_channel_interface_group_return_from_get_local_pending_members
                                                            (DBusGMethodInvocation *context,
                                                             const GArray *out_Handles);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context
`out_Handles` : | const GArray * (FIXME, generate documentation)

### tp_svc_channel_interface_group_get_local_pending_members_with_info_impl ()

    void                (*tp_svc_channel_interface_group_get_local_pending_members_with_info_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method GetLocalPendingMembersWithInfo on interface org.freedesktop.Telepathy.Channel.Interface.Group.

`self` : | The object implementing this interface
`context` : | Used to return values or throw an error

### tp_svc_channel_interface_group_implement_get_local_pending_members_with_info ()

    void                tp_svc_channel_interface_group_implement_get_local_pending_members_with_info
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_get_local_pending_members_with_info_impl impl);

Register an implementation for the GetLocalPendingMembersWithInfo method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the GetLocalPendingMembersWithInfo D-Bus method

### tp_svc_channel_interface_group_return_from_get_local_pending_members_with_info ()

    void                tp_svc_channel_interface_group_return_from_get_local_pending_members_with_info
                                                            (DBusGMethodInvocation *context,
                                                             const GPtrArray *out_Info);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context
`out_Info` : | const GPtrArray * (FIXME, generate documentation)

### tp_svc_channel_interface_group_get_members_impl ()

    void                (*tp_svc_channel_interface_group_get_members_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method GetMembers on interface org.freedesktop.Telepathy.Channel.Interface.Group.

`self` : | The object implementing this interface
`context` : | Used to return values or throw an error

### tp_svc_channel_interface_group_implement_get_members ()

    void                tp_svc_channel_interface_group_implement_get_members
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_get_members_impl impl);

Register an implementation for the GetMembers method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the GetMembers D-Bus method

### tp_svc_channel_interface_group_return_from_get_members ()

    void                tp_svc_channel_interface_group_return_from_get_members
                                                            (DBusGMethodInvocation *context,
                                                             const GArray *out_Handles);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context
`out_Handles` : | const GArray * (FIXME, generate documentation)

### tp_svc_channel_interface_group_get_remote_pending_members_impl ()

    void                (*tp_svc_channel_interface_group_get_remote_pending_members_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method GetRemotePendingMembers on interface org.freedesktop.Telepathy.Channel.Interface.Group.

`self` : | The object implementing this interface
`context` : | Used to return values or throw an error

### tp_svc_channel_interface_group_implement_get_remote_pending_members ()

    void                tp_svc_channel_interface_group_implement_get_remote_pending_members
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_get_remote_pending_members_impl impl);

Register an implementation for the GetRemotePendingMembers method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the GetRemotePendingMembers D-Bus method

### tp_svc_channel_interface_group_return_from_get_remote_pending_members ()

    void                tp_svc_channel_interface_group_return_from_get_remote_pending_members
                                                            (DBusGMethodInvocation *context,
                                                             const GArray *out_Handles);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context
`out_Handles` : | const GArray * (FIXME, generate documentation)

### tp_svc_channel_interface_group_get_self_handle_impl ()

    void                (*tp_svc_channel_interface_group_get_self_handle_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method GetSelfHandle on interface org.freedesktop.Telepathy.Channel.Interface.Group.

`self` : | The object implementing this interface
`context` : | Used to return values or throw an error

### tp_svc_channel_interface_group_implement_get_self_handle ()

    void                tp_svc_channel_interface_group_implement_get_self_handle
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_get_self_handle_impl impl);

Register an implementation for the GetSelfHandle method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the GetSelfHandle D-Bus method

### tp_svc_channel_interface_group_return_from_get_self_handle ()

    void                tp_svc_channel_interface_group_return_from_get_self_handle
                                                            (DBusGMethodInvocation *context,
                                                             guint out_Self_Handle);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context
`out_Self_Handle` : | guint (FIXME, generate documentation)

### tp_svc_channel_interface_group_remove_members_impl ()

    void                (*tp_svc_channel_interface_group_remove_members_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             const GArray *in_Contacts,
                                                             const gchar *in_Message,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method RemoveMembers on interface org.freedesktop.Telepathy.Channel.Interface.Group.

`self` : | The object implementing this interface
`in_Contacts` : | const GArray * (FIXME, generate documentation)
`in_Message` : | const gchar * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_channel_interface_group_implement_remove_members ()

    void                tp_svc_channel_interface_group_implement_remove_members
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_remove_members_impl impl);

Register an implementation for the RemoveMembers method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the RemoveMembers D-Bus method

### tp_svc_channel_interface_group_return_from_remove_members ()

    void                tp_svc_channel_interface_group_return_from_remove_members
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_channel_interface_group_emit_group_flags_changed ()

    void                tp_svc_channel_interface_group_emit_group_flags_changed
                                                            (gpointer instance,
                                                             guint arg_Added,
                                                             guint arg_Removed);

Type-safe wrapper around g_signal_emit to emit the GroupFlagsChanged signal on interface org.freedesktop.Telepathy.Channel.Interface.Group.

`instance` : | The object implementing this interface
`arg_Added` : | guint (FIXME, generate documentation)
`arg_Removed` : | guint (FIXME, generate documentation)

### tp_svc_channel_interface_group_emit_members_changed ()

    void                tp_svc_channel_interface_group_emit_members_changed
                                                            (gpointer instance,
                                                             const gchar *arg_Message,
                                                             const GArray *arg_Added,
                                                             const GArray *arg_Removed,
                                                             const GArray *arg_Local_Pending,
                                                             const GArray *arg_Remote_Pending,
                                                             guint arg_Actor,
                                                             guint arg_Reason);

Type-safe wrapper around g_signal_emit to emit the MembersChanged signal on interface org.freedesktop.Telepathy.Channel.Interface.Group.

`instance` : | The object implementing this interface
`arg_Message` : | const gchar * (FIXME, generate documentation)
`arg_Added` : | const GArray * (FIXME, generate documentation)
`arg_Removed` : | const GArray * (FIXME, generate documentation)
`arg_Local_Pending` : | const GArray * (FIXME, generate documentation)
`arg_Remote_Pending` : | const GArray * (FIXME, generate documentation)
`arg_Actor` : | guint (FIXME, generate documentation)
`arg_Reason` : | guint (FIXME, generate documentation)

### tp_svc_channel_interface_group_emit_members_changed_detailed ()

    void                tp_svc_channel_interface_group_emit_members_changed_detailed
                                                            (gpointer instance,
                                                             const GArray *arg_Added,
                                                             const GArray *arg_Removed,
                                                             const GArray *arg_Local_Pending,
                                                             const GArray *arg_Remote_Pending,
                                                             GHashTable *arg_Details);

Type-safe wrapper around g_signal_emit to emit the MembersChangedDetailed signal on interface org.freedesktop.Telepathy.Channel.Interface.Group.

`instance` : | The object implementing this interface
`arg_Added` : | const GArray * (FIXME, generate documentation)
`arg_Removed` : | const GArray * (FIXME, generate documentation)
`arg_Local_Pending` : | const GArray * (FIXME, generate documentation)
`arg_Remote_Pending` : | const GArray * (FIXME, generate documentation)
`arg_Details` : | GHashTable * (FIXME, generate documentation)

### tp_svc_channel_interface_group_implement_remove_members_with_reason ()

    void                tp_svc_channel_interface_group_implement_remove_members_with_reason
                                                            (TpSvcChannelInterfaceGroupClass *klass,
                                                             tp_svc_channel_interface_group_remove_members_with_reason_impl impl);

Register an implementation for the RemoveMembersWithReason method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the RemoveMembersWithReason D-Bus method

### tp_svc_channel_interface_group_remove_members_with_reason_impl ()

    void                (*tp_svc_channel_interface_group_remove_members_with_reason_impl)
                                                            (TpSvcChannelInterfaceGroup *self,
                                                             const GArray *in_Contacts,
                                                             const gchar *in_Message,
                                                             guint in_Reason,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method RemoveMembersWithReason on interface org.freedesktop.Telepathy.Channel.Interface.Group.

`self` : | The object implementing this interface
`in_Contacts` : | const GArray * (FIXME, generate documentation)
`in_Message` : | const gchar * (FIXME, generate documentation)
`in_Reason` : | guint (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_channel_interface_group_return_from_remove_members_with_reason ()

    void                tp_svc_channel_interface_group_return_from_remove_members_with_reason
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_channel_interface_group_emit_handle_owners_changed ()

    void                tp_svc_channel_interface_group_emit_handle_owners_changed
                                                            (gpointer instance,
                                                             GHashTable *arg_Added,
                                                             const GArray *arg_Removed);

Type-safe wrapper around g_signal_emit to emit the HandleOwnersChanged signal on interface org.freedesktop.Telepathy.Channel.Interface.Group.

`instance` : | The object implementing this interface
`arg_Added` : | GHashTable * (FIXME, generate documentation)
`arg_Removed` : | const GArray * (FIXME, generate documentation)

### tp_svc_channel_interface_group_emit_self_handle_changed ()

    void                tp_svc_channel_interface_group_emit_self_handle_changed
                                                            (gpointer instance,
                                                             guint arg_Self_Handle);

Type-safe wrapper around g_signal_emit to emit the SelfHandleChanged signal on interface org.freedesktop.Telepathy.Channel.Interface.Group.

`instance` : | The object implementing this interface
`arg_Self_Handle` : | guint (FIXME, generate documentation)

### TpSvcChannelInterfaceConference

    typedef struct _TpSvcChannelInterfaceConference TpSvcChannelInterfaceConference;

Dummy typedef representing any implementation of this interface.

### TpSvcChannelInterfaceConferenceClass

    typedef struct _TpSvcChannelInterfaceConferenceClass TpSvcChannelInterfaceConferenceClass;

The class of TpSvcChannelInterfaceConference. This interface has no D-Bus methods, so an implementation can typically pass `NULL` to `G_IMPLEMENT_INTERFACE()` as the interface initialization function.

### tp_svc_channel_interface_conference_emit_channel_merged ()

    void                tp_svc_channel_interface_conference_emit_channel_merged
                                                            (gpointer instance,
                                                             const gchar *arg_Channel,
                                                             guint arg_Channel_Specific_Handle,
                                                             GHashTable *arg_Properties);

Type-safe wrapper around g_signal_emit to emit the ChannelMerged signal on interface org.freedesktop.Telepathy.Channel.Interface.Conference.

`instance` : | The object implementing this interface
`arg_Channel` : | const gchar * (FIXME, generate documentation)
`arg_Channel_Specific_Handle` : | guint (FIXME, generate documentation)
`arg_Properties` : | GHashTable * (FIXME, generate documentation)

### tp_svc_channel_interface_conference_emit_channel_removed ()

    void                tp_svc_channel_interface_conference_emit_channel_removed
                                                            (gpointer instance,
                                                             const gchar *arg_Channel,
                                                             GHashTable *arg_Details);

Type-safe wrapper around g_signal_emit to emit the ChannelRemoved signal on interface org.freedesktop.Telepathy.Channel.Interface.Conference.

`instance` : | The object implementing this interface
`arg_Channel` : | const gchar * (FIXME, generate documentation)
`arg_Details` : | GHashTable * (FIXME, generate documentation)

## Signal Details

### The `"group-flags-changed"` signal

    void                user_function                      (TpSvcChannelInterfaceGroup *self,
                                                            guint                       arg_Added,
                                                            guint                       arg_Removed,
                                                            gpointer                    user_data)        : Has Details

The GroupFlagsChanged D-Bus signal is emitted whenever this GObject signal is.

`self` : | an object
`arg_Added` : | guint (FIXME, generate documentation)
`arg_Removed` : | guint (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"handle-owners-changed"` signal

    void                user_function                      (TpSvcChannelInterfaceGroup *self,
                                                            GArray_guint_              *arg_Removed,
                                                            gpointer                    user_data)        : Has Details

The HandleOwnersChanged D-Bus signal is emitted whenever this GObject signal is.

`self` : | an object
`arg_Added` : | GHashTable * (FIXME, generate documentation)
`arg_Removed` : | const GArray * (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"handle-owners-changed-detailed"` signal

    void                user_function                      (TpSvcChannelInterfaceGroup *self,
                                                            GArray_guint_              *arg_Removed,
                                                            gpointer                    user_data)        : Has Details

The HandleOwnersChangedDetailed D-Bus signal is emitted whenever this GObject signal is.

`self` : | an object
`arg_Added` : | GHashTable * (FIXME, generate documentation)
`arg_Removed` : | const GArray * (FIXME, generate documentation)
`arg_Identifiers` : | GHashTable * (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"members-changed"` signal

    void                user_function                      (TpSvcChannelInterfaceGroup *self,
                                                            gchar                      *arg_Message,
                                                            GArray_guint_              *arg_Added,
                                                            GArray_guint_              *arg_Removed,
                                                            GArray_guint_              *arg_Local_Pending,
                                                            GArray_guint_              *arg_Remote_Pending,
                                                            guint                       arg_Actor,
                                                            guint                       arg_Reason,
                                                            gpointer                    user_data)               : Has Details

The MembersChanged D-Bus signal is emitted whenever this GObject signal is.

`self` : | an object
`arg_Message` : | const gchar * (FIXME, generate documentation)
`arg_Added` : | const GArray * (FIXME, generate documentation)
`arg_Removed` : | const GArray * (FIXME, generate documentation)
`arg_Local_Pending` : | const GArray * (FIXME, generate documentation)
`arg_Remote_Pending` : | const GArray * (FIXME, generate documentation)
`arg_Actor` : | guint (FIXME, generate documentation)
`arg_Reason` : | guint (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"members-changed-detailed"` signal

    void                user_function                      (TpSvcChannelInterfaceGroup *self,
                                                            GArray_guint_              *arg_Added,
                                                            GArray_guint_              *arg_Removed,
                                                            GArray_guint_              *arg_Local_Pending,
                                                            GArray_guint_              *arg_Remote_Pending,
                                                            gpointer                    user_data)               : Has Details

The MembersChangedDetailed D-Bus signal is emitted whenever this GObject signal is.

`self` : | an object
`arg_Added` : | const GArray * (FIXME, generate documentation)
`arg_Removed` : | const GArray * (FIXME, generate documentation)
`arg_Local_Pending` : | const GArray * (FIXME, generate documentation)
`arg_Remote_Pending` : | const GArray * (FIXME, generate documentation)
`arg_Details` : | GHashTable * (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"self-contact-changed"` signal

    void                user_function                      (TpSvcChannelInterfaceGroup *self,
                                                            guint                       arg_Self_Handle,
                                                            gchar                      *arg_Self_ID,
                                                            gpointer                    user_data)            : Has Details

The SelfContactChanged D-Bus signal is emitted whenever this GObject signal is.

`self` : | an object
`arg_Self_Handle` : | guint (FIXME, generate documentation)
`arg_Self_ID` : | const gchar * (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"self-handle-changed"` signal

    void                user_function                      (TpSvcChannelInterfaceGroup *self,
                                                            guint                       arg_Self_Handle,
                                                            gpointer                    user_data)            : Has Details

The SelfHandleChanged D-Bus signal is emitted whenever this GObject signal is.

`self` : | an object
`arg_Self_Handle` : | guint (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"channel-merged"` signal

    void                user_function                      (TpSvcChannelInterfaceConference *self,
                                                            DBusGObjectPath                 *arg_Channel,
                                                            guint                            arg_Channel_Specific_Handle,
                                                            gpointer                         user_data)                        : Has Details

The ChannelMerged D-Bus signal is emitted whenever this GObject signal is.

`self` : | an object
`arg_Channel` : | const gchar * (FIXME, generate documentation)
`arg_Channel_Specific_Handle` : | guint (FIXME, generate documentation)
`arg_Properties` : | GHashTable * (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"channel-removed"` signal

    void                user_function                      (TpSvcChannelInterfaceConference *self,
                                                            DBusGObjectPath                 *arg_Channel,
                                                            gpointer                         user_data)        : Has Details

The ChannelRemoved D-Bus signal is emitted whenever this GObject signal is.

`self` : | an object
`arg_Channel` : | const gchar * (FIXME, generate documentation)
`arg_Details` : | GHashTable * (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

## See Also

TpGroupMixin