## InfCommunicationHostedGroup InfCommunicationHostedGroup — Communication group opened by the local host |

## Stability Level

Unstable, unless otherwise indicated

## Synopsis

    #include <libinfinity/communication/inf-communication-hosted-group.h>

                        InfCommunicationHostedGroup;
    struct              InfCommunicationHostedGroupClass;
    void                inf_communication_hosted_group_add_method
                                                            (InfCommunicationHostedGroup *group,
                                                             const gchar *method);
    void                inf_communication_hosted_group_add_member
                                                            (InfCommunicationHostedGroup *group,
                                                             InfXmlConnection *connection);
    void                inf_communication_hosted_group_remove_member
                                                            (InfCommunicationHostedGroup *grp,
                                                             InfXmlConnection *connection);

## Object Hierarchy

      GObject
       +----InfCommunicationGroup
             +----InfCommunicationHostedGroup

## Description

InfCommunicationHostedGroup is a InfCommunicationHostedGroup opened on the local host. It allows adding other hosts to the group via `inf_communication_hosted_group_add_member()`, and to remove hosts via `inf_communication_hosted_group_remove_member()`.

## Details

### InfCommunicationHostedGroup

    typedef struct _InfCommunicationHostedGroup InfCommunicationHostedGroup;

InfCommunicationHostedGroup is an opaque data type. You should only access it via the public API functions.

### struct InfCommunicationHostedGroupClass

    struct InfCommunicationHostedGroupClass {
    };

This structure does not contain any public fields.

### inf_communication_hosted_group_add_method ()

    void                inf_communication_hosted_group_add_method
                                                            (InfCommunicationHostedGroup *group,
                                                             const gchar *method);

Adds a method to the hosted group. When a connection from a given network is added to the group the first time, a InfCommunicationMethod is instantiated to handle messaging for the group within this network. The first method added will be tried first. If the communication manager does support it (meaning `inf_communication_manager_get_factory_for()` for the connection's network and the chosen method returns non-`NULL`), then it will be used, otherwise the next method will be tried, etc. If no method is supported, or no methods are added to the group, then the "central" method will be used as a fallback.

`group` : | A InfCommunicationHostedGroup.
`method` : | The method name to add.

### inf_communication_hosted_group_add_member ()

    void                inf_communication_hosted_group_add_member
                                                            (InfCommunicationHostedGroup *group,
                                                             InfXmlConnection *connection);

Adds `connection` as a member to `group`. On the remote site, a InfCommunicationJoinedGroup with the same name and method used for `connection` (see `inf_communication_group_get_method_for_connection()`) needs to be created for successful communication.

`group` : | A InfCommunicationGroup.
`connection` : | A InfXmlConnection to add to group.

### inf_communication_hosted_group_remove_member ()

    void                inf_communication_hosted_group_remove_member
                                                            (InfCommunicationHostedGroup *grp,
                                                             InfXmlConnection *connection);

Removes `connection`'s membership from `group`. On the remote site, the corresponding InfCommunicationJoinedGroup needs to be freed.

`grp` : | A InfCommunicationGroup.
`connection` : | The `InfXmlConnection` to remove from the group.

## See Also

InfCommunicationGroup, InfCommunicationManager