classdoor_1_1Door.html 53 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <meta name="generator" content="Doxygen 1.8.17"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>Bugz Door Project: door::Door Class Reference</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  13. <script type="text/javascript" src="search/searchdata.js"></script>
  14. <script type="text/javascript" src="search/search.js"></script>
  15. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  16. </head>
  17. <body>
  18. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  19. <div id="titlearea">
  20. <table cellspacing="0" cellpadding="0">
  21. <tbody>
  22. <tr style="height: 56px;">
  23. <td id="projectalign" style="padding-left: 0.5em;">
  24. <div id="projectname">Bugz Door Project
  25. </div>
  26. </td>
  27. </tr>
  28. </tbody>
  29. </table>
  30. </div>
  31. <!-- end header part -->
  32. <!-- Generated by Doxygen 1.8.17 -->
  33. <script type="text/javascript">
  34. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  35. var searchBox = new SearchBox("searchBox", "search",false,'Search');
  36. /* @license-end */
  37. </script>
  38. <script type="text/javascript" src="menudata.js"></script>
  39. <script type="text/javascript" src="menu.js"></script>
  40. <script type="text/javascript">
  41. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  42. $(function() {
  43. initMenu('',true,false,'search.php','Search');
  44. $(document).ready(function() { init_search(); });
  45. });
  46. /* @license-end */</script>
  47. <div id="main-nav"></div>
  48. <!-- window showing the filter options -->
  49. <div id="MSearchSelectWindow"
  50. onmouseover="return searchBox.OnSearchSelectShow()"
  51. onmouseout="return searchBox.OnSearchSelectHide()"
  52. onkeydown="return searchBox.OnSearchSelectKey(event)">
  53. </div>
  54. <!-- iframe showing the search results (closed by default) -->
  55. <div id="MSearchResultsWindow">
  56. <iframe src="javascript:void(0)" frameborder="0"
  57. name="MSearchResults" id="MSearchResults">
  58. </iframe>
  59. </div>
  60. <div id="nav-path" class="navpath">
  61. <ul>
  62. <li class="navelem"><a class="el" href="namespacedoor.html">door</a></li><li class="navelem"><a class="el" href="classdoor_1_1Door.html">Door</a></li> </ul>
  63. </div>
  64. </div><!-- top -->
  65. <div class="header">
  66. <div class="summary">
  67. <a href="#pub-methods">Public Member Functions</a> &#124;
  68. <a href="#pub-attribs">Public Attributes</a> &#124;
  69. <a href="#pri-methods">Private Member Functions</a> &#124;
  70. <a href="#pri-attribs">Private Attributes</a> &#124;
  71. <a href="classdoor_1_1Door-members.html">List of all members</a> </div>
  72. <div class="headertitle">
  73. <div class="title">door::Door Class Reference</div> </div>
  74. </div><!--header-->
  75. <div class="contents">
  76. <p><code>#include &lt;<a class="el" href="door_8h_source.html">door.h</a>&gt;</code></p>
  77. <div class="dynheader">
  78. Inheritance diagram for door::Door:</div>
  79. <div class="dyncontent">
  80. <div class="center"><img src="classdoor_1_1Door__inherit__graph.png" border="0" usemap="#door_1_1Door_inherit__map" alt="Inheritance graph"/></div>
  81. <map name="door_1_1Door_inherit__map" id="door_1_1Door_inherit__map">
  82. <area shape="rect" title=" " alt="" coords="79,80,169,107"/>
  83. <area shape="rect" title=" " alt="" coords="5,5,109,32"/>
  84. <area shape="rect" title=" " alt="" coords="133,5,251,32"/>
  85. </map>
  86. <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
  87. <div class="dynheader">
  88. Collaboration diagram for door::Door:</div>
  89. <div class="dyncontent">
  90. <div class="center"><img src="classdoor_1_1Door__coll__graph.png" border="0" usemap="#door_1_1Door_coll__map" alt="Collaboration graph"/></div>
  91. <map name="door_1_1Door_coll__map" id="door_1_1Door_coll__map">
  92. <area shape="rect" title=" " alt="" coords="147,95,237,121"/>
  93. <area shape="rect" title=" " alt="" coords="5,5,109,32"/>
  94. <area shape="rect" title=" " alt="" coords="133,5,251,32"/>
  95. <area shape="rect" href="classdoor_1_1ANSIColor.html" title="Foreground, Background and Attributes." alt="" coords="274,5,398,32"/>
  96. </map>
  97. <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
  98. <table class="memberdecls">
  99. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  100. Public Member Functions</h2></td></tr>
  101. <tr class="memitem:a8f7dcac2dafd0e11d42ab227b7d1a2ba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#a8f7dcac2dafd0e11d42ab227b7d1a2ba">Door</a> (std::string dname, int argc, char *argv[])</td></tr>
  102. <tr class="memdesc:a8f7dcac2dafd0e11d42ab227b7d1a2ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a new <a class="el" href="classdoor_1_1Door.html">Door</a>:: <a class="el" href="classdoor_1_1Door.html">Door</a> object. <a href="classdoor_1_1Door.html#a8f7dcac2dafd0e11d42ab227b7d1a2ba">More...</a><br /></td></tr>
  103. <tr class="separator:a8f7dcac2dafd0e11d42ab227b7d1a2ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
  104. <tr class="memitem:a65728f9e00ef3765c65d4f1e2c106fb6"><td class="memItemLeft" align="right" valign="top"><a id="a65728f9e00ef3765c65d4f1e2c106fb6"></a>
  105. &#160;</td><td class="memItemRight" valign="bottom"><b>Door</b> (<a class="el" href="classdoor_1_1Door.html">Door</a> &amp;)=delete</td></tr>
  106. <tr class="separator:a65728f9e00ef3765c65d4f1e2c106fb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  107. <tr class="memitem:a15d3f18b7165f348479344b897b6ed96"><td class="memItemLeft" align="right" valign="top">ofstream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#a15d3f18b7165f348479344b897b6ed96">log</a> (void)</td></tr>
  108. <tr class="memdesc:a15d3f18b7165f348479344b897b6ed96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Give ofstream handle for logging. <a href="classdoor_1_1Door.html#a15d3f18b7165f348479344b897b6ed96">More...</a><br /></td></tr>
  109. <tr class="separator:a15d3f18b7165f348479344b897b6ed96"><td class="memSeparator" colspan="2">&#160;</td></tr>
  110. <tr class="memitem:a10d40a7089473c72c1acf5a987777404"><td class="memItemLeft" align="right" valign="top">signed int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#a10d40a7089473c72c1acf5a987777404">getkey</a> (void)</td></tr>
  111. <tr class="memdesc:a10d40a7089473c72c1acf5a987777404"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a key routine. <a href="classdoor_1_1Door.html#a10d40a7089473c72c1acf5a987777404">More...</a><br /></td></tr>
  112. <tr class="separator:a10d40a7089473c72c1acf5a987777404"><td class="memSeparator" colspan="2">&#160;</td></tr>
  113. <tr class="memitem:adb2006e73645885986d5487eb576fd21"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#adb2006e73645885986d5487eb576fd21">haskey</a> (void)</td></tr>
  114. <tr class="memdesc:adb2006e73645885986d5487eb576fd21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Are there any keys in STDIN? <a href="classdoor_1_1Door.html#adb2006e73645885986d5487eb576fd21">More...</a><br /></td></tr>
  115. <tr class="separator:adb2006e73645885986d5487eb576fd21"><td class="memSeparator" colspan="2">&#160;</td></tr>
  116. <tr class="memitem:a092b281d63bb6ee0a3bee2ba77d78a47"><td class="memItemLeft" align="right" valign="top">signed int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#a092b281d63bb6ee0a3bee2ba77d78a47">sleep_key</a> (int secs)</td></tr>
  117. <tr class="memdesc:a092b281d63bb6ee0a3bee2ba77d78a47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits secs seconds for a keypress. <a href="classdoor_1_1Door.html#a092b281d63bb6ee0a3bee2ba77d78a47">More...</a><br /></td></tr>
  118. <tr class="separator:a092b281d63bb6ee0a3bee2ba77d78a47"><td class="memSeparator" colspan="2">&#160;</td></tr>
  119. <tr class="memitem:ae6d61a5be02656c0b9479715d0d980dd"><td class="memItemLeft" align="right" valign="top">signed int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#ae6d61a5be02656c0b9479715d0d980dd">sleep_ms_key</a> (int msecs)</td></tr>
  120. <tr class="memdesc:ae6d61a5be02656c0b9479715d0d980dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits miliseconds for a keypress. <a href="classdoor_1_1Door.html#ae6d61a5be02656c0b9479715d0d980dd">More...</a><br /></td></tr>
  121. <tr class="separator:ae6d61a5be02656c0b9479715d0d980dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
  122. <tr class="memitem:a93bbb3d1bfcec623e46ef47e6ba6b470"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#a93bbb3d1bfcec623e46ef47e6ba6b470">input_string</a> (int max)</td></tr>
  123. <tr class="memdesc:a93bbb3d1bfcec623e46ef47e6ba6b470"><td class="mdescLeft">&#160;</td><td class="mdescRight">Input a string of requested max length. <a href="classdoor_1_1Door.html#a93bbb3d1bfcec623e46ef47e6ba6b470">More...</a><br /></td></tr>
  124. <tr class="separator:a93bbb3d1bfcec623e46ef47e6ba6b470"><td class="memSeparator" colspan="2">&#160;</td></tr>
  125. <tr class="memitem:aa807fbcea8d7e92f591d9f459f392232"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#aa807fbcea8d7e92f591d9f459f392232">get_one_of</a> (const char *keys)</td></tr>
  126. <tr class="memdesc:aa807fbcea8d7e92f591d9f459f392232"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get one of these keys. <a href="classdoor_1_1Door.html#aa807fbcea8d7e92f591d9f459f392232">More...</a><br /></td></tr>
  127. <tr class="separator:aa807fbcea8d7e92f591d9f459f392232"><td class="memSeparator" colspan="2">&#160;</td></tr>
  128. </table><table class="memberdecls">
  129. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
  130. Public Attributes</h2></td></tr>
  131. <tr class="memitem:a7e9aa4c92094271c40d67979b087d36b"><td class="memItemLeft" align="right" valign="top">AnyOption&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#a7e9aa4c92094271c40d67979b087d36b">opt</a></td></tr>
  132. <tr class="separator:a7e9aa4c92094271c40d67979b087d36b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  133. <tr class="memitem:ae0e34a59d92ec9d70720fd90380b4223"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#ae0e34a59d92ec9d70720fd90380b4223">debug_buffer</a></td></tr>
  134. <tr class="separator:ae0e34a59d92ec9d70720fd90380b4223"><td class="memSeparator" colspan="2">&#160;</td></tr>
  135. <tr class="memitem:adf76d445797eb513020a60f786f65767"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdoor_1_1ANSIColor.html">ANSIColor</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#adf76d445797eb513020a60f786f65767">previous</a></td></tr>
  136. <tr class="separator:adf76d445797eb513020a60f786f65767"><td class="memSeparator" colspan="2">&#160;</td></tr>
  137. <tr class="memitem:abc021f4f29b9f78356641ba68df3ee4a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#abc021f4f29b9f78356641ba68df3ee4a">track</a></td></tr>
  138. <tr class="separator:abc021f4f29b9f78356641ba68df3ee4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  139. <tr class="memitem:a18b8c731b27e23d6913c0ad683a37ce7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#a18b8c731b27e23d6913c0ad683a37ce7">cx</a></td></tr>
  140. <tr class="separator:a18b8c731b27e23d6913c0ad683a37ce7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  141. <tr class="memitem:ae3030f754f5c183c0739ca899f5d351c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#ae3030f754f5c183c0739ca899f5d351c">cy</a></td></tr>
  142. <tr class="separator:ae3030f754f5c183c0739ca899f5d351c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  143. <tr class="memitem:a773004acf25257a8e384bc6333b3e169"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#a773004acf25257a8e384bc6333b3e169">width</a></td></tr>
  144. <tr class="separator:a773004acf25257a8e384bc6333b3e169"><td class="memSeparator" colspan="2">&#160;</td></tr>
  145. <tr class="memitem:ad6b79329830e41ba0ee960b01804a383"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#ad6b79329830e41ba0ee960b01804a383">height</a></td></tr>
  146. <tr class="separator:ad6b79329830e41ba0ee960b01804a383"><td class="memSeparator" colspan="2">&#160;</td></tr>
  147. <tr class="memitem:a9190e804f05c37523aad88e5ebb0f826"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#a9190e804f05c37523aad88e5ebb0f826">inactivity</a></td></tr>
  148. <tr class="memdesc:a9190e804f05c37523aad88e5ebb0f826"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of seconds before timing out. <a href="classdoor_1_1Door.html#a9190e804f05c37523aad88e5ebb0f826">More...</a><br /></td></tr>
  149. <tr class="separator:a9190e804f05c37523aad88e5ebb0f826"><td class="memSeparator" colspan="2">&#160;</td></tr>
  150. <tr class="memitem:aaeb090ff9afcae8ea0a15416eae84850"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#aaeb090ff9afcae8ea0a15416eae84850">username</a></td></tr>
  151. <tr class="separator:aaeb090ff9afcae8ea0a15416eae84850"><td class="memSeparator" colspan="2">&#160;</td></tr>
  152. <tr class="memitem:af9732845ca55a168cb03400486e47a37"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#af9732845ca55a168cb03400486e47a37">handle</a></td></tr>
  153. <tr class="separator:af9732845ca55a168cb03400486e47a37"><td class="memSeparator" colspan="2">&#160;</td></tr>
  154. <tr class="memitem:a4542fd79a3669c8bf7b2354bebb8d4df"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#a4542fd79a3669c8bf7b2354bebb8d4df">location</a></td></tr>
  155. <tr class="separator:a4542fd79a3669c8bf7b2354bebb8d4df"><td class="memSeparator" colspan="2">&#160;</td></tr>
  156. <tr class="memitem:ad774c3579cd2cff08dcbd5c565bc9b70"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#ad774c3579cd2cff08dcbd5c565bc9b70">sysop</a></td></tr>
  157. <tr class="separator:ad774c3579cd2cff08dcbd5c565bc9b70"><td class="memSeparator" colspan="2">&#160;</td></tr>
  158. <tr class="memitem:ac617cee68cc0993ff5c294d06023b19b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#ac617cee68cc0993ff5c294d06023b19b">node</a></td></tr>
  159. <tr class="separator:ac617cee68cc0993ff5c294d06023b19b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  160. <tr class="memitem:a459531d32a3208856979ebcdeb7c6aed"><td class="memItemLeft" align="right" valign="top">atomic&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#a459531d32a3208856979ebcdeb7c6aed">time_left</a></td></tr>
  161. <tr class="separator:a459531d32a3208856979ebcdeb7c6aed"><td class="memSeparator" colspan="2">&#160;</td></tr>
  162. <tr class="memitem:aafaad41e8f04b9df6466f512d4893d82"><td class="memItemLeft" align="right" valign="top">atomic&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#aafaad41e8f04b9df6466f512d4893d82">time_used</a></td></tr>
  163. <tr class="separator:aafaad41e8f04b9df6466f512d4893d82"><td class="memSeparator" colspan="2">&#160;</td></tr>
  164. </table><table class="memberdecls">
  165. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
  166. Private Member Functions</h2></td></tr>
  167. <tr class="memitem:aad67bdb165987c4e3133a0f12f2b2b33"><td class="memItemLeft" align="right" valign="top">std::streamsize&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#aad67bdb165987c4e3133a0f12f2b2b33">xsputn</a> (const char *s, std::streamsize n) override</td></tr>
  168. <tr class="separator:aad67bdb165987c4e3133a0f12f2b2b33"><td class="memSeparator" colspan="2">&#160;</td></tr>
  169. <tr class="memitem:a264d9e4eb0d6eb0e03f60520bcb11dd4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#a264d9e4eb0d6eb0e03f60520bcb11dd4">overflow</a> (int c) override</td></tr>
  170. <tr class="separator:a264d9e4eb0d6eb0e03f60520bcb11dd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  171. <tr class="memitem:a30663f319df84ef33658b593b41b06a2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#a30663f319df84ef33658b593b41b06a2">parse_dropfile</a> (const char *filepath)</td></tr>
  172. <tr class="memdesc:a30663f319df84ef33658b593b41b06a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load dropfile into dropfilelines and parse. <a href="classdoor_1_1Door.html#a30663f319df84ef33658b593b41b06a2">More...</a><br /></td></tr>
  173. <tr class="separator:a30663f319df84ef33658b593b41b06a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  174. <tr class="memitem:ab90a3663bd05a3be1caff2584a49ad64"><td class="memItemLeft" align="right" valign="top"><a id="ab90a3663bd05a3be1caff2584a49ad64"></a>
  175. void&#160;</td><td class="memItemRight" valign="bottom"><b>init</b> (void)</td></tr>
  176. <tr class="separator:ab90a3663bd05a3be1caff2584a49ad64"><td class="memSeparator" colspan="2">&#160;</td></tr>
  177. <tr class="memitem:a7671e29e45d346657b5bd5d66f569737"><td class="memItemLeft" align="right" valign="top">signed int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#a7671e29e45d346657b5bd5d66f569737">getch</a> (void)</td></tr>
  178. <tr class="memdesc:a7671e29e45d346657b5bd5d66f569737"><td class="mdescLeft">&#160;</td><td class="mdescRight">low level read key. <a href="classdoor_1_1Door.html#a7671e29e45d346657b5bd5d66f569737">More...</a><br /></td></tr>
  179. <tr class="separator:a7671e29e45d346657b5bd5d66f569737"><td class="memSeparator" colspan="2">&#160;</td></tr>
  180. <tr class="memitem:a7dd4913cdfb13f0938888adaab363e93"><td class="memItemLeft" align="right" valign="top">signed int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#a7dd4913cdfb13f0938888adaab363e93">getkey_or_pushback</a> (void)</td></tr>
  181. <tr class="separator:a7dd4913cdfb13f0938888adaab363e93"><td class="memSeparator" colspan="2">&#160;</td></tr>
  182. <tr class="memitem:ac271b0be7c45192f1e5691b33b6703bb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#ac271b0be7c45192f1e5691b33b6703bb">detect_unicode_and_screen</a> (void)</td></tr>
  183. <tr class="memdesc:ac271b0be7c45192f1e5691b33b6703bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detect unicode/CP437, and screen size. <a href="classdoor_1_1Door.html#ac271b0be7c45192f1e5691b33b6703bb">More...</a><br /></td></tr>
  184. <tr class="separator:ac271b0be7c45192f1e5691b33b6703bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  185. <tr class="memitem:a062d08121d8cfa6e380cedbdad9b9a45"><td class="memItemLeft" align="right" valign="top"><a id="a062d08121d8cfa6e380cedbdad9b9a45"></a>
  186. void&#160;</td><td class="memItemRight" valign="bottom"><b>time_thread_run</b> (std::future&lt; void &gt; future)</td></tr>
  187. <tr class="separator:a062d08121d8cfa6e380cedbdad9b9a45"><td class="memSeparator" colspan="2">&#160;</td></tr>
  188. </table><table class="memberdecls">
  189. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
  190. Private Attributes</h2></td></tr>
  191. <tr class="memitem:a7660c60172a692036907d431ae2006f8"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#a7660c60172a692036907d431ae2006f8">doorname</a></td></tr>
  192. <tr class="separator:a7660c60172a692036907d431ae2006f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  193. <tr class="memitem:ac5e32daf4c1ed6d7675f2a8bee43a420"><td class="memItemLeft" align="right" valign="top"><a id="ac5e32daf4c1ed6d7675f2a8bee43a420"></a>
  194. std::time_t&#160;</td><td class="memItemRight" valign="bottom"><b>startup</b></td></tr>
  195. <tr class="separator:ac5e32daf4c1ed6d7675f2a8bee43a420"><td class="memSeparator" colspan="2">&#160;</td></tr>
  196. <tr class="memitem:ac9694a43baa3f7a8c0aaea15910b2afc"><td class="memItemLeft" align="right" valign="top">struct termios&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#ac9694a43baa3f7a8c0aaea15910b2afc">tio_default</a></td></tr>
  197. <tr class="separator:ac9694a43baa3f7a8c0aaea15910b2afc"><td class="memSeparator" colspan="2">&#160;</td></tr>
  198. <tr class="memitem:ab72706c45d0d143c30dbe61f4e9f6a68"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#ab72706c45d0d143c30dbe61f4e9f6a68">has_dropfile</a></td></tr>
  199. <tr class="separator:ab72706c45d0d143c30dbe61f4e9f6a68"><td class="memSeparator" colspan="2">&#160;</td></tr>
  200. <tr class="memitem:acbcb8c030207ca3529dc8e9efeb2da8c"><td class="memItemLeft" align="right" valign="top"><a id="acbcb8c030207ca3529dc8e9efeb2da8c"></a>
  201. bool&#160;</td><td class="memItemRight" valign="bottom"><b>debugging</b></td></tr>
  202. <tr class="separator:acbcb8c030207ca3529dc8e9efeb2da8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  203. <tr class="memitem:acd2e33e65d7ccac7c46e0c7fa6b3a407"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#acd2e33e65d7ccac7c46e0c7fa6b3a407">dropfilename</a></td></tr>
  204. <tr class="separator:acd2e33e65d7ccac7c46e0c7fa6b3a407"><td class="memSeparator" colspan="2">&#160;</td></tr>
  205. <tr class="memitem:a3d83225897fcc51bf883170ba6f6963f"><td class="memItemLeft" align="right" valign="top">vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#a3d83225897fcc51bf883170ba6f6963f">dropfilelines</a></td></tr>
  206. <tr class="separator:a3d83225897fcc51bf883170ba6f6963f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  207. <tr class="memitem:a2456a5f520ad5a005ec13bebbfb0774d"><td class="memItemLeft" align="right" valign="top">ofstream&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#a2456a5f520ad5a005ec13bebbfb0774d">logf</a></td></tr>
  208. <tr class="separator:a2456a5f520ad5a005ec13bebbfb0774d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  209. <tr class="memitem:a65e014489e39390328fbf448a304d548"><td class="memItemLeft" align="right" valign="top">std::promise&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#a65e014489e39390328fbf448a304d548">stop_thread</a></td></tr>
  210. <tr class="separator:a65e014489e39390328fbf448a304d548"><td class="memSeparator" colspan="2">&#160;</td></tr>
  211. <tr class="memitem:a076ef095ae4e49acdb4afed0b413e430"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#a076ef095ae4e49acdb4afed0b413e430">seconds_elapsed</a></td></tr>
  212. <tr class="separator:a076ef095ae4e49acdb4afed0b413e430"><td class="memSeparator" colspan="2">&#160;</td></tr>
  213. <tr class="memitem:a76deeffd8b0df5112b6e4d03d9ebdd73"><td class="memItemLeft" align="right" valign="top">std::thread&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdoor_1_1Door.html#a76deeffd8b0df5112b6e4d03d9ebdd73">time_thread</a></td></tr>
  214. <tr class="separator:a76deeffd8b0df5112b6e4d03d9ebdd73"><td class="memSeparator" colspan="2">&#160;</td></tr>
  215. </table>
  216. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  217. <div class="textblock"><p>This handles output to the caller, via ostream. </p>
  218. <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="menu-example_8cpp-example.html#_a0">menu-example.cpp</a>.</dd>
  219. </dl>
  220. </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  221. <a id="a8f7dcac2dafd0e11d42ab227b7d1a2ba"></a>
  222. <h2 class="memtitle"><span class="permalink"><a href="#a8f7dcac2dafd0e11d42ab227b7d1a2ba">&#9670;&nbsp;</a></span>Door()</h2>
  223. <div class="memitem">
  224. <div class="memproto">
  225. <table class="memname">
  226. <tr>
  227. <td class="memname">door::Door::Door </td>
  228. <td>(</td>
  229. <td class="paramtype">std::string&#160;</td>
  230. <td class="paramname"><em>dname</em>, </td>
  231. </tr>
  232. <tr>
  233. <td class="paramkey"></td>
  234. <td></td>
  235. <td class="paramtype">int&#160;</td>
  236. <td class="paramname"><em>argc</em>, </td>
  237. </tr>
  238. <tr>
  239. <td class="paramkey"></td>
  240. <td></td>
  241. <td class="paramtype">char *&#160;</td>
  242. <td class="paramname"><em>argv</em>[]&#160;</td>
  243. </tr>
  244. <tr>
  245. <td></td>
  246. <td>)</td>
  247. <td></td><td></td>
  248. </tr>
  249. </table>
  250. </div><div class="memdoc">
  251. <p>Construct a new <a class="el" href="classdoor_1_1Door.html">Door</a>:: <a class="el" href="classdoor_1_1Door.html">Door</a> object. </p>
  252. <dl class="params"><dt>Parameters</dt><dd>
  253. <table class="params">
  254. <tr><td class="paramdir">[in]</td><td class="paramname">dname</td><td><a class="el" href="classdoor_1_1Door.html">Door</a> name used for logfile </td></tr>
  255. <tr><td class="paramdir">[in]</td><td class="paramname">argc</td><td></td></tr>
  256. <tr><td class="paramdir">[in]</td><td class="paramname">argv</td><td></td></tr>
  257. </table>
  258. </dd>
  259. </dl>
  260. </div>
  261. </div>
  262. <h2 class="groupheader">Member Function Documentation</h2>
  263. <a id="ac271b0be7c45192f1e5691b33b6703bb"></a>
  264. <h2 class="memtitle"><span class="permalink"><a href="#ac271b0be7c45192f1e5691b33b6703bb">&#9670;&nbsp;</a></span>detect_unicode_and_screen()</h2>
  265. <div class="memitem">
  266. <div class="memproto">
  267. <table class="mlabels">
  268. <tr>
  269. <td class="mlabels-left">
  270. <table class="memname">
  271. <tr>
  272. <td class="memname">void door::Door::detect_unicode_and_screen </td>
  273. <td>(</td>
  274. <td class="paramtype">void&#160;</td>
  275. <td class="paramname"></td><td>)</td>
  276. <td></td>
  277. </tr>
  278. </table>
  279. </td>
  280. <td class="mlabels-right">
  281. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  282. </tr>
  283. </table>
  284. </div><div class="memdoc">
  285. <p>Detect unicode/CP437, and screen size. </p>
  286. <p>This sets unicode and full_cp437 flags, width and height.</p>
  287. <p>This works by clearing the screen and homing the cursor. We then output some CP437 symbols and ask for the cursor position. We send a newline, output a unicode symbol, and query cursor position.</p>
  288. <p>The CP437 symbols we use are specific. They are the hearts and diamonds symbols, which are commonly mistaken for control codes. If unicode == false and full_cp437 == true, then we do fully support CP437 on this terminal.</p>
  289. <p>For the screensize, we move the cursor down 999 and move cursor right 999 and query position.</p>
  290. <p>On failure to detect screensize, width and height are set to 0. </p>
  291. </div>
  292. </div>
  293. <a id="aa807fbcea8d7e92f591d9f459f392232"></a>
  294. <h2 class="memtitle"><span class="permalink"><a href="#aa807fbcea8d7e92f591d9f459f392232">&#9670;&nbsp;</a></span>get_one_of()</h2>
  295. <div class="memitem">
  296. <div class="memproto">
  297. <table class="memname">
  298. <tr>
  299. <td class="memname">int door::Door::get_one_of </td>
  300. <td>(</td>
  301. <td class="paramtype">const char *&#160;</td>
  302. <td class="paramname"><em>keys</em></td><td>)</td>
  303. <td></td>
  304. </tr>
  305. </table>
  306. </div><div class="memdoc">
  307. <p>Get one of these keys. </p>
  308. <p>returns char, or &lt; 0 if timeout.</p>
  309. <dl class="params"><dt>Parameters</dt><dd>
  310. <table class="params">
  311. <tr><td class="paramname">keys</td><td></td></tr>
  312. </table>
  313. </dd>
  314. </dl>
  315. <dl class="section return"><dt>Returns</dt><dd>char or &lt; 0 </dd></dl>
  316. </div>
  317. </div>
  318. <a id="a7671e29e45d346657b5bd5d66f569737"></a>
  319. <h2 class="memtitle"><span class="permalink"><a href="#a7671e29e45d346657b5bd5d66f569737">&#9670;&nbsp;</a></span>getch()</h2>
  320. <div class="memitem">
  321. <div class="memproto">
  322. <table class="mlabels">
  323. <tr>
  324. <td class="mlabels-left">
  325. <table class="memname">
  326. <tr>
  327. <td class="memname">signed int door::Door::getch </td>
  328. <td>(</td>
  329. <td class="paramtype">void&#160;</td>
  330. <td class="paramname"></td><td>)</td>
  331. <td></td>
  332. </tr>
  333. </table>
  334. </td>
  335. <td class="mlabels-right">
  336. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  337. </tr>
  338. </table>
  339. </div><div class="memdoc">
  340. <p>low level read key. </p>
  341. <p>Returns key, or -1 no key available/timeout -2 read error/hang up -3 out of time</p>
  342. <dl class="section return"><dt>Returns</dt><dd>signed int </dd></dl>
  343. </div>
  344. </div>
  345. <a id="a10d40a7089473c72c1acf5a987777404"></a>
  346. <h2 class="memtitle"><span class="permalink"><a href="#a10d40a7089473c72c1acf5a987777404">&#9670;&nbsp;</a></span>getkey()</h2>
  347. <div class="memitem">
  348. <div class="memproto">
  349. <table class="memname">
  350. <tr>
  351. <td class="memname">signed int door::Door::getkey </td>
  352. <td>(</td>
  353. <td class="paramtype">void&#160;</td>
  354. <td class="paramname"></td><td>)</td>
  355. <td></td>
  356. </tr>
  357. </table>
  358. </div><div class="memdoc">
  359. <p>Get a key routine. </p>
  360. <p>This returns the key received, or XKEY_* values for function keys, etc. If return &lt; 0: -1 timeout/no key -2 hangup -3 out of time</p>
  361. <dl class="section return"><dt>Returns</dt><dd>signed int </dd></dl>
  362. </div>
  363. </div>
  364. <a id="a7dd4913cdfb13f0938888adaab363e93"></a>
  365. <h2 class="memtitle"><span class="permalink"><a href="#a7dd4913cdfb13f0938888adaab363e93">&#9670;&nbsp;</a></span>getkey_or_pushback()</h2>
  366. <div class="memitem">
  367. <div class="memproto">
  368. <table class="mlabels">
  369. <tr>
  370. <td class="mlabels-left">
  371. <table class="memname">
  372. <tr>
  373. <td class="memname">signed int door::Door::getkey_or_pushback </td>
  374. <td>(</td>
  375. <td class="paramtype">void&#160;</td>
  376. <td class="paramname"></td><td>)</td>
  377. <td></td>
  378. </tr>
  379. </table>
  380. </td>
  381. <td class="mlabels-right">
  382. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  383. </tr>
  384. </table>
  385. </div><div class="memdoc">
  386. <p>Call low level getch if the pushback buffer is empty.</p>
  387. <p>This allows testing of the <a class="el" href="classdoor_1_1Door.html#a10d40a7089473c72c1acf5a987777404">Door::getkey</a> function.</p>
  388. <dl class="section return"><dt>Returns</dt><dd>signed int </dd></dl>
  389. </div>
  390. </div>
  391. <a id="adb2006e73645885986d5487eb576fd21"></a>
  392. <h2 class="memtitle"><span class="permalink"><a href="#adb2006e73645885986d5487eb576fd21">&#9670;&nbsp;</a></span>haskey()</h2>
  393. <div class="memitem">
  394. <div class="memproto">
  395. <table class="memname">
  396. <tr>
  397. <td class="memname">bool door::Door::haskey </td>
  398. <td>(</td>
  399. <td class="paramtype">void&#160;</td>
  400. <td class="paramname"></td><td>)</td>
  401. <td></td>
  402. </tr>
  403. </table>
  404. </div><div class="memdoc">
  405. <p>Are there any keys in STDIN? </p>
  406. <p>This uses select to check if we have received any keys. This does not use pushback.</p>
  407. <p>If HANGUP, OUTOFTIME, return true</p>
  408. <dl class="section return"><dt>Returns</dt><dd>true </dd>
  409. <dd>
  410. false </dd></dl>
  411. </div>
  412. </div>
  413. <a id="a93bbb3d1bfcec623e46ef47e6ba6b470"></a>
  414. <h2 class="memtitle"><span class="permalink"><a href="#a93bbb3d1bfcec623e46ef47e6ba6b470">&#9670;&nbsp;</a></span>input_string()</h2>
  415. <div class="memitem">
  416. <div class="memproto">
  417. <table class="memname">
  418. <tr>
  419. <td class="memname">std::string door::Door::input_string </td>
  420. <td>(</td>
  421. <td class="paramtype">int&#160;</td>
  422. <td class="paramname"><em>max</em></td><td>)</td>
  423. <td></td>
  424. </tr>
  425. </table>
  426. </div><div class="memdoc">
  427. <p>Input a string of requested max length. </p>
  428. <p>This first sends out max number of spaces, and max number of backspaces. This will setup the input area. (If you set a background color of blue, this would allow that to be seen by the user.)</p>
  429. <p>It handles input, backspaces / deleting the characters / enter input and timeout/hangup/out of time.</p>
  430. <dl class="params"><dt>Parameters</dt><dd>
  431. <table class="params">
  432. <tr><td class="paramname">max</td><td></td></tr>
  433. </table>
  434. </dd>
  435. </dl>
  436. <dl class="section return"><dt>Returns</dt><dd>std::string </dd></dl>
  437. </div>
  438. </div>
  439. <a id="a15d3f18b7165f348479344b897b6ed96"></a>
  440. <h2 class="memtitle"><span class="permalink"><a href="#a15d3f18b7165f348479344b897b6ed96">&#9670;&nbsp;</a></span>log()</h2>
  441. <div class="memitem">
  442. <div class="memproto">
  443. <table class="memname">
  444. <tr>
  445. <td class="memname">ofstream &amp; door::Door::log </td>
  446. <td>(</td>
  447. <td class="paramtype">void&#160;</td>
  448. <td class="paramname"></td><td>)</td>
  449. <td></td>
  450. </tr>
  451. </table>
  452. </div><div class="memdoc">
  453. <p>Give ofstream handle for logging. </p>
  454. <p>This appends the current date/time stamp into the logfile, and returns a reference.</p>
  455. <p>Example:</p>
  456. <p>door.log() &lt;&lt; "Something bad just happened." &lt;&lt; std::endl;</p>
  457. <dl class="section return"><dt>Returns</dt><dd>ofstream&amp; </dd></dl>
  458. </div>
  459. </div>
  460. <a id="a264d9e4eb0d6eb0e03f60520bcb11dd4"></a>
  461. <h2 class="memtitle"><span class="permalink"><a href="#a264d9e4eb0d6eb0e03f60520bcb11dd4">&#9670;&nbsp;</a></span>overflow()</h2>
  462. <div class="memitem">
  463. <div class="memproto">
  464. <table class="mlabels">
  465. <tr>
  466. <td class="mlabels-left">
  467. <table class="memname">
  468. <tr>
  469. <td class="memname">int door::Door::overflow </td>
  470. <td>(</td>
  471. <td class="paramtype">int&#160;</td>
  472. <td class="paramname"><em>c</em></td><td>)</td>
  473. <td></td>
  474. </tr>
  475. </table>
  476. </td>
  477. <td class="mlabels-right">
  478. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">private</span></span> </td>
  479. </tr>
  480. </table>
  481. </div><div class="memdoc">
  482. <p>Stores a character into the buffer. This does still use the buffer. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>Replace this also with a direct call to od_disp_emu.</dd></dl>
  483. <dl class="params"><dt>Parameters</dt><dd>
  484. <table class="params">
  485. <tr><td class="paramname">c</td><td>char </td></tr>
  486. </table>
  487. </dd>
  488. </dl>
  489. <dl class="section return"><dt>Returns</dt><dd>int </dd></dl>
  490. </div>
  491. </div>
  492. <a id="a30663f319df84ef33658b593b41b06a2"></a>
  493. <h2 class="memtitle"><span class="permalink"><a href="#a30663f319df84ef33658b593b41b06a2">&#9670;&nbsp;</a></span>parse_dropfile()</h2>
  494. <div class="memitem">
  495. <div class="memproto">
  496. <table class="mlabels">
  497. <tr>
  498. <td class="mlabels-left">
  499. <table class="memname">
  500. <tr>
  501. <td class="memname">void door::Door::parse_dropfile </td>
  502. <td>(</td>
  503. <td class="paramtype">const char *&#160;</td>
  504. <td class="paramname"><em>filepath</em></td><td>)</td>
  505. <td></td>
  506. </tr>
  507. </table>
  508. </td>
  509. <td class="mlabels-right">
  510. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  511. </tr>
  512. </table>
  513. </div><div class="memdoc">
  514. <p>Load dropfile into dropfilelines and parse. </p>
  515. <p>Load dropfile and parse door.sys and door32.sys.</p>
  516. <dl class="params"><dt>Parameters</dt><dd>
  517. <table class="params">
  518. <tr><td class="paramdir">[in]</td><td class="paramname">filepath</td><td>Dropfile path and filename </td></tr>
  519. </table>
  520. </dd>
  521. </dl>
  522. </div>
  523. </div>
  524. <a id="a092b281d63bb6ee0a3bee2ba77d78a47"></a>
  525. <h2 class="memtitle"><span class="permalink"><a href="#a092b281d63bb6ee0a3bee2ba77d78a47">&#9670;&nbsp;</a></span>sleep_key()</h2>
  526. <div class="memitem">
  527. <div class="memproto">
  528. <table class="memname">
  529. <tr>
  530. <td class="memname">signed int door::Door::sleep_key </td>
  531. <td>(</td>
  532. <td class="paramtype">int&#160;</td>
  533. <td class="paramname"><em>secs</em></td><td>)</td>
  534. <td></td>
  535. </tr>
  536. </table>
  537. </div><div class="memdoc">
  538. <p>Waits secs seconds for a keypress. </p>
  539. <p>returns key, or -1 on timeout (seconds passed). -2 hangup -3 out of time</p>
  540. <dl class="params"><dt>Parameters</dt><dd>
  541. <table class="params">
  542. <tr><td class="paramname">secs</td><td></td></tr>
  543. </table>
  544. </dd>
  545. </dl>
  546. <dl class="section return"><dt>Returns</dt><dd>signed int </dd></dl>
  547. </div>
  548. </div>
  549. <a id="ae6d61a5be02656c0b9479715d0d980dd"></a>
  550. <h2 class="memtitle"><span class="permalink"><a href="#ae6d61a5be02656c0b9479715d0d980dd">&#9670;&nbsp;</a></span>sleep_ms_key()</h2>
  551. <div class="memitem">
  552. <div class="memproto">
  553. <table class="memname">
  554. <tr>
  555. <td class="memname">signed int door::Door::sleep_ms_key </td>
  556. <td>(</td>
  557. <td class="paramtype">int&#160;</td>
  558. <td class="paramname"><em>msecs</em></td><td>)</td>
  559. <td></td>
  560. </tr>
  561. </table>
  562. </div><div class="memdoc">
  563. <p>Waits miliseconds for a keypress. </p>
  564. <p>returns key, or -1 on timeout (seconds passed). -2 hangup -3 out of time</p>
  565. <dl class="params"><dt>Parameters</dt><dd>
  566. <table class="params">
  567. <tr><td class="paramname">msecs</td><td></td></tr>
  568. </table>
  569. </dd>
  570. </dl>
  571. <dl class="section return"><dt>Returns</dt><dd>signed int </dd></dl>
  572. </div>
  573. </div>
  574. <a id="aad67bdb165987c4e3133a0f12f2b2b33"></a>
  575. <h2 class="memtitle"><span class="permalink"><a href="#aad67bdb165987c4e3133a0f12f2b2b33">&#9670;&nbsp;</a></span>xsputn()</h2>
  576. <div class="memitem">
  577. <div class="memproto">
  578. <table class="mlabels">
  579. <tr>
  580. <td class="mlabels-left">
  581. <table class="memname">
  582. <tr>
  583. <td class="memname">std::streamsize door::Door::xsputn </td>
  584. <td>(</td>
  585. <td class="paramtype">const char *&#160;</td>
  586. <td class="paramname"><em>s</em>, </td>
  587. </tr>
  588. <tr>
  589. <td class="paramkey"></td>
  590. <td></td>
  591. <td class="paramtype">std::streamsize&#160;</td>
  592. <td class="paramname"><em>n</em>&#160;</td>
  593. </tr>
  594. <tr>
  595. <td></td>
  596. <td>)</td>
  597. <td></td><td></td>
  598. </tr>
  599. </table>
  600. </td>
  601. <td class="mlabels-right">
  602. <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">private</span></span> </td>
  603. </tr>
  604. </table>
  605. </div><div class="memdoc">
  606. <p>Take given buffer and output it.</p>
  607. <p>If debug_capture is enabled, we save everything to debug_buffer. This is used by the tests.</p>
  608. <dl class="params"><dt>Parameters</dt><dd>
  609. <table class="params">
  610. <tr><td class="paramname">s</td><td>const char * </td></tr>
  611. <tr><td class="paramname">n</td><td>std::streamsize </td></tr>
  612. </table>
  613. </dd>
  614. </dl>
  615. <dl class="section return"><dt>Returns</dt><dd>std::streamsize </dd></dl>
  616. </div>
  617. </div>
  618. <h2 class="groupheader">Member Data Documentation</h2>
  619. <a id="a18b8c731b27e23d6913c0ad683a37ce7"></a>
  620. <h2 class="memtitle"><span class="permalink"><a href="#a18b8c731b27e23d6913c0ad683a37ce7">&#9670;&nbsp;</a></span>cx</h2>
  621. <div class="memitem">
  622. <div class="memproto">
  623. <table class="memname">
  624. <tr>
  625. <td class="memname">int door::Door::cx</td>
  626. </tr>
  627. </table>
  628. </div><div class="memdoc">
  629. <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000004">Todo:</a></b></dt><dd>Current cursor X position. </dd></dl>
  630. </div>
  631. </div>
  632. <a id="ae3030f754f5c183c0739ca899f5d351c"></a>
  633. <h2 class="memtitle"><span class="permalink"><a href="#ae3030f754f5c183c0739ca899f5d351c">&#9670;&nbsp;</a></span>cy</h2>
  634. <div class="memitem">
  635. <div class="memproto">
  636. <table class="memname">
  637. <tr>
  638. <td class="memname">int door::Door::cy</td>
  639. </tr>
  640. </table>
  641. </div><div class="memdoc">
  642. <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000005">Todo:</a></b></dt><dd>Current cursor Y position. </dd></dl>
  643. </div>
  644. </div>
  645. <a id="ae0e34a59d92ec9d70720fd90380b4223"></a>
  646. <h2 class="memtitle"><span class="permalink"><a href="#ae0e34a59d92ec9d70720fd90380b4223">&#9670;&nbsp;</a></span>debug_buffer</h2>
  647. <div class="memitem">
  648. <div class="memproto">
  649. <table class="memname">
  650. <tr>
  651. <td class="memname">std::string door::Door::debug_buffer</td>
  652. </tr>
  653. </table>
  654. </div><div class="memdoc">
  655. <p>Buffer that holds the output for testing. </p>
  656. </div>
  657. </div>
  658. <a id="a7660c60172a692036907d431ae2006f8"></a>
  659. <h2 class="memtitle"><span class="permalink"><a href="#a7660c60172a692036907d431ae2006f8">&#9670;&nbsp;</a></span>doorname</h2>
  660. <div class="memitem">
  661. <div class="memproto">
  662. <table class="mlabels">
  663. <tr>
  664. <td class="mlabels-left">
  665. <table class="memname">
  666. <tr>
  667. <td class="memname">std::string door::Door::doorname</td>
  668. </tr>
  669. </table>
  670. </td>
  671. <td class="mlabels-right">
  672. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  673. </tr>
  674. </table>
  675. </div><div class="memdoc">
  676. <p>The name used for logfile </p>
  677. </div>
  678. </div>
  679. <a id="a3d83225897fcc51bf883170ba6f6963f"></a>
  680. <h2 class="memtitle"><span class="permalink"><a href="#a3d83225897fcc51bf883170ba6f6963f">&#9670;&nbsp;</a></span>dropfilelines</h2>
  681. <div class="memitem">
  682. <div class="memproto">
  683. <table class="mlabels">
  684. <tr>
  685. <td class="mlabels-left">
  686. <table class="memname">
  687. <tr>
  688. <td class="memname">vector&lt;std::string&gt; door::Door::dropfilelines</td>
  689. </tr>
  690. </table>
  691. </td>
  692. <td class="mlabels-right">
  693. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  694. </tr>
  695. </table>
  696. </div><div class="memdoc">
  697. <p>Contents of the dropfile. </p>
  698. </div>
  699. </div>
  700. <a id="acd2e33e65d7ccac7c46e0c7fa6b3a407"></a>
  701. <h2 class="memtitle"><span class="permalink"><a href="#acd2e33e65d7ccac7c46e0c7fa6b3a407">&#9670;&nbsp;</a></span>dropfilename</h2>
  702. <div class="memitem">
  703. <div class="memproto">
  704. <table class="mlabels">
  705. <tr>
  706. <td class="mlabels-left">
  707. <table class="memname">
  708. <tr>
  709. <td class="memname">std::string door::Door::dropfilename</td>
  710. </tr>
  711. </table>
  712. </td>
  713. <td class="mlabels-right">
  714. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  715. </tr>
  716. </table>
  717. </div><div class="memdoc">
  718. <p>Name of the dropfile. </p>
  719. </div>
  720. </div>
  721. <a id="af9732845ca55a168cb03400486e47a37"></a>
  722. <h2 class="memtitle"><span class="permalink"><a href="#af9732845ca55a168cb03400486e47a37">&#9670;&nbsp;</a></span>handle</h2>
  723. <div class="memitem">
  724. <div class="memproto">
  725. <table class="memname">
  726. <tr>
  727. <td class="memname">std::string door::Door::handle</td>
  728. </tr>
  729. </table>
  730. </div><div class="memdoc">
  731. <p>BBS Dropfile handle </p>
  732. </div>
  733. </div>
  734. <a id="ab72706c45d0d143c30dbe61f4e9f6a68"></a>
  735. <h2 class="memtitle"><span class="permalink"><a href="#ab72706c45d0d143c30dbe61f4e9f6a68">&#9670;&nbsp;</a></span>has_dropfile</h2>
  736. <div class="memitem">
  737. <div class="memproto">
  738. <table class="mlabels">
  739. <tr>
  740. <td class="mlabels-left">
  741. <table class="memname">
  742. <tr>
  743. <td class="memname">bool door::Door::has_dropfile</td>
  744. </tr>
  745. </table>
  746. </td>
  747. <td class="mlabels-right">
  748. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  749. </tr>
  750. </table>
  751. </div><div class="memdoc">
  752. <p>Did we read a dropfile? </p>
  753. </div>
  754. </div>
  755. <a id="ad6b79329830e41ba0ee960b01804a383"></a>
  756. <h2 class="memtitle"><span class="permalink"><a href="#ad6b79329830e41ba0ee960b01804a383">&#9670;&nbsp;</a></span>height</h2>
  757. <div class="memitem">
  758. <div class="memproto">
  759. <table class="memname">
  760. <tr>
  761. <td class="memname">int door::Door::height</td>
  762. </tr>
  763. </table>
  764. </div><div class="memdoc">
  765. <p>Detected screen height. </p>
  766. </div>
  767. </div>
  768. <a id="a9190e804f05c37523aad88e5ebb0f826"></a>
  769. <h2 class="memtitle"><span class="permalink"><a href="#a9190e804f05c37523aad88e5ebb0f826">&#9670;&nbsp;</a></span>inactivity</h2>
  770. <div class="memitem">
  771. <div class="memproto">
  772. <table class="memname">
  773. <tr>
  774. <td class="memname">int door::Door::inactivity</td>
  775. </tr>
  776. </table>
  777. </div><div class="memdoc">
  778. <p>Number of seconds before timing out. </p>
  779. <p>When prompting for user input, this is the number of seconds they have to respond before we give up and timeout on them. (Default 120/2 minutes) </p>
  780. </div>
  781. </div>
  782. <a id="a4542fd79a3669c8bf7b2354bebb8d4df"></a>
  783. <h2 class="memtitle"><span class="permalink"><a href="#a4542fd79a3669c8bf7b2354bebb8d4df">&#9670;&nbsp;</a></span>location</h2>
  784. <div class="memitem">
  785. <div class="memproto">
  786. <table class="memname">
  787. <tr>
  788. <td class="memname">std::string door::Door::location</td>
  789. </tr>
  790. </table>
  791. </div><div class="memdoc">
  792. <p>BBS Dropfile location </p>
  793. </div>
  794. </div>
  795. <a id="a2456a5f520ad5a005ec13bebbfb0774d"></a>
  796. <h2 class="memtitle"><span class="permalink"><a href="#a2456a5f520ad5a005ec13bebbfb0774d">&#9670;&nbsp;</a></span>logf</h2>
  797. <div class="memitem">
  798. <div class="memproto">
  799. <table class="mlabels">
  800. <tr>
  801. <td class="mlabels-left">
  802. <table class="memname">
  803. <tr>
  804. <td class="memname">ofstream door::Door::logf</td>
  805. </tr>
  806. </table>
  807. </td>
  808. <td class="mlabels-right">
  809. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  810. </tr>
  811. </table>
  812. </div><div class="memdoc">
  813. <p>Logfile </p>
  814. </div>
  815. </div>
  816. <a id="ac617cee68cc0993ff5c294d06023b19b"></a>
  817. <h2 class="memtitle"><span class="permalink"><a href="#ac617cee68cc0993ff5c294d06023b19b">&#9670;&nbsp;</a></span>node</h2>
  818. <div class="memitem">
  819. <div class="memproto">
  820. <table class="memname">
  821. <tr>
  822. <td class="memname">int door::Door::node</td>
  823. </tr>
  824. </table>
  825. </div><div class="memdoc">
  826. <p>BBS Dropfile node number </p>
  827. </div>
  828. </div>
  829. <a id="a7e9aa4c92094271c40d67979b087d36b"></a>
  830. <h2 class="memtitle"><span class="permalink"><a href="#a7e9aa4c92094271c40d67979b087d36b">&#9670;&nbsp;</a></span>opt</h2>
  831. <div class="memitem">
  832. <div class="memproto">
  833. <table class="memname">
  834. <tr>
  835. <td class="memname">AnyOption door::Door::opt</td>
  836. </tr>
  837. </table>
  838. </div><div class="memdoc">
  839. <p>Commandline options parser. </p>
  840. </div>
  841. </div>
  842. <a id="adf76d445797eb513020a60f786f65767"></a>
  843. <h2 class="memtitle"><span class="permalink"><a href="#adf76d445797eb513020a60f786f65767">&#9670;&nbsp;</a></span>previous</h2>
  844. <div class="memitem">
  845. <div class="memproto">
  846. <table class="memname">
  847. <tr>
  848. <td class="memname"><a class="el" href="classdoor_1_1ANSIColor.html">ANSIColor</a> door::Door::previous</td>
  849. </tr>
  850. </table>
  851. </div><div class="memdoc">
  852. <p>Previous ANSI-BBS colors and attributes sent. This is used to optimize ANSI Color output. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="classdoor_1_1ANSIColor.html#a24c97bd59b2a17cca37512dea5d21505">ANSIColor::output()</a> </dd></dl>
  853. </div>
  854. </div>
  855. <a id="a076ef095ae4e49acdb4afed0b413e430"></a>
  856. <h2 class="memtitle"><span class="permalink"><a href="#a076ef095ae4e49acdb4afed0b413e430">&#9670;&nbsp;</a></span>seconds_elapsed</h2>
  857. <div class="memitem">
  858. <div class="memproto">
  859. <table class="mlabels">
  860. <tr>
  861. <td class="mlabels-left">
  862. <table class="memname">
  863. <tr>
  864. <td class="memname">int door::Door::seconds_elapsed</td>
  865. </tr>
  866. </table>
  867. </td>
  868. <td class="mlabels-right">
  869. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  870. </tr>
  871. </table>
  872. </div><div class="memdoc">
  873. <p>Used by time_thread to know when a minute has passed. </p>
  874. </div>
  875. </div>
  876. <a id="a65e014489e39390328fbf448a304d548"></a>
  877. <h2 class="memtitle"><span class="permalink"><a href="#a65e014489e39390328fbf448a304d548">&#9670;&nbsp;</a></span>stop_thread</h2>
  878. <div class="memitem">
  879. <div class="memproto">
  880. <table class="mlabels">
  881. <tr>
  882. <td class="mlabels-left">
  883. <table class="memname">
  884. <tr>
  885. <td class="memname">std::promise&lt;void&gt; door::Door::stop_thread</td>
  886. </tr>
  887. </table>
  888. </td>
  889. <td class="mlabels-right">
  890. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  891. </tr>
  892. </table>
  893. </div><div class="memdoc">
  894. <p>Allow us to stop the time_thread. </p>
  895. </div>
  896. </div>
  897. <a id="ad774c3579cd2cff08dcbd5c565bc9b70"></a>
  898. <h2 class="memtitle"><span class="permalink"><a href="#ad774c3579cd2cff08dcbd5c565bc9b70">&#9670;&nbsp;</a></span>sysop</h2>
  899. <div class="memitem">
  900. <div class="memproto">
  901. <table class="memname">
  902. <tr>
  903. <td class="memname">std::string door::Door::sysop</td>
  904. </tr>
  905. </table>
  906. </div><div class="memdoc">
  907. <p>BBS Dropfile sysop name </p>
  908. </div>
  909. </div>
  910. <a id="a459531d32a3208856979ebcdeb7c6aed"></a>
  911. <h2 class="memtitle"><span class="permalink"><a href="#a459531d32a3208856979ebcdeb7c6aed">&#9670;&nbsp;</a></span>time_left</h2>
  912. <div class="memitem">
  913. <div class="memproto">
  914. <table class="memname">
  915. <tr>
  916. <td class="memname">atomic&lt;int&gt; door::Door::time_left</td>
  917. </tr>
  918. </table>
  919. </div><div class="memdoc">
  920. <p>time left in minutes </p>
  921. </div>
  922. </div>
  923. <a id="a76deeffd8b0df5112b6e4d03d9ebdd73"></a>
  924. <h2 class="memtitle"><span class="permalink"><a href="#a76deeffd8b0df5112b6e4d03d9ebdd73">&#9670;&nbsp;</a></span>time_thread</h2>
  925. <div class="memitem">
  926. <div class="memproto">
  927. <table class="mlabels">
  928. <tr>
  929. <td class="mlabels-left">
  930. <table class="memname">
  931. <tr>
  932. <td class="memname">std::thread door::Door::time_thread</td>
  933. </tr>
  934. </table>
  935. </td>
  936. <td class="mlabels-right">
  937. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  938. </tr>
  939. </table>
  940. </div><div class="memdoc">
  941. <p>Thread used to update time_left and time_used. </p>
  942. </div>
  943. </div>
  944. <a id="aafaad41e8f04b9df6466f512d4893d82"></a>
  945. <h2 class="memtitle"><span class="permalink"><a href="#aafaad41e8f04b9df6466f512d4893d82">&#9670;&nbsp;</a></span>time_used</h2>
  946. <div class="memitem">
  947. <div class="memproto">
  948. <table class="memname">
  949. <tr>
  950. <td class="memname">atomic&lt;int&gt; door::Door::time_used</td>
  951. </tr>
  952. </table>
  953. </div><div class="memdoc">
  954. <p>time used in minutes </p>
  955. </div>
  956. </div>
  957. <a id="ac9694a43baa3f7a8c0aaea15910b2afc"></a>
  958. <h2 class="memtitle"><span class="permalink"><a href="#ac9694a43baa3f7a8c0aaea15910b2afc">&#9670;&nbsp;</a></span>tio_default</h2>
  959. <div class="memitem">
  960. <div class="memproto">
  961. <table class="mlabels">
  962. <tr>
  963. <td class="mlabels-left">
  964. <table class="memname">
  965. <tr>
  966. <td class="memname">struct termios door::Door::tio_default</td>
  967. </tr>
  968. </table>
  969. </td>
  970. <td class="mlabels-right">
  971. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  972. </tr>
  973. </table>
  974. </div><div class="memdoc">
  975. <p>Initial terminal defaults. </p>
  976. </div>
  977. </div>
  978. <a id="abc021f4f29b9f78356641ba68df3ee4a"></a>
  979. <h2 class="memtitle"><span class="permalink"><a href="#abc021f4f29b9f78356641ba68df3ee4a">&#9670;&nbsp;</a></span>track</h2>
  980. <div class="memitem">
  981. <div class="memproto">
  982. <table class="memname">
  983. <tr>
  984. <td class="memname">bool door::Door::track</td>
  985. </tr>
  986. </table>
  987. </div><div class="memdoc">
  988. <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000003">Todo:</a></b></dt><dd>Enable tracking cursor position. </dd></dl>
  989. </div>
  990. </div>
  991. <a id="aaeb090ff9afcae8ea0a15416eae84850"></a>
  992. <h2 class="memtitle"><span class="permalink"><a href="#aaeb090ff9afcae8ea0a15416eae84850">&#9670;&nbsp;</a></span>username</h2>
  993. <div class="memitem">
  994. <div class="memproto">
  995. <table class="memname">
  996. <tr>
  997. <td class="memname">std::string door::Door::username</td>
  998. </tr>
  999. </table>
  1000. </div><div class="memdoc">
  1001. <p>BBS Dropfile username </p>
  1002. </div>
  1003. </div>
  1004. <a id="a773004acf25257a8e384bc6333b3e169"></a>
  1005. <h2 class="memtitle"><span class="permalink"><a href="#a773004acf25257a8e384bc6333b3e169">&#9670;&nbsp;</a></span>width</h2>
  1006. <div class="memitem">
  1007. <div class="memproto">
  1008. <table class="memname">
  1009. <tr>
  1010. <td class="memname">int door::Door::width</td>
  1011. </tr>
  1012. </table>
  1013. </div><div class="memdoc">
  1014. <p>Detected screen width. <a class="el" href="classdoor_1_1Door.html#ac271b0be7c45192f1e5691b33b6703bb">Door::detect_unicode_and_screen</a> </p>
  1015. </div>
  1016. </div>
  1017. <hr/>The documentation for this class was generated from the following files:<ul>
  1018. <li><a class="el" href="door_8h_source.html">door.h</a></li>
  1019. <li><a class="el" href="door_8cpp.html">door.cpp</a></li>
  1020. </ul>
  1021. </div><!-- contents -->
  1022. <!-- start footer part -->
  1023. <hr class="footer"/><address class="footer"><small>
  1024. Generated by &#160;<a href="http://www.doxygen.org/index.html">
  1025. <img class="footer" src="doxygen.png" alt="doxygen"/>
  1026. </a> 1.8.17
  1027. </small></address>
  1028. </body>
  1029. </html>