enet/_http_8hpp_source.html

220 lines
84 KiB
HTML

<!-- HTML header for doxygen 1.8.8-->
<!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="X-UA-Compatible" content="IE=edge">
<!-- For Mobile Devices -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>enet: Ewol network abstraction: framework/atria-soft/enet/enet/Http.hpp Source File</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
<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" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
<script type="text/javascript" src="doxy-boot.js"></script>
</head>
<body>
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand">enet: Ewol network abstraction 0.4.0</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a href="index.html">Main&nbsp;Page</a></li>
<li><a href="pages.html">Related&nbsp;Pages</a></li>
<li><a href="namespaces.html">Namespaces</a></li>
<li><a href="annotated.html">Classes</a></li>
<li><a href="files.html">Files</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
Link-libs<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="http://HeeroYui.github.io/lutin">lutin</a></li>
<li><a href="http://atria-soft.github.io/ewol">ewol</a></li>
<li><a href="http://atria-soft.github.io/echrono">echrono</a></li>
<li><a href="http://atria-soft.github.io/etk">etk</a></li>
<li><a href="http://atria-soft.github.io/ejson">ejson</a></li>
<li><a href="http://atria-soft.github.io/exml">exml</a></li>
<li><a href="http://atria-soft.github.io/esvg">esvg</a></li>
<li><a href="http://atria-soft.github.io/egami">egami</a></li>
<li><a href="http://atria-soft.github.io/gale">gale</a></li>
<li><a href="http://atria-soft.github.io/ege">ege</a></li>
<li><a href="http://atria-soft.github.io/elog">elog</a></li>
<li><a href="http://atria-soft.github.io/ememory">ememory</a></li>
<li><a href="http://atria-soft.github.io/enet">enet</a></li>
<li><a href="http://atria-soft.github.io/eproperty">eproperty</a></li>
<li><a href="http://atria-soft.github.io/esignal">esignal</a></li>
<li><a href="http://atria-soft.github.io/etranslate">etranslate</a></li>
<li><a href="http://atria-soft.github.io/zeus">zeus</a></li>
<li><a href="http://musicdsp.github.io/audio-ess">audio-ess</a></li>
<li><a href="http://musicdsp.github.io/audio">audio</a></li>
<li><a href="http://musicdsp.github.io/audio-drain">audio-drain</a></li>
<li><a href="http://musicdsp.github.io/audio-orchestra">audio-orchestra</a></li>
<li><a href="http://musicdsp.github.io/audio-river">audio-river</a></li>
</ul>
</li>
</ul>
<div id="search-box" class="input-group">
<div class="input-group-btn">
<button aria-expanded="false" type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<span class="glyphicon glyphicon-search"></span>
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="#">All</a></li>
<li><a href="#">Classes</a></li>
<li><a href="#">Namespaces</a></li>
<li><a href="#">Files</a></li>
<li><a href="#">Functions</a></li>
<li><a href="#">Variables</a></li>
<li><a href="#">Typedefs</a></li>
<li><a href="#">Enumerations</a></li>
<li><a href="#">Enumerator</a></li>
<li><a href="#">Friends</a></li>
<li><a href="#">Macros</a></li>
<li><a href="#">Pages</a></li>
</ul>
</div>
<button id="search-close" type="button" class="close" aria-label="Close">
<span aria-hidden="true"></span>
</button>
<input id="search-field" class="form-control" accesskey="S" onkeydown="searchBox.OnSearchFieldChange(event);" placeholder="Search ..." type="text">
</div>
</div><!--/.nav-collapse -->
</div>
</nav>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div class="content" id="content">
<div class="container">
<div class="row">
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;margin-top: 60px;">
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<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_644e041c3a6521da7b27eba0e4eb2b95.html">framework</a></li><li class="navelem"><a class="el" href="dir_a094892b17be858f66bf3446bbb755c7.html">atria-soft</a></li><li class="navelem"><a class="el" href="dir_f7835a0040178a7c3fe3e7c27f6d9084.html">enet</a></li><li class="navelem"><a class="el" href="dir_8df4c94f510f53f1374a2c2b5801aba9.html">enet</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Http.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="_http_8hpp.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;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_tcp_8hpp.html">enet/Tcp.hpp</a>&gt;</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &lt;thread&gt;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &lt;ethread/tools.hpp&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceenet.html">enet</a> {</div><div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8"> 15</a></span>&#160; <span class="keyword">enum class</span> <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8">HTTPAnswerCode</a> {</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; c000_unknow = 0,</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="comment">//1xx: Information</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a9c2465d0fbbd1faef43c3e7abe72dbc0">c100_continue</a> = 100, </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8af56271db9bd7b6ff65bd095a80b46c55">c101_switchingProtocols</a>, </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a7291ad083721cd167f37abc9079dfa62">c103_checkpoint</a>, </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="comment">//2xx: Successful</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a6e7c5731ee8867928e59048d89b67d69">c200_ok</a> = 200, </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a02e2d4a7ad3569438270b5410222f89c">c201_created</a>, </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a635f3724b256d8c5984e3ab332a8bc9d">c202_accepted</a>, </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8aacb1755cc4a75de1b87b7d049cb05d84">c203_nonAuthoritativeInformation</a>, </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8aae452323e9d6607d67f60b138c6acd8c">c204_noContent</a>, </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a109a2b2d81a19949780ced37eb8c56b1">c205_resetContent</a>, </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a395c7180ad65f9c1776071aab95488b5">c206_partialContent</a>, </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="comment">//3xx: Redirection</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a14b01d06b449b71e75882d7a1561f7a6">c300_multipleChoices</a> = 300, </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a706f6de245251e17ed2737eb005d05c9">c301_movedPermanently</a>, </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a7ae5502ebcb59c3c63a7f03c7f95f776">c302_found</a>, </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a5e22f735b40d2d9a50bb8161a5e0230b">c303_seeOther</a>, </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8ad95bf1e702e44047dbe235d575d10c88">c304_notModified</a>, </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a32c0316c3360959d2102f173114b25e4">c306_switchProxy</a>, </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a98dded4a4f383451fd6ecd27ba55a55c">c307_temporaryRedirect</a>, </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8acf01e01e9014bc8a958525c18992028f">c308_resumeIncomplete</a>, </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="comment">//4xx: Client Error,</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8afc2e7f1abc7155560b8d0f39bfdd45d2">c400_badRequest</a> = 400, </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a89e5edba8bc5c07c0b71cc3f1d7815bc">c401_unauthorized</a>, </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8ade19537e1ab5d23e89ea9321e31fc7db">c402_paymentRequired</a>, </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a392ec06af8e38f3f7803f947e6b5bfb5">c403_forbidden</a>, </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a10970049e7cf0031b6358c2701bd6610">c404_notFound</a>, </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a745a1b2d86d7bab1296aec464fd7c4e9">c405_methodNotAllowed</a>, </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8ac110d12f00d9494d8a68902b1ff783d3">c406_notAcceptable</a>, </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a00b501f91b891fbcb0fc2aa714ba47b8">c407_proxyAuthenticationRequired</a>, </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8ab6d5cbfb312814de28e60b7da5ae1f73">c408_requestTimeout</a>, </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8ac7f2fecfd704e1783b8384f7a40d2b84">c409_conflict</a>, </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a03b519dbeed1a17ee9d13e0c845e8920">c410_gone</a>, </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a5d992d228be97eabd565c6541bc9eace">c411_lengthRequired</a>, </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a83a769f280db39b7f66ada176ec488a1">c412_preconditionFailed</a>, </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8aba93e4f402136092e36630782d0151b3">c413_requestEntityTooLarge</a>, </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a153cb173f6c3b789fc4cf497e95bf33e">c414_requestURITooLong</a>, </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a2b9ebcea0fbac89015c29cca989f954d">c415_unsupportedMediaType</a>, </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a4d11731044240b424b9de6fb01a9a557">c416_requestedRangeNotSatisfiable</a>, </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a0d2e6857e63e43df60954d736e2584d7">c417_expectationFailed</a>, </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">//5xx: Server Error</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a61e5f19a2aecbaf39dc349871960859b">c500_internalServerError</a> = 500, </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8ad4c5d9348726e82115e4efc9ecf66b50">c501_notImplemented</a>, </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8aec3ffd6364e4e05dd5e2ce38b633c4f2">c502_badGateway</a>, </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a60b0dc2b4a12dd50f1ec964993a8a503">c503_serviceUnavailable</a>, </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a561a42b3d4d20af428704e3bcf9826ec">c504_gatewayTimeout</a>, </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a0edb1d03dae4fec42c6c79786f4634c8">c505_httpVersionNotSupported</a>, </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a09d10fff3a154cb64ce085c2718048b3">c511_networkAuthenticationRequired</a>, </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; };</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; std::ostream&amp; operator &lt;&lt;(std::ostream&amp; _os, <span class="keyword">enum</span> <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8">enet::HTTPAnswerCode</a> _obj);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">enum class</span> HTTPProtocol {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; http_0_1,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; http_0_2,</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; http_0_3,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; http_0_4,</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; http_0_5,</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; http_0_6,</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; http_0_7,</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; http_0_8,</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; http_0_9,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; http_0_10,</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; http_1_0,</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; http_1_1,</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; http_1_2,</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; http_1_3,</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; http_1_4,</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; http_1_5,</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; http_1_6,</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; http_1_7,</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; http_1_8,</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; http_1_9,</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; http_1_10,</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; http_2_0,</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; http_2_1,</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; http_2_2,</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; http_2_3,</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; http_2_4,</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; http_2_5,</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; http_2_6,</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; http_2_7,</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; http_2_8,</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; http_2_9,</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; http_2_10,</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; http_3_0,</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; http_3_1,</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; http_3_2,</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; http_3_3,</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; http_3_4,</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; http_3_5,</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; http_3_6,</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; http_3_7,</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; http_3_8,</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; http_3_9,</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; http_3_10,</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; };</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; std::ostream&amp; operator &lt;&lt;(std::ostream&amp; _os, <span class="keyword">enum</span> enet::HTTPProtocol _obj);</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classenet_1_1_http_header.html"> 114</a></span>&#160; <span class="keyword">class </span><a class="code" href="classenet_1_1_http_header.html">HttpHeader</a> {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">// key, val</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; std::map&lt;std::string, std::string&gt; m_map;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">enum</span> HTTPProtocol m_protocol;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">void</span> setKey(<span class="keyword">const</span> std::string&amp; _key, <span class="keyword">const</span> std::string&amp; _value);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordtype">void</span> rmKey(<span class="keyword">const</span> std::string&amp; _key);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; std::string getKey(<span class="keyword">const</span> std::string&amp; _key) <span class="keyword">const</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; std::string generateKeys() <span class="keyword">const</span>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">enum</span> HTTPProtocol getProtocol()<span class="keyword"> const </span>{</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> m_protocol;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordtype">void</span> setProtocol(<span class="keyword">enum</span> HTTPProtocol _protocol) {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; m_protocol = _protocol;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="classenet_1_1_http_header.html">HttpHeader</a>();</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="classenet_1_1_http_header.html">HttpHeader</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">virtual</span> std::string generate() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; };</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; </div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classenet_1_1_http_answer.html"> 137</a></span>&#160; <span class="keyword">class </span><a class="code" href="classenet_1_1_http_answer.html">HttpAnswer</a> : <span class="keyword">public</span> <a class="code" href="classenet_1_1_http_header.html">HttpHeader</a> {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8">enet::HTTPAnswerCode</a> m_what;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; std::string m_helpMessage;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="classenet_1_1_http_answer.html">HttpAnswer</a>(<span class="keyword">enum</span> <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8">HTTPAnswerCode</a> _code = <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8afc2e7f1abc7155560b8d0f39bfdd45d2">enet::HTTPAnswerCode::c400_badRequest</a>, <span class="keyword">const</span> std::string&amp; _help=<span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordtype">void</span> display() <span class="keyword">const</span>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; std::string generate() <span class="keyword">const</span>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">void</span> setErrorCode(<span class="keyword">enum</span> <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8">HTTPAnswerCode</a> _value) {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; m_what = _value;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">enum</span> <a class="code" href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8">HTTPAnswerCode</a> getErrorCode()<span class="keyword"> const </span>{</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> m_what;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordtype">void</span> setHelp(<span class="keyword">const</span> std::string&amp; _value) {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; m_helpMessage = _value;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">const</span> std::string&amp; getHelp()<span class="keyword"> const </span>{</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> m_helpMessage;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; };</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">enum class</span> HTTPReqType {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; HTTP_GET,</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; HTTP_HEAD,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; HTTP_POST,</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; HTTP_PUT,</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; HTTP_DELETE,</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; };</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; std::ostream&amp; operator &lt;&lt;(std::ostream&amp; _os, <span class="keyword">enum</span> enet::HTTPReqType _obj);</div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classenet_1_1_http_request.html"> 166</a></span>&#160; <span class="keyword">class </span><a class="code" href="classenet_1_1_http_request.html">HttpRequest</a> : <span class="keyword">public</span> <a class="code" href="classenet_1_1_http_header.html">HttpHeader</a> {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="comment">// key, val</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">enum</span> HTTPReqType m_req;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; std::string m_uri;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="classenet_1_1_http_request.html">HttpRequest</a>(<span class="keyword">enum</span> enet::HTTPReqType _type=enet::HTTPReqType::HTTP_GET);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordtype">void</span> display() <span class="keyword">const</span>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; std::string generate() <span class="keyword">const</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordtype">void</span> setType(<span class="keyword">enum</span> enet::HTTPReqType _value) {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; m_req = _value;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">enum</span> enet::HTTPReqType getType()<span class="keyword"> const</span>{</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span> m_req;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordtype">void</span> setUri(<span class="keyword">const</span> std::string&amp; _value) {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; m_uri = _value;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">const</span> std::string&amp; getUri()<span class="keyword"> const </span>{</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> m_uri;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; };</div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classenet_1_1_http.html"> 188</a></span>&#160; <span class="keyword">class </span><a class="code" href="classenet_1_1_http.html">Http</a> {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="classenet_1_1_http.html">Http</a>(<a class="code" href="classenet_1_1_tcp.html">enet::Tcp</a> _connection, <span class="keywordtype">bool</span> _isServer=<span class="keyword">false</span>);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="classenet_1_1_http.html">Http</a>();</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordtype">bool</span> m_isServer;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordtype">bool</span> getServerState() {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> m_isServer;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordtype">bool</span> isServer() {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> m_isServer;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="classenet_1_1_http_request.html">enet::HttpRequest</a> m_requestHeader;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordtype">void</span> setRequestHeader(<span class="keyword">const</span> <a class="code" href="classenet_1_1_http_request.html">enet::HttpRequest</a>&amp; _req);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">const</span> <a class="code" href="classenet_1_1_http_request.html">enet::HttpRequest</a>&amp; getRequestHeader() {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> m_requestHeader;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="classenet_1_1_http_answer.html">enet::HttpAnswer</a> m_answerHeader;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordtype">void</span> setAnswerHeader(<span class="keyword">const</span> <a class="code" href="classenet_1_1_http_answer.html">enet::HttpAnswer</a>&amp; _req);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">const</span> <a class="code" href="classenet_1_1_http_answer.html">enet::HttpAnswer</a>&amp; getAnswerHeader() {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">return</span> m_answerHeader;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="classenet_1_1_tcp.html">enet::Tcp</a> m_connection;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordtype">bool</span> m_headerIsSend;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; std::thread* m_thread;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordtype">bool</span> m_threadRunning;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; std::vector&lt;uint8_t&gt; m_temporaryBuffer;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordtype">void</span> threadCallback();</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordtype">void</span> getHeader();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordtype">void</span> start();</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordtype">void</span> stop(<span class="keywordtype">bool</span> _inThread=<span class="keyword">false</span>);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordtype">bool</span> isAlive()<span class="keyword"> const </span>{</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">return</span> m_connection.<a class="code" href="classenet_1_1_tcp.html#adc1608c7f511678b50920688946a7be7">getConnectionStatus</a>() == enet::Tcp::status::link;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="classenet_1_1_http.html#aa9e26e6f8df71a04b99554c472f29832"> 232</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classenet_1_1_http.html#aa9e26e6f8df71a04b99554c472f29832">Observer</a> = std::function&lt;void(std::vector&lt;uint8_t&gt;&amp;)&gt;; </div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="classenet_1_1_http.html#aa9e26e6f8df71a04b99554c472f29832">Observer</a> m_observer;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> CLASS_TYPE&gt;</div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classenet_1_1_http.html#ad01daa4144a8cfb83b9993c4984789bc"> 241</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classenet_1_1_http.html#ad01daa4144a8cfb83b9993c4984789bc">connect</a>(CLASS_TYPE* _class, <span class="keywordtype">void</span> (CLASS_TYPE::*_func)(std::vector&lt;uint8_t&gt;&amp;)) {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; m_observer = [=](std::vector&lt;uint8_t&gt;&amp; _value){</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; (*_class.*_func)(_value);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; };</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordtype">void</span> connect(<a class="code" href="classenet_1_1_http.html#aa9e26e6f8df71a04b99554c472f29832">Observer</a> _func) {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; m_observer = _func;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="classenet_1_1_http.html#a9ae2bf2348fd92ec51b2b38c81a012d9"> 250</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classenet_1_1_http.html#a9ae2bf2348fd92ec51b2b38c81a012d9">ObserverRaw</a> = std::function&lt;void(enet::Tcp&amp;)&gt;; </div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="classenet_1_1_http.html#a9ae2bf2348fd92ec51b2b38c81a012d9">ObserverRaw</a> m_observerRaw;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> CLASS_TYPE&gt;</div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classenet_1_1_http.html#a9cf2c7db3c46fc2688e0e70c1e48ea57"> 259</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classenet_1_1_http.html#a9cf2c7db3c46fc2688e0e70c1e48ea57">connectRaw</a>(CLASS_TYPE* _class, <span class="keywordtype">void</span> (CLASS_TYPE::*_func)(<a class="code" href="classenet_1_1_tcp.html">enet::Tcp</a>&amp;)) {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; m_observerRaw = [=](<a class="code" href="classenet_1_1_tcp.html">enet::Tcp</a>&amp; _connection){</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; (*_class.*_func)(_connection);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; };</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; }</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordtype">void</span> connectRaw(<a class="code" href="classenet_1_1_http.html#a9ae2bf2348fd92ec51b2b38c81a012d9">ObserverRaw</a> _func) {</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; m_observerRaw = _func;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; }</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="classenet_1_1_http.html#aa1df33aa84cbc67980411e5f6fcfb8b8"> 268</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classenet_1_1_http.html#aa1df33aa84cbc67980411e5f6fcfb8b8">ObserverRequest</a> = std::function&lt;void(const enet::HttpRequest&amp;)&gt;; </div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <a class="code" href="classenet_1_1_http.html#aa1df33aa84cbc67980411e5f6fcfb8b8">ObserverRequest</a> m_observerRequest;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classenet_1_1_http.html#afdb219a8b8a7310cb75a69b9c2bc9133"> 272</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classenet_1_1_http.html#afdb219a8b8a7310cb75a69b9c2bc9133">ObserverAnswer</a> = std::function&lt;void(const enet::HttpAnswer&amp;)&gt;; </div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="classenet_1_1_http.html#afdb219a8b8a7310cb75a69b9c2bc9133">ObserverAnswer</a> m_observerAnswer;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; int32_t write(<span class="keyword">const</span> <span class="keywordtype">void</span>* _data, int32_t _len);</div><div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="classenet_1_1_http.html#ab259cfca77e060ab40bc2cf0cd93b0ed"> 291</a></span>&#160; int32_t <a class="code" href="classenet_1_1_http.html#ab259cfca77e060ab40bc2cf0cd93b0ed">write</a>(<span class="keyword">const</span> std::string&amp; _data, <span class="keywordtype">bool</span> _writeBackSlashZero = <span class="keyword">true</span>) {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">if</span> (_data.size() == 0) {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; }</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">if</span> (_writeBackSlashZero == <span class="keyword">true</span>) {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">return</span> write(_data.c_str(), _data.size()+1);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">return</span> write(_data.c_str(), _data.size());</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="classenet_1_1_http.html#aef11ede74b77bc8d4446c53528ed88a8"> 308</a></span>&#160; int32_t <a class="code" href="classenet_1_1_http.html#aef11ede74b77bc8d4446c53528ed88a8">write</a>(<span class="keyword">const</span> std::vector&lt;T&gt;&amp; _data) {</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">if</span> (_data.size() == 0) {</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordtype">size_t</span> ret = write(&amp;_data[0], _data.size()*<span class="keyword">sizeof</span>(T));</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">if</span> (ret &lt;=0) {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> ret/<span class="keyword">sizeof</span>(T);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; };</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; </div><div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="classenet_1_1_http_client.html"> 320</a></span>&#160; <span class="keyword">class </span><a class="code" href="classenet_1_1_http_client.html">HttpClient</a> : <span class="keyword">public</span> <a class="code" href="classenet_1_1_http.html">Http</a> {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <a class="code" href="classenet_1_1_http_client.html">HttpClient</a>(<a class="code" href="classenet_1_1_tcp.html">enet::Tcp</a> _connection);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordtype">void</span> setHeader(<span class="keyword">const</span> <a class="code" href="classenet_1_1_http_request.html">enet::HttpRequest</a>&amp; _header) {</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; setRequestHeader(_header);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; }</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="comment">//bool get(const std::string&amp; _address);</span></div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="comment">//bool post(const std::string&amp; _address, const std::map&lt;std::string, std::string&gt;&amp; _values);</span></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="comment">//bool post(const std::string&amp; _address, const std::string&amp; _contentType, const std::string&amp; _data);</span></div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> CLASS_TYPE&gt;</div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="classenet_1_1_http_client.html#a2568ce67c56a2cc1a498516765439a6f"> 339</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classenet_1_1_http_client.html#a2568ce67c56a2cc1a498516765439a6f">connectHeader</a>(CLASS_TYPE* _class, <span class="keywordtype">void</span> (CLASS_TYPE::*_func)(<span class="keyword">const</span> <a class="code" href="classenet_1_1_http_answer.html">enet::HttpAnswer</a>&amp;)) {</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; m_observerAnswer = [=](<span class="keyword">const</span> <a class="code" href="classenet_1_1_http_answer.html">enet::HttpAnswer</a>&amp; _value){</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; (*_class.*_func)(_value);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; };</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; }</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordtype">void</span> connectHeader(<a class="code" href="classenet_1_1_http.html#afdb219a8b8a7310cb75a69b9c2bc9133">Http::ObserverAnswer</a> _func) {</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; m_observerAnswer = _func;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; };</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; </div><div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="classenet_1_1_http_server.html"> 349</a></span>&#160; <span class="keyword">class </span><a class="code" href="classenet_1_1_http_server.html">HttpServer</a> : <span class="keyword">public</span> <a class="code" href="classenet_1_1_http.html">Http</a> {</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <a class="code" href="classenet_1_1_http_server.html">HttpServer</a>(<a class="code" href="classenet_1_1_tcp.html">enet::Tcp</a> _connection);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordtype">void</span> setHeader(<span class="keyword">const</span> <a class="code" href="classenet_1_1_http_answer.html">enet::HttpAnswer</a>&amp; _header) {</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; setAnswerHeader(_header);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; }</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> CLASS_TYPE&gt;</div><div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="classenet_1_1_http_server.html#a7b34d9576677d7d6f0167bbe076aecf1"> 364</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classenet_1_1_http_server.html#a7b34d9576677d7d6f0167bbe076aecf1">connectHeader</a>(CLASS_TYPE* _class, <span class="keywordtype">void</span> (CLASS_TYPE::*_func)(<span class="keyword">const</span> <a class="code" href="classenet_1_1_http_request.html">enet::HttpRequest</a>&amp;)) {</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; m_observerRequest = [=](<span class="keyword">const</span> <a class="code" href="classenet_1_1_http_request.html">enet::HttpRequest</a>&amp; _value){</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; (*_class.*_func)(_value);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; };</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; }</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordtype">void</span> connectHeader(<a class="code" href="classenet_1_1_http.html#aa1df33aa84cbc67980411e5f6fcfb8b8">Http::ObserverRequest</a> _func) {</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; m_observerRequest = _func;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; }</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; };</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;}</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div><div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8aba93e4f402136092e36630782d0151b3"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8aba93e4f402136092e36630782d0151b3">enet::HTTPAnswerCode::c413_requestEntityTooLarge</a></div><div class="ttdoc">The server will not accept the request, because the request entity is too large. </div></div>
<div class="ttc" id="classenet_1_1_http_html_aa9e26e6f8df71a04b99554c472f29832"><div class="ttname"><a href="classenet_1_1_http.html#aa9e26e6f8df71a04b99554c472f29832">enet::Http::Observer</a></div><div class="ttdeci">std::function&lt; void(std::vector&lt; uint8_t &gt; &amp;)&gt; Observer</div><div class="ttdoc">Define an Observer: function pointer. </div><div class="ttdef"><b>Definition:</b> Http.hpp:232</div></div>
<div class="ttc" id="classenet_1_1_http_answer_html"><div class="ttname"><a href="classenet_1_1_http_answer.html">enet::HttpAnswer</a></div><div class="ttdef"><b>Definition:</b> Http.hpp:137</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a395c7180ad65f9c1776071aab95488b5"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a395c7180ad65f9c1776071aab95488b5">enet::HTTPAnswerCode::c206_partialContent</a></div><div class="ttdoc">The server is delivering only part of the resource due to a range header sent by the client...</div></div>
<div class="ttc" id="classenet_1_1_http_client_html_a2568ce67c56a2cc1a498516765439a6f"><div class="ttname"><a href="classenet_1_1_http_client.html#a2568ce67c56a2cc1a498516765439a6f">enet::HttpClient::connectHeader</a></div><div class="ttdeci">void connectHeader(CLASS_TYPE *_class, void(CLASS_TYPE::*_func)(const enet::HttpAnswer &amp;))</div><div class="ttdoc">Connect an function member on the signal with the shared_ptr object. </div><div class="ttdef"><b>Definition:</b> Http.hpp:339</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a89e5edba8bc5c07c0b71cc3f1d7815bc"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a89e5edba8bc5c07c0b71cc3f1d7815bc">enet::HTTPAnswerCode::c401_unauthorized</a></div><div class="ttdoc">The request was a legal request, but the server is refusing to respond to it. For use when authentica...</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8ac110d12f00d9494d8a68902b1ff783d3"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8ac110d12f00d9494d8a68902b1ff783d3">enet::HTTPAnswerCode::c406_notAcceptable</a></div><div class="ttdoc">The server can only generate a response that is not accepted by the client. </div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8ad4c5d9348726e82115e4efc9ecf66b50"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8ad4c5d9348726e82115e4efc9ecf66b50">enet::HTTPAnswerCode::c501_notImplemented</a></div><div class="ttdoc">The server either does not recognize the request method, or it lacks the ability to fulfill the reque...</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8ac7f2fecfd704e1783b8384f7a40d2b84"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8ac7f2fecfd704e1783b8384f7a40d2b84">enet::HTTPAnswerCode::c409_conflict</a></div><div class="ttdoc">The request could not be completed because of a conflict in the request. </div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8acf01e01e9014bc8a958525c18992028f"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8acf01e01e9014bc8a958525c18992028f">enet::HTTPAnswerCode::c308_resumeIncomplete</a></div><div class="ttdoc">Used in the resumable requests proposal to resume aborted PUT or POST requests. </div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8af56271db9bd7b6ff65bd095a80b46c55"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8af56271db9bd7b6ff65bd095a80b46c55">enet::HTTPAnswerCode::c101_switchingProtocols</a></div><div class="ttdoc">The requester has asked the server to switch protocols. </div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a5d992d228be97eabd565c6541bc9eace"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a5d992d228be97eabd565c6541bc9eace">enet::HTTPAnswerCode::c411_lengthRequired</a></div><div class="ttdoc">The &quot;Content-Length&quot; is not defined. The server will not accept the request without it...</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8">enet::HTTPAnswerCode</a></div><div class="ttdeci">HTTPAnswerCode</div><div class="ttdef"><b>Definition:</b> Http.hpp:15</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a10970049e7cf0031b6358c2701bd6610"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a10970049e7cf0031b6358c2701bd6610">enet::HTTPAnswerCode::c404_notFound</a></div><div class="ttdoc">The requested page could not be found but may be available again in the future. </div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8aae452323e9d6607d67f60b138c6acd8c"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8aae452323e9d6607d67f60b138c6acd8c">enet::HTTPAnswerCode::c204_noContent</a></div><div class="ttdoc">The request has been successfully processed, but is not returning any content. </div></div>
<div class="ttc" id="classenet_1_1_http_html"><div class="ttname"><a href="classenet_1_1_http.html">enet::Http</a></div><div class="ttdef"><b>Definition:</b> Http.hpp:188</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8ade19537e1ab5d23e89ea9321e31fc7db"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8ade19537e1ab5d23e89ea9321e31fc7db">enet::HTTPAnswerCode::c402_paymentRequired</a></div><div class="ttdoc">Reserved for future use. </div></div>
<div class="ttc" id="classenet_1_1_http_html_aa1df33aa84cbc67980411e5f6fcfb8b8"><div class="ttname"><a href="classenet_1_1_http.html#aa1df33aa84cbc67980411e5f6fcfb8b8">enet::Http::ObserverRequest</a></div><div class="ttdeci">std::function&lt; void(const enet::HttpRequest &amp;)&gt; ObserverRequest</div><div class="ttdoc">Define an Observer: function pointer. </div><div class="ttdef"><b>Definition:</b> Http.hpp:268</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a2b9ebcea0fbac89015c29cca989f954d"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a2b9ebcea0fbac89015c29cca989f954d">enet::HTTPAnswerCode::c415_unsupportedMediaType</a></div><div class="ttdoc">The server will not accept the request, because the media type is not supported. </div></div>
<div class="ttc" id="classenet_1_1_http_client_html"><div class="ttname"><a href="classenet_1_1_http_client.html">enet::HttpClient</a></div><div class="ttdef"><b>Definition:</b> Http.hpp:320</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a635f3724b256d8c5984e3ab332a8bc9d"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a635f3724b256d8c5984e3ab332a8bc9d">enet::HTTPAnswerCode::c202_accepted</a></div><div class="ttdoc">The request has been accepted for processing, but the processing has not been completed. </div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a7291ad083721cd167f37abc9079dfa62"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a7291ad083721cd167f37abc9079dfa62">enet::HTTPAnswerCode::c103_checkpoint</a></div><div class="ttdoc">Used in the resumable requests proposal to resume aborted PUT or POST requests. </div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8afc2e7f1abc7155560b8d0f39bfdd45d2"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8afc2e7f1abc7155560b8d0f39bfdd45d2">enet::HTTPAnswerCode::c400_badRequest</a></div><div class="ttdoc">The request cannot be fulfilled due to bad syntax. </div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a109a2b2d81a19949780ced37eb8c56b1"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a109a2b2d81a19949780ced37eb8c56b1">enet::HTTPAnswerCode::c205_resetContent</a></div><div class="ttdoc">The request has been successfully processed, but is not returning any content, and requires that the ...</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a706f6de245251e17ed2737eb005d05c9"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a706f6de245251e17ed2737eb005d05c9">enet::HTTPAnswerCode::c301_movedPermanently</a></div><div class="ttdoc">The requested page has moved to a new URL. </div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a153cb173f6c3b789fc4cf497e95bf33e"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a153cb173f6c3b789fc4cf497e95bf33e">enet::HTTPAnswerCode::c414_requestURITooLong</a></div><div class="ttdoc">The server will not accept the request, because the URL is too long. Occurs when you convert a POST r...</div></div>
<div class="ttc" id="classenet_1_1_http_html_aef11ede74b77bc8d4446c53528ed88a8"><div class="ttname"><a href="classenet_1_1_http.html#aef11ede74b77bc8d4446c53528ed88a8">enet::Http::write</a></div><div class="ttdeci">int32_t write(const std::vector&lt; T &gt; &amp;_data)</div><div class="ttdoc">Write a chunk of data on the socket. </div><div class="ttdef"><b>Definition:</b> Http.hpp:308</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a09d10fff3a154cb64ce085c2718048b3"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a09d10fff3a154cb64ce085c2718048b3">enet::HTTPAnswerCode::c511_networkAuthenticationRequired</a></div><div class="ttdoc">The client needs to authenticate to gain network access. </div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a03b519dbeed1a17ee9d13e0c845e8920"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a03b519dbeed1a17ee9d13e0c845e8920">enet::HTTPAnswerCode::c410_gone</a></div><div class="ttdoc">The requested page is no longer available. </div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a0edb1d03dae4fec42c6c79786f4634c8"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a0edb1d03dae4fec42c6c79786f4634c8">enet::HTTPAnswerCode::c505_httpVersionNotSupported</a></div><div class="ttdoc">The server does not support the HTTP protocol version used in the request. </div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a6e7c5731ee8867928e59048d89b67d69"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a6e7c5731ee8867928e59048d89b67d69">enet::HTTPAnswerCode::c200_ok</a></div><div class="ttdoc">The request is OK (this is the standard response for successful HTTP requests) </div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a14b01d06b449b71e75882d7a1561f7a6"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a14b01d06b449b71e75882d7a1561f7a6">enet::HTTPAnswerCode::c300_multipleChoices</a></div><div class="ttdoc">A link list. The user can select a link and go to that location. Maximum five addresses. </div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a61e5f19a2aecbaf39dc349871960859b"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a61e5f19a2aecbaf39dc349871960859b">enet::HTTPAnswerCode::c500_internalServerError</a></div><div class="ttdoc">A generic error message, given when no more specific message is suitable. </div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a60b0dc2b4a12dd50f1ec964993a8a503"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a60b0dc2b4a12dd50f1ec964993a8a503">enet::HTTPAnswerCode::c503_serviceUnavailable</a></div><div class="ttdoc">The server is currently unavailable (overloaded or down) </div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8aacb1755cc4a75de1b87b7d049cb05d84"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8aacb1755cc4a75de1b87b7d049cb05d84">enet::HTTPAnswerCode::c203_nonAuthoritativeInformation</a></div><div class="ttdoc">The request has been successfully processed, but is returning information that may be from another so...</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8ad95bf1e702e44047dbe235d575d10c88"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8ad95bf1e702e44047dbe235d575d10c88">enet::HTTPAnswerCode::c304_notModified</a></div><div class="ttdoc">Indicates the requested page has not been modified since last requested. </div></div>
<div class="ttc" id="classenet_1_1_http_html_a9cf2c7db3c46fc2688e0e70c1e48ea57"><div class="ttname"><a href="classenet_1_1_http.html#a9cf2c7db3c46fc2688e0e70c1e48ea57">enet::Http::connectRaw</a></div><div class="ttdeci">void connectRaw(CLASS_TYPE *_class, void(CLASS_TYPE::*_func)(enet::Tcp &amp;))</div><div class="ttdoc">Connect an function member on the signal with the shared_ptr object. </div><div class="ttdef"><b>Definition:</b> Http.hpp:259</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a9c2465d0fbbd1faef43c3e7abe72dbc0"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a9c2465d0fbbd1faef43c3e7abe72dbc0">enet::HTTPAnswerCode::c100_continue</a></div><div class="ttdoc">The server has received the request headers, and the client should proceed to send the request body...</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a98dded4a4f383451fd6ecd27ba55a55c"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a98dded4a4f383451fd6ecd27ba55a55c">enet::HTTPAnswerCode::c307_temporaryRedirect</a></div><div class="ttdoc">The requested page has moved temporarily to a new URL. </div></div>
<div class="ttc" id="classenet_1_1_tcp_html_adc1608c7f511678b50920688946a7be7"><div class="ttname"><a href="classenet_1_1_tcp.html#adc1608c7f511678b50920688946a7be7">enet::Tcp::getConnectionStatus</a></div><div class="ttdeci">enum status getConnectionStatus() const</div><div class="ttdoc">Get the current Status of the connection. </div><div class="ttdef"><b>Definition:</b> Tcp.hpp:62</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a745a1b2d86d7bab1296aec464fd7c4e9"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a745a1b2d86d7bab1296aec464fd7c4e9">enet::HTTPAnswerCode::c405_methodNotAllowed</a></div><div class="ttdoc">A request was made of a page using a request method not supported by that page. </div></div>
<div class="ttc" id="classenet_1_1_http_html_afdb219a8b8a7310cb75a69b9c2bc9133"><div class="ttname"><a href="classenet_1_1_http.html#afdb219a8b8a7310cb75a69b9c2bc9133">enet::Http::ObserverAnswer</a></div><div class="ttdeci">std::function&lt; void(const enet::HttpAnswer &amp;)&gt; ObserverAnswer</div><div class="ttdoc">Define an Observer: function pointer. </div><div class="ttdef"><b>Definition:</b> Http.hpp:272</div></div>
<div class="ttc" id="classenet_1_1_http_html_ab259cfca77e060ab40bc2cf0cd93b0ed"><div class="ttname"><a href="classenet_1_1_http.html#ab259cfca77e060ab40bc2cf0cd93b0ed">enet::Http::write</a></div><div class="ttdeci">int32_t write(const std::string &amp;_data, bool _writeBackSlashZero=true)</div><div class="ttdoc">Write a chunk of data on the socket. </div><div class="ttdef"><b>Definition:</b> Http.hpp:291</div></div>
<div class="ttc" id="_tcp_8hpp_html"><div class="ttname"><a href="_tcp_8hpp.html">Tcp.hpp</a></div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a83a769f280db39b7f66ada176ec488a1"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a83a769f280db39b7f66ada176ec488a1">enet::HTTPAnswerCode::c412_preconditionFailed</a></div><div class="ttdoc">The precondition given in the request evaluated to false by the server. </div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8aec3ffd6364e4e05dd5e2ce38b633c4f2"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8aec3ffd6364e4e05dd5e2ce38b633c4f2">enet::HTTPAnswerCode::c502_badGateway</a></div><div class="ttdoc">The server was acting as a gateway or proxy and received an invalid response from the upstream server...</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8ab6d5cbfb312814de28e60b7da5ae1f73"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8ab6d5cbfb312814de28e60b7da5ae1f73">enet::HTTPAnswerCode::c408_requestTimeout</a></div><div class="ttdoc">The server timed out waiting for the request. </div></div>
<div class="ttc" id="classenet_1_1_http_header_html"><div class="ttname"><a href="classenet_1_1_http_header.html">enet::HttpHeader</a></div><div class="ttdef"><b>Definition:</b> Http.hpp:114</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a4d11731044240b424b9de6fb01a9a557"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a4d11731044240b424b9de6fb01a9a557">enet::HTTPAnswerCode::c416_requestedRangeNotSatisfiable</a></div><div class="ttdoc">The client has asked for a portion of the file, but the server cannot supply that portion...</div></div>
<div class="ttc" id="classenet_1_1_http_html_ad01daa4144a8cfb83b9993c4984789bc"><div class="ttname"><a href="classenet_1_1_http.html#ad01daa4144a8cfb83b9993c4984789bc">enet::Http::connect</a></div><div class="ttdeci">void connect(CLASS_TYPE *_class, void(CLASS_TYPE::*_func)(std::vector&lt; uint8_t &gt; &amp;))</div><div class="ttdoc">Connect an function member on the signal with the shared_ptr object. </div><div class="ttdef"><b>Definition:</b> Http.hpp:241</div></div>
<div class="ttc" id="classenet_1_1_tcp_html"><div class="ttname"><a href="classenet_1_1_tcp.html">enet::Tcp</a></div><div class="ttdef"><b>Definition:</b> Tcp.hpp:16</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a0d2e6857e63e43df60954d736e2584d7"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a0d2e6857e63e43df60954d736e2584d7">enet::HTTPAnswerCode::c417_expectationFailed</a></div><div class="ttdoc">The server cannot meet the requirements of the Expect request-header field. </div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a392ec06af8e38f3f7803f947e6b5bfb5"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a392ec06af8e38f3f7803f947e6b5bfb5">enet::HTTPAnswerCode::c403_forbidden</a></div><div class="ttdoc">The request was a legal request, but the server is refusing to respond to it. </div></div>
<div class="ttc" id="classenet_1_1_http_request_html"><div class="ttname"><a href="classenet_1_1_http_request.html">enet::HttpRequest</a></div><div class="ttdef"><b>Definition:</b> Http.hpp:166</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a7ae5502ebcb59c3c63a7f03c7f95f776"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a7ae5502ebcb59c3c63a7f03c7f95f776">enet::HTTPAnswerCode::c302_found</a></div><div class="ttdoc">The requested page has moved temporarily to a new URL. </div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a00b501f91b891fbcb0fc2aa714ba47b8"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a00b501f91b891fbcb0fc2aa714ba47b8">enet::HTTPAnswerCode::c407_proxyAuthenticationRequired</a></div><div class="ttdoc">The client must first authenticate itself with the proxy. </div></div>
<div class="ttc" id="namespaceenet_html"><div class="ttname"><a href="namespaceenet.html">enet</a></div><div class="ttdoc">Main esvg namespace. </div><div class="ttdef"><b>Definition:</b> enet.hpp:17</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a32c0316c3360959d2102f173114b25e4"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a32c0316c3360959d2102f173114b25e4">enet::HTTPAnswerCode::c306_switchProxy</a></div><div class="ttdoc">No longer used. </div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a561a42b3d4d20af428704e3bcf9826ec"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a561a42b3d4d20af428704e3bcf9826ec">enet::HTTPAnswerCode::c504_gatewayTimeout</a></div><div class="ttdoc">The server was acting as a gateway or proxy and did not receive a timely response from the upstream s...</div></div>
<div class="ttc" id="classenet_1_1_http_html_a9ae2bf2348fd92ec51b2b38c81a012d9"><div class="ttname"><a href="classenet_1_1_http.html#a9ae2bf2348fd92ec51b2b38c81a012d9">enet::Http::ObserverRaw</a></div><div class="ttdeci">std::function&lt; void(enet::Tcp &amp;)&gt; ObserverRaw</div><div class="ttdoc">Define an Observer: function pointer. </div><div class="ttdef"><b>Definition:</b> Http.hpp:250</div></div>
<div class="ttc" id="classenet_1_1_http_server_html_a7b34d9576677d7d6f0167bbe076aecf1"><div class="ttname"><a href="classenet_1_1_http_server.html#a7b34d9576677d7d6f0167bbe076aecf1">enet::HttpServer::connectHeader</a></div><div class="ttdeci">void connectHeader(CLASS_TYPE *_class, void(CLASS_TYPE::*_func)(const enet::HttpRequest &amp;))</div><div class="ttdoc">Connect an function member on the signal with the shared_ptr object. </div><div class="ttdef"><b>Definition:</b> Http.hpp:364</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a5e22f735b40d2d9a50bb8161a5e0230b"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a5e22f735b40d2d9a50bb8161a5e0230b">enet::HTTPAnswerCode::c303_seeOther</a></div><div class="ttdoc">The requested page can be found under a different URL. </div></div>
<div class="ttc" id="classenet_1_1_http_server_html"><div class="ttname"><a href="classenet_1_1_http_server.html">enet::HttpServer</a></div><div class="ttdef"><b>Definition:</b> Http.hpp:349</div></div>
<div class="ttc" id="namespaceenet_html_a4962966a09900a4b99c8e86bbd1ebdb8a02e2d4a7ad3569438270b5410222f89c"><div class="ttname"><a href="namespaceenet.html#a4962966a09900a4b99c8e86bbd1ebdb8a02e2d4a7ad3569438270b5410222f89c">enet::HTTPAnswerCode::c201_created</a></div><div class="ttdoc">The request has been fulfilled, and a new resource is created. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- HTML footer for doxygen 1.8.8-->
<!-- start footer part -->
</div>
</div>
</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>
Generated on Mon Oct 24 2016 15:35:53 for enet: Ewol network abstraction by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.12
</small></address>
</body>
</html>