Group interface on Channels

## Group interface on Channels Group interface on Channels — client-side wrappers for the Group interface |

## Synopsis

    #include <telepathy-glib/channel.h>

    gboolean            tp_cli_channel_interface_group_run_add_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             const GArray *in_contacts,
                                                             const gchar *in_message,
                                                             GError **error,
                                                             GMainLoop **loop);
    gboolean            tp_cli_channel_interface_group_run_get_all_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             GArray **out0,
                                                             GArray **out1,
                                                             GArray **out2,
                                                             GError **error,
                                                             GMainLoop **loop);
    gboolean            tp_cli_channel_interface_group_run_get_group_flags
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             guint *out0,
                                                             GError **error,
                                                             GMainLoop **loop);
    gboolean            tp_cli_channel_interface_group_run_get_handle_owners
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             const GArray *in_handles,
                                                             GArray **out0,
                                                             GError **error,
                                                             GMainLoop **loop);
    gboolean            tp_cli_channel_interface_group_run_get_local_pending_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             GArray **out0,
                                                             GError **error,
                                                             GMainLoop **loop);
    gboolean            tp_cli_channel_interface_group_run_get_local_pending_members_with_info
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             GPtrArray **out0,
                                                             GError **error,
                                                             GMainLoop **loop);
    gboolean            tp_cli_channel_interface_group_run_get_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             GArray **out0,
                                                             GError **error,
                                                             GMainLoop **loop);
    gboolean            tp_cli_channel_interface_group_run_get_remote_pending_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             GArray **out0,
                                                             GError **error,
                                                             GMainLoop **loop);
    gboolean            tp_cli_channel_interface_group_run_get_self_handle
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             guint *out0,
                                                             GError **error,
                                                             GMainLoop **loop);
    gboolean            tp_cli_channel_interface_group_run_remove_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             const GArray *in_contacts,
                                                             const gchar *in_message,
                                                             GError **error,
                                                             GMainLoop **loop);
    gboolean            tp_cli_channel_interface_group_run_remove_members_with_reason
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             const GArray *in_contacts,
                                                             const gchar *in_message,
                                                             guint in_reason,
                                                             GError **error,
                                                             GMainLoop **loop);
    TpProxyPendingCall* tp_cli_channel_interface_group_call_add_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             const GArray *in_contacts,
                                                             const gchar *in_message,
                                                             tp_cli_channel_interface_group_callback_for_add_members callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    TpProxyPendingCall* tp_cli_channel_interface_group_call_get_all_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             tp_cli_channel_interface_group_callback_for_get_all_members callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    TpProxyPendingCall* tp_cli_channel_interface_group_call_get_group_flags
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             tp_cli_channel_interface_group_callback_for_get_group_flags callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    TpProxyPendingCall* tp_cli_channel_interface_group_call_get_handle_owners
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             const GArray *in_handles,
                                                             tp_cli_channel_interface_group_callback_for_get_handle_owners callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    TpProxyPendingCall* tp_cli_channel_interface_group_call_get_local_pending_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             tp_cli_channel_interface_group_callback_for_get_local_pending_members callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    TpProxyPendingCall* tp_cli_channel_interface_group_call_get_local_pending_members_with_info
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             tp_cli_channel_interface_group_callback_for_get_local_pending_members_with_info callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    TpProxyPendingCall* tp_cli_channel_interface_group_call_get_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             tp_cli_channel_interface_group_callback_for_get_members callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    TpProxyPendingCall* tp_cli_channel_interface_group_call_get_remote_pending_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             tp_cli_channel_interface_group_callback_for_get_remote_pending_members callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    TpProxyPendingCall* tp_cli_channel_interface_group_call_get_self_handle
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             tp_cli_channel_interface_group_callback_for_get_self_handle callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    TpProxyPendingCall* tp_cli_channel_interface_group_call_remove_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             const GArray *in_contacts,
                                                             const gchar *in_message,
                                                             tp_cli_channel_interface_group_callback_for_remove_members callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    TpProxyPendingCall* tp_cli_channel_interface_group_call_remove_members_with_reason
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             const GArray *in_contacts,
                                                             const gchar *in_message,
                                                             guint in_reason,
                                                             tp_cli_channel_interface_group_callback_for_remove_members_with_reason callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    void                (*tp_cli_channel_interface_group_callback_for_add_members)
                                                            (TpChannel *proxy,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    void                (*tp_cli_channel_interface_group_callback_for_get_all_members)
                                                            (TpChannel *proxy,
                                                             const GArray *out0,
                                                             const GArray *out1,
                                                             const GArray *out2,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    void                (*tp_cli_channel_interface_group_callback_for_get_group_flags)
                                                            (TpChannel *proxy,
                                                             guint out0,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    void                (*tp_cli_channel_interface_group_callback_for_get_handle_owners)
                                                            (TpChannel *proxy,
                                                             const GArray *out0,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    void                (*tp_cli_channel_interface_group_callback_for_get_local_pending_members)
                                                            (TpChannel *proxy,
                                                             const GArray *out0,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    void                (*tp_cli_channel_interface_group_callback_for_get_local_pending_members_with_info)
                                                            (TpChannel *proxy,
                                                             const GPtrArray *out0,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    void                (*tp_cli_channel_interface_group_callback_for_get_members)
                                                            (TpChannel *proxy,
                                                             const GArray *out0,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    void                (*tp_cli_channel_interface_group_callback_for_get_remote_pending_members)
                                                            (TpChannel *proxy,
                                                             const GArray *out0,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    void                (*tp_cli_channel_interface_group_callback_for_get_self_handle)
                                                            (TpChannel *proxy,
                                                             guint out0,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    void                (*tp_cli_channel_interface_group_callback_for_remove_members)
                                                            (TpChannel *proxy,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    void                (*tp_cli_channel_interface_group_callback_for_remove_members_with_reason)
                                                            (TpChannel *proxy,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    TpProxySignalConnection* tp_cli_channel_interface_group_connect_to_group_flags_changed
                                                            (TpChannel *proxy,
                                                             tp_cli_channel_interface_group_signal_callback_group_flags_changed callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object,
                                                             GError **error);
    TpProxySignalConnection* tp_cli_channel_interface_group_connect_to_members_changed
                                                            (TpChannel *proxy,
                                                             tp_cli_channel_interface_group_signal_callback_members_changed callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object,
                                                             GError **error);
    void                (*tp_cli_channel_interface_group_signal_callback_group_flags_changed)
                                                            (TpChannel *proxy,
                                                             guint arg_added,
                                                             guint arg_removed,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    void                (*tp_cli_channel_interface_group_signal_callback_members_changed)
                                                            (TpChannel *proxy,
                                                             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,
                                                             gpointer user_data,
                                                             GObject *weak_object);

## 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 C wrappers for 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.

## Details

### tp_cli_channel_interface_group_run_add_members ()

    gboolean            tp_cli_channel_interface_group_run_add_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             const GArray *in_contacts,
                                                             const gchar *in_message,
                                                             GError **error,
                                                             GMainLoop **loop);

Call the method AddMembers and run the main loop until it returns. Before calling this method, you must add a reference to any borrowed objects you need to keep, and generally ensure that everything is in a consistent state.

<tp:docstring xmlns="http://www.w3.org/1999/xhtml"> <p>Invite all the given contacts into the channel, or accept requests for channel membership for contacts on the pending local list.</p> <p>A message may be provided along with the request, which will be sent to the server if supported. See the CHANNEL_GROUP_FLAG_MESSAGE_ADD and CHANNEL_GROUP_FLAG_MESSAGE_ACCEPT flags to see in which cases this message should be provided.</p> <p>Attempting to add contacts who are already members is allowed; connection managers must silently accept this, without error.</p>

`proxy` : | A TpChannel or subclass
`timeout_ms` : | Timeout in milliseconds, or -1 for default
`in_contacts` : | Used to pass an 'in' argument: An array of contact handles to invite to the channel
`in_message` : | Used to pass an 'in' argument: A string message, which can be blank if desired
`error` : | If not `NULL`, used to return errors if `FALSE` is returned
`loop` : | If not `NULL`, set before re-entering the main loop, to point to a GMainLoop which can be used to cancel this call with `g_main_loop_quit()`, causing a return of `FALSE` with `error` set to `TP_DBUS_ERROR_CANCELLED`
Returns : | TRUE on success, FALSE and sets `error` on error

### tp_cli_channel_interface_group_run_get_all_members ()

    gboolean            tp_cli_channel_interface_group_run_get_all_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             GArray **out0,
                                                             GArray **out1,
                                                             GArray **out2,
                                                             GError **error,
                                                             GMainLoop **loop);

Call the method GetAllMembers and run the main loop until it returns. Before calling this method, you must add a reference to any borrowed objects you need to keep, and generally ensure that everything is in a consistent state.

Returns arrays of all current, local and remote pending channel members.

`proxy` : | A TpChannel or subclass
`timeout_ms` : | Timeout in milliseconds, or -1 for default
`out0` : | Used to return an 'out' argument if `TRUE` is returned: array of handles of current members
`out1` : | Used to return an 'out' argument if `TRUE` is returned: array of handles of local pending members
`out2` : | Used to return an 'out' argument if `TRUE` is returned: array of handles of remote pending members
`error` : | If not `NULL`, used to return errors if `FALSE` is returned
`loop` : | If not `NULL`, set before re-entering the main loop, to point to a GMainLoop which can be used to cancel this call with `g_main_loop_quit()`, causing a return of `FALSE` with `error` set to `TP_DBUS_ERROR_CANCELLED`
Returns : | TRUE on success, FALSE and sets `error` on error

### tp_cli_channel_interface_group_run_get_group_flags ()

    gboolean            tp_cli_channel_interface_group_run_get_group_flags
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             guint *out0,
                                                             GError **error,
                                                             GMainLoop **loop);

Call the method GetGroupFlags and run the main loop until it returns. Before calling this method, you must add a reference to any borrowed objects you need to keep, and generally ensure that everything is in a consistent state.

Returns an integer representing the bitwise-OR of flags on this channel. The user interface can use this to present information about which operations are currently valid.

`proxy` : | A TpChannel or subclass
`timeout_ms` : | Timeout in milliseconds, or -1 for default
`out0` : | Used to return an 'out' argument if `TRUE` is returned: The bitwise OR of zero or more values from ChannelGroupFlags
`error` : | If not `NULL`, used to return errors if `FALSE` is returned
`loop` : | If not `NULL`, set before re-entering the main loop, to point to a GMainLoop which can be used to cancel this call with `g_main_loop_quit()`, causing a return of `FALSE` with `error` set to `TP_DBUS_ERROR_CANCELLED`
Returns : | TRUE on success, FALSE and sets `error` on error

### tp_cli_channel_interface_group_run_get_handle_owners ()

    gboolean            tp_cli_channel_interface_group_run_get_handle_owners
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             const GArray *in_handles,
                                                             GArray **out0,
                                                             GError **error,
                                                             GMainLoop **loop);

Call the method GetHandleOwners and run the main loop until it returns. Before calling this method, you must add a reference to any borrowed objects you need to keep, and generally ensure that everything is in a consistent state.

If the CHANNEL_GROUP_FLAG_CHANNEL_SPECIFIC_HANDLES flag is set on the channel, then the handles of the group members are specific to this channel, and are not meaningful in a connection-wide context such as contact lists. This method allows you to find the owner of the handle if it can be discovered in this channel, or 0 if the owner is not available.

`proxy` : | A TpChannel or subclass
`timeout_ms` : | Timeout in milliseconds, or -1 for default
`in_handles` : | Used to pass an 'in' argument: A list of integer handles representing members of the channel
`out0` : | Used to return an 'out' argument if `TRUE` is returned: An array of integer handles representing the owner handles of the given room members, in the same order, or 0 if the owner is not available
`error` : | If not `NULL`, used to return errors if `FALSE` is returned
`loop` : | If not `NULL`, set before re-entering the main loop, to point to a GMainLoop which can be used to cancel this call with `g_main_loop_quit()`, causing a return of `FALSE` with `error` set to `TP_DBUS_ERROR_CANCELLED`
Returns : | TRUE on success, FALSE and sets `error` on error

### tp_cli_channel_interface_group_run_get_local_pending_members ()

    gboolean            tp_cli_channel_interface_group_run_get_local_pending_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             GArray **out0,
                                                             GError **error,
                                                             GMainLoop **loop);

Call the method GetLocalPendingMembers and run the main loop until it returns. Before calling this method, you must add a reference to any borrowed objects you need to keep, and generally ensure that everything is in a consistent state.

Returns an array of handles representing contacts requesting channel membership and awaiting local approval with AddMembers.

`proxy` : | A TpChannel or subclass
`timeout_ms` : | Timeout in milliseconds, or -1 for default
`out0` : | Used to return an 'out' argument if `TRUE` is returned: (Undocumented)
`error` : | If not `NULL`, used to return errors if `FALSE` is returned
`loop` : | If not `NULL`, set before re-entering the main loop, to point to a GMainLoop which can be used to cancel this call with `g_main_loop_quit()`, causing a return of `FALSE` with `error` set to `TP_DBUS_ERROR_CANCELLED`
Returns : | TRUE on success, FALSE and sets `error` on error

### tp_cli_channel_interface_group_run_get_local_pending_members_with_info ()

    gboolean            tp_cli_channel_interface_group_run_get_local_pending_members_with_info
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             GPtrArray **out0,
                                                             GError **error,
                                                             GMainLoop **loop);

Call the method GetLocalPendingMembersWithInfo and run the main loop until it returns. Before calling this method, you must add a reference to any borrowed objects you need to keep, and generally ensure that everything is in a consistent state.

Returns an array of structs containing handles representing contacts requesting channel membership and awaiting local approval with AddMembers.

`proxy` : | A TpChannel or subclass
`timeout_ms` : | Timeout in milliseconds, or -1 for default
`out0` : | Used to return an 'out' argument if `TRUE` is returned: An array of structs containing: <ul> <li> A handle representing the contact requesting channel membership </li> <li> A handle representing the contact making the request, or 0 if unknown </li> <li> The reason for the request: one of the values of ChannelGroupChangeReason </li> <li> A string message containing the reason for the request if any (or blank if none) </li> </ul>
`error` : | If not `NULL`, used to return errors if `FALSE` is returned
`loop` : | If not `NULL`, set before re-entering the main loop, to point to a GMainLoop which can be used to cancel this call with `g_main_loop_quit()`, causing a return of `FALSE` with `error` set to `TP_DBUS_ERROR_CANCELLED`
Returns : | TRUE on success, FALSE and sets `error` on error

### tp_cli_channel_interface_group_run_get_members ()

    gboolean            tp_cli_channel_interface_group_run_get_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             GArray **out0,
                                                             GError **error,
                                                             GMainLoop **loop);

Call the method GetMembers and run the main loop until it returns. Before calling this method, you must add a reference to any borrowed objects you need to keep, and generally ensure that everything is in a consistent state.

Returns an array of handles for the members of this channel.

`proxy` : | A TpChannel or subclass
`timeout_ms` : | Timeout in milliseconds, or -1 for default
`out0` : | Used to return an 'out' argument if `TRUE` is returned: (Undocumented)
`error` : | If not `NULL`, used to return errors if `FALSE` is returned
`loop` : | If not `NULL`, set before re-entering the main loop, to point to a GMainLoop which can be used to cancel this call with `g_main_loop_quit()`, causing a return of `FALSE` with `error` set to `TP_DBUS_ERROR_CANCELLED`
Returns : | TRUE on success, FALSE and sets `error` on error

### tp_cli_channel_interface_group_run_get_remote_pending_members ()

    gboolean            tp_cli_channel_interface_group_run_get_remote_pending_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             GArray **out0,
                                                             GError **error,
                                                             GMainLoop **loop);

Call the method GetRemotePendingMembers and run the main loop until it returns. Before calling this method, you must add a reference to any borrowed objects you need to keep, and generally ensure that everything is in a consistent state.

Returns an array of handles representing contacts who have been invited to the channel and are awaiting remote approval.

`proxy` : | A TpChannel or subclass
`timeout_ms` : | Timeout in milliseconds, or -1 for default
`out0` : | Used to return an 'out' argument if `TRUE` is returned: (Undocumented)
`error` : | If not `NULL`, used to return errors if `FALSE` is returned
`loop` : | If not `NULL`, set before re-entering the main loop, to point to a GMainLoop which can be used to cancel this call with `g_main_loop_quit()`, causing a return of `FALSE` with `error` set to `TP_DBUS_ERROR_CANCELLED`
Returns : | TRUE on success, FALSE and sets `error` on error

### tp_cli_channel_interface_group_run_get_self_handle ()

    gboolean            tp_cli_channel_interface_group_run_get_self_handle
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             guint *out0,
                                                             GError **error,
                                                             GMainLoop **loop);

Call the method GetSelfHandle and run the main loop until it returns. Before calling this method, you must add a reference to any borrowed objects you need to keep, and generally ensure that everything is in a consistent state.

Returns the handle for the user on this channel (which can also be a local or remote pending member) or 0 if the user not a member at all (which is likely to be the case, for instance, on Type.ContactList channels). Note that this is different from the connection GetSelfHandle on some protocols, so the value of this handle should always be used with the methods of this interface.

`proxy` : | A TpChannel or subclass
`timeout_ms` : | Timeout in milliseconds, or -1 for default
`out0` : | Used to return an 'out' argument if `TRUE` is returned: (Undocumented)
`error` : | If not `NULL`, used to return errors if `FALSE` is returned
`loop` : | If not `NULL`, set before re-entering the main loop, to point to a GMainLoop which can be used to cancel this call with `g_main_loop_quit()`, causing a return of `FALSE` with `error` set to `TP_DBUS_ERROR_CANCELLED`
Returns : | TRUE on success, FALSE and sets `error` on error

### tp_cli_channel_interface_group_run_remove_members ()

    gboolean            tp_cli_channel_interface_group_run_remove_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             const GArray *in_contacts,
                                                             const gchar *in_message,
                                                             GError **error,
                                                             GMainLoop **loop);

Call the method RemoveMembers and run the main loop until it returns. Before calling this method, you must add a reference to any borrowed objects you need to keep, and generally ensure that everything is in a consistent state.

Requests the removal of contacts from a channel, reject their request for channel membership on the pending local list, or rescind their invitation on the pending remote list. A message may be provided along with the request, which will be sent to the server if supported. See the CHANNEL_GROUP_FLAG_MESSAGE_REMOVE, CHANNEL_GROUP_FLAG_MESSAGE_REJECT and CHANNEL_GROUP_FLAG_MESSAGE_RESCIND flags to see in which cases this message should be provided.

`proxy` : | A TpChannel or subclass
`timeout_ms` : | Timeout in milliseconds, or -1 for default
`in_contacts` : | Used to pass an 'in' argument: An array of contact handles to remove from the channel
`in_message` : | Used to pass an 'in' argument: A string message, which can be blank if desired
`error` : | If not `NULL`, used to return errors if `FALSE` is returned
`loop` : | If not `NULL`, set before re-entering the main loop, to point to a GMainLoop which can be used to cancel this call with `g_main_loop_quit()`, causing a return of `FALSE` with `error` set to `TP_DBUS_ERROR_CANCELLED`
Returns : | TRUE on success, FALSE and sets `error` on error

### tp_cli_channel_interface_group_run_remove_members_with_reason ()

    gboolean            tp_cli_channel_interface_group_run_remove_members_with_reason
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             const GArray *in_contacts,
                                                             const gchar *in_message,
                                                             guint in_reason,
                                                             GError **error,
                                                             GMainLoop **loop);

Call the method RemoveMembersWithReason and run the main loop until it returns. Before calling this method, you must add a reference to any borrowed objects you need to keep, and generally ensure that everything is in a consistent state.

As RemoveMembers, but a reason code may be provided where appropriate. The reason code may be ignored if the underlying protocol is unable to represent the given reason.

`proxy` : | A TpChannel or subclass
`timeout_ms` : | Timeout in milliseconds, or -1 for default
`in_contacts` : | Used to pass an 'in' argument: An array of contact handles to remove from the channel
`in_message` : | Used to pass an 'in' argument: A string message, which can be blank if desired
`in_reason` : | Used to pass an 'in' argument: A reason for the change: one of the values of ChannelGroupChangeReason
`error` : | If not `NULL`, used to return errors if `FALSE` is returned
`loop` : | If not `NULL`, set before re-entering the main loop, to point to a GMainLoop which can be used to cancel this call with `g_main_loop_quit()`, causing a return of `FALSE` with `error` set to `TP_DBUS_ERROR_CANCELLED`
Returns : | TRUE on success, FALSE and sets `error` on error

### tp_cli_channel_interface_group_call_add_members ()

    TpProxyPendingCall* tp_cli_channel_interface_group_call_add_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             const GArray *in_contacts,
                                                             const gchar *in_message,
                                                             tp_cli_channel_interface_group_callback_for_add_members callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Start a AddMembers method call.

<tp:docstring xmlns="http://www.w3.org/1999/xhtml"> <p>Invite all the given contacts into the channel, or accept requests for channel membership for contacts on the pending local list.</p> <p>A message may be provided along with the request, which will be sent to the server if supported. See the CHANNEL_GROUP_FLAG_MESSAGE_ADD and CHANNEL_GROUP_FLAG_MESSAGE_ACCEPT flags to see in which cases this message should be provided.</p> <p>Attempting to add contacts who are already members is allowed; connection managers must silently accept this, without error.</p>

`proxy` : | the TpProxy
`timeout_ms` : | the timeout in milliseconds, or -1 to use the default
`in_contacts` : | Used to pass an 'in' argument: An array of contact handles to invite to the channel
`in_message` : | Used to pass an 'in' argument: A string message, which can be blank if desired
`callback` : | called when the method call succeeds or fails
`user_data` : | user-supplied data passed to the callback
`destroy` : | called with the user_data as argument, after the call has succeeded, failed or been cancelled
`weak_object` : | A GObject which will be weakly referenced; if it is destroyed, this callback will automatically be disconnected
Returns : | a TpProxyPendingCall representing the call in progress. It is borrowed from the object, and will become invalid when the callback is called, the call is cancelled or the TpProxy becomes invalid.

### tp_cli_channel_interface_group_call_get_all_members ()

    TpProxyPendingCall* tp_cli_channel_interface_group_call_get_all_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             tp_cli_channel_interface_group_callback_for_get_all_members callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Start a GetAllMembers method call.

Returns arrays of all current, local and remote pending channel members.

`proxy` : | the TpProxy
`timeout_ms` : | the timeout in milliseconds, or -1 to use the default
`callback` : | called when the method call succeeds or fails
`user_data` : | user-supplied data passed to the callback
`destroy` : | called with the user_data as argument, after the call has succeeded, failed or been cancelled
`weak_object` : | A GObject which will be weakly referenced; if it is destroyed, this callback will automatically be disconnected
Returns : | a TpProxyPendingCall representing the call in progress. It is borrowed from the object, and will become invalid when the callback is called, the call is cancelled or the TpProxy becomes invalid.

### tp_cli_channel_interface_group_call_get_group_flags ()

    TpProxyPendingCall* tp_cli_channel_interface_group_call_get_group_flags
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             tp_cli_channel_interface_group_callback_for_get_group_flags callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Start a GetGroupFlags method call.

Returns an integer representing the bitwise-OR of flags on this channel. The user interface can use this to present information about which operations are currently valid.

`proxy` : | the TpProxy
`timeout_ms` : | the timeout in milliseconds, or -1 to use the default
`callback` : | called when the method call succeeds or fails
`user_data` : | user-supplied data passed to the callback
`destroy` : | called with the user_data as argument, after the call has succeeded, failed or been cancelled
`weak_object` : | A GObject which will be weakly referenced; if it is destroyed, this callback will automatically be disconnected
Returns : | a TpProxyPendingCall representing the call in progress. It is borrowed from the object, and will become invalid when the callback is called, the call is cancelled or the TpProxy becomes invalid.

### tp_cli_channel_interface_group_call_get_handle_owners ()

    TpProxyPendingCall* tp_cli_channel_interface_group_call_get_handle_owners
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             const GArray *in_handles,
                                                             tp_cli_channel_interface_group_callback_for_get_handle_owners callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Start a GetHandleOwners method call.

If the CHANNEL_GROUP_FLAG_CHANNEL_SPECIFIC_HANDLES flag is set on the channel, then the handles of the group members are specific to this channel, and are not meaningful in a connection-wide context such as contact lists. This method allows you to find the owner of the handle if it can be discovered in this channel, or 0 if the owner is not available.

`proxy` : | the TpProxy
`timeout_ms` : | the timeout in milliseconds, or -1 to use the default
`in_handles` : | Used to pass an 'in' argument: A list of integer handles representing members of the channel
`callback` : | called when the method call succeeds or fails
`user_data` : | user-supplied data passed to the callback
`destroy` : | called with the user_data as argument, after the call has succeeded, failed or been cancelled
`weak_object` : | A GObject which will be weakly referenced; if it is destroyed, this callback will automatically be disconnected
Returns : | a TpProxyPendingCall representing the call in progress. It is borrowed from the object, and will become invalid when the callback is called, the call is cancelled or the TpProxy becomes invalid.

### tp_cli_channel_interface_group_call_get_local_pending_members ()

    TpProxyPendingCall* tp_cli_channel_interface_group_call_get_local_pending_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             tp_cli_channel_interface_group_callback_for_get_local_pending_members callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Start a GetLocalPendingMembers method call.

Returns an array of handles representing contacts requesting channel membership and awaiting local approval with AddMembers.

`proxy` : | the TpProxy
`timeout_ms` : | the timeout in milliseconds, or -1 to use the default
`callback` : | called when the method call succeeds or fails
`user_data` : | user-supplied data passed to the callback
`destroy` : | called with the user_data as argument, after the call has succeeded, failed or been cancelled
`weak_object` : | A GObject which will be weakly referenced; if it is destroyed, this callback will automatically be disconnected
Returns : | a TpProxyPendingCall representing the call in progress. It is borrowed from the object, and will become invalid when the callback is called, the call is cancelled or the TpProxy becomes invalid.

### tp_cli_channel_interface_group_call_get_local_pending_members_with_info ()

    TpProxyPendingCall* tp_cli_channel_interface_group_call_get_local_pending_members_with_info
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             tp_cli_channel_interface_group_callback_for_get_local_pending_members_with_info callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Start a GetLocalPendingMembersWithInfo method call.

Returns an array of structs containing handles representing contacts requesting channel membership and awaiting local approval with AddMembers.

`proxy` : | the TpProxy
`timeout_ms` : | the timeout in milliseconds, or -1 to use the default
`callback` : | called when the method call succeeds or fails
`user_data` : | user-supplied data passed to the callback
`destroy` : | called with the user_data as argument, after the call has succeeded, failed or been cancelled
`weak_object` : | A GObject which will be weakly referenced; if it is destroyed, this callback will automatically be disconnected
Returns : | a TpProxyPendingCall representing the call in progress. It is borrowed from the object, and will become invalid when the callback is called, the call is cancelled or the TpProxy becomes invalid.

### tp_cli_channel_interface_group_call_get_members ()

    TpProxyPendingCall* tp_cli_channel_interface_group_call_get_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             tp_cli_channel_interface_group_callback_for_get_members callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Start a GetMembers method call.

Returns an array of handles for the members of this channel.

`proxy` : | the TpProxy
`timeout_ms` : | the timeout in milliseconds, or -1 to use the default
`callback` : | called when the method call succeeds or fails
`user_data` : | user-supplied data passed to the callback
`destroy` : | called with the user_data as argument, after the call has succeeded, failed or been cancelled
`weak_object` : | A GObject which will be weakly referenced; if it is destroyed, this callback will automatically be disconnected
Returns : | a TpProxyPendingCall representing the call in progress. It is borrowed from the object, and will become invalid when the callback is called, the call is cancelled or the TpProxy becomes invalid.

### tp_cli_channel_interface_group_call_get_remote_pending_members ()

    TpProxyPendingCall* tp_cli_channel_interface_group_call_get_remote_pending_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             tp_cli_channel_interface_group_callback_for_get_remote_pending_members callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Start a GetRemotePendingMembers method call.

Returns an array of handles representing contacts who have been invited to the channel and are awaiting remote approval.

`proxy` : | the TpProxy
`timeout_ms` : | the timeout in milliseconds, or -1 to use the default
`callback` : | called when the method call succeeds or fails
`user_data` : | user-supplied data passed to the callback
`destroy` : | called with the user_data as argument, after the call has succeeded, failed or been cancelled
`weak_object` : | A GObject which will be weakly referenced; if it is destroyed, this callback will automatically be disconnected
Returns : | a TpProxyPendingCall representing the call in progress. It is borrowed from the object, and will become invalid when the callback is called, the call is cancelled or the TpProxy becomes invalid.

### tp_cli_channel_interface_group_call_get_self_handle ()

    TpProxyPendingCall* tp_cli_channel_interface_group_call_get_self_handle
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             tp_cli_channel_interface_group_callback_for_get_self_handle callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Start a GetSelfHandle method call.

Returns the handle for the user on this channel (which can also be a local or remote pending member) or 0 if the user not a member at all (which is likely to be the case, for instance, on Type.ContactList channels). Note that this is different from the connection GetSelfHandle on some protocols, so the value of this handle should always be used with the methods of this interface.

`proxy` : | the TpProxy
`timeout_ms` : | the timeout in milliseconds, or -1 to use the default
`callback` : | called when the method call succeeds or fails
`user_data` : | user-supplied data passed to the callback
`destroy` : | called with the user_data as argument, after the call has succeeded, failed or been cancelled
`weak_object` : | A GObject which will be weakly referenced; if it is destroyed, this callback will automatically be disconnected
Returns : | a TpProxyPendingCall representing the call in progress. It is borrowed from the object, and will become invalid when the callback is called, the call is cancelled or the TpProxy becomes invalid.

### tp_cli_channel_interface_group_call_remove_members ()

    TpProxyPendingCall* tp_cli_channel_interface_group_call_remove_members
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             const GArray *in_contacts,
                                                             const gchar *in_message,
                                                             tp_cli_channel_interface_group_callback_for_remove_members callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Start a RemoveMembers method call.

Requests the removal of contacts from a channel, reject their request for channel membership on the pending local list, or rescind their invitation on the pending remote list. A message may be provided along with the request, which will be sent to the server if supported. See the CHANNEL_GROUP_FLAG_MESSAGE_REMOVE, CHANNEL_GROUP_FLAG_MESSAGE_REJECT and CHANNEL_GROUP_FLAG_MESSAGE_RESCIND flags to see in which cases this message should be provided.

`proxy` : | the TpProxy
`timeout_ms` : | the timeout in milliseconds, or -1 to use the default
`in_contacts` : | Used to pass an 'in' argument: An array of contact handles to remove from the channel
`in_message` : | Used to pass an 'in' argument: A string message, which can be blank if desired
`callback` : | called when the method call succeeds or fails
`user_data` : | user-supplied data passed to the callback
`destroy` : | called with the user_data as argument, after the call has succeeded, failed or been cancelled
`weak_object` : | A GObject which will be weakly referenced; if it is destroyed, this callback will automatically be disconnected
Returns : | a TpProxyPendingCall representing the call in progress. It is borrowed from the object, and will become invalid when the callback is called, the call is cancelled or the TpProxy becomes invalid.

### tp_cli_channel_interface_group_call_remove_members_with_reason ()

    TpProxyPendingCall* tp_cli_channel_interface_group_call_remove_members_with_reason
                                                            (TpChannel *proxy,
                                                             gint timeout_ms,
                                                             const GArray *in_contacts,
                                                             const gchar *in_message,
                                                             guint in_reason,
                                                             tp_cli_channel_interface_group_callback_for_remove_members_with_reason callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Start a RemoveMembersWithReason method call.

As RemoveMembers, but a reason code may be provided where appropriate. The reason code may be ignored if the underlying protocol is unable to represent the given reason.

`proxy` : | the TpProxy
`timeout_ms` : | the timeout in milliseconds, or -1 to use the default
`in_contacts` : | Used to pass an 'in' argument: An array of contact handles to remove from the channel
`in_message` : | Used to pass an 'in' argument: A string message, which can be blank if desired
`in_reason` : | Used to pass an 'in' argument: A reason for the change: one of the values of ChannelGroupChangeReason
`callback` : | called when the method call succeeds or fails
`user_data` : | user-supplied data passed to the callback
`destroy` : | called with the user_data as argument, after the call has succeeded, failed or been cancelled
`weak_object` : | A GObject which will be weakly referenced; if it is destroyed, this callback will automatically be disconnected
Returns : | a TpProxyPendingCall representing the call in progress. It is borrowed from the object, and will become invalid when the callback is called, the call is cancelled or the TpProxy becomes invalid.

### tp_cli_channel_interface_group_callback_for_add_members ()

    void                (*tp_cli_channel_interface_group_callback_for_add_members)
                                                            (TpChannel *proxy,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Signature of the callback called when a AddMembers method call succeeds or fails.

`proxy` : | the proxy on which the call was made
`error` : | `NULL` on success, or an error on failure
`user_data` : | user-supplied data
`weak_object` : | user-supplied object

### tp_cli_channel_interface_group_callback_for_get_all_members ()

    void                (*tp_cli_channel_interface_group_callback_for_get_all_members)
                                                            (TpChannel *proxy,
                                                             const GArray *out0,
                                                             const GArray *out1,
                                                             const GArray *out2,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Signature of the callback called when a GetAllMembers method call succeeds or fails.

`proxy` : | the proxy on which the call was made
`out0` : | Used to return an 'out' argument if `error` is `NULL`: array of handles of current members
`out1` : | Used to return an 'out' argument if `error` is `NULL`: array of handles of local pending members
`out2` : | Used to return an 'out' argument if `error` is `NULL`: array of handles of remote pending members
`error` : | `NULL` on success, or an error on failure
`user_data` : | user-supplied data
`weak_object` : | user-supplied object

### tp_cli_channel_interface_group_callback_for_get_group_flags ()

    void                (*tp_cli_channel_interface_group_callback_for_get_group_flags)
                                                            (TpChannel *proxy,
                                                             guint out0,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Signature of the callback called when a GetGroupFlags method call succeeds or fails.

`proxy` : | the proxy on which the call was made
`out0` : | Used to return an 'out' argument if `error` is `NULL`: The bitwise OR of zero or more values from ChannelGroupFlags
`error` : | `NULL` on success, or an error on failure
`user_data` : | user-supplied data
`weak_object` : | user-supplied object

### tp_cli_channel_interface_group_callback_for_get_handle_owners ()

    void                (*tp_cli_channel_interface_group_callback_for_get_handle_owners)
                                                            (TpChannel *proxy,
                                                             const GArray *out0,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Signature of the callback called when a GetHandleOwners method call succeeds or fails.

`proxy` : | the proxy on which the call was made
`out0` : | Used to return an 'out' argument if `error` is `NULL`: An array of integer handles representing the owner handles of the given room members, in the same order, or 0 if the owner is not available
`error` : | `NULL` on success, or an error on failure
`user_data` : | user-supplied data
`weak_object` : | user-supplied object

### tp_cli_channel_interface_group_callback_for_get_local_pending_members ()

    void                (*tp_cli_channel_interface_group_callback_for_get_local_pending_members)
                                                            (TpChannel *proxy,
                                                             const GArray *out0,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Signature of the callback called when a GetLocalPendingMembers method call succeeds or fails.

`proxy` : | the proxy on which the call was made
`out0` : | Used to return an 'out' argument if `error` is `NULL`: (Undocumented)
`error` : | `NULL` on success, or an error on failure
`user_data` : | user-supplied data
`weak_object` : | user-supplied object

### tp_cli_channel_interface_group_callback_for_get_local_pending_members_with_info ()

    void                (*tp_cli_channel_interface_group_callback_for_get_local_pending_members_with_info)
                                                            (TpChannel *proxy,
                                                             const GPtrArray *out0,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Signature of the callback called when a GetLocalPendingMembersWithInfo method call succeeds or fails.

`proxy` : | the proxy on which the call was made
`out0` : | Used to return an 'out' argument if `error` is `NULL`: An array of structs containing: <ul> <li> A handle representing the contact requesting channel membership </li> <li> A handle representing the contact making the request, or 0 if unknown </li> <li> The reason for the request: one of the values of ChannelGroupChangeReason </li> <li> A string message containing the reason for the request if any (or blank if none) </li> </ul>
`error` : | `NULL` on success, or an error on failure
`user_data` : | user-supplied data
`weak_object` : | user-supplied object

### tp_cli_channel_interface_group_callback_for_get_members ()

    void                (*tp_cli_channel_interface_group_callback_for_get_members)
                                                            (TpChannel *proxy,
                                                             const GArray *out0,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Signature of the callback called when a GetMembers method call succeeds or fails.

`proxy` : | the proxy on which the call was made
`out0` : | Used to return an 'out' argument if `error` is `NULL`: (Undocumented)
`error` : | `NULL` on success, or an error on failure
`user_data` : | user-supplied data
`weak_object` : | user-supplied object

### tp_cli_channel_interface_group_callback_for_get_remote_pending_members ()

    void                (*tp_cli_channel_interface_group_callback_for_get_remote_pending_members)
                                                            (TpChannel *proxy,
                                                             const GArray *out0,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Signature of the callback called when a GetRemotePendingMembers method call succeeds or fails.

`proxy` : | the proxy on which the call was made
`out0` : | Used to return an 'out' argument if `error` is `NULL`: (Undocumented)
`error` : | `NULL` on success, or an error on failure
`user_data` : | user-supplied data
`weak_object` : | user-supplied object

### tp_cli_channel_interface_group_callback_for_get_self_handle ()

    void                (*tp_cli_channel_interface_group_callback_for_get_self_handle)
                                                            (TpChannel *proxy,
                                                             guint out0,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Signature of the callback called when a GetSelfHandle method call succeeds or fails.

`proxy` : | the proxy on which the call was made
`out0` : | Used to return an 'out' argument if `error` is `NULL`: (Undocumented)
`error` : | `NULL` on success, or an error on failure
`user_data` : | user-supplied data
`weak_object` : | user-supplied object

### tp_cli_channel_interface_group_callback_for_remove_members ()

    void                (*tp_cli_channel_interface_group_callback_for_remove_members)
                                                            (TpChannel *proxy,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Signature of the callback called when a RemoveMembers method call succeeds or fails.

`proxy` : | the proxy on which the call was made
`error` : | `NULL` on success, or an error on failure
`user_data` : | user-supplied data
`weak_object` : | user-supplied object

### tp_cli_channel_interface_group_callback_for_remove_members_with_reason ()

    void                (*tp_cli_channel_interface_group_callback_for_remove_members_with_reason)
                                                            (TpChannel *proxy,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Signature of the callback called when a RemoveMembersWithReason method call succeeds or fails.

`proxy` : | the proxy on which the call was made
`error` : | `NULL` on success, or an error on failure
`user_data` : | user-supplied data
`weak_object` : | user-supplied object

### tp_cli_channel_interface_group_connect_to_group_flags_changed ()

    TpProxySignalConnection* tp_cli_channel_interface_group_connect_to_group_flags_changed
                                                            (TpChannel *proxy,
                                                             tp_cli_channel_interface_group_signal_callback_group_flags_changed callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object,
                                                             GError **error);

Connect a handler to the signal GroupFlagsChanged.

Emitted when the flags as returned by GetGroupFlags are changed. The user interface should be updated as appropriate.

`proxy` : | A TpChannel or subclass
`callback` : | Callback to be called when the signal is received
`user_data` : | User-supplied data for the callback
`destroy` : | Destructor for the user-supplied data, which will be called when this signal is disconnected, or before this function returns `NULL`
`weak_object` : | A GObject which will be weakly referenced; if it is destroyed, this callback will automatically be disconnected
`error` : | If not `NULL`, used to raise an error if `NULL` is returned
Returns : | a TpProxySignalConnection containing all of the above, which can be used to disconnect the signal; or `NULL` if the proxy does not have the desired interface or has become invalid.

### tp_cli_channel_interface_group_connect_to_members_changed ()

    TpProxySignalConnection* tp_cli_channel_interface_group_connect_to_members_changed
                                                            (TpChannel *proxy,
                                                             tp_cli_channel_interface_group_signal_callback_members_changed callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object,
                                                             GError **error);

Connect a handler to the signal MembersChanged.

Emitted when contacts join any of the three lists (members, local pending or remote pending). Contacts are listed in the removed list when they leave any of the three lists. There may also be a message from the server regarding this change, which may be displayed to the user if desired.

`proxy` : | A TpChannel or subclass
`callback` : | Callback to be called when the signal is received
`user_data` : | User-supplied data for the callback
`destroy` : | Destructor for the user-supplied data, which will be called when this signal is disconnected, or before this function returns `NULL`
`weak_object` : | A GObject which will be weakly referenced; if it is destroyed, this callback will automatically be disconnected
`error` : | If not `NULL`, used to raise an error if `NULL` is returned
Returns : | a TpProxySignalConnection containing all of the above, which can be used to disconnect the signal; or `NULL` if the proxy does not have the desired interface or has become invalid.

### tp_cli_channel_interface_group_signal_callback_group_flags_changed ()

    void                (*tp_cli_channel_interface_group_signal_callback_group_flags_changed)
                                                            (TpChannel *proxy,
                                                             guint arg_added,
                                                             guint arg_removed,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Represents the signature of a callback for the signal GroupFlagsChanged.

`proxy` : | The proxy on which `tp_cli_channel_interface_group_connect_to_group_flags_changed()` was called
`arg_added` : | A bitwise OR of the flags which have been set
`arg_removed` : | A bitwise OR of the flags which have been cleared
`user_data` : | User-supplied data
`weak_object` : | User-supplied weakly referenced object

### tp_cli_channel_interface_group_signal_callback_members_changed ()

    void                (*tp_cli_channel_interface_group_signal_callback_members_changed)
                                                            (TpChannel *proxy,
                                                             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,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Represents the signature of a callback for the signal MembersChanged.

`proxy` : | The proxy on which `tp_cli_channel_interface_group_connect_to_members_changed()` was called
`arg_message` : | A string message from the server, or blank if not
`arg_added` : | A list of members added to the channel
`arg_removed` : | A list of members removed from the channel
`arg_local_pending` : | A list of members who are pending local approval
`arg_remote_pending` : | A list of members who are pending remote approval
`arg_actor` : | The contact handle of the person who made the change, or 0 if not known
`arg_reason` : | A reason for the change: one of the values of ChannelGroupChangeReason
`user_data` : | User-supplied data
`weak_object` : | User-supplied weakly referenced object

## See Also

TpChannel