42
42
#include <telepathy-glib/message-mixin.h>
44
44
struct <a class="link" href="telepathy-glib-TpMessageMixin.html#TpMessageMixin" title="struct TpMessageMixin">TpMessageMixin</a>;
45
<span class="returnvalue">void</span> (<a class="link" href="telepathy-glib-TpMessageMixin.html#TpMessageMixinSendImpl" title="TpMessageMixinSendImpl ()">*TpMessageMixinSendImpl</a>) (<em class="parameter"><code><span class="type">GObject</span> *object</code></em>,
45
<span class="returnvalue">void</span> (<a class="link" href="telepathy-glib-TpMessageMixin.html#TpMessageMixinSendImpl" title="TpMessageMixinSendImpl ()">*TpMessageMixinSendImpl</a>) (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
46
46
<em class="parameter"><code><a class="link" href="TpMessage.html" title="TpMessage"><span class="type">TpMessage</span></a> *message</code></em>,
47
47
<em class="parameter"><code><a class="link" href="telepathy-glib-enums.html#TpMessageSendingFlags" title="enum TpMessageSendingFlags"><span class="type">TpMessageSendingFlags</span></a> flags</code></em>);
48
<span class="returnvalue">void</span> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-finalize" title="tp_message_mixin_finalize ()">tp_message_mixin_finalize</a> (<em class="parameter"><code><span class="type">GObject</span> *obj</code></em>);
49
<span class="returnvalue">void</span> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-implement-sending" title="tp_message_mixin_implement_sending ()">tp_message_mixin_implement_sending</a> (<em class="parameter"><code><span class="type">GObject</span> *object</code></em>,
48
<span class="returnvalue">void</span> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-finalize" title="tp_message_mixin_finalize ()">tp_message_mixin_finalize</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *obj</code></em>);
49
<span class="returnvalue">void</span> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-implement-sending" title="tp_message_mixin_implement_sending ()">tp_message_mixin_implement_sending</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
50
50
<em class="parameter"><code><a class="link" href="telepathy-glib-TpMessageMixin.html#TpMessageMixinSendImpl" title="TpMessageMixinSendImpl ()"><span class="type">TpMessageMixinSendImpl</span></a> send</code></em>,
51
<em class="parameter"><code><span class="type">guint</span> n_types</code></em>,
51
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_types</code></em>,
52
52
<em class="parameter"><code>const <a class="link" href="telepathy-glib-enums.html#TpChannelTextMessageType" title="enum TpChannelTextMessageType"><span class="type">TpChannelTextMessageType</span></a> *types</code></em>,
53
53
<em class="parameter"><code><a class="link" href="telepathy-glib-enums.html#TpMessagePartSupportFlags" title="enum TpMessagePartSupportFlags"><span class="type">TpMessagePartSupportFlags</span></a> message_part_support_flags</code></em>,
54
54
<em class="parameter"><code><a class="link" href="telepathy-glib-enums.html#TpDeliveryReportingSupportFlags" title="enum TpDeliveryReportingSupportFlags"><span class="type">TpDeliveryReportingSupportFlags</span></a> delivery_reporting_support_flags</code></em>,
55
<em class="parameter"><code>const <span class="type">gchar</span> * const *supported_content_types</code></em>);
56
<span class="returnvalue">void</span> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-init" title="tp_message_mixin_init ()">tp_message_mixin_init</a> (<em class="parameter"><code><span class="type">GObject</span> *obj</code></em>,
55
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> * const *supported_content_types</code></em>);
56
<span class="returnvalue">void</span> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-init" title="tp_message_mixin_init ()">tp_message_mixin_init</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *obj</code></em>,
57
57
<em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
58
58
<em class="parameter"><code><a class="link" href="TpBaseConnection.html" title="TpBaseConnection"><span class="type">TpBaseConnection</span></a> *connection</code></em>);
59
59
<span class="returnvalue">void</span> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-init-dbus-properties" title="tp_message_mixin_init_dbus_properties ()">tp_message_mixin_init_dbus_properties</a>
60
(<em class="parameter"><code><span class="type">GObjectClass</span> *cls</code></em>);
60
(<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> *cls</code></em>);
61
61
<span class="returnvalue">void</span> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-messages-iface-init" title="tp_message_mixin_messages_iface_init ()">tp_message_mixin_messages_iface_init</a>
62
(<em class="parameter"><code><span class="type">gpointer</span> g_iface</code></em>,
63
<em class="parameter"><code><span class="type">gpointer</span> iface_data</code></em>);
64
<span class="returnvalue">void</span> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-get-dbus-property" title="tp_message_mixin_get_dbus_property ()">tp_message_mixin_get_dbus_property</a> (<em class="parameter"><code><span class="type">GObject</span> *object</code></em>,
65
<em class="parameter"><code><span class="type">GQuark</span> interface</code></em>,
66
<em class="parameter"><code><span class="type">GQuark</span> name</code></em>,
67
<em class="parameter"><code><span class="type">GValue</span> *value</code></em>,
68
<em class="parameter"><code><span class="type">gpointer</span> unused</code></em>);
69
<span class="returnvalue">void</span> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-sent" title="tp_message_mixin_sent ()">tp_message_mixin_sent</a> (<em class="parameter"><code><span class="type">GObject</span> *object</code></em>,
62
(<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_iface</code></em>,
63
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> iface_data</code></em>);
64
<span class="returnvalue">void</span> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-get-dbus-property" title="tp_message_mixin_get_dbus_property ()">tp_message_mixin_get_dbus_property</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
65
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> interface</code></em>,
66
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> name</code></em>,
67
<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
68
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> unused</code></em>);
69
<span class="returnvalue">void</span> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-sent" title="tp_message_mixin_sent ()">tp_message_mixin_sent</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
70
70
<em class="parameter"><code><a class="link" href="TpMessage.html" title="TpMessage"><span class="type">TpMessage</span></a> *message</code></em>,
71
71
<em class="parameter"><code><a class="link" href="telepathy-glib-enums.html#TpMessageSendingFlags" title="enum TpMessageSendingFlags"><span class="type">TpMessageSendingFlags</span></a> flags</code></em>,
72
<em class="parameter"><code>const <span class="type">gchar</span> *token</code></em>,
73
<em class="parameter"><code>const <span class="type">GError</span> *error</code></em>);
74
<span class="returnvalue">void</span> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-set-rescued" title="tp_message_mixin_set_rescued ()">tp_message_mixin_set_rescued</a> (<em class="parameter"><code><span class="type">GObject</span> *obj</code></em>);
75
<span class="returnvalue">guint</span> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-take-received" title="tp_message_mixin_take_received ()">tp_message_mixin_take_received</a> (<em class="parameter"><code><span class="type">GObject</span> *object</code></em>,
72
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *token</code></em>,
73
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>);
74
<span class="returnvalue">void</span> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-set-rescued" title="tp_message_mixin_set_rescued ()">tp_message_mixin_set_rescued</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *obj</code></em>);
75
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-take-received" title="tp_message_mixin_take_received ()">tp_message_mixin_take_received</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
76
76
<em class="parameter"><code><a class="link" href="TpMessage.html" title="TpMessage"><span class="type">TpMessage</span></a> *message</code></em>);
77
<span class="returnvalue">gboolean</span> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-has-pending-messages" title="tp_message_mixin_has_pending_messages ()">tp_message_mixin_has_pending_messages</a>
78
(<em class="parameter"><code><span class="type">GObject</span> *object</code></em>,
77
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-has-pending-messages" title="tp_message_mixin_has_pending_messages ()">tp_message_mixin_has_pending_messages</a>
78
(<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
79
79
<em class="parameter"><code><a class="link" href="telepathy-glib-handle.html#TpHandle" title="TpHandle"><span class="type">TpHandle</span></a> *first_sender</code></em>);
80
<span class="returnvalue">void</span> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-clear" title="tp_message_mixin_clear ()">tp_message_mixin_clear</a> (<em class="parameter"><code><span class="type">GObject</span> *obj</code></em>);
81
<span class="returnvalue">void</span> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-text-iface-init" title="tp_message_mixin_text_iface_init ()">tp_message_mixin_text_iface_init</a> (<em class="parameter"><code><span class="type">gpointer</span> g_iface</code></em>,
82
<em class="parameter"><code><span class="type">gpointer</span> iface_data</code></em>);
80
<span class="returnvalue">void</span> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-clear" title="tp_message_mixin_clear ()">tp_message_mixin_clear</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *obj</code></em>);
81
<span class="returnvalue">void</span> <a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-text-iface-init" title="tp_message_mixin_text_iface_init ()">tp_message_mixin_text_iface_init</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_iface</code></em>,
82
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> iface_data</code></em>);
85
85
<div class="refsect1">
96
96
or finalize function. In the class_init function, call
97
97
<a class="link" href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-init-dbus-properties" title="tp_message_mixin_init_dbus_properties ()"><code class="function">tp_message_mixin_init_dbus_properties()</code></a> to hook this mixin into the D-Bus
98
98
properties mixin class. Finally, include the following in the fourth
99
argument of <code class="function">G_DEFINE_TYPE_WITH_CODE()</code>:
99
argument of <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-DEFINE-TYPE-WITH-CODE:CAPS"><code class="function">G_DEFINE_TYPE_WITH_CODE()</code></a>:
103
<div class="informalexample"><pre class="programlisting">
104
G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_CHANNEL_TYPE_TEXT,
105
tp_message_mixin_text_iface_init);
106
G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_CHANNEL_INTERFACE_MESSAGES,
107
tp_message_mixin_messages_iface_init);
103
<div class="informalexample">
104
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
107
<td class="listing_lines" align="right"><pre>1
111
<td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span> <span class="gtkdoc opt">(</span>TP_TYPE_SVC_CHANNEL_TYPE_TEXT<span class="gtkdoc opt">,</span>
112
tp_message_mixin_text_iface_init<span class="gtkdoc opt">);</span>
113
<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span> <span class="gtkdoc opt">(</span>TP_TYPE_SVC_CHANNEL_INTERFACE_MESSAGES<span class="gtkdoc opt">,</span>
114
tp_message_mixin_messages_iface_init<span class="gtkdoc opt">);</span></pre></td>
179
190
<div class="refsect2">
180
191
<a name="tp-message-mixin-implement-sending"></a><h3>tp_message_mixin_implement_sending ()</h3>
181
<pre class="programlisting"><span class="returnvalue">void</span> tp_message_mixin_implement_sending (<em class="parameter"><code><span class="type">GObject</span> *object</code></em>,
192
<pre class="programlisting"><span class="returnvalue">void</span> tp_message_mixin_implement_sending (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
182
193
<em class="parameter"><code><a class="link" href="telepathy-glib-TpMessageMixin.html#TpMessageMixinSendImpl" title="TpMessageMixinSendImpl ()"><span class="type">TpMessageMixinSendImpl</span></a> send</code></em>,
183
<em class="parameter"><code><span class="type">guint</span> n_types</code></em>,
194
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_types</code></em>,
184
195
<em class="parameter"><code>const <a class="link" href="telepathy-glib-enums.html#TpChannelTextMessageType" title="enum TpChannelTextMessageType"><span class="type">TpChannelTextMessageType</span></a> *types</code></em>,
185
196
<em class="parameter"><code><a class="link" href="telepathy-glib-enums.html#TpMessagePartSupportFlags" title="enum TpMessagePartSupportFlags"><span class="type">TpMessagePartSupportFlags</span></a> message_part_support_flags</code></em>,
186
197
<em class="parameter"><code><a class="link" href="telepathy-glib-enums.html#TpDeliveryReportingSupportFlags" title="enum TpDeliveryReportingSupportFlags"><span class="type">TpDeliveryReportingSupportFlags</span></a> delivery_reporting_support_flags</code></em>,
187
<em class="parameter"><code>const <span class="type">gchar</span> * const *supported_content_types</code></em>);</pre>
198
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> * const *supported_content_types</code></em>);</pre>
189
200
Set the callback used to implement SendMessage, and the types of message
190
201
that can be sent. This must be called from the init, constructor or
320
341
<div class="refsect2">
321
342
<a name="tp-message-mixin-get-dbus-property"></a><h3>tp_message_mixin_get_dbus_property ()</h3>
322
<pre class="programlisting"><span class="returnvalue">void</span> tp_message_mixin_get_dbus_property (<em class="parameter"><code><span class="type">GObject</span> *object</code></em>,
323
<em class="parameter"><code><span class="type">GQuark</span> interface</code></em>,
324
<em class="parameter"><code><span class="type">GQuark</span> name</code></em>,
325
<em class="parameter"><code><span class="type">GValue</span> *value</code></em>,
326
<em class="parameter"><code><span class="type">gpointer</span> unused</code></em>);</pre>
343
<pre class="programlisting"><span class="returnvalue">void</span> tp_message_mixin_get_dbus_property (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
344
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> interface</code></em>,
345
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> name</code></em>,
346
<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
347
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> unused</code></em>);</pre>
328
349
An implementation of <a class="link" href="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinGetter" title="TpDBusPropertiesMixinGetter ()"><span class="type">TpDBusPropertiesMixinGetter</span></a> which assumes that
329
350
the <em class="parameter"><code>object</code></em> has the messages mixin. It can only be used for the Messages