<!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.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libguac: guacamole/error-types.h File 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">0.9.14</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</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="summary">
<a href="#enum-members">Enumerations</a>  </div>
  <div class="headertitle">
<div class="title">error-types.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Type definitions related to return values and errors.  
<a href="#details">More...</a></p>

<p><a href="error-types_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a1f4f9a73ee399e5dff424376eb4f9c86"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a> { <br />
&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3">GUAC_STATUS_SUCCESS</a> = 0, 
<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a">GUAC_STATUS_NO_MEMORY</a>, 
<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff">GUAC_STATUS_CLOSED</a>, 
<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3">GUAC_STATUS_TIMEOUT</a>, 
<br />
&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7">GUAC_STATUS_SEE_ERRNO</a>, 
<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a">GUAC_STATUS_IO_ERROR</a>, 
<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4">GUAC_STATUS_INVALID_ARGUMENT</a>, 
<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab">GUAC_STATUS_INTERNAL_ERROR</a>, 
<br />
&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3">GUAC_STATUS_NO_SPACE</a>, 
<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a">GUAC_STATUS_INPUT_TOO_LARGE</a>, 
<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d">GUAC_STATUS_RESULT_TOO_LARGE</a>, 
<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740">GUAC_STATUS_PERMISSION_DENIED</a>, 
<br />
&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55">GUAC_STATUS_BUSY</a>, 
<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7">GUAC_STATUS_NOT_AVAILABLE</a>, 
<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e">GUAC_STATUS_NOT_SUPPORTED</a>, 
<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c">GUAC_STATUS_NOT_INPLEMENTED</a>, 
<br />
&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a">GUAC_STATUS_TRY_AGAIN</a>, 
<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787">GUAC_STATUS_PROTOCOL_ERROR</a>, 
<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8">GUAC_STATUS_NOT_FOUND</a>, 
<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c">GUAC_STATUS_CANCELED</a>, 
<br />
&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4">GUAC_STATUS_OUT_OF_RANGE</a>, 
<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7">GUAC_STATUS_REFUSED</a>, 
<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546">GUAC_STATUS_TOO_MANY</a>, 
<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f">GUAC_STATUS_WOULD_BLOCK</a>
<br />
 }<tr class="memdesc:a1f4f9a73ee399e5dff424376eb4f9c86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return codes shared by all Guacamole functions which can fail.  <a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:a1f4f9a73ee399e5dff424376eb4f9c86"><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>Type definitions related to return values and errors. </p>
</div><h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="a1f4f9a73ee399e5dff424376eb4f9c86"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1f4f9a73ee399e5dff424376eb4f9c86">&#9670;&nbsp;</a></span>guac_status</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return codes shared by all Guacamole functions which can fail. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3"></a>GUAC_STATUS_SUCCESS&#160;</td><td class="fielddoc"><p>No errors occurred and the operation was successful. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a"></a>GUAC_STATUS_NO_MEMORY&#160;</td><td class="fielddoc"><p>Insufficient memory to complete the operation. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff"></a>GUAC_STATUS_CLOSED&#160;</td><td class="fielddoc"><p>The resource associated with the operation can no longer be used as it has reached the end of its normal lifecycle. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3"></a>GUAC_STATUS_TIMEOUT&#160;</td><td class="fielddoc"><p>Time ran out before the operation could complete. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7"></a>GUAC_STATUS_SEE_ERRNO&#160;</td><td class="fielddoc"><p>An error occurred, and further information about the error is already stored in errno. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a"></a>GUAC_STATUS_IO_ERROR&#160;</td><td class="fielddoc"><p>An I/O error prevented the operation from succeeding. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4"></a>GUAC_STATUS_INVALID_ARGUMENT&#160;</td><td class="fielddoc"><p>The operation could not be performed because an invalid argument was given. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab"></a>GUAC_STATUS_INTERNAL_ERROR&#160;</td><td class="fielddoc"><p>The operation failed due to a bug in the software or a serious system problem. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3"></a>GUAC_STATUS_NO_SPACE&#160;</td><td class="fielddoc"><p>Insufficient space remaining to complete the operation. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a"></a>GUAC_STATUS_INPUT_TOO_LARGE&#160;</td><td class="fielddoc"><p>The operation failed because the input provided is too large. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d"></a>GUAC_STATUS_RESULT_TOO_LARGE&#160;</td><td class="fielddoc"><p>The operation failed because the result could not be stored in the space provided. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740"></a>GUAC_STATUS_PERMISSION_DENIED&#160;</td><td class="fielddoc"><p>Permission was denied to perform the operation. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55"></a>GUAC_STATUS_BUSY&#160;</td><td class="fielddoc"><p>The operation could not be performed because associated resources are busy. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7"></a>GUAC_STATUS_NOT_AVAILABLE&#160;</td><td class="fielddoc"><p>The operation could not be performed because, while the associated resources do exist, they are not currently available for use. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e"></a>GUAC_STATUS_NOT_SUPPORTED&#160;</td><td class="fielddoc"><p>The requested operation is not supported. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c"></a>GUAC_STATUS_NOT_INPLEMENTED&#160;</td><td class="fielddoc"><p>Support for the requested operation is not yet implemented. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a"></a>GUAC_STATUS_TRY_AGAIN&#160;</td><td class="fielddoc"><p>The operation is temporarily unable to be performed, but may succeed if reattempted. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787"></a>GUAC_STATUS_PROTOCOL_ERROR&#160;</td><td class="fielddoc"><p>A violation of the Guacamole protocol occurred. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8"></a>GUAC_STATUS_NOT_FOUND&#160;</td><td class="fielddoc"><p>The operation could not be performed because the requested resources do not exist. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c"></a>GUAC_STATUS_CANCELED&#160;</td><td class="fielddoc"><p>The operation was canceled prior to completion. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4"></a>GUAC_STATUS_OUT_OF_RANGE&#160;</td><td class="fielddoc"><p>The operation could not be performed because input values are outside the allowed range. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7"></a>GUAC_STATUS_REFUSED&#160;</td><td class="fielddoc"><p>The operation could not be performed because access to an underlying resource is explicitly not allowed, though not necessarily due to permissions. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546"></a>GUAC_STATUS_TOO_MANY&#160;</td><td class="fielddoc"><p>The operation failed because too many resources are already in use. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f"></a>GUAC_STATUS_WOULD_BLOCK&#160;</td><td class="fielddoc"><p>The operation was not performed because it would otherwise block. </p>
</td></tr>
</table>

</div>
</div>
</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.13
</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>
