## TpAutomaticProxyFactory

TpAutomaticProxyFactory — factory creating higher level proxy objects

## Synopsis

    #include <telepathy-glib/automatic-proxy-factory.h>

                        TpAutomaticProxyFactory;
    struct              TpAutomaticProxyFactoryClass;
    TpAutomaticProxyFactory * tp_automatic_proxy_factory_new
                                                            (void);
    TpAutomaticProxyFactory * tp_automatic_proxy_factory_dup
                                                            (void);

## Object Hierarchy

      GObject
       +----TpAutomaticProxyFactory

## Implemented Interfaces

TpAutomaticProxyFactory implements TpClientChannelFactory.

## Description

This factory implements the TpClientChannelFactoryInterface interface to create specialized TpChannel subclasses.

TpAutomaticProxyFactory will currently create TpChannel objects as follows:

- a TpStreamTubeChannel, if the channel is of type `TP_IFACE_CHANNEL_TYPE_STREAM_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 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 properties:

- `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

TpProxy subclasses other than TpChannel are not currently supported.

## Details

### TpAutomaticProxyFactory

    typedef struct _TpAutomaticProxyFactory TpAutomaticProxyFactory;

Data structure representing a TpAutomaticProxyFactory

Since 0.13.2

### struct TpAutomaticProxyFactoryClass

    struct TpAutomaticProxyFactoryClass {
        GObjectClass parent_class;
    };

The class of a TpAutomaticProxyFactory.

GObjectClass `parent_class`; | the parent class

Since 0.13.2

### tp_automatic_proxy_factory_new ()

    TpAutomaticProxyFactory * tp_automatic_proxy_factory_new
                                                            (void);

### Warning

`tp_automatic_proxy_factory_new` is deprecated and should not be used in newly-written code. New code should use TpAutomaticClientFactory instead

Convenient function to create a new TpAutomaticProxyFactory instance.

Returns : | a new TpAutomaticProxyFactory

Since 0.13.2

### tp_automatic_proxy_factory_dup ()

    TpAutomaticProxyFactory * tp_automatic_proxy_factory_dup
                                                            (void);

### Warning

`tp_automatic_proxy_factory_dup` is deprecated and should not be used in newly-written code. New code should use TpAutomaticClientFactory instead

Returns a cached TpAutomaticProxyFactory; the same TpAutomaticProxyFactory object will be returned by this function repeatedly, as long as at least one reference exists.

Returns : | a TpAutomaticProxyFactory. [transfer full]

Since 0.13.2

## See Also

TpBasicProxyFactory