TpClientChannelFactoryInterface

TpClientChannelFactoryInterface — an interface for client channel factories

Functions

Types and Values

Object Hierarchy

    GInterface
    ╰── TpClientChannelFactory

Prerequisites

TpClientChannelFactory requires GObject.

Known Implementations

TpClientChannelFactory is implemented by TpAutomaticProxyFactory and TpBasicProxyFactory.

Includes

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

Description

Client channel factories are used to create channel proxies. An application wanting to use its own TpChannel subclass has to implement an object implementing the TpClientChannelFactoryInterface interface.

Once a channel has been created by a factory using tp_client_channel_factory_create_channel(), the caller should then prepare on it the channel features returned by tp_client_channel_factory_dup_channel_features() using tp_proxy_prepare_async().

Functions

tp_client_channel_factory_create_channel ()

TpChannel *
tp_client_channel_factory_create_channel
                               (TpClientChannelFactory *self,
                                TpConnection *conn,
                                const gchar *path,
                                GHashTable *properties,
                                GError **error);

Function called when a channel need to be created. Implementation can return a subclass of TpChannel if they need to.

Changed in 0.13.6: the function's signature was previously wrong; it expected an object instance as its first parameter, but the type of the parameter was the type of the interface vtable.

Parameters

self

a client channel factory

 

conn

a TpConnection

 

path

the object path of the channel

 

properties

the immutable properties of the channel.

[transfer none][element-type utf8 GObject.Value]

error

used to indicate the error if NULL is returned

 

Returns

a new channel proxy, or NULL on invalid arguments.

[transfer full]

Since: 0.13.2


tp_client_channel_factory_dup_channel_features ()

GArray *
tp_client_channel_factory_dup_channel_features
                               (TpClientChannelFactory *self,
                                TpChannel *channel);

Return a zero terminated GArray containing the TpChannel features that should be prepared on channel .

Changed in 0.13.6: the function's signature was previously wrong; it expected an object instance as its first parameter, but the type of the parameter was the type of the interface vtable.

Parameters

self

a client channel factory

 

channel

a TpChannel

 

Returns

a newly allocated GArray.

[transfer full][element-type GQuark]

Since: 0.13.3

Types and Values

TpClientChannelFactory

typedef struct _TpClientChannelFactory TpClientChannelFactory;

Opaque typedef representing a GObject that implements the TP_TYPE_CLIENT_CHANNEL_FACTORY interface.

Since: 0.13.6


struct TpClientChannelFactoryInterface

struct TpClientChannelFactoryInterface {
    GTypeInterface parent;

    TpChannel * (* create_channel) (TpClientChannelFactoryInterface *self,
        TpConnection *conn,
        const gchar *path,
        GHashTable *properties,
        GError **error);

    GArray * (* dup_channel_features) (TpClientChannelFactoryInterface *self,
        TpChannel *channel);

    TpChannel *(*obj_create_channel) (TpClientChannelFactory *self,
        TpConnection *conn,
        const gchar *path,
        GHashTable *properties,
        GError **error);

    GArray *(*obj_dup_channel_features) (TpClientChannelFactory *self,
        TpChannel *channel);
};

Interface for a channel factory

Members

GTypeInterface parent;

the parent

 

create_channel ()

obsolete version of obj_create_channel which does not receive the object instance as an argument

 

dup_channel_features ()

obsolete version of obj_dup_channel_features which does not receive the object instance as an argument

 

obj_create_channel ()

virtual method used to create channels; see tp_client_channel_factory_create_channel()

 

obj_dup_channel_features ()

virtual method returning channel features that have to be prepared on newly created channels; see tp_client_channel_factory_dup_channel_features()

 

Since: 0.13.2