<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.15"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>libguac: guac_stream Struct Reference</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  <span id="projectnumber">1.3.0</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.15 --> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-attribs">Data Fields</a> </div> <div class="headertitle"> <div class="title">guac_stream Struct Reference</div> </div> </div><!--header--> <div class="contents"> <p>Represents a single stream within the Guacamole protocol. <a href="structguac__stream.html#details">More...</a></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a> Data Fields</h2></td></tr> <tr class="memitem:a487951c2cc77b2e1637e3aa0b5faaa60"><td class="memItemLeft" align="right" valign="top"><a id="a487951c2cc77b2e1637e3aa0b5faaa60"></a> int </td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60">index</a></td></tr> <tr class="memdesc:a487951c2cc77b2e1637e3aa0b5faaa60"><td class="mdescLeft"> </td><td class="mdescRight">The index of this stream. <br /></td></tr> <tr class="separator:a487951c2cc77b2e1637e3aa0b5faaa60"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acdf20063ca408431862d901c9445b429"><td class="memItemLeft" align="right" valign="top"><a id="acdf20063ca408431862d901c9445b429"></a> void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html#acdf20063ca408431862d901c9445b429">data</a></td></tr> <tr class="memdesc:acdf20063ca408431862d901c9445b429"><td class="mdescLeft"> </td><td class="mdescRight">Arbitrary data associated with this stream. <br /></td></tr> <tr class="separator:acdf20063ca408431862d901c9445b429"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acd077c7266d10871ee1e07951dfa72ff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">ack_handler</a></td></tr> <tr class="memdesc:acd077c7266d10871ee1e07951dfa72ff"><td class="mdescLeft"> </td><td class="mdescRight">Handler for ack events sent by the Guacamole web-client. <a href="#acd077c7266d10871ee1e07951dfa72ff">More...</a><br /></td></tr> <tr class="separator:acd077c7266d10871ee1e07951dfa72ff"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a51122ba04f416d8ce047542c603632f8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">blob_handler</a></td></tr> <tr class="memdesc:a51122ba04f416d8ce047542c603632f8"><td class="mdescLeft"> </td><td class="mdescRight">Handler for blob events sent by the Guacamole web-client. <a href="#a51122ba04f416d8ce047542c603632f8">More...</a><br /></td></tr> <tr class="separator:a51122ba04f416d8ce047542c603632f8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a96fef1b691d5c5ebaf78bff6df3b01db"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">end_handler</a></td></tr> <tr class="memdesc:a96fef1b691d5c5ebaf78bff6df3b01db"><td class="mdescLeft"> </td><td class="mdescRight">Handler for stream end events sent by the Guacamole web-client. <a href="#a96fef1b691d5c5ebaf78bff6df3b01db">More...</a><br /></td></tr> <tr class="separator:a96fef1b691d5c5ebaf78bff6df3b01db"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>Represents a single stream within the Guacamole protocol. </p> </div><h2 class="groupheader">Field Documentation</h2> <a id="acd077c7266d10871ee1e07951dfa72ff"></a> <h2 class="memtitle"><span class="permalink"><a href="#acd077c7266d10871ee1e07951dfa72ff">◆ </a></span>ack_handler</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a>* guac_stream::ack_handler</td> </tr> </table> </div><div class="memdoc"> <p>Handler for ack events sent by the Guacamole web-client. </p> <p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, a string containing the error or status message, and a status code.</p> <p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">ack_handler</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"> <span class="keywordtype">char</span>* error, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> some_function(<a class="code" href="structguac__user.html">guac_user</a>* user) {</div><div class="line"></div><div class="line"> <a class="code" href="structguac__stream.html">guac_stream</a>* stream = <a class="code" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">guac_user_alloc_stream</a>(user);</div><div class="line"> stream-><a class="code" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">ack_handler</a> = <a class="code" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">ack_handler</a>;</div><div class="line"></div><div class="line"> <a class="code" href="protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64">guac_protocol_send_clipboard</a>(user-><a class="code" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">socket</a>,</div><div class="line"> stream, <span class="stringliteral">"text/plain"</span>);</div><div class="line"></div><div class="line">}</div></div><!-- fragment --> </div> </div> <a id="a51122ba04f416d8ce047542c603632f8"></a> <h2 class="memtitle"><span class="permalink"><a href="#a51122ba04f416d8ce047542c603632f8">◆ </a></span>blob_handler</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a>* guac_stream::blob_handler</td> </tr> </table> </div><div class="memdoc"> <p>Handler for blob events sent by the Guacamole web-client. </p> <p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, an arbitrary buffer containing the blob, and the length of the blob.</p> <p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">blob_handler</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"> <span class="keywordtype">void</span>* <a class="code" href="structguac__stream.html#acdf20063ca408431862d901c9445b429">data</a>, <span class="keywordtype">int</span> length);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> my_clipboard_handler(<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"> <span class="keywordtype">char</span>* mimetype) {</div><div class="line"> stream-><a class="code" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">blob_handler</a> = <a class="code" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">blob_handler</a>;</div><div class="line">}</div></div><!-- fragment --> </div> </div> <a id="a96fef1b691d5c5ebaf78bff6df3b01db"></a> <h2 class="memtitle"><span class="permalink"><a href="#a96fef1b691d5c5ebaf78bff6df3b01db">◆ </a></span>end_handler</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a>* guac_stream::end_handler</td> </tr> </table> </div><div class="memdoc"> <p>Handler for stream end events sent by the Guacamole web-client. </p> <p>The handler takes only a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a> which contains the stream index. This <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a> will be disposed of immediately after this event is finished.</p> <p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">end_handler</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"></div><div class="line"><span class="keywordtype">int</span> my_clipboard_handler(<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"> <span class="keywordtype">char</span>* mimetype) {</div><div class="line"> stream-><a class="code" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">end_handler</a> = <a class="code" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">end_handler</a>;</div><div class="line">}</div></div><!-- fragment --> </div> </div> <hr/>The documentation for this struct was generated from the following file:<ul> <li>guacamole/<a class="el" href="stream_8h_source.html">stream.h</a></li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.15 </small></address> </body> </html>