blob: 6f64fd0792a5f506d2d79e71ad9cec4efc674131 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libguac: guacamole/user.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libguac
&#160;<span id="projectnumber">1.1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">user.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="user_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * KIND, either express or implied. See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#ifndef _GUAC_USER_H</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#define _GUAC_USER_H</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-types_8h.html">client-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="layer-types_8h.html">layer-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="pool-types_8h.html">pool-types.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timestamp-types_8h.html">timestamp-types.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-constants_8h.html">user-constants.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-fntypes_8h.html">user-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-types_8h.html">user-types.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &lt;cairo/cairo.h&gt;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structguac__user__info.html"> 46</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__user__info.html">guac_user_info</a> {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66"> 54</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">optimal_width</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structguac__user__info.html#a252079af642b62554566e8675dc43354"> 62</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structguac__user__info.html#a252079af642b62554566e8675dc43354">optimal_height</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27"> 68</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">audio_mimetypes</a>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57"> 74</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">video_mimetypes</a>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345"> 81</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">image_mimetypes</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7"> 90</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">optimal_resolution</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; </div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078"> 97</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078">timezone</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;};</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="structguac__user.html"> 101</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__user.html">guac_user</a> {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf"> 106</a></span>&#160; <a class="code" href="structguac__client.html">guac_client</a>* <a class="code" href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">client</a>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27"> 113</a></span>&#160; <a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">socket</a>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70"> 121</a></span>&#160; <span class="keywordtype">char</span>* <a class="code" href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">user_id</a>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8"> 127</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">owner</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd"> 135</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">active</a>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="structguac__user.html">guac_user</a>* __prev;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="structguac__user.html">guac_user</a>* __next;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16"> 157</a></span>&#160; <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> <a class="code" href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">last_received_timestamp</a>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060"> 164</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">last_frame_duration</a>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e"> 170</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">processing_lag</a>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="structguac__user.html#a0120f63e0eb933761666047ed80e483f"> 176</a></span>&#160; <a class="code" href="structguac__user__info.html">guac_user_info</a> <a class="code" href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">info</a>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="structguac__pool.html">guac_pool</a>* __stream_pool;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="structguac__stream.html">guac_stream</a>* __output_streams;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="structguac__stream.html">guac_stream</a>* __input_streams;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="structguac__pool.html">guac_pool</a>* __object_pool;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="structguac__object.html">guac_object</a>* __objects;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883"> 206</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">data</a>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763"> 233</a></span>&#160; <a class="code" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a>* <a class="code" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">mouse_handler</a>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13"> 251</a></span>&#160; <a class="code" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a>* <a class="code" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">key_handler</a>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="structguac__user.html#a77f042802092c8bbf4407836f3185343"> 272</a></span>&#160; <a class="code" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a>* <a class="code" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">clipboard_handler</a>;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a"> 289</a></span>&#160; <a class="code" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a>* <a class="code" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">size_handler</a>;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474"> 308</a></span>&#160; <a class="code" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a>* <a class="code" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">file_handler</a>;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3"> 327</a></span>&#160; <a class="code" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a>* <a class="code" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">pipe_handler</a>;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be"> 346</a></span>&#160; <a class="code" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a>* <a class="code" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">ack_handler</a>;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb"> 365</a></span>&#160; <a class="code" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a>* <a class="code" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">blob_handler</a>;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed"> 383</a></span>&#160; <a class="code" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a>* <a class="code" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">end_handler</a>;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2"> 402</a></span>&#160; <a class="code" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a>* <a class="code" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">sync_handler</a>;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f"> 421</a></span>&#160; <a class="code" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a>* <a class="code" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">leave_handler</a>;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b"> 441</a></span>&#160; <a class="code" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a>* <a class="code" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">get_handler</a>;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"><a class="line" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3"> 461</a></span>&#160; <a class="code" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a>* <a class="code" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">put_handler</a>;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div><div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69"> 483</a></span>&#160; <a class="code" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a>* <a class="code" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">audio_handler</a>;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div><div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a"> 504</a></span>&#160; <a class="code" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a>* <a class="code" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">argv_handler</a>;</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;};</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<a class="code" href="structguac__user.html">guac_user</a>* <a class="code" href="user_8h.html#a586cd1d712dce0db02d57684ddcb02ef">guac_user_alloc</a>();</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8">guac_user_free</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="keywordtype">int</span> <a class="code" href="user_8h.html#a28f08ab54f138796dea4655ef54526fe">guac_user_handle_connection</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> usec_timeout);</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="keywordtype">int</span> <a class="code" href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78">guac_user_handle_instruction</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keyword">const</span> <span class="keywordtype">char</span>* opcode,</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv);</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<a class="code" href="structguac__stream.html">guac_stream</a>* <a class="code" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">guac_user_alloc_stream</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4">guac_user_free_stream</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream);</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf">guac_user_stop</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a0eff54a869374e37237b2006ad77b958">guac_user_abort</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status,</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ...);</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#ad8529247b551cb93509236a7f9138dd2">vguac_user_abort</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status,</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list ap);</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#ab19481d0800901190d3d734eae466151">guac_user_log</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level,</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ...);</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#af15509bcb891932a3fa93a142018b95c">vguac_user_log</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level,</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list ap);</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<a class="code" href="structguac__object.html">guac_object</a>* <a class="code" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">guac_user_alloc_object</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#acf92065fb6bbc92f9794ea50255acdb9">guac_user_free_object</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>);</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#aa3f85461f15abfb46fd7c732538b33ea">guac_user_stream_argv</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value);</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630">guac_user_stream_png</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; cairo_surface_t* surface);</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a6e947ee6996d5711f18d5b785757ccb3">guac_user_stream_jpeg</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; cairo_surface_t* surface, <span class="keywordtype">int</span> quality);</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8">guac_user_stream_webp</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; cairo_surface_t* surface, <span class="keywordtype">int</span> quality, <span class="keywordtype">int</span> lossless);</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;<span class="keywordtype">int</span> <a class="code" href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7">guac_user_supports_webp</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;<span class="keywordtype">char</span>* <a class="code" href="user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f">guac_user_parse_args_string</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keyword">const</span> <span class="keywordtype">char</span>** arg_names,</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>** argv, <span class="keywordtype">int</span> index, <span class="keyword">const</span> <span class="keywordtype">char</span>* default_value);</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160;</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160;<span class="keywordtype">int</span> <a class="code" href="user_8h.html#a08f6fd4d84de665487a45fb324dc8844">guac_user_parse_args_int</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keyword">const</span> <span class="keywordtype">char</span>** arg_names,</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>** argv, <span class="keywordtype">int</span> index, <span class="keywordtype">int</span> default_value);</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160;<span class="keywordtype">int</span> <a class="code" href="user_8h.html#a5f0bae838d82357e95e98769f7b98cd2">guac_user_parse_args_boolean</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keyword">const</span> <span class="keywordtype">char</span>** arg_names,</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>** argv, <span class="keywordtype">int</span> index, <span class="keywordtype">int</span> default_value);</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160;</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;</div><div class="ttc" id="structguac__user_html_a793f7ef1cd818c296e7a5801c349f5ed"><div class="ttname"><a href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">guac_user::end_handler</a></div><div class="ttdeci">guac_user_end_handler * end_handler</div><div class="ttdoc">Handler for stream end events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:383</div></div>
<div class="ttc" id="user_8h_html_a6fa98ba49213d610491248cf085aaf56"><div class="ttname"><a href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">guac_user_alloc_object</a></div><div class="ttdeci">guac_object * guac_user_alloc_object(guac_user *user)</div><div class="ttdoc">Allocates a new object. </div></div>
<div class="ttc" id="structguac__user_html_a0120f63e0eb933761666047ed80e483f"><div class="ttname"><a href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">guac_user::info</a></div><div class="ttdeci">guac_user_info info</div><div class="ttdoc">Information structure containing properties exposed by the remote user during the initial handshake p...</div><div class="ttdef"><b>Definition:</b> user.h:176</div></div>
<div class="ttc" id="user_8h_html_af15509bcb891932a3fa93a142018b95c"><div class="ttname"><a href="user_8h.html#af15509bcb891932a3fa93a142018b95c">vguac_user_log</a></div><div class="ttdeci">void vguac_user_log(guac_user *user, guac_client_log_level level, const char *format, va_list ap)</div><div class="ttdoc">Writes a message in the log used by the given user. </div></div>
<div class="ttc" id="structguac__user_html_ab9b8b3c268a0d14a28bdae6929cffb13"><div class="ttname"><a href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">guac_user::key_handler</a></div><div class="ttdeci">guac_user_key_handler * key_handler</div><div class="ttdoc">Handler for key events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:251</div></div>
<div class="ttc" id="user-fntypes_8h_html_ab8b7cadf31aeac0b2ac0ce4f46dafe81"><div class="ttname"><a href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a></div><div class="ttdeci">int guac_user_get_handler(guac_user *user, guac_object *object, char *name)</div><div class="ttdoc">Handler for Guacamole object get requests. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:427</div></div>
<div class="ttc" id="structguac__user_html_a209e83f080baf2e84d04cf08395374d2"><div class="ttname"><a href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">guac_user::sync_handler</a></div><div class="ttdeci">guac_user_sync_handler * sync_handler</div><div class="ttdoc">Handler for sync events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:402</div></div>
<div class="ttc" id="structguac__user__info_html_ac19c08c0ef7441556be0afed6fb9c7c7"><div class="ttname"><a href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">guac_user_info::optimal_resolution</a></div><div class="ttdeci">int optimal_resolution</div><div class="ttdoc">The DPI of the physical remote display if configured for the optimal width/height combination describ...</div><div class="ttdef"><b>Definition:</b> user.h:90</div></div>
<div class="ttc" id="user-fntypes_8h_html_a1d2777aaa35f39e5ba5e803a3ffbd137"><div class="ttname"><a href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a></div><div class="ttdeci">int guac_user_audio_handler(guac_user *user, guac_stream *stream, char *mimetype)</div><div class="ttdoc">Handler for Guacamole audio streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:138</div></div>
<div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object. </div></div>
<div class="ttc" id="user-fntypes_8h_html_ab60c51d865526c5c5d2c096e4fcb5539"><div class="ttname"><a href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a></div><div class="ttdeci">int guac_user_sync_handler(guac_user *user, guac_timestamp timestamp)</div><div class="ttdoc">Handler for Guacamole sync events. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:406</div></div>
<div class="ttc" id="structguac__user_html_ada73c04bbf06de4280f2d7679190a19b"><div class="ttname"><a href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">guac_user::get_handler</a></div><div class="ttdeci">guac_user_get_handler * get_handler</div><div class="ttdoc">Handler for get events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:441</div></div>
<div class="ttc" id="structguac__user_html_a4b097cae9283bb0caf70189d4f3d1d0e"><div class="ttname"><a href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">guac_user::processing_lag</a></div><div class="ttdeci">int processing_lag</div><div class="ttdoc">The overall lag experienced by the user relative to the stream of frames, roughly excluding network l...</div><div class="ttdef"><b>Definition:</b> user.h:170</div></div>
<div class="ttc" id="user-fntypes_8h_html_aca3c0d12202f7888146bb95986011b6f"><div class="ttname"><a href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a></div><div class="ttdeci">int guac_user_size_handler(guac_user *user, int width, int height)</div><div class="ttdoc">Handler for Guacamole size events, invoked when a &quot;size&quot; instruction has been received from a user...</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:182</div></div>
<div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams. </div></div>
<div class="ttc" id="structguac__user_html_aebdee192ef52dfe8956c776adc65fb16"><div class="ttname"><a href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">guac_user::last_received_timestamp</a></div><div class="ttdeci">guac_timestamp last_received_timestamp</div><div class="ttdoc">The time (in milliseconds) of receipt of the last sync message from the user. </div><div class="ttdef"><b>Definition:</b> user.h:157</div></div>
<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole. </div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
<div class="ttc" id="user-fntypes_8h_html_a337a3fe8b983e3e25e25dbb836ea2694"><div class="ttname"><a href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a></div><div class="ttdeci">int guac_user_mouse_handler(guac_user *user, int x, int y, int button_mask)</div><div class="ttdoc">Handler for Guacamole mouse events, invoked when a &quot;mouse&quot; instruction has been received from a user...</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:95</div></div>
<div class="ttc" id="user-fntypes_8h_html_afa8b0e25073cbe710265dc8a0ed150ca"><div class="ttname"><a href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a></div><div class="ttdeci">int guac_user_end_handler(guac_user *user, guac_stream *stream)</div><div class="ttdoc">Handler for Guacamole stream &quot;end&quot; instructions. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:336</div></div>
<div class="ttc" id="structguac__user_html_a88a14fda25c9929269d198d4d602f7fb"><div class="ttname"><a href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">guac_user::blob_handler</a></div><div class="ttdeci">guac_user_blob_handler * blob_handler</div><div class="ttdoc">Handler for blob events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:365</div></div>
<div class="ttc" id="structguac__user_html_ad424a52c5d996e4a33de5dad61555883"><div class="ttname"><a href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">guac_user::data</a></div><div class="ttdeci">void * data</div><div class="ttdoc">Arbitrary user-specific data. </div><div class="ttdef"><b>Definition:</b> user.h:206</div></div>
<div class="ttc" id="structguac__user_html_a8b958a20fbe7cf082d5ee074fceac474"><div class="ttname"><a href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">guac_user::file_handler</a></div><div class="ttdeci">guac_user_file_handler * file_handler</div><div class="ttdoc">Handler for file events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:308</div></div>
<div class="ttc" id="user_8h_html_a26d186ee6b669c78278124ece46cc8f7"><div class="ttname"><a href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7">guac_user_supports_webp</a></div><div class="ttdeci">int guac_user_supports_webp(guac_user *user)</div><div class="ttdoc">Returns whether the given user supports WebP. </div></div>
<div class="ttc" id="structguac__user_html_a05ec6fd1894ff8df10c051b20df1b763"><div class="ttname"><a href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">guac_user::mouse_handler</a></div><div class="ttdeci">guac_user_mouse_handler * mouse_handler</div><div class="ttdoc">Handler for mouse events sent by the Gaucamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:233</div></div>
<div class="ttc" id="client-types_8h_html"><div class="ttname"><a href="client-types_8h.html">client-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole client structure, guac_client. </div></div>
<div class="ttc" id="user_8h_html_af00042d94cb64fb8ac92cd84aff05bf8"><div class="ttname"><a href="user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8">guac_user_stream_webp</a></div><div class="ttdeci">void guac_user_stream_webp(guac_user *user, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface, int quality, int lossless)</div><div class="ttdoc">Streams the image data of the given surface over an image stream (&quot;img&quot; instruction) as WebP-encoded ...</div></div>
<div class="ttc" id="structguac__object_html"><div class="ttname"><a href="structguac__object.html">guac_object</a></div><div class="ttdoc">Represents a single object within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> object.h:32</div></div>
<div class="ttc" id="structguac__user_html_af35d1f6f2c97d917bf88cf66384f58a3"><div class="ttname"><a href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">guac_user::pipe_handler</a></div><div class="ttdeci">guac_user_pipe_handler * pipe_handler</div><div class="ttdoc">Handler for pipe events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:327</div></div>
<div class="ttc" id="user_8h_html_a8216ec7024947564fb4ea6b8b0b07eaf"><div class="ttname"><a href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf">guac_user_stop</a></div><div class="ttdeci">void guac_user_stop(guac_user *user)</div><div class="ttdoc">Signals the given user that it must disconnect, or advises cooperating services that the given user i...</div></div>
<div class="ttc" id="structguac__user_html_a77f042802092c8bbf4407836f3185343"><div class="ttname"><a href="structguac__user.html#a77f042802092c8bbf4407836f3185343">guac_user::clipboard_handler</a></div><div class="ttdeci">guac_user_clipboard_handler * clipboard_handler</div><div class="ttdoc">Handler for clipboard events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:272</div></div>
<div class="ttc" id="structguac__user_html_ad44c1bf6ab56aae0098458a1af2aa6be"><div class="ttname"><a href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">guac_user::ack_handler</a></div><div class="ttdeci">guac_user_ack_handler * ack_handler</div><div class="ttdoc">Handler for ack events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:346</div></div>
<div class="ttc" id="structguac__user__info_html_ac05b09cce376e656f4e4baa19f888345"><div class="ttname"><a href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">guac_user_info::image_mimetypes</a></div><div class="ttdeci">const char ** image_mimetypes</div><div class="ttdoc">NULL-terminated array of client-supported image mimetypes. </div><div class="ttdef"><b>Definition:</b> user.h:81</div></div>
<div class="ttc" id="structguac__user_html_a265180af7291745b2e090ee6fa47cbb8"><div class="ttname"><a href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">guac_user::owner</a></div><div class="ttdeci">int owner</div><div class="ttdoc">Non-zero if this user is the owner of the associated connection, zero otherwise. </div><div class="ttdef"><b>Definition:</b> user.h:127</div></div>
<div class="ttc" id="structguac__user_html_a391e11605bf5605df3e27f6f7d0e2c69"><div class="ttname"><a href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">guac_user::audio_handler</a></div><div class="ttdeci">guac_user_audio_handler * audio_handler</div><div class="ttdoc">Handler for audio events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:483</div></div>
<div class="ttc" id="user_8h_html_a5f0bae838d82357e95e98769f7b98cd2"><div class="ttname"><a href="user_8h.html#a5f0bae838d82357e95e98769f7b98cd2">guac_user_parse_args_boolean</a></div><div class="ttdeci">int guac_user_parse_args_boolean(guac_user *user, const char **arg_names, const char **argv, int index, int default_value)</div><div class="ttdoc">Automatically handles a single boolean argument received from a joining user, returning the value of ...</div></div>
<div class="ttc" id="user-fntypes_8h_html"><div class="ttname"><a href="user-fntypes_8h.html">user-fntypes.h</a></div><div class="ttdoc">Function type definitions related to the guac_user object. </div></div>
<div class="ttc" id="user_8h_html_a28f08ab54f138796dea4655ef54526fe"><div class="ttname"><a href="user_8h.html#a28f08ab54f138796dea4655ef54526fe">guac_user_handle_connection</a></div><div class="ttdeci">int guac_user_handle_connection(guac_user *user, int usec_timeout)</div><div class="ttdoc">Handles all I/O for the portion of a user&amp;#39;s Guacamole connection following the initial &quot;select&quot; instr...</div></div>
<div class="ttc" id="structguac__user_html_a36a2fee906be0898907ba6e4a97bdb9a"><div class="ttname"><a href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">guac_user::size_handler</a></div><div class="ttdeci">guac_user_size_handler * size_handler</div><div class="ttdoc">Handler for size events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:289</div></div>
<div class="ttc" id="structguac__user__info_html_a496d5f3d26a7db0a0490afa553126c66"><div class="ttname"><a href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">guac_user_info::optimal_width</a></div><div class="ttdeci">int optimal_width</div><div class="ttdoc">The number of pixels the remote client requests for the display width. </div><div class="ttdef"><b>Definition:</b> user.h:54</div></div>
<div class="ttc" id="structguac__user_html"><div class="ttname"><a href="structguac__user.html">guac_user</a></div><div class="ttdoc">Representation of a physical connection within a larger logical connection which may be shared...</div><div class="ttdef"><b>Definition:</b> user.h:101</div></div>
<div class="ttc" id="structguac__user__info_html"><div class="ttname"><a href="structguac__user__info.html">guac_user_info</a></div><div class="ttdoc">Information exposed by the remote client during the connection handshake which can be used by a clien...</div><div class="ttdef"><b>Definition:</b> user.h:46</div></div>
<div class="ttc" id="user-fntypes_8h_html_aead320956199884ff6af82d49d6163c1"><div class="ttname"><a href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a></div><div class="ttdeci">int guac_user_blob_handler(guac_user *user, guac_stream *stream, void *data, int length)</div><div class="ttdoc">Handler for Guacamole stream blobs. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:290</div></div>
<div class="ttc" id="user_8h_html_aa3f85461f15abfb46fd7c732538b33ea"><div class="ttname"><a href="user_8h.html#aa3f85461f15abfb46fd7c732538b33ea">guac_user_stream_argv</a></div><div class="ttdeci">void guac_user_stream_argv(guac_user *user, guac_socket *socket, const char *mimetype, const char *name, const char *value)</div><div class="ttdoc">Streams the given connection parameter value over an argument value stream (&quot;argv&quot; instruction)...</div></div>
<div class="ttc" id="user-fntypes_8h_html_a50636d9fb70c454a5e82cbf6ee4f9c8a"><div class="ttname"><a href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a></div><div class="ttdeci">int guac_user_argv_handler(guac_user *user, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole argument value (argv) streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:267</div></div>
<div class="ttc" id="structguac__user_html_a12f1c20cab11d657e0f255db10f42e2f"><div class="ttname"><a href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">guac_user::leave_handler</a></div><div class="ttdeci">guac_user_leave_handler * leave_handler</div><div class="ttdoc">Handler for leave events fired by the guac_client when a guac_user is leaving an active connection...</div><div class="ttdef"><b>Definition:</b> user.h:421</div></div>
<div class="ttc" id="structguac__user__info_html_a252079af642b62554566e8675dc43354"><div class="ttname"><a href="structguac__user__info.html#a252079af642b62554566e8675dc43354">guac_user_info::optimal_height</a></div><div class="ttdeci">int optimal_height</div><div class="ttdoc">The number of pixels the remote client requests for the display height. </div><div class="ttdef"><b>Definition:</b> user.h:62</div></div>
<div class="ttc" id="pool-types_8h_html"><div class="ttname"><a href="pool-types_8h.html">pool-types.h</a></div><div class="ttdoc">Type definitions related to the guac_pool pool of unique integers. </div></div>
<div class="ttc" id="structguac__user_html_ac7e84b1bf15d3d15ba49ce58f1819060"><div class="ttname"><a href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">guac_user::last_frame_duration</a></div><div class="ttdeci">int last_frame_duration</div><div class="ttdoc">The duration of the last frame rendered by the user, in milliseconds. </div><div class="ttdef"><b>Definition:</b> user.h:164</div></div>
<div class="ttc" id="user_8h_html_a0303ef487d51b06bb0f007f1a5df0d78"><div class="ttname"><a href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78">guac_user_handle_instruction</a></div><div class="ttdeci">int guac_user_handle_instruction(guac_user *user, const char *opcode, int argc, char **argv)</div><div class="ttdoc">Call the appropriate handler defined by the given user for the given instruction. ...</div></div>
<div class="ttc" id="user-fntypes_8h_html_a48d196c39615f6a1ff9b129267cb402e"><div class="ttname"><a href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a></div><div class="ttdeci">int guac_user_key_handler(guac_user *user, int keysym, int pressed)</div><div class="ttdoc">Handler for Guacamole key events, invoked when a &quot;key&quot; event has been received from a user...</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:116</div></div>
<div class="ttc" id="structguac__user_html_a1b52d918f437923d65e9b3eecb20fcfd"><div class="ttname"><a href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">guac_user::active</a></div><div class="ttdeci">int active</div><div class="ttdoc">Non-zero if this user is active (connected), and zero otherwise. </div><div class="ttdef"><b>Definition:</b> user.h:135</div></div>
<div class="ttc" id="user_8h_html_ab19481d0800901190d3d734eae466151"><div class="ttname"><a href="user_8h.html#ab19481d0800901190d3d734eae466151">guac_user_log</a></div><div class="ttdeci">void guac_user_log(guac_user *user, guac_client_log_level level, const char *format,...)</div><div class="ttdoc">Writes a message in the log used by the given user. </div></div>
<div class="ttc" id="structguac__user__info_html_ace535bea6879596b6473657f3fc83b57"><div class="ttname"><a href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">guac_user_info::video_mimetypes</a></div><div class="ttdeci">const char ** video_mimetypes</div><div class="ttdoc">NULL-terminated array of client-supported video mimetypes. </div><div class="ttdef"><b>Definition:</b> user.h:74</div></div>
<div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds. </div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
<div class="ttc" id="user-fntypes_8h_html_a6c24aa9dee9ee4be3f3d21e1e24b9e3e"><div class="ttname"><a href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a></div><div class="ttdeci">int guac_user_file_handler(guac_user *user, guac_stream *stream, char *mimetype, char *filename)</div><div class="ttdoc">Handler for Guacamole file streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:208</div></div>
<div class="ttc" id="user-fntypes_8h_html_a1658ce15f8c6fe958e873015e12aeed9"><div class="ttname"><a href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a></div><div class="ttdeci">int guac_user_clipboard_handler(guac_user *user, guac_stream *stream, char *mimetype)</div><div class="ttdoc">Handler for Guacamole clipboard streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:161</div></div>
<div class="ttc" id="structguac__client_html"><div class="ttname"><a href="structguac__client.html">guac_client</a></div><div class="ttdoc">Guacamole proxy client. </div><div class="ttdef"><b>Definition:</b> client.h:46</div></div>
<div class="ttc" id="user_8h_html_a3b3c740837b8e2cae6a232b45ca362f4"><div class="ttname"><a href="user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4">guac_user_free_stream</a></div><div class="ttdeci">void guac_user_free_stream(guac_user *user, guac_stream *stream)</div><div class="ttdoc">Returns the given stream to the pool of available streams, such that it can be reused by any subseque...</div></div>
<div class="ttc" id="user_8h_html_a08f6fd4d84de665487a45fb324dc8844"><div class="ttname"><a href="user_8h.html#a08f6fd4d84de665487a45fb324dc8844">guac_user_parse_args_int</a></div><div class="ttdeci">int guac_user_parse_args_int(guac_user *user, const char **arg_names, const char **argv, int index, int default_value)</div><div class="ttdoc">Automatically handles a single integer argument received from a joining user, returning the integer v...</div></div>
<div class="ttc" id="structguac__user__info_html_a043432620dafe7ba38fcd3550fdc7d27"><div class="ttname"><a href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">guac_user_info::audio_mimetypes</a></div><div class="ttdeci">const char ** audio_mimetypes</div><div class="ttdoc">NULL-terminated array of client-supported audio mimetypes. </div><div class="ttdef"><b>Definition:</b> user.h:68</div></div>
<div class="ttc" id="structguac__pool_html"><div class="ttname"><a href="structguac__pool.html">guac_pool</a></div><div class="ttdoc">A pool of integers. </div><div class="ttdef"><b>Definition:</b> pool.h:34</div></div>
<div class="ttc" id="structguac__user_html_ab6b6bdcd73d29132df5f331921ca287a"><div class="ttname"><a href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">guac_user::argv_handler</a></div><div class="ttdeci">guac_user_argv_handler * argv_handler</div><div class="ttdoc">Handler for argv events (updates to the connection parameters of an in-progress connection) sent by t...</div><div class="ttdef"><b>Definition:</b> user.h:504</div></div>
<div class="ttc" id="user-fntypes_8h_html_a88f4b7af6d47c82f65e9332afcc7ab09"><div class="ttname"><a href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a></div><div class="ttdeci">int guac_user_ack_handler(guac_user *user, guac_stream *stream, char *error, guac_protocol_status status)</div><div class="ttdoc">Handler for Guacamole stream &quot;ack&quot; instructions. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:319</div></div>
<div class="ttc" id="user_8h_html_a35a47c81b581f7aff3eb04c2a6d35b7c"><div class="ttname"><a href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">guac_user_alloc_stream</a></div><div class="ttdeci">guac_stream * guac_user_alloc_stream(guac_user *user)</div><div class="ttdoc">Allocates a new stream. </div></div>
<div class="ttc" id="user_8h_html_a7e0e1220fd00fd769b8e6b731f8c9bf8"><div class="ttname"><a href="user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8">guac_user_free</a></div><div class="ttdeci">void guac_user_free(guac_user *user)</div><div class="ttdoc">Frees the given user and all associated resources. </div></div>
<div class="ttc" id="structguac__user_html_a8496638b8c4c52f5f15d483b92becf27"><div class="ttname"><a href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">guac_user::socket</a></div><div class="ttdeci">guac_socket * socket</div><div class="ttdoc">This user&amp;#39;s actual socket. </div><div class="ttdef"><b>Definition:</b> user.h:113</div></div>
<div class="ttc" id="user-fntypes_8h_html_ab7ae6833c33b39618a8b78603581ff79"><div class="ttname"><a href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a></div><div class="ttdeci">int guac_user_pipe_handler(guac_user *user, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole pipe streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:237</div></div>
<div class="ttc" id="user_8h_html_a7530b31b5a621a4f68fdce4bee2bdc5f"><div class="ttname"><a href="user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f">guac_user_parse_args_string</a></div><div class="ttdeci">char * guac_user_parse_args_string(guac_user *user, const char **arg_names, const char **argv, int index, const char *default_value)</div><div class="ttdoc">Automatically handles a single argument received from a joining user, returning a newly-allocated str...</div></div>
<div class="ttc" id="user-fntypes_8h_html_afd4c60871cc2dbbbdc82f58ae1c5baa0"><div class="ttname"><a href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a></div><div class="ttdeci">int guac_user_put_handler(guac_user *user, guac_object *object, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole object put requests. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:454</div></div>
<div class="ttc" id="layer-types_8h_html"><div class="ttname"><a href="layer-types_8h.html">layer-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole layers. </div></div>
<div class="ttc" id="user-fntypes_8h_html_aaa5806d288a42d93a54864b6c35617b8"><div class="ttname"><a href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a></div><div class="ttdeci">int guac_user_leave_handler(guac_user *user)</div><div class="ttdoc">Handler for Guacamole leave events. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:385</div></div>
<div class="ttc" id="protocol-types_8h_html_a93612063886db58071d02b5393abf186"><div class="ttname"><a href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a></div><div class="ttdeci">guac_composite_mode</div><div class="ttdoc">Composite modes used by Guacamole draw instructions. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:170</div></div>
<div class="ttc" id="user_8h_html_a0eff54a869374e37237b2006ad77b958"><div class="ttname"><a href="user_8h.html#a0eff54a869374e37237b2006ad77b958">guac_user_abort</a></div><div class="ttdeci">void guac_user_abort(guac_user *user, guac_protocol_status status, const char *format,...)</div><div class="ttdoc">Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an e...</div></div>
<div class="ttc" id="user_8h_html_a6e947ee6996d5711f18d5b785757ccb3"><div class="ttname"><a href="user_8h.html#a6e947ee6996d5711f18d5b785757ccb3">guac_user_stream_jpeg</a></div><div class="ttdeci">void guac_user_stream_jpeg(guac_user *user, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface, int quality)</div><div class="ttdoc">Streams the image data of the given surface over an image stream (&quot;img&quot; instruction) as JPEG-encoded ...</div></div>
<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a></div><div class="ttdeci">guac_protocol_status</div><div class="ttdoc">Set of all possible status codes returned by protocol operations. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:44</div></div>
<div class="ttc" id="structguac__layer_html"><div class="ttname"><a href="structguac__layer.html">guac_layer</a></div><div class="ttdoc">Represents a single layer within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> layer.h:34</div></div>
<div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
<div class="ttc" id="structguac__user__info_html_a2c08990b6fd1e0627652a9c879ea2078"><div class="ttname"><a href="structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078">guac_user_info::timezone</a></div><div class="ttdeci">const char * timezone</div><div class="ttdoc">The timezone of the remote system. </div><div class="ttdef"><b>Definition:</b> user.h:97</div></div>
<div class="ttc" id="structguac__user_html_a5e296149a26932dfeb7d8b0bac933ecf"><div class="ttname"><a href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">guac_user::client</a></div><div class="ttdeci">guac_client * client</div><div class="ttdoc">The guac_client to which this user belongs. </div><div class="ttdef"><b>Definition:</b> user.h:106</div></div>
<div class="ttc" id="user_8h_html_ad8529247b551cb93509236a7f9138dd2"><div class="ttname"><a href="user_8h.html#ad8529247b551cb93509236a7f9138dd2">vguac_user_abort</a></div><div class="ttdeci">void vguac_user_abort(guac_user *user, guac_protocol_status status, const char *format, va_list ap)</div><div class="ttdoc">Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an e...</div></div>
<div class="ttc" id="user_8h_html_acf92065fb6bbc92f9794ea50255acdb9"><div class="ttname"><a href="user_8h.html#acf92065fb6bbc92f9794ea50255acdb9">guac_user_free_object</a></div><div class="ttdeci">void guac_user_free_object(guac_user *user, guac_object *object)</div><div class="ttdoc">Returns the given object to the pool of available objects, such that it can be reused by any subseque...</div></div>
<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a></div><div class="ttdeci">guac_client_log_level</div><div class="ttdoc">All supported log levels used by the logging subsystem of each Guacamole client. </div><div class="ttdef"><b>Definition:</b> client-types.h:62</div></div>
<div class="ttc" id="structguac__user_html_a0b33553d0e1af01d8c9fbc6ec33202c3"><div class="ttname"><a href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">guac_user::put_handler</a></div><div class="ttdeci">guac_user_put_handler * put_handler</div><div class="ttdoc">Handler for put events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:461</div></div>
<div class="ttc" id="user_8h_html_a586cd1d712dce0db02d57684ddcb02ef"><div class="ttname"><a href="user_8h.html#a586cd1d712dce0db02d57684ddcb02ef">guac_user_alloc</a></div><div class="ttdeci">guac_user * guac_user_alloc()</div><div class="ttdoc">Allocates a new, blank user, not associated with any specific client or socket. </div></div>
<div class="ttc" id="user_8h_html_a35e4c7ba75a16c0b512d543ef4fe9630"><div class="ttname"><a href="user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630">guac_user_stream_png</a></div><div class="ttdeci">void guac_user_stream_png(guac_user *user, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface)</div><div class="ttdoc">Streams the image data of the given surface over an image stream (&quot;img&quot; instruction) as PNG-encoded d...</div></div>
<div class="ttc" id="structguac__user_html_aad1c6a8b56d17c12eb1f1e36c4798c70"><div class="ttname"><a href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">guac_user::user_id</a></div><div class="ttdeci">char * user_id</div><div class="ttdoc">The unique identifier allocated for this user, which may be used within the Guacamole protocol to ref...</div><div class="ttdef"><b>Definition:</b> user.h:121</div></div>
<div class="ttc" id="timestamp-types_8h_html"><div class="ttname"><a href="timestamp-types_8h.html">timestamp-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol timestamps. </div></div>
<div class="ttc" id="user-types_8h_html"><div class="ttname"><a href="user-types_8h.html">user-types.h</a></div><div class="ttdoc">Type definitions related to the guac_user object. </div></div>
<div class="ttc" id="user-constants_8h_html"><div class="ttname"><a href="user-constants_8h.html">user-constants.h</a></div><div class="ttdoc">Constants related to the Guacamole user structure, guac_user. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>