<!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: guac_object 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
   &#160;<span id="projectnumber">1.0.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><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-attribs">Data Fields</a>  </div>
  <div class="headertitle">
<div class="title">guac_object Struct Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Represents a single object within the Guacamole protocol.  
 <a href="structguac__object.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:a643f03695d246bbf73b5c4942755a4b4"><td class="memItemLeft" align="right" valign="top"><a id="a643f03695d246bbf73b5c4942755a4b4"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__object.html#a643f03695d246bbf73b5c4942755a4b4">index</a></td></tr>
<tr class="memdesc:a643f03695d246bbf73b5c4942755a4b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of this object. <br /></td></tr>
<tr class="separator:a643f03695d246bbf73b5c4942755a4b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9ca62cec5ba1124f8272da3adf7c44e"><td class="memItemLeft" align="right" valign="top"><a id="ac9ca62cec5ba1124f8272da3adf7c44e"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e">data</a></td></tr>
<tr class="memdesc:ac9ca62cec5ba1124f8272da3adf7c44e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary data associated with this object. <br /></td></tr>
<tr class="separator:ac9ca62cec5ba1124f8272da3adf7c44e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e86747e4f1265935310f0df3a7f4b21"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">get_handler</a></td></tr>
<tr class="memdesc:a0e86747e4f1265935310f0df3a7f4b21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for get events sent by the Guacamole web-client.  <a href="#a0e86747e4f1265935310f0df3a7f4b21">More...</a><br /></td></tr>
<tr class="separator:a0e86747e4f1265935310f0df3a7f4b21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33771a9a72c560b8ea99f940c4c412a6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">put_handler</a></td></tr>
<tr class="memdesc:a33771a9a72c560b8ea99f940c4c412a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for put events sent by the Guacamole web-client.  <a href="#a33771a9a72c560b8ea99f940c4c412a6">More...</a><br /></td></tr>
<tr class="separator:a33771a9a72c560b8ea99f940c4c412a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Represents a single object within the Guacamole protocol. </p>
</div><h2 class="groupheader">Field Documentation</h2>
<a id="a0e86747e4f1265935310f0df3a7f4b21"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e86747e4f1265935310f0df3a7f4b21">&#9670;&nbsp;</a></span>get_handler</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a>* guac_object::get_handler</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Handler for get events sent by the Guacamole web-client. </p>
<p>The handler takes a <a class="el" href="structguac__object.html" title="Represents a single object within the Guacamole protocol. ">guac_object</a>, containing the object index which will persist through the duration of the transfer, and the name of the stream being requested. It is up to the get handler to create the required body stream.</p>
<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">get_handler</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">        <span class="keywordtype">char</span>* name);</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__object.html">guac_object</a>* <span class="keywordtype">object</span> = <a class="code" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">guac_user_alloc_object</a>(user);</div><div class="line">    <span class="keywordtype">object</span>-&gt;get_handler = <a class="code" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">get_handler</a>;</div><div class="line"></div><div class="line">}</div></div><!-- fragment --> 
</div>
</div>
<a id="a33771a9a72c560b8ea99f940c4c412a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a33771a9a72c560b8ea99f940c4c412a6">&#9670;&nbsp;</a></span>put_handler</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a>* guac_object::put_handler</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Handler for put events sent by the Guacamole web-client. </p>
<p>The handler takes a <a class="el" href="structguac__object.html" title="Represents a single object within the Guacamole protocol. ">guac_object</a> and <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a>, which each contain their respective indices which will persist through the duration of the transfer, the mimetype of the data being transferred, and the name of the stream within the object being written to.</p>
<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">put_handler</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 class="code" href="structguac__stream.html">guac_stream</a>* stream, <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</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__object.html">guac_object</a>* <span class="keywordtype">object</span> = <a class="code" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">guac_user_alloc_object</a>(user);</div><div class="line">    <span class="keywordtype">object</span>-&gt;put_handler = <a class="code" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">put_handler</a>;</div><div class="line"></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="object_8h_source.html">object.h</a></li>
</ul>
</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>
        <!-- Google Analytics -->
        <script type="text/javascript">
          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

          ga('create', 'UA-75289145-1', 'auto');
          ga('send', 'pageview');
        </script>
</body>
</html>
