TpTextMixin

TpTextMixin — a mixin implementation of the text channel type

Functions

Types and Values

Includes

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

Description

This mixin can be added to a channel GObject class to implement the text channel type in a general way. It implements the pending message queue and GetMessageTypes, so the implementation should only need to implement Send.

To use the text mixin, include a TpTextMixinClass somewhere in your class structure and a TpTextMixin somewhere in your instance structure, and call tp_text_mixin_class_init() from your class_init function, tp_text_mixin_init() from your init function or constructor, and tp_text_mixin_finalize() from your dispose or finalize function.

To use the text mixin as the implementation of TpSvcChannelTypeText, in the function you pass to G_IMPLEMENT_INTERFACE, you should first call tp_text_mixin_iface_init(), then call tp_svc_channel_type_text_implement_send() to register your implementation of the Send method.

Functions

tp_text_mixin_class_get_offset_quark ()

GQuark
tp_text_mixin_class_get_offset_quark (void);

tp_text_mixin_class_get_offset_quark is deprecated and should not be used in newly-written code.

Use TpMessageMixin instead.

Returns

the quark used for storing mixin offset on a GObjectClass


tp_text_mixin_get_offset_quark ()

GQuark
tp_text_mixin_get_offset_quark (void);

tp_text_mixin_get_offset_quark is deprecated and should not be used in newly-written code.

Use TpMessageMixin instead.

Returns

the quark used for storing mixin offset on a GObject


tp_text_mixin_class_init ()

void
tp_text_mixin_class_init (GObjectClass *obj_cls,
                          glong offset);

tp_text_mixin_class_init is deprecated and should not be used in newly-written code.

Use TpMessageMixin instead.

Initialize the text mixin. Should be called from the implementation's class_init function like so:

1
2
tp_text_mixin_class_init ((GObjectClass *) klass,
                          G_STRUCT_OFFSET (SomeObjectClass, text_mixin));

Parameters

obj_cls

The class of the implementation that uses this mixin

 

offset

The byte offset of the TpTextMixinClass within the class structure

 

tp_text_mixin_init ()

void
tp_text_mixin_init (GObject *obj,
                    glong offset,
                    TpHandleRepoIface *contacts_repo);

tp_text_mixin_init is deprecated and should not be used in newly-written code.

Use tp_message_mixin_init() instead.

Initialize the text mixin. Should be called from the implementation's instance init function like so:

1
2
3
tp_text_mixin_init ((GObject *) self,
                    G_STRUCT_OFFSET (SomeObject, text_mixin),
                    self->contact_repo);

Parameters

obj

An instance of the implementation that uses this mixin

 

offset

The byte offset of the TpTextMixin within the object structure

 

contacts_repo

The connection's TP_HANDLE_TYPE_CONTACT repository

 

tp_text_mixin_set_message_types ()

void
tp_text_mixin_set_message_types (GObject *obj,
                                 ...);

tp_text_mixin_set_message_types is deprecated and should not be used in newly-written code.

Use TpMessageMixin instead.

Set the supported message types.

Parameters

obj

An object with this mixin

 

...

guints representing members of TpChannelTextMessageType, terminated by G_MAXUINT

 

tp_text_mixin_finalize ()

void
tp_text_mixin_finalize (GObject *obj);

tp_text_mixin_finalize is deprecated and should not be used in newly-written code.

Use tp_message_mixin_finalize() instead.

Free resources held by the text mixin.

Parameters

obj

An object with this mixin.

 

tp_text_mixin_receive_with_flags ()

gboolean
tp_text_mixin_receive_with_flags (GObject *obj,
                                  TpChannelTextMessageType type,
                                  TpHandle sender,
                                  time_t timestamp,
                                  const char *text,
                                  TpChannelTextMessageFlags flags);

tp_text_mixin_receive_with_flags is deprecated and should not be used in newly-written code.

Use tp_message_mixin_take_received() instead.

Add a message to the pending queue and emit Received.

Parameters

obj

An object with the text mixin

 

type

The type of message received from the underlying protocol

 

sender

The handle of the message sender

 

timestamp

The time the message was received

 

text

The text of the message

 

flags

the message's flags

 

Returns

TRUE on success; FALSE if the message was lost due to the memory limit.


tp_text_mixin_receive ()

gboolean
tp_text_mixin_receive (GObject *obj,
                       TpChannelTextMessageType type,
                       TpHandle sender,
                       time_t timestamp,
                       const char *text);

tp_text_mixin_receive is deprecated and should not be used in newly-written code.

Use tp_message_mixin_take_received() instead.

Add a message to the pending queue and emit Received. Exactly equivalent to tp_text_mixin_receive_with_flags() with flags == 0.

Parameters

obj

An object with the text mixin

 

type

The type of message received from the underlying protocol

 

sender

The handle of the message sender

 

timestamp

The time the message was received

 

text

The text of the message

 

Returns

TRUE on success; FALSE if the message was lost due to the memory limit.


tp_text_mixin_acknowledge_pending_messages ()

gboolean
tp_text_mixin_acknowledge_pending_messages
                               (GObject *obj,
                                const GArray *ids,
                                GError **error);

tp_text_mixin_acknowledge_pending_messages is deprecated and should not be used in newly-written code.

Use TpMessageMixin instead.

Implements D-Bus method AcknowledgePendingMessages on interface org.freedesktop.Telepathy.Channel.Type.Text

Parameters

obj

An object with this mixin

 

ids

An array of guint representing message IDs

 

error

Used to return a pointer to a GError detailing any error that occurred, D-Bus will throw the error only if this function returns false.

 

Returns

TRUE if successful, FALSE if an error was thrown.


tp_text_mixin_list_pending_messages ()

gboolean
tp_text_mixin_list_pending_messages (GObject *obj,
                                     gboolean clear,
                                     GPtrArray **ret,
                                     GError **error);

tp_text_mixin_list_pending_messages is deprecated and should not be used in newly-written code.

Use TpMessageMixin instead.

Implements D-Bus method ListPendingMessages on interface org.freedesktop.Telepathy.Channel.Type.Text

Parameters

obj

An object with this mixin

 

clear

If TRUE, delete the pending messages from the queue

 

ret

Used to return a pointer to a new GPtrArray of D-Bus structures

 

error

Used to return a pointer to a GError detailing any error that occurred, D-Bus will throw the error only if this function returns false.

 

Returns

TRUE if successful, FALSE if an error was thrown.


tp_text_mixin_get_message_types ()

gboolean
tp_text_mixin_get_message_types (GObject *obj,
                                 GArray **ret,
                                 GError **error);

tp_text_mixin_get_message_types is deprecated and should not be used in newly-written code.

Use TpMessageMixin instead.

Return a newly allocated GArray of guint, representing message types taken from TpChannelTextMessageType, through ret .

Parameters

obj

An object with this mixin

 

ret

A pointer to where a GArray of guint will be placed on success

 

error

A pointer to where an error will be placed on failure

 

Returns

TRUE on success


tp_text_mixin_clear ()

void
tp_text_mixin_clear (GObject *obj);

tp_text_mixin_clear is deprecated and should not be used in newly-written code.

Use tp_message_mixin_clear() instead.

Clear the pending message queue, deleting all messages.

Parameters

obj

An object with this mixin

 

tp_text_mixin_has_pending_messages ()

gboolean
tp_text_mixin_has_pending_messages (GObject *obj,
                                    TpHandle *first_sender);

tp_text_mixin_has_pending_messages is deprecated and should not be used in newly-written code.

Use tp_message_mixin_has_pending_messages() instead.

Return whether the channel obj has unacknowledged messages. If so, and first_sender is not NULL, the handle of the sender of the first message is placed in it, without incrementing the handle's reference count.

Parameters

obj

An object with this mixin

 

first_sender

If not NULL, used to store the sender of the oldest pending message

 

Returns

TRUE if there are pending messages


tp_text_mixin_set_rescued ()

void
tp_text_mixin_set_rescued (GObject *obj);

tp_text_mixin_set_rescued is deprecated and should not be used in newly-written code.

Use tp_message_mixin_set_rescued() instead.

Mark all pending messages as having been "rescued" from a channel that previously closed.

Parameters

obj

An object with this mixin

 

tp_text_mixin_iface_init ()

void
tp_text_mixin_iface_init (gpointer g_iface,
                          gpointer iface_data);

tp_text_mixin_iface_init is deprecated and should not be used in newly-written code.

Use tp_message_mixin_text_iface_init() instead.

Fill in this mixin's AcknowledgePendingMessages, GetMessageTypes and ListPendingMessages implementations in the given interface vtable. In addition to calling this function during interface initialization, the implementor is expected to call tp_svc_channel_type_text_implement_send(), providing a Send implementation.

Parameters

g_iface

A pointer to the TpSvcChannelTypeTextClass in an object class

 

iface_data

Ignored

 

Types and Values

struct TpTextMixin

struct TpTextMixin {
};

TpTextMixin is deprecated and should not be used in newly-written code.

Structure to be included in the instance structure of objects that use this mixin. Initialize it with tp_text_mixin_init().

There are no public fields.


struct TpTextMixinClass

struct TpTextMixinClass {
};

TpTextMixinClass is deprecated and should not be used in newly-written code.

Structure to be included in the class structure of objects that use this mixin. Initialize it with tp_text_mixin_class_init().

There are no public fields.

See Also

TpSvcChannelTypeText