## TpAutomaticClientFactory

TpAutomaticClientFactory — Factory for specialized TpChannel subclasses.

## Synopsis

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

                        TpAutomaticClientFactory;
    struct              TpAutomaticClientFactoryClass;
    TpAutomaticClientFactory * tp_automatic_client_factory_new
                                                            (TpDBusDaemon *dbus);

## Object Hierarchy

      GObject
       +----TpSimpleClientFactory
             +----TpAutomaticClientFactory

## Description

This factory overrides some TpSimpleClientFactory virtual methods to create specialized TpChannel subclasses.

TpAutomaticClientFactory will currently create TpChannel objects as follows:

- a TpStreamTubeChannel, if the channel is of type `TP_IFACE_CHANNEL_TYPE_STREAM_TUBE`;

- a TpDBusTubeChannel, if the channel is of type `TP_IFACE_CHANNEL_TYPE_DBUS_TUBE`;

- a TpTextChannel, if the channel is of type `TP_IFACE_CHANNEL_TYPE_TEXT` and implements `TP_IFACE_CHANNEL_INTERFACE_MESSAGES`;

- a TpFileTransferChannel, if the channel is of type `TP_IFACE_CHANNEL_TYPE_FILE_TRANSFER`;

- a TpCallChannel, if the channel is of type `TP_IFACE_CHANNEL_TYPE_CALL`;

- a plain TpChannel, otherwise

It is guaranteed that the objects returned by future versions will be either the class that is currently used, or a more specific subclass of that class.

This factory asks to prepare the following features:

- `TP_CHANNEL_FEATURE_CORE`, `TP_CHANNEL_FEATURE_GROUP` and `TP_CHANNEL_FEATURE_PASSWORD` for all type of channels.

- `TP_TEXT_CHANNEL_FEATURE_INCOMING_MESSAGES` and `TP_TEXT_CHANNEL_FEATURE_SMS` for TpTextChannel

- `TP_FILE_TRANSFER_CHANNEL_FEATURE_CORE` for TpFileTransferChannel

- `TP_CALL_CHANNEL_FEATURE_CORE` for TpCallChannel

- `TP_DBUS_TUBE_CHANNEL_FEATURE_CORE` for TpDBusTubeChannel

## Details

### TpAutomaticClientFactory

    typedef struct _TpAutomaticClientFactory TpAutomaticClientFactory;

Data structure representing a TpAutomaticClientFactory

Since 0.15.5

### struct TpAutomaticClientFactoryClass

    struct TpAutomaticClientFactoryClass {
        TpSimpleClientFactoryClass parent_class;
    };

The class of a TpAutomaticClientFactory.

TpSimpleClientFactoryClass `parent_class`; | the parent class

Since 0.15.5

### tp_automatic_client_factory_new ()

    TpAutomaticClientFactory * tp_automatic_client_factory_new
                                                            (TpDBusDaemon *dbus);

Returns a new TpAutomaticClientFactory instance. If `dbus` is `NULL`, `tp_dbus_daemon_dup()` will be used.

`dbus` : | a TpDBusDaemon, or `NULL`. [allow-none]
Returns : | a new TpAutomaticClientFactory

Since 0.15.5

## See Also

TpSimpleClientFactory