This commit is contained in:
rozmansi
2023-11-10 07:26:24 +00:00
parent 24384c2022
commit 58f3472e71
391 changed files with 5459 additions and 5221 deletions

View File

@@ -92,21 +92,21 @@ $(document).ready(function() { init_codefold(0); });
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &quot;compat.hpp&quot;</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;endian.hpp&quot;</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &quot;interval.hpp&quot;</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;math.hpp&quot;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &quot;ring.hpp&quot;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &quot;string.hpp&quot;</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &quot;unicode.hpp&quot;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &lt;stdlib.h&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#if defined(_WIN32)</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &quot;windows.h&quot;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &lt;asptlb.h&gt;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &lt;objidl.h&gt;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &lt;WinSock2.h&gt;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include &lt;fcntl.h&gt;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include &lt;unistd.h&gt;</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include &lt;sys/socket.h&gt;</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;locale.hpp&quot;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &quot;math.hpp&quot;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &quot;ring.hpp&quot;</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &quot;socket.hpp&quot;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &quot;string.hpp&quot;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &quot;unicode.hpp&quot;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &lt;stdlib.h&gt;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#if defined(_WIN32)</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &quot;windows.h&quot;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &lt;asptlb.h&gt;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &lt;objidl.h&gt;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include &lt;fcntl.h&gt;</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include &lt;unistd.h&gt;</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#include &lt;sys/stat.h&gt;</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#include &lt;chrono&gt;</span></div>
@@ -2303,7 +2303,7 @@ $(document).ready(function() { init_codefold(0); });
<div class="line"><a id="l02346" name="l02346"></a><span class="lineno"><a class="line" href="classstdex_1_1stream_1_1socket.html"> 2346</a></span> <span class="keyword">class </span><a class="code hl_class" href="classstdex_1_1stream_1_1socket.html">socket</a> : <span class="keyword">public</span> <a class="code hl_class" href="classstdex_1_1stream_1_1basic.html">basic</a></div>
<div class="line"><a id="l02347" name="l02347"></a><span class="lineno"> 2347</span> {</div>
<div class="line"><a id="l02348" name="l02348"></a><span class="lineno"> 2348</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l02349" name="l02349"></a><span class="lineno"> 2349</span> <a class="code hl_class" href="classstdex_1_1stream_1_1socket.html">socket</a>(_In_opt_ SOCKET h = INVALID_SOCKET, _In_ state_t <a class="code hl_function" href="classstdex_1_1stream_1_1basic.html#a2aa36b007017c2052a0118c1df4910d0">state</a> = state_t::ok) :</div>
<div class="line"><a id="l02349" name="l02349"></a><span class="lineno"> 2349</span> <a class="code hl_class" href="classstdex_1_1stream_1_1socket.html">socket</a>(_In_opt_ socket_t h = invalid_socket, _In_ state_t <a class="code hl_function" href="classstdex_1_1stream_1_1basic.html#a2aa36b007017c2052a0118c1df4910d0">state</a> = state_t::ok) :</div>
<div class="line"><a id="l02350" name="l02350"></a><span class="lineno"> 2350</span> <a class="code hl_class" href="classstdex_1_1stream_1_1basic.html">basic</a>(<a class="code hl_function" href="classstdex_1_1stream_1_1basic.html#a2aa36b007017c2052a0118c1df4910d0">state</a>),</div>
<div class="line"><a id="l02351" name="l02351"></a><span class="lineno"> 2351</span> m_h(h)</div>
<div class="line"><a id="l02352" name="l02352"></a><span class="lineno"> 2352</span> {}</div>
@@ -2315,16 +2315,16 @@ $(document).ready(function() { init_codefold(0); });
<div class="line"><a id="l02358" name="l02358"></a><span class="lineno"> 2358</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l02359" name="l02359"></a><span class="lineno"> 2359</span> <a class="code hl_class" href="classstdex_1_1stream_1_1socket.html">socket</a>(_Inout_ <a class="code hl_class" href="classstdex_1_1stream_1_1socket.html">socket</a>&amp;&amp; other) noexcept : m_h(other.m_h)</div>
<div class="line"><a id="l02360" name="l02360"></a><span class="lineno"> 2360</span> {</div>
<div class="line"><a id="l02361" name="l02361"></a><span class="lineno"> 2361</span> other.m_h = INVALID_SOCKET;</div>
<div class="line"><a id="l02361" name="l02361"></a><span class="lineno"> 2361</span> other.m_h = invalid_socket;</div>
<div class="line"><a id="l02362" name="l02362"></a><span class="lineno"> 2362</span> }</div>
<div class="line"><a id="l02363" name="l02363"></a><span class="lineno"> 2363</span> </div>
<div class="line"><a id="l02364" name="l02364"></a><span class="lineno"> 2364</span> <a class="code hl_class" href="classstdex_1_1stream_1_1socket.html">socket</a>&amp; operator =(_Inout_ <a class="code hl_class" href="classstdex_1_1stream_1_1socket.html">socket</a>&amp;&amp; other) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l02365" name="l02365"></a><span class="lineno"> 2365</span> {</div>
<div class="line"><a id="l02366" name="l02366"></a><span class="lineno"> 2366</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != std::addressof(other)) {</div>
<div class="line"><a id="l02367" name="l02367"></a><span class="lineno"> 2367</span> <span class="keywordflow">if</span> (m_h != INVALID_SOCKET)</div>
<div class="line"><a id="l02368" name="l02368"></a><span class="lineno"> 2368</span> ::closesocket(m_h);</div>
<div class="line"><a id="l02367" name="l02367"></a><span class="lineno"> 2367</span> <span class="keywordflow">if</span> (m_h != invalid_socket)</div>
<div class="line"><a id="l02368" name="l02368"></a><span class="lineno"> 2368</span> closesocket(m_h);</div>
<div class="line"><a id="l02369" name="l02369"></a><span class="lineno"> 2369</span> m_h = other.m_h;</div>
<div class="line"><a id="l02370" name="l02370"></a><span class="lineno"> 2370</span> other.m_h = INVALID_SOCKET;</div>
<div class="line"><a id="l02370" name="l02370"></a><span class="lineno"> 2370</span> other.m_h = invalid_socket;</div>
<div class="line"><a id="l02371" name="l02371"></a><span class="lineno"> 2371</span> }</div>
<div class="line"><a id="l02372" name="l02372"></a><span class="lineno"> 2372</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l02373" name="l02373"></a><span class="lineno"> 2373</span> }</div>
@@ -2333,20 +2333,20 @@ $(document).ready(function() { init_codefold(0); });
<div class="line"><a id="l02382" name="l02382"></a><span class="lineno"><a class="line" href="classstdex_1_1stream_1_1socket.html#aae9f08b885315a555d46faee399196c9"> 2382</a></span> <a class="code hl_function" href="classstdex_1_1stream_1_1socket.html#aae9f08b885315a555d46faee399196c9">socket</a>(_In_ <span class="keywordtype">int</span> af, _In_ <span class="keywordtype">int</span> type, _In_ <span class="keywordtype">int</span> protocol)</div>
<div class="line"><a id="l02383" name="l02383"></a><span class="lineno"> 2383</span> {</div>
<div class="line"><a id="l02384" name="l02384"></a><span class="lineno"> 2384</span> m_h = ::socket(af, type, protocol);</div>
<div class="line"><a id="l02385" name="l02385"></a><span class="lineno"> 2385</span> <span class="keywordflow">if</span> (m_h == INVALID_SOCKET) _Unlikely_</div>
<div class="line"><a id="l02385" name="l02385"></a><span class="lineno"> 2385</span> <span class="keywordflow">if</span> (m_h == invalid_socket) _Unlikely_</div>
<div class="line"><a id="l02386" name="l02386"></a><span class="lineno"> 2386</span> m_state = state_t::fail;</div>
<div class="line"><a id="l02387" name="l02387"></a><span class="lineno"> 2387</span> }</div>
</div>
<div class="line"><a id="l02388" name="l02388"></a><span class="lineno"> 2388</span> </div>
<div class="line"><a id="l02389" name="l02389"></a><span class="lineno"> 2389</span> <span class="keyword">virtual</span> <a class="code hl_class" href="classstdex_1_1stream_1_1socket.html">~socket</a>()</div>
<div class="line"><a id="l02390" name="l02390"></a><span class="lineno"> 2390</span> {</div>
<div class="line"><a id="l02391" name="l02391"></a><span class="lineno"> 2391</span> <span class="keywordflow">if</span> (m_h != INVALID_SOCKET)</div>
<div class="line"><a id="l02392" name="l02392"></a><span class="lineno"> 2392</span> ::closesocket(m_h);</div>
<div class="line"><a id="l02391" name="l02391"></a><span class="lineno"> 2391</span> <span class="keywordflow">if</span> (m_h != invalid_socket)</div>
<div class="line"><a id="l02392" name="l02392"></a><span class="lineno"> 2392</span> closesocket(m_h);</div>
<div class="line"><a id="l02393" name="l02393"></a><span class="lineno"> 2393</span> }</div>
<div class="line"><a id="l02394" name="l02394"></a><span class="lineno"> 2394</span> </div>
<div class="line"><a id="l02398" name="l02398"></a><span class="lineno"><a class="line" href="classstdex_1_1stream_1_1socket.html#a045afb72557249f0f1f1d0f20d93c15d"> 2398</a></span> <span class="keyword">inline</span> <span class="keyword">operator</span> bool() const noexcept { <span class="keywordflow">return</span> m_h != INVALID_SOCKET; }</div>
<div class="line"><a id="l02398" name="l02398"></a><span class="lineno"><a class="line" href="classstdex_1_1stream_1_1socket.html#a045afb72557249f0f1f1d0f20d93c15d"> 2398</a></span> <span class="keyword">inline</span> <span class="keyword">operator</span> bool() const noexcept { <span class="keywordflow">return</span> m_h != invalid_socket; }</div>
<div class="line"><a id="l02399" name="l02399"></a><span class="lineno"> 2399</span> </div>
<div class="line"><a id="l02403" name="l02403"></a><span class="lineno"><a class="line" href="classstdex_1_1stream_1_1socket.html#ab2b45e459c9d2daeff53b6191403fbe0"> 2403</a></span> <span class="keyword">inline</span> SOCKET <a class="code hl_function" href="classstdex_1_1stream_1_1socket.html#ab2b45e459c9d2daeff53b6191403fbe0">get</a>() const noexcept { <span class="keywordflow">return</span> m_h; }</div>
<div class="line"><a id="l02403" name="l02403"></a><span class="lineno"><a class="line" href="classstdex_1_1stream_1_1socket.html#a48f512c2f87d27c40d630ecbd9837d3c"> 2403</a></span> <span class="keyword">inline</span> socket_t <a class="code hl_function" href="classstdex_1_1stream_1_1socket.html#a48f512c2f87d27c40d630ecbd9837d3c">get</a>() const noexcept { <span class="keywordflow">return</span> m_h; }</div>
<div class="line"><a id="l02404" name="l02404"></a><span class="lineno"> 2404</span> </div>
<div class="foldopen" id="foldopen02405" data-start="{" data-end="}">
<div class="line"><a id="l02405" name="l02405"></a><span class="lineno"><a class="line" href="classstdex_1_1stream_1_1socket.html#ad4d8e1368be57d2bd5abd971d880bc79"> 2405</a></span> <span class="keyword">virtual</span> _Success_(<span class="keywordflow">return</span> != 0 || length == 0) size_t <a class="code hl_function" href="classstdex_1_1stream_1_1socket.html#ad4d8e1368be57d2bd5abd971d880bc79">read</a>(</div>
@@ -2399,16 +2399,16 @@ $(document).ready(function() { init_codefold(0); });
<div class="foldopen" id="foldopen02449" data-start="{" data-end="}">
<div class="line"><a id="l02449" name="l02449"></a><span class="lineno"><a class="line" href="classstdex_1_1stream_1_1socket.html#a74e2f261c117cf8f20866632fb79b3c5"> 2449</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classstdex_1_1stream_1_1socket.html#a74e2f261c117cf8f20866632fb79b3c5">close</a>()</div>
<div class="line"><a id="l02450" name="l02450"></a><span class="lineno"> 2450</span> {</div>
<div class="line"><a id="l02451" name="l02451"></a><span class="lineno"> 2451</span> <span class="keywordflow">if</span> (m_h != INVALID_SOCKET) {</div>
<div class="line"><a id="l02452" name="l02452"></a><span class="lineno"> 2452</span> ::closesocket(m_h);</div>
<div class="line"><a id="l02453" name="l02453"></a><span class="lineno"> 2453</span> m_h = INVALID_SOCKET;</div>
<div class="line"><a id="l02451" name="l02451"></a><span class="lineno"> 2451</span> <span class="keywordflow">if</span> (m_h != invalid_socket) {</div>
<div class="line"><a id="l02452" name="l02452"></a><span class="lineno"> 2452</span> closesocket(m_h);</div>
<div class="line"><a id="l02453" name="l02453"></a><span class="lineno"> 2453</span> m_h = invalid_socket;</div>
<div class="line"><a id="l02454" name="l02454"></a><span class="lineno"> 2454</span> }</div>
<div class="line"><a id="l02455" name="l02455"></a><span class="lineno"> 2455</span> m_state = state_t::ok;</div>
<div class="line"><a id="l02456" name="l02456"></a><span class="lineno"> 2456</span> }</div>
</div>
<div class="line"><a id="l02457" name="l02457"></a><span class="lineno"> 2457</span> </div>
<div class="line"><a id="l02458" name="l02458"></a><span class="lineno"> 2458</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l02459" name="l02459"></a><span class="lineno"> 2459</span> SOCKET m_h;</div>
<div class="line"><a id="l02459" name="l02459"></a><span class="lineno"> 2459</span> socket_t m_h;</div>
<div class="line"><a id="l02460" name="l02460"></a><span class="lineno"> 2460</span> };</div>
</div>
<div class="line"><a id="l02461" name="l02461"></a><span class="lineno"> 2461</span> </div>
@@ -4203,9 +4203,9 @@ $(document).ready(function() { init_codefold(0); });
<div class="ttc" id="aclassstdex_1_1stream_1_1replicator_html_abbbaa912a887b00a4a7a5d518079f5ec"><div class="ttname"><a href="classstdex_1_1stream_1_1replicator.html#abbbaa912a887b00a4a7a5d518079f5ec">stdex::stream::replicator::write</a></div><div class="ttdeci">virtual size_t write(_In_reads_bytes_opt_(length) const void *data, size_t length)</div><div class="ttdoc">Writes block of data to the stream.</div><div class="ttdef"><b>Definition</b> stream.hpp:1131</div></div>
<div class="ttc" id="aclassstdex_1_1stream_1_1replicator_html_afa3e2cec6e254e7bb53cc5e1b1ea0f90"><div class="ttname"><a href="classstdex_1_1stream_1_1replicator.html#afa3e2cec6e254e7bb53cc5e1b1ea0f90">stdex::stream::replicator::close</a></div><div class="ttdeci">virtual void close()</div><div class="ttdoc">Closes the stream.</div><div class="ttdef"><b>Definition</b> stream.hpp:1158</div></div>
<div class="ttc" id="aclassstdex_1_1stream_1_1socket_html"><div class="ttname"><a href="classstdex_1_1stream_1_1socket.html">stdex::stream::socket</a></div><div class="ttdoc">Socket stream.</div><div class="ttdef"><b>Definition</b> stream.hpp:2347</div></div>
<div class="ttc" id="aclassstdex_1_1stream_1_1socket_html_a48f512c2f87d27c40d630ecbd9837d3c"><div class="ttname"><a href="classstdex_1_1stream_1_1socket.html#a48f512c2f87d27c40d630ecbd9837d3c">stdex::stream::socket::get</a></div><div class="ttdeci">socket_t get() const noexcept</div><div class="ttdoc">Returns socket handle.</div><div class="ttdef"><b>Definition</b> stream.hpp:2403</div></div>
<div class="ttc" id="aclassstdex_1_1stream_1_1socket_html_a74e2f261c117cf8f20866632fb79b3c5"><div class="ttname"><a href="classstdex_1_1stream_1_1socket.html#a74e2f261c117cf8f20866632fb79b3c5">stdex::stream::socket::close</a></div><div class="ttdeci">virtual void close()</div><div class="ttdoc">Closes the stream.</div><div class="ttdef"><b>Definition</b> stream.hpp:2449</div></div>
<div class="ttc" id="aclassstdex_1_1stream_1_1socket_html_aae9f08b885315a555d46faee399196c9"><div class="ttname"><a href="classstdex_1_1stream_1_1socket.html#aae9f08b885315a555d46faee399196c9">stdex::stream::socket::socket</a></div><div class="ttdeci">socket(int af, int type, int protocol)</div><div class="ttdoc">Creates a socket.</div><div class="ttdef"><b>Definition</b> stream.hpp:2382</div></div>
<div class="ttc" id="aclassstdex_1_1stream_1_1socket_html_ab2b45e459c9d2daeff53b6191403fbe0"><div class="ttname"><a href="classstdex_1_1stream_1_1socket.html#ab2b45e459c9d2daeff53b6191403fbe0">stdex::stream::socket::get</a></div><div class="ttdeci">SOCKET get() const noexcept</div><div class="ttdoc">Returns socket handle.</div><div class="ttdef"><b>Definition</b> stream.hpp:2403</div></div>
<div class="ttc" id="aclassstdex_1_1stream_1_1socket_html_ad4d8e1368be57d2bd5abd971d880bc79"><div class="ttname"><a href="classstdex_1_1stream_1_1socket.html#ad4d8e1368be57d2bd5abd971d880bc79">stdex::stream::socket::read</a></div><div class="ttdeci">virtual size_t read(_Out_writes_bytes_to_opt_(length, return) void *data, size_t length)</div><div class="ttdoc">Reads block of data from the stream.</div><div class="ttdef"><b>Definition</b> stream.hpp:2405</div></div>
<div class="ttc" id="aclassstdex_1_1stream_1_1socket_html_ad83f6d5d4844092e9e6831a597c6e2e9"><div class="ttname"><a href="classstdex_1_1stream_1_1socket.html#ad83f6d5d4844092e9e6831a597c6e2e9">stdex::stream::socket::write</a></div><div class="ttdeci">virtual size_t write(_In_reads_bytes_opt_(length) const void *data, size_t length)</div><div class="ttdoc">Writes block of data to the stream.</div><div class="ttdef"><b>Definition</b> stream.hpp:2429</div></div>
<div class="ttc" id="aclassstdex_1_1stream_1_1window_html"><div class="ttname"><a href="classstdex_1_1stream_1_1window.html">stdex::stream::window</a></div><div class="ttdoc">Limits reading from/writing to stream to a predefined window.</div><div class="ttdef"><b>Definition</b> stream.hpp:1611</div></div>
@@ -4225,7 +4225,7 @@ $(document).ready(function() { init_codefold(0); });
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Nov 8 2023 17:48:53 for stdex by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
Generated on Fri Nov 10 2023 07:26:22 for stdex by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>