TpSimpleHandler

TpSimpleHandler — a subclass of TpBaseClient implementing a simple Handler

Synopsis

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

                    TpSimpleHandler;
void                (*TpSimpleHandlerHandleChannelsImpl)
                                                        (TpSimpleHandler *handler,
                                                         TpAccount *account,
                                                         TpConnection *connection,
                                                         GList *channels,
                                                         GList *requests_satisfied,
                                                         gint64 user_action_time,
                                                         TpHandleChannelsContext *context,
                                                         gpointer user_data);
TpBaseClient *      tp_simple_handler_new               (TpDBusDaemon *dbus,
                                                         gboolean bypass_approval,
                                                         gboolean requests,
                                                         const gchar *name,
                                                         gboolean uniquify,
                                                         TpSimpleHandlerHandleChannelsImpl callback,
                                                         gpointer user_data,
                                                         GDestroyNotify destroy);
TpBaseClient *      tp_simple_handler_new_with_am       (TpAccountManager *account_manager,
                                                         gboolean bypass_approval,
                                                         gboolean requests,
                                                         const gchar *name,
                                                         gboolean uniquify,
                                                         TpSimpleHandlerHandleChannelsImpl callback,
                                                         gpointer user_data,
                                                         GDestroyNotify destroy);
TpBaseClient *      tp_simple_handler_new_with_factory  (TpSimpleClientFactory *factory,
                                                         gboolean bypass_approval,
                                                         gboolean requests,
                                                         const gchar *name,
                                                         gboolean uniquify,
                                                         TpSimpleHandlerHandleChannelsImpl callback,
                                                         gpointer user_data,
                                                         GDestroyNotify destroy);

Object Hierarchy

  GObject
   +----TpBaseClient
         +----TpSimpleHandler

Implemented Interfaces

TpSimpleHandler implements TpSvcDBusProperties, TpSvcClient, TpSvcClientObserver, TpSvcClientApprover, TpSvcClientHandler and TpSvcClientInterfaceRequests.

Properties

  "bypass-approval"          gboolean              : Write / Construct Only
  "callback"                 gpointer              : Write / Construct Only
  "destroy"                  gpointer              : Write / Construct Only
  "requests"                 gboolean              : Write / Construct Only
  "user-data"                gpointer              : Write / Construct Only

Description

This class makes it easier to construct a TpSvcClient implementing the TpSvcClientHandler interface.

A typical simple handler would look liks this:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
static void
my_handle_channels (TpSimpleHandler *handler,
   TpAccount *account,
   TpConnection *connection,
   GList *channels,
   GList *requests_satisfied,
   gint64 user_action_time,
   GList *requests,
   TpHandleChannelsContext *context,
   gpointer user_data)
{
 /* start handling the channels here */

 tp_handle_channels_context_accept (context);
}

factory = tp_automatic_client_factory_new (dbus);
client = tp_simple_handler_new_with_factory (factory, FALSE, FALSE,
    "MyHandler", FALSE, my_handle_channels, user_data);
g_object_unref (factory);

tp_base_client_take_handler_filter (client, tp_asv_new (
     TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING, TP_IFACE_CHANNEL_TYPE_TEXT,
     TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT, TP_HANDLE_TYPE_CONTACT,
     NULL));

tp_base_client_register (client, NULL);

See examples/client/text-handler.c for a complete example.

Details

TpSimpleHandler

typedef struct _TpSimpleHandler TpSimpleHandler;

Data structure representing a simple Handler implementation.

Since 0.11.6


TpSimpleHandlerHandleChannelsImpl ()

void                (*TpSimpleHandlerHandleChannelsImpl)
                                                        (TpSimpleHandler *handler,
                                                         TpAccount *account,
                                                         TpConnection *connection,
                                                         GList *channels,
                                                         GList *requests_satisfied,
                                                         gint64 user_action_time,
                                                         TpHandleChannelsContext *context,
                                                         gpointer user_data);

Signature of the implementation of the HandleChannels method.

This function must call either tp_handle_channels_context_accept(), tp_handle_channels_context_delay() or tp_handle_channels_context_fail() on context before it returns.

handler :

a TpSimpleHandler instance

account :

a TpAccount having TP_ACCOUNT_FEATURE_CORE prepared if possible

connection :

a TpConnection having TP_CONNECTION_FEATURE_CORE prepared if possible

channels :

a GList of TpChannel, all having TP_CHANNEL_FEATURE_CORE prepared if possible. [element-type TelepathyGLib.Channel]

requests_satisfied :

a GList of TpChannelRequest having their object-path defined but are not guaranteed to be prepared. [element-type TelepathyGLib.ChannelRequest]

user_action_time :

the time at which user action occurred, or one of the special values TP_USER_ACTION_TIME_NOT_USER_ACTION or TP_USER_ACTION_TIME_CURRENT_TIME (see "user-action-time" for details)

context :

a TpHandleChannelsContext representing the context of this D-Bus call

user_data :

arbitrary user-supplied data passed to tp_simple_handler_new()

Since 0.11.6


tp_simple_handler_new ()

TpBaseClient *      tp_simple_handler_new               (TpDBusDaemon *dbus,
                                                         gboolean bypass_approval,
                                                         gboolean requests,
                                                         const gchar *name,
                                                         gboolean uniquify,
                                                         TpSimpleHandlerHandleChannelsImpl callback,
                                                         gpointer user_data,
                                                         GDestroyNotify destroy);

Warning

tp_simple_handler_new is deprecated and should not be used in newly-written code. New code should use tp_simple_handler_new_with_am() instead.

Convenient function to create a new TpSimpleHandler instance.

If dbus is not the result of tp_dbus_daemon_dup(), you should call tp_simple_handler_new_with_am() instead, so that TpAccount, TpConnection and TpContact instances can be shared between modules.

dbus :

a TpDBusDaemon object, may not be NULL

bypass_approval :

the value of the Handler.BypassApproval D-Bus property (see tp_base_client_set_handler_bypass_approval() for details)

requests :

whether this handler should implement Requests (see tp_base_client_set_handler_request_notification() for details)

name :

the name of the Handler (see "name" for details)

uniquify :

the value of the "uniquify-name" property

callback :

the function called when HandleChannels is called

user_data :

arbitrary user-supplied data passed to callback

destroy :

called with user_data as its argument when the TpSimpleHandler is destroyed

Returns :

a new TpSimpleHandler. [type TelepathyGLib.SimpleHandler]

Since 0.11.6


tp_simple_handler_new_with_am ()

TpBaseClient *      tp_simple_handler_new_with_am       (TpAccountManager *account_manager,
                                                         gboolean bypass_approval,
                                                         gboolean requests,
                                                         const gchar *name,
                                                         gboolean uniquify,
                                                         TpSimpleHandlerHandleChannelsImpl callback,
                                                         gpointer user_data,
                                                         GDestroyNotify destroy);

Convenient function to create a new TpSimpleHandler instance with a specified TpAccountManager.

It is not necessary to prepare any features on account_manager before calling this function.

account_manager :

an account manager, which may not be NULL

bypass_approval :

the value of the Handler.BypassApproval D-Bus property (see tp_base_client_set_handler_bypass_approval() for details)

requests :

whether this handler should implement Requests (see tp_base_client_set_handler_request_notification() for details)

name :

the name of the Handler (see "name" for details)

uniquify :

the value of the "uniquify-name" property

callback :

the function called when HandleChannels is called

user_data :

arbitrary user-supplied data passed to callback

destroy :

called with user_data as its argument when the TpSimpleHandler is destroyed

Returns :

a new TpSimpleHandler. [type TelepathyGLib.SimpleHandler]

Since 0.11.14


tp_simple_handler_new_with_factory ()

TpBaseClient *      tp_simple_handler_new_with_factory  (TpSimpleClientFactory *factory,
                                                         gboolean bypass_approval,
                                                         gboolean requests,
                                                         const gchar *name,
                                                         gboolean uniquify,
                                                         TpSimpleHandlerHandleChannelsImpl callback,
                                                         gpointer user_data,
                                                         GDestroyNotify destroy);

Convenient function to create a new TpSimpleHandler instance with a specified TpSimpleClientFactory.

factory :

a TpSimpleClientFactory, which may not be NULL

bypass_approval :

the value of the Handler.BypassApproval D-Bus property (see tp_base_client_set_handler_bypass_approval() for details)

requests :

whether this handler should implement Requests (see tp_base_client_set_handler_request_notification() for details)

name :

the name of the Handler (see "name" for details)

uniquify :

the value of the "uniquify-name" property

callback :

the function called when HandleChannels is called

user_data :

arbitrary user-supplied data passed to callback

destroy :

called with user_data as its argument when the TpSimpleHandler is destroyed

Returns :

a new TpSimpleHandler. [type TelepathyGLib.SimpleHandler]

Since 0.15.5

Property Details

The "bypass-approval" property

  "bypass-approval"          gboolean              : Write / Construct Only

The value of the Handler.BypassApproval D-Bus property.

Default value: FALSE

Since 0.11.6


The "callback" property

  "callback"                 gpointer              : Write / Construct Only

The TpSimpleHandlerHandleChannelsImpl callback implementing the HandleChannels D-Bus method.

This property can't be NULL.

Since 0.11.6


The "destroy" property

  "destroy"                  gpointer              : Write / Construct Only

The GDestroyNotify function called to free "user-data" when the TpSimpleHandler is destroyed.

Since 0.11.6


The "requests" property

  "requests"                 gboolean              : Write / Construct Only

If TRUE, the Handler will implement the Requests interface

Default value: FALSE

Since 0.11.6


The "user-data" property

  "user-data"                gpointer              : Write / Construct Only

The user-data pointer passed to "callback".

Since 0.11.6