<!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: Globals</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>
</div><!-- top -->
<!-- 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 class="contents">
<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>

<h3><a id="index_s"></a>- s -</h3><ul>
<li>guac_socket_alloc()
: <a class="el" href="socket_8h.html#a7e5859b812923b894779f59353fdadb4">socket.h</a>
</li>
<li>guac_socket_broadcast()
: <a class="el" href="socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6">socket.h</a>
</li>
<li>guac_socket_flush()
: <a class="el" href="socket_8h.html#ababc834d5812e006b55a79da417bfe12">socket.h</a>
</li>
<li>guac_socket_flush_base64()
: <a class="el" href="socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab">socket.h</a>
</li>
<li>guac_socket_flush_handler
: <a class="el" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">socket-fntypes.h</a>
</li>
<li>guac_socket_free()
: <a class="el" href="socket_8h.html#a376df8efcc02a7104504f104433884ed">socket.h</a>
</li>
<li>guac_socket_free_handler
: <a class="el" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">socket-fntypes.h</a>
</li>
<li>guac_socket_instruction_begin()
: <a class="el" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1">socket.h</a>
</li>
<li>guac_socket_instruction_end()
: <a class="el" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94">socket.h</a>
</li>
<li>guac_socket_lock_handler
: <a class="el" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">socket-fntypes.h</a>
</li>
<li>guac_socket_nest()
: <a class="el" href="socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda">socket.h</a>
</li>
<li>guac_socket_open()
: <a class="el" href="socket_8h.html#a076f62b9b6082260462e18ca77c64e7a">socket.h</a>
</li>
<li>guac_socket_open_secure()
: <a class="el" href="socket-ssl_8h.html#afa6689181258a29460b978f1e496f790">socket-ssl.h</a>
</li>
<li>guac_socket_open_wsa()
: <a class="el" href="socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be">socket-wsa.h</a>
</li>
<li>guac_socket_read()
: <a class="el" href="socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31">socket.h</a>
</li>
<li>guac_socket_read_handler
: <a class="el" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">socket-fntypes.h</a>
</li>
<li>guac_socket_require_keep_alive()
: <a class="el" href="socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03">socket.h</a>
</li>
<li>guac_socket_select()
: <a class="el" href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7">socket.h</a>
</li>
<li>guac_socket_select_handler
: <a class="el" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">socket-fntypes.h</a>
</li>
<li>guac_socket_state
: <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">socket-types.h</a>
</li>
<li>guac_socket_tee()
: <a class="el" href="socket_8h.html#add9c80240912b0c8d309cf7de94f5305">socket.h</a>
</li>
<li>guac_socket_unlock_handler
: <a class="el" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">socket-fntypes.h</a>
</li>
<li>guac_socket_write()
: <a class="el" href="socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4">socket.h</a>
</li>
<li>guac_socket_write_base64()
: <a class="el" href="socket_8h.html#ac7ec68bc42436ba316805718c292c510">socket.h</a>
</li>
<li>guac_socket_write_handler
: <a class="el" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">socket-fntypes.h</a>
</li>
<li>guac_socket_write_int()
: <a class="el" href="socket_8h.html#a57a963e37377de2104c2d785980ff400">socket.h</a>
</li>
<li>guac_socket_write_string()
: <a class="el" href="socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc">socket.h</a>
</li>
<li>guac_status
: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">error-types.h</a>
</li>
<li>guac_status_string()
: <a class="el" href="error_8h.html#a39a2290527ea7c3f0acb07f002c397b1">error.h</a>
</li>
<li>guac_surface_cmp()
: <a class="el" href="hash_8h.html#a377c701a920281a98cbcf0842124aaac">hash.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>
</body>
</html>
