matrix-glib-sdk/Matrix-0.0-MatrixClient.html

856 lines
44 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>MatrixClient: Matrix-0.0 Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="Matrix-0.0 Reference Manual">
<link rel="up" href="ch01.html" title="Matrix-0.0 API Reference">
<link rel="prev" href="Matrix-0.0-MatrixEventRoomAvatar.html" title="MatrixEventRoomAvatar">
<link rel="next" href="Matrix-0.0-MatrixMessageAudio.html" title="MatrixMessageAudio">
<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
<a href="#Matrix-0.0-MatrixClient.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="Matrix-0.0-MatrixEventRoomAvatar.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="Matrix-0.0-MatrixMessageAudio.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="Matrix-0.0-MatrixClient"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="Matrix-0.0-MatrixClient.top_of_page"></a>MatrixClient</span></h2>
<p>MatrixClient — Base interface for client communication with a Matrix.org homeserver</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="Matrix-0.0-MatrixClient.functions"></a><h2>Functions</h2>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="Matrix-0.0-MatrixClient.html#matrix-client-login-with-password" title="matrix_client_login_with_password ()">matrix_client_login_with_password</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="Matrix-0.0-MatrixClient.html#matrix-client-register-with-password" title="matrix_client_register_with_password ()">matrix_client_register_with_password</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="Matrix-0.0-MatrixClient.html#matrix-client-logout" title="matrix_client_logout ()">matrix_client_logout</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="Matrix-0.0-MatrixClient.html#matrix-client-begin-polling" title="matrix_client_begin_polling ()">matrix_client_begin_polling</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="Matrix-0.0-MatrixClient.html#matrix-client-stop-polling" title="matrix_client_stop_polling ()">matrix_client_stop_polling</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="Matrix-0.0-MatrixClient.html#matrix-client-emit-login-finished" title="matrix_client_emit_login_finished ()">matrix_client_emit_login_finished</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="Matrix-0.0-MatrixClient.html#matrix-client-incoming-event" title="matrix_client_incoming_event ()">matrix_client_incoming_event</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="Matrix-0.0-MatrixClient.html#matrix-client-connect-event" title="matrix_client_connect_event ()">matrix_client_connect_event</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="Matrix-0.0-MatrixProfile.html#MatrixProfile" title="struct MatrixProfile"><span class="returnvalue">MatrixProfile</span></a> *
</td>
<td class="function_name">
<a class="link" href="Matrix-0.0-MatrixClient.html#matrix-client-get-user-profile" title="matrix_client_get_user_profile ()">matrix_client_get_user_profile</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="Matrix-0.0-matrix-types.html#MatrixPresence" title="enum MatrixPresence"><span class="returnvalue">MatrixPresence</span></a>
</td>
<td class="function_name">
<a class="link" href="Matrix-0.0-MatrixClient.html#matrix-client-get-user-presence" title="matrix_client_get_user_presence ()">matrix_client_get_user_presence</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">MatrixRoom</span> *
</td>
<td class="function_name">
<a class="link" href="Matrix-0.0-MatrixClient.html#matrix-client-get-room-by-id" title="matrix_client_get_room_by_id ()">matrix_client_get_room_by_id</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClientEventCallback" title="MatrixClientEventCallback ()">*MatrixClientEventCallback</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="Matrix-0.0-MatrixClient.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody>
<tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient">MatrixClient</a></td>
</tr>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClientIface" title="struct MatrixClientIface">MatrixClientIface</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="Matrix-0.0-MatrixClient.description"></a><h2>Description</h2>
</div>
<div class="refsect1">
<a name="Matrix-0.0-MatrixClient.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="matrix-client-login-with-password"></a><h3>matrix_client_login_with_password ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
matrix_client_login_with_password (<em class="parameter"><code><a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">gchar</span> *username</code></em>,
<em class="parameter"><code>const <span class="type">gchar</span> *password</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
<p>Authenticate with the Matrix.org server with a username and password.</p>
<div class="refsect3">
<a name="id-1.2.11.6.2.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>the <a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>username</p></td>
<td class="parameter_description">
<p>  . </p>
<p>the username to login with </p>
<p>. </p>
</td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>password</p></td>
<td class="parameter_description">
<p>  . </p>
<p>the password to use </p>
<p>. </p>
</td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p> location to store the error occuring, or <code class="literal">NULL</code> to ignore. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Typed errors. Similar to throws in Java."><span class="acronym">error-domains</span></acronym> MatrixError]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="matrix-client-register-with-password"></a><h3>matrix_client_register_with_password ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
matrix_client_register_with_password (<em class="parameter"><code><a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">gchar</span> *username</code></em>,
<em class="parameter"><code>const <span class="type">gchar</span> *password</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
<p>Register <em class="parameter"><code>username</code></em>
with the homeserver as a normal user.</p>
<p>Upon success, the user is registered and authenticated.</p>
<p>Implementations must emit the login-finished signal when a response arrives.</p>
<p>This method registers a normal user account. If you want to register a different kind of user, use <a class="link" href="Matrix-0.0-MatrixAPI.html#matrix-api-register-account" title="matrix_api_register_account ()"><code class="function">matrix_api_register_account()</code></a>.</p>
<div class="refsect3">
<a name="id-1.2.11.6.3.8"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>the <a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>username</p></td>
<td class="parameter_description">
<p>  . </p>
<p>the username to register. If omitted, the server will generate one </p>
<p>. </p>
</td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>password</p></td>
<td class="parameter_description">
<p>  . </p>
<p>the password to use with the registration </p>
<p>. </p>
</td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p> location to store the error occuring, or <code class="literal">NULL</code> to ignore. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Typed errors. Similar to throws in Java."><span class="acronym">error-domains</span></acronym> MatrixError]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="matrix-client-logout"></a><h3>matrix_client_logout ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
matrix_client_logout (<em class="parameter"><code><a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
<p>Logout from the homeserver. As Matrix.org doesnt have such a concept, this cancels all ongoing requests and clears the authentication data (e.g. tokens).</p>
<div class="refsect3">
<a name="id-1.2.11.6.4.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>the <a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p> location to store the error occuring, or <code class="literal">NULL</code> to ignore. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Typed errors. Similar to throws in Java."><span class="acronym">error-domains</span></acronym> MatrixError]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="matrix-client-begin-polling"></a><h3>matrix_client_begin_polling ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
matrix_client_begin_polling (<em class="parameter"><code><a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
<p>Begin polling the event stream.</p>
<div class="refsect3">
<a name="id-1.2.11.6.5.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>the <a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p> location to store the error occuring, or <code class="literal">NULL</code> to ignore. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Typed errors. Similar to throws in Java."><span class="acronym">error-domains</span></acronym> MatrixError]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="matrix-client-stop-polling"></a><h3>matrix_client_stop_polling ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
matrix_client_stop_polling (<em class="parameter"><code><a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">gboolean</span> cancel_ongoing</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
<p>Stop polling the event stream. If <em class="parameter"><code>param</code></em>
cancel_ongoing is </p>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="normal">true</span></pre></td>
</tr>
</tbody>
</table>
</div>
<p>
, ongoing requests will be cancelled, too.</p>
<div class="refsect3">
<a name="id-1.2.11.6.6.7"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>the <a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancel_ongoing</p></td>
<td class="parameter_description">
<p>  . </p>
<p>if </p>
<p>
</p>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="normal">true</span></pre></td>
</tr>
</tbody>
</table>
</div>
<p>
</p>
<p>
, ongoing requests will be cancelled, too </p>
<p>. </p>
</td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p> location to store the error occuring, or <code class="literal">NULL</code> to ignore. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Typed errors. Similar to throws in Java."><span class="acronym">error-domains</span></acronym> MatrixError]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="matrix-client-emit-login-finished"></a><h3>matrix_client_emit_login_finished ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
matrix_client_emit_login_finished (<em class="parameter"><code><a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">gboolean</span> success</code></em>);</pre>
<p>Convenience function to emits the login-finished signal.</p>
<div class="refsect3">
<a name="id-1.2.11.6.7.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>the <a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>success</p></td>
<td class="parameter_description">
<p>  . </p>
<p>set to </p>
<p>
</p>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="normal">true</span></pre></td>
</tr>
</tbody>
</table>
</div>
<p>
</p>
<p>
if login was successful </p>
<p>. </p>
</td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="matrix-client-incoming-event"></a><h3>matrix_client_incoming_event ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
matrix_client_incoming_event (<em class="parameter"><code><a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">gchar</span> *room_id</code></em>,
<em class="parameter"><code><a href="../json-glib/json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *raw_event</code></em>,
<em class="parameter"><code><a class="link" href="Matrix-0.0-MatrixEventBase.html#MatrixEventBase" title="struct MatrixEventBase"><span class="type">MatrixEventBase</span></a> *matrix_event</code></em>);</pre>
<p>Emits the <span class="type">“event”</span> signal.</p>
<div class="refsect3">
<a name="id-1.2.11.6.8.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>the <a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>room_id</p></td>
<td class="parameter_description">
<p>  . </p>
<p>the room this event is associated with </p>
<p>. </p>
</td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>raw_event</p></td>
<td class="parameter_description">
<p>  . </p>
<p>the raw event </p>
<p>. </p>
</td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>matrix_event</p></td>
<td class="parameter_description">
<p>  . </p>
<p>the event as a Matrix.Event </p>
<p>. </p>
</td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="matrix-client-connect-event"></a><h3>matrix_client_connect_event ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
matrix_client_connect_event (<em class="parameter"><code><a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GType</span> event_gtype</code></em>,
<em class="parameter"><code><a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClientEventCallback" title="MatrixClientEventCallback ()"><span class="type">MatrixClientEventCallback</span></a> event_callback</code></em>,
<em class="parameter"><code><span class="type">void</span> *event_callback_target</code></em>,
<em class="parameter"><code><span class="type">GDestroyNotify</span> event_callback_target_destroy_notify</code></em>);</pre>
<p>Connect a handler for events. If <em class="parameter"><code>param</code></em>
event_gtype is Matrix.Event, all events will be sent to the callback function, otherwise only events that match the specified event type.</p>
<p>If <em class="parameter"><code>event_gtype</code></em> is not derived from Matrix.Event, <em class="parameter"><code>param</code></em> callback wont get connected.</p>
<div class="refsect3">
<a name="id-1.2.11.6.9.6"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>the <a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event_gtype</p></td>
<td class="parameter_description">
<p>  . </p>
<p>the <span class="type">GType</span> of a Matrix.Event derivative </p>
<p>. </p>
</td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>event_callback</p></td>
<td class="parameter_description">
<p>  . </p>
<p>the allback function to connect </p>
<p>. </p>
</td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>event_callback_target</p></td>
<td class="parameter_description"><p> user data to pass to <em class="parameter"><code>event_callback</code></em>
. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>event_callback_target_destroy_notify</p></td>
<td class="parameter_description"><p> function to call when <em class="parameter"><code>event_callback_target</code></em>
is no longer needed. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="matrix-client-get-user-profile"></a><h3>matrix_client_get_user_profile ()</h3>
<pre class="programlisting"><a class="link" href="Matrix-0.0-MatrixProfile.html#MatrixProfile" title="struct MatrixProfile"><span class="returnvalue">MatrixProfile</span></a> *
matrix_client_get_user_profile (<em class="parameter"><code><a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">gchar</span> *user_id</code></em>,
<em class="parameter"><code>const <span class="type">gchar</span> *room_id</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
<p>Get the profile of a user specified by <em class="parameter"><code>param</code></em>
user_id. If <em class="parameter"><code>param</code></em>
room_id is not null, return the room-specific profile. If the user's profile is not cached yet, Matrix.Error.UNAVAILABLE is thrown.</p>
<div class="refsect3">
<a name="id-1.2.11.6.10.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>the <a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_id</p></td>
<td class="parameter_description"><p> </p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>room_id</p></td>
<td class="parameter_description"><p> </p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p> location to store the error occuring, or <code class="literal">NULL</code> to ignore. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Typed errors. Similar to throws in Java."><span class="acronym">error-domains</span></acronym> MatrixError]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="matrix-client-get-user-presence"></a><h3>matrix_client_get_user_presence ()</h3>
<pre class="programlisting"><a class="link" href="Matrix-0.0-matrix-types.html#MatrixPresence" title="enum MatrixPresence"><span class="returnvalue">MatrixPresence</span></a>
matrix_client_get_user_presence (<em class="parameter"><code><a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">gchar</span> *user_id</code></em>,
<em class="parameter"><code>const <span class="type">gchar</span> *room_id</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
<p>Get the presence state of a user specified by <em class="parameter"><code>param</code></em>
user_id. If <em class="parameter"><code>param</code></em>
room_id is null, return the room specific presence state. If the user's presence state is not cached yet, Matrix.Error.UNAVAILABLE is thrown.</p>
<div class="refsect3">
<a name="id-1.2.11.6.11.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>the <a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_id</p></td>
<td class="parameter_description"><p> </p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>room_id</p></td>
<td class="parameter_description"><p> </p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p> location to store the error occuring, or <code class="literal">NULL</code> to ignore. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Typed errors. Similar to throws in Java."><span class="acronym">error-domains</span></acronym> MatrixError]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="matrix-client-get-room-by-id"></a><h3>matrix_client_get_room_by_id ()</h3>
<pre class="programlisting"><span class="returnvalue">MatrixRoom</span> *
matrix_client_get_room_by_id (<em class="parameter"><code><a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">gchar</span> *room_id</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
<p>Get a room object by the room ID specified in <em class="parameter"><code>param</code></em>
room_id. If room data is not cached yet, Matrix.Error.UNAVAILABLE is thrown.</p>
<div class="refsect3">
<a name="id-1.2.11.6.12.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>the <a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>room_id</p></td>
<td class="parameter_description">
<p>  . </p>
<p>the ID of a room </p>
<p>. </p>
</td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p> location to store the error occuring, or <code class="literal">NULL</code> to ignore. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Typed errors. Similar to throws in Java."><span class="acronym">error-domains</span></acronym> MatrixError]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.2.11.6.12.6"></a><h4>Returns</h4>
<p>a Matrix.Room object </p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="MatrixClientEventCallback"></a><h3>MatrixClientEventCallback ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
<span class="c_punctuation">(</span>*MatrixClientEventCallback<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> *client</code></em>,
<em class="parameter"><code>const <span class="type">gchar</span> *room_id</code></em>,
<em class="parameter"><code><a href="../json-glib/json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *raw_event</code></em>,
<em class="parameter"><code><a class="link" href="Matrix-0.0-MatrixEventBase.html#MatrixEventBase" title="struct MatrixEventBase"><span class="type">MatrixEventBase</span></a> *matrix_event</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
<p>Callback function delegate for the event signal.</p>
<div class="refsect3">
<a name="id-1.2.11.6.13.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>room_id</p></td>
<td class="parameter_description">
<p>  . </p>
<p>the room the event associated with </p>
<p>. </p>
</td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>raw_event</p></td>
<td class="parameter_description">
<p>  . </p>
<p>the event as a raw JSON object </p>
<p>. </p>
</td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>matrix_event</p></td>
<td class="parameter_description">
<p>  . </p>
<p>the event as a Matrix.Event object </p>
<p>. </p>
</td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>client</p></td>
<td class="parameter_description"><p> </p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p> data to pass to the delegate function. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="refsect1">
<a name="Matrix-0.0-MatrixClient.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="MatrixClient"></a><h3>MatrixClient</h3>
<pre class="programlisting">typedef struct _MatrixClient MatrixClient;</pre>
<p>Base interface for client communication with a Matrix.org homeserver</p>
</div>
<hr>
<div class="refsect2">
<a name="MatrixClientIface"></a><h3>struct MatrixClientIface</h3>
<pre class="programlisting">struct MatrixClientIface {
GTypeInterface parent_iface;
void (*login_with_password) (MatrixClient* self, const gchar* username, const gchar* password, GError** error);
void (*register_with_password) (MatrixClient* self, const gchar* username, const gchar* password, GError** error);
void (*logout) (MatrixClient* self, GError** error);
void (*begin_polling) (MatrixClient* self, GError** error);
void (*stop_polling) (MatrixClient* self, gboolean cancel_ongoing, GError** error);
MatrixProfile* (*get_user_profile) (MatrixClient* self, const gchar* user_id, const gchar* room_id, GError** error);
MatrixPresence (*get_user_presence) (MatrixClient* self, const gchar* user_id, const gchar* room_id, GError** error);
MatrixRoom* (*get_room_by_id) (MatrixClient* self, const gchar* room_id, GError** error);
void (*login_finished) (MatrixClient* self, gboolean success);
void (*event) (MatrixClient* self, const gchar* room_id, JsonNode* raw_event, MatrixEventBase* matrix_event);
};
</pre>
<p>Interface for creating <a class="link" href="Matrix-0.0-MatrixClient.html#MatrixClient" title="MatrixClient"><span class="type">MatrixClient</span></a> implementations.</p>
<div class="refsect3">
<a name="id-1.2.11.7.3.5"></a><h4>Members</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
<col class="struct_members_description">
<col width="200px" class="struct_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="struct_member_name"><p><span class="type">GTypeInterface</span> <em class="structfield"><code><a name="MatrixClientIface.parent-iface"></a>parent_iface</code></em>;</p></td>
<td class="struct_member_description"><p>the parent interface structure</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="MatrixClientIface.login-with-password"></a>login_with_password</code></em> ()</p></td>
<td class="struct_member_description"><p>virtual method called by <a class="link" href="Matrix-0.0-MatrixClient.html#matrix-client-login-with-password" title="matrix_client_login_with_password ()"><code class="function">matrix_client_login_with_password()</code></a></p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="MatrixClientIface.register-with-password"></a>register_with_password</code></em> ()</p></td>
<td class="struct_member_description"><p>virtual method called by <a class="link" href="Matrix-0.0-MatrixClient.html#matrix-client-register-with-password" title="matrix_client_register_with_password ()"><code class="function">matrix_client_register_with_password()</code></a></p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="MatrixClientIface.logout"></a>logout</code></em> ()</p></td>
<td class="struct_member_description"><p>virtual method called by <a class="link" href="Matrix-0.0-MatrixClient.html#matrix-client-logout" title="matrix_client_logout ()"><code class="function">matrix_client_logout()</code></a></p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="MatrixClientIface.begin-polling"></a>begin_polling</code></em> ()</p></td>
<td class="struct_member_description"><p>virtual method called by <a class="link" href="Matrix-0.0-MatrixClient.html#matrix-client-begin-polling" title="matrix_client_begin_polling ()"><code class="function">matrix_client_begin_polling()</code></a></p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="MatrixClientIface.stop-polling"></a>stop_polling</code></em> ()</p></td>
<td class="struct_member_description"><p>virtual method called by <a class="link" href="Matrix-0.0-MatrixClient.html#matrix-client-stop-polling" title="matrix_client_stop_polling ()"><code class="function">matrix_client_stop_polling()</code></a></p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="MatrixClientIface.get-user-profile"></a>get_user_profile</code></em> ()</p></td>
<td class="struct_member_description"><p>virtual method called by <a class="link" href="Matrix-0.0-MatrixClient.html#matrix-client-get-user-profile" title="matrix_client_get_user_profile ()"><code class="function">matrix_client_get_user_profile()</code></a></p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="MatrixClientIface.get-user-presence"></a>get_user_presence</code></em> ()</p></td>
<td class="struct_member_description"><p>virtual method called by <a class="link" href="Matrix-0.0-MatrixClient.html#matrix-client-get-user-presence" title="matrix_client_get_user_presence ()"><code class="function">matrix_client_get_user_presence()</code></a></p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="MatrixClientIface.get-room-by-id"></a>get_room_by_id</code></em> ()</p></td>
<td class="struct_member_description"><p>virtual method called by <a class="link" href="Matrix-0.0-MatrixClient.html#matrix-client-get-room-by-id" title="matrix_client_get_room_by_id ()"><code class="function">matrix_client_get_room_by_id()</code></a></p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="MatrixClientIface.login-finished"></a>login_finished</code></em> ()</p></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="MatrixClientIface.event"></a>event</code></em> ()</p></td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.24</div>
</body>
</html>