<!-- ##### SECTION Title ##### -->
TpGroupMixin

<!-- ##### SECTION Short_Description ##### -->


<!-- ##### SECTION Long_Description ##### -->
<para>

</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### USER_FUNCTION TpGroupMixinAddMemberFunc ##### -->
<para>

</para>

@obj: 
@handle: 
@message: 
@error: 
@Returns: 


<!-- ##### USER_FUNCTION TpGroupMixinRemMemberFunc ##### -->
<para>

</para>

@obj: 
@handle: 
@message: 
@error: 
@Returns: 


<!-- ##### USER_FUNCTION TpGroupMixinRemMemberWithReasonFunc ##### -->
<para>

</para>

@obj: 
@handle: 
@message: 
@reason: 
@error: 
@Returns: 


<!-- ##### STRUCT TpGroupMixin ##### -->
<para>

</para>

@handle_repo: 
@self_handle: 
@group_flags: 
@members: 
@local_pending: 
@remote_pending: 
@priv: 

<!-- ##### STRUCT TpGroupMixinClass ##### -->
<para>

</para>

@add_member: 
@remove_member: 
@priv: 

<!-- ##### FUNCTION tp_group_mixin_class_init ##### -->
<para>

</para>

@obj_cls: 
@offset: 
@add_func: 
@rem_func: 


<!-- ##### FUNCTION tp_group_mixin_class_set_remove_with_reason_func ##### -->
<para>

</para>

@cls: 
@func: 


<!-- ##### FUNCTION tp_group_mixin_init ##### -->
<para>

</para>

@obj: 
@offset: 
@handle_repo: 
@self_handle: 


<!-- ##### FUNCTION tp_group_mixin_finalize ##### -->
<para>

</para>

@obj: 


<!-- ##### FUNCTION tp_group_mixin_get_self_handle ##### -->
<para>

</para>

@obj: 
@ret: 
@error: 
@Returns: 


<!-- ##### FUNCTION tp_group_mixin_get_group_flags ##### -->
<para>

</para>

@obj: 
@ret: 
@error: 
@Returns: 


<!-- ##### FUNCTION tp_group_mixin_add_members ##### -->
<para>

</para>

@obj: 
@contacts: 
@message: 
@error: 
@Returns: 


<!-- ##### FUNCTION tp_group_mixin_remove_members ##### -->
<para>

</para>

@obj: 
@contacts: 
@message: 
@error: 
@Returns: 


<!-- ##### FUNCTION tp_group_mixin_remove_members_with_reason ##### -->
<para>

</para>

@obj: 
@contacts: 
@message: 
@reason: 
@error: 
@Returns: 


<!-- ##### FUNCTION tp_group_mixin_get_members ##### -->
<para>

</para>

@obj: 
@ret: 
@error: 
@Returns: 


<!-- ##### FUNCTION tp_group_mixin_get_local_pending_members ##### -->
<para>

</para>

@obj: 
@ret: 
@error: 
@Returns: 


<!-- ##### FUNCTION tp_group_mixin_get_local_pending_members_with_info ##### -->
<para>

</para>

@obj: 
@ret: 
@error: 
@Returns: 


<!-- ##### FUNCTION tp_group_mixin_get_remote_pending_members ##### -->
<para>

</para>

@obj: 
@ret: 
@error: 
@Returns: 


<!-- ##### FUNCTION tp_group_mixin_get_all_members ##### -->
<para>

</para>

@obj: 
@members: 
@local_pending: 
@remote_pending: 
@error: 
@Returns: 


<!-- ##### FUNCTION tp_group_mixin_get_handle_owners ##### -->
<para>

</para>

@obj: 
@handles: 
@ret: 
@error: 
@Returns: 


<!-- ##### FUNCTION tp_group_mixin_change_flags ##### -->
<para>

</para>

@obj: 
@add: 
@remove: 


<!-- ##### FUNCTION tp_group_mixin_change_members ##### -->
<para>

</para>

@obj: 
@message: 
@add: 
@remove: 
@add_local_pending: 
@add_remote_pending: 
@actor: 
@reason: 
@Returns: 


<!-- ##### FUNCTION tp_group_mixin_add_handle_owner ##### -->
<para>

</para>

@obj: 
@local_handle: 
@owner_handle: 


<!-- ##### FUNCTION tp_group_mixin_iface_init ##### -->
<para>

</para>

@g_iface: 
@iface_data: 


<!-- ##### FUNCTION tp_external_group_mixin_iface_init ##### -->
<para>

</para>

@g_iface: 
@iface_data: 


<!-- ##### FUNCTION tp_external_group_mixin_init ##### -->
<para>

</para>

@obj: 
@obj_with_mixin: 


<!-- ##### FUNCTION tp_external_group_mixin_finalize ##### -->
<para>

</para>

@obj: 


