<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Bugz Door Project: door::Door Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Bugz Door Project
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- 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="namespacedoor.html">door</a></li><li class="navelem"><a class="el" href="classdoor_1_1Door.html">Door</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classdoor_1_1Door-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">door::Door Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="door_8h_source.html">door.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for door::Door:</div>
<div class="dyncontent">
<div class="center"><img src="classdoor_1_1Door__inherit__graph.png" border="0" usemap="#door_1_1Door_inherit__map" alt="Inheritance graph"/></div>
<map name="door_1_1Door_inherit__map" id="door_1_1Door_inherit__map">
<area shape="rect" title=" " alt="" coords="79,80,169,107"/>
<area shape="rect" title=" " alt="" coords="5,5,109,32"/>
<area shape="rect" title=" " alt="" coords="133,5,251,32"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for door::Door:</div>
<div class="dyncontent">
<div class="center"><img src="classdoor_1_1Door__coll__graph.png" border="0" usemap="#door_1_1Door_coll__map" alt="Collaboration graph"/></div>
<map name="door_1_1Door_coll__map" id="door_1_1Door_coll__map">
<area shape="rect" title=" " alt="" coords="147,95,237,121"/>
<area shape="rect" title=" " alt="" coords="5,5,109,32"/>
<area shape="rect" title=" " alt="" coords="133,5,251,32"/>
<area shape="rect" href="classdoor_1_1ANSIColor.html" title="Foreground, Background and Attributes." alt="" coords="274,5,398,32"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<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>
<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>
<tr class="separator:a8f7dcac2dafd0e11d42ab227b7d1a2ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65728f9e00ef3765c65d4f1e2c106fb6"><td class="memItemLeft" align="right" valign="top"><a id="a65728f9e00ef3765c65d4f1e2c106fb6"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>Door</b> (<a class="el" href="classdoor_1_1Door.html">Door</a> &amp;)=delete</td></tr>
<tr class="separator:a65728f9e00ef3765c65d4f1e2c106fb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:a15d3f18b7165f348479344b897b6ed96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:a10d40a7089473c72c1acf5a987777404"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:adb2006e73645885986d5487eb576fd21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:a092b281d63bb6ee0a3bee2ba77d78a47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:ae6d61a5be02656c0b9479715d0d980dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:a93bbb3d1bfcec623e46ef47e6ba6b470"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:aa807fbcea8d7e92f591d9f459f392232"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<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>
<tr class="separator:a7e9aa4c92094271c40d67979b087d36b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:ae0e34a59d92ec9d70720fd90380b4223"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:adf76d445797eb513020a60f786f65767"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:abc021f4f29b9f78356641ba68df3ee4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a18b8c731b27e23d6913c0ad683a37ce7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:ae3030f754f5c183c0739ca899f5d351c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a773004acf25257a8e384bc6333b3e169"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:ad6b79329830e41ba0ee960b01804a383"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:a9190e804f05c37523aad88e5ebb0f826"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:aaeb090ff9afcae8ea0a15416eae84850"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:af9732845ca55a168cb03400486e47a37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a4542fd79a3669c8bf7b2354bebb8d4df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:ad774c3579cd2cff08dcbd5c565bc9b70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:ac617cee68cc0993ff5c294d06023b19b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a459531d32a3208856979ebcdeb7c6aed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:aafaad41e8f04b9df6466f512d4893d82"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<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>
<tr class="separator:aad67bdb165987c4e3133a0f12f2b2b33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a264d9e4eb0d6eb0e03f60520bcb11dd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:a30663f319df84ef33658b593b41b06a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab90a3663bd05a3be1caff2584a49ad64"><td class="memItemLeft" align="right" valign="top"><a id="ab90a3663bd05a3be1caff2584a49ad64"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>init</b> (void)</td></tr>
<tr class="separator:ab90a3663bd05a3be1caff2584a49ad64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:a7671e29e45d346657b5bd5d66f569737"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a7dd4913cdfb13f0938888adaab363e93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:ac271b0be7c45192f1e5691b33b6703bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a062d08121d8cfa6e380cedbdad9b9a45"><td class="memItemLeft" align="right" valign="top"><a id="a062d08121d8cfa6e380cedbdad9b9a45"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>time_thread_run</b> (std::future&lt; void &gt; future)</td></tr>
<tr class="separator:a062d08121d8cfa6e380cedbdad9b9a45"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<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>
<tr class="separator:a7660c60172a692036907d431ae2006f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5e32daf4c1ed6d7675f2a8bee43a420"><td class="memItemLeft" align="right" valign="top"><a id="ac5e32daf4c1ed6d7675f2a8bee43a420"></a>
std::time_t&#160;</td><td class="memItemRight" valign="bottom"><b>startup</b></td></tr>
<tr class="separator:ac5e32daf4c1ed6d7675f2a8bee43a420"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:ac9694a43baa3f7a8c0aaea15910b2afc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:ab72706c45d0d143c30dbe61f4e9f6a68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbcb8c030207ca3529dc8e9efeb2da8c"><td class="memItemLeft" align="right" valign="top"><a id="acbcb8c030207ca3529dc8e9efeb2da8c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>debugging</b></td></tr>
<tr class="separator:acbcb8c030207ca3529dc8e9efeb2da8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:acd2e33e65d7ccac7c46e0c7fa6b3a407"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a3d83225897fcc51bf883170ba6f6963f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a2456a5f520ad5a005ec13bebbfb0774d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a65e014489e39390328fbf448a304d548"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a076ef095ae4e49acdb4afed0b413e430"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a76deeffd8b0df5112b6e4d03d9ebdd73"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>This handles output to the caller, via ostream. </p>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="menu-example_8cpp-example.html#_a0">menu-example.cpp</a>.</dd>
</dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a8f7dcac2dafd0e11d42ab227b7d1a2ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f7dcac2dafd0e11d42ab227b7d1a2ba">&#9670;&nbsp;</a></span>Door()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">door::Door::Door </td>
          <td>(</td>
          <td class="paramtype">std::string&#160;</td>
          <td class="paramname"><em>dname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>argv</em>[]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<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>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <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>
    <tr><td class="paramdir">[in]</td><td class="paramname">argc</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">argv</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ac271b0be7c45192f1e5691b33b6703bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac271b0be7c45192f1e5691b33b6703bb">&#9670;&nbsp;</a></span>detect_unicode_and_screen()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void door::Door::detect_unicode_and_screen </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Detect unicode/CP437, and screen size. </p>
<p>This sets unicode and full_cp437 flags, width and height.</p>
<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>
<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>
<p>For the screensize, we move the cursor down 999 and move cursor right 999 and query position.</p>
<p>On failure to detect screensize, width and height are set to 0. </p>

</div>
</div>
<a id="aa807fbcea8d7e92f591d9f459f392232"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa807fbcea8d7e92f591d9f459f392232">&#9670;&nbsp;</a></span>get_one_of()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int door::Door::get_one_of </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>keys</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get one of these keys. </p>
<p>returns char, or &lt; 0 if timeout.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">keys</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>char or &lt; 0 </dd></dl>

</div>
</div>
<a id="a7671e29e45d346657b5bd5d66f569737"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7671e29e45d346657b5bd5d66f569737">&#9670;&nbsp;</a></span>getch()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">signed int door::Door::getch </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>low level read key. </p>
<p>Returns key, or -1 no key available/timeout -2 read error/hang up -3 out of time</p>
<dl class="section return"><dt>Returns</dt><dd>signed int </dd></dl>

</div>
</div>
<a id="a10d40a7089473c72c1acf5a987777404"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a10d40a7089473c72c1acf5a987777404">&#9670;&nbsp;</a></span>getkey()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signed int door::Door::getkey </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get a key routine. </p>
<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>
<dl class="section return"><dt>Returns</dt><dd>signed int </dd></dl>

</div>
</div>
<a id="a7dd4913cdfb13f0938888adaab363e93"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7dd4913cdfb13f0938888adaab363e93">&#9670;&nbsp;</a></span>getkey_or_pushback()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">signed int door::Door::getkey_or_pushback </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Call low level getch if the pushback buffer is empty.</p>
<p>This allows testing of the <a class="el" href="classdoor_1_1Door.html#a10d40a7089473c72c1acf5a987777404">Door::getkey</a> function.</p>
<dl class="section return"><dt>Returns</dt><dd>signed int </dd></dl>

</div>
</div>
<a id="adb2006e73645885986d5487eb576fd21"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb2006e73645885986d5487eb576fd21">&#9670;&nbsp;</a></span>haskey()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool door::Door::haskey </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Are there any keys in STDIN? </p>
<p>This uses select to check if we have received any keys. This does not use pushback.</p>
<p>If HANGUP, OUTOFTIME, return true</p>
<dl class="section return"><dt>Returns</dt><dd>true </dd>
<dd>
false </dd></dl>

</div>
</div>
<a id="a93bbb3d1bfcec623e46ef47e6ba6b470"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a93bbb3d1bfcec623e46ef47e6ba6b470">&#9670;&nbsp;</a></span>input_string()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string door::Door::input_string </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>max</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Input a string of requested max length. </p>
<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>
<p>It handles input, backspaces / deleting the characters / enter input and timeout/hangup/out of time.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">max</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>std::string </dd></dl>

</div>
</div>
<a id="a15d3f18b7165f348479344b897b6ed96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15d3f18b7165f348479344b897b6ed96">&#9670;&nbsp;</a></span>log()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ofstream &amp; door::Door::log </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Give ofstream handle for logging. </p>
<p>This appends the current date/time stamp into the logfile, and returns a reference.</p>
<p>Example:</p>
<p>door.log() &lt;&lt; "Something bad just happened." &lt;&lt; std::endl;</p>
<dl class="section return"><dt>Returns</dt><dd>ofstream&amp; </dd></dl>

</div>
</div>
<a id="a264d9e4eb0d6eb0e03f60520bcb11dd4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a264d9e4eb0d6eb0e03f60520bcb11dd4">&#9670;&nbsp;</a></span>overflow()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int door::Door::overflow </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>c</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<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>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>char </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>int </dd></dl>

</div>
</div>
<a id="a30663f319df84ef33658b593b41b06a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a30663f319df84ef33658b593b41b06a2">&#9670;&nbsp;</a></span>parse_dropfile()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void door::Door::parse_dropfile </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filepath</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Load dropfile into dropfilelines and parse. </p>
<p>Load dropfile and parse door.sys and door32.sys.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">filepath</td><td>Dropfile path and filename </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a092b281d63bb6ee0a3bee2ba77d78a47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a092b281d63bb6ee0a3bee2ba77d78a47">&#9670;&nbsp;</a></span>sleep_key()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signed int door::Door::sleep_key </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>secs</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Waits secs seconds for a keypress. </p>
<p>returns key, or -1 on timeout (seconds passed). -2 hangup -3 out of time</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">secs</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>signed int </dd></dl>

</div>
</div>
<a id="ae6d61a5be02656c0b9479715d0d980dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae6d61a5be02656c0b9479715d0d980dd">&#9670;&nbsp;</a></span>sleep_ms_key()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signed int door::Door::sleep_ms_key </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>msecs</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Waits miliseconds for a keypress. </p>
<p>returns key, or -1 on timeout (seconds passed). -2 hangup -3 out of time</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msecs</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>signed int </dd></dl>

</div>
</div>
<a id="aad67bdb165987c4e3133a0f12f2b2b33"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aad67bdb165987c4e3133a0f12f2b2b33">&#9670;&nbsp;</a></span>xsputn()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::streamsize door::Door::xsputn </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::streamsize&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Take given buffer and output it.</p>
<p>If debug_capture is enabled, we save everything to debug_buffer. This is used by the tests.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">s</td><td>const char * </td></tr>
    <tr><td class="paramname">n</td><td>std::streamsize </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>std::streamsize </dd></dl>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a18b8c731b27e23d6913c0ad683a37ce7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a18b8c731b27e23d6913c0ad683a37ce7">&#9670;&nbsp;</a></span>cx</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int door::Door::cx</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000004">Todo:</a></b></dt><dd>Current cursor X position. </dd></dl>

</div>
</div>
<a id="ae3030f754f5c183c0739ca899f5d351c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3030f754f5c183c0739ca899f5d351c">&#9670;&nbsp;</a></span>cy</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int door::Door::cy</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000005">Todo:</a></b></dt><dd>Current cursor Y position. </dd></dl>

</div>
</div>
<a id="ae0e34a59d92ec9d70720fd90380b4223"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae0e34a59d92ec9d70720fd90380b4223">&#9670;&nbsp;</a></span>debug_buffer</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string door::Door::debug_buffer</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Buffer that holds the output for testing. </p>

</div>
</div>
<a id="a7660c60172a692036907d431ae2006f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7660c60172a692036907d431ae2006f8">&#9670;&nbsp;</a></span>doorname</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string door::Door::doorname</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>The name used for logfile </p>

</div>
</div>
<a id="a3d83225897fcc51bf883170ba6f6963f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d83225897fcc51bf883170ba6f6963f">&#9670;&nbsp;</a></span>dropfilelines</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">vector&lt;std::string&gt; door::Door::dropfilelines</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Contents of the dropfile. </p>

</div>
</div>
<a id="acd2e33e65d7ccac7c46e0c7fa6b3a407"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd2e33e65d7ccac7c46e0c7fa6b3a407">&#9670;&nbsp;</a></span>dropfilename</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string door::Door::dropfilename</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Name of the dropfile. </p>

</div>
</div>
<a id="af9732845ca55a168cb03400486e47a37"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af9732845ca55a168cb03400486e47a37">&#9670;&nbsp;</a></span>handle</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string door::Door::handle</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>BBS Dropfile handle </p>

</div>
</div>
<a id="ab72706c45d0d143c30dbe61f4e9f6a68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab72706c45d0d143c30dbe61f4e9f6a68">&#9670;&nbsp;</a></span>has_dropfile</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool door::Door::has_dropfile</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Did we read a dropfile? </p>

</div>
</div>
<a id="ad6b79329830e41ba0ee960b01804a383"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad6b79329830e41ba0ee960b01804a383">&#9670;&nbsp;</a></span>height</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int door::Door::height</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Detected screen height. </p>

</div>
</div>
<a id="a9190e804f05c37523aad88e5ebb0f826"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9190e804f05c37523aad88e5ebb0f826">&#9670;&nbsp;</a></span>inactivity</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int door::Door::inactivity</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Number of seconds before timing out. </p>
<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>

</div>
</div>
<a id="a4542fd79a3669c8bf7b2354bebb8d4df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4542fd79a3669c8bf7b2354bebb8d4df">&#9670;&nbsp;</a></span>location</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string door::Door::location</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>BBS Dropfile location </p>

</div>
</div>
<a id="a2456a5f520ad5a005ec13bebbfb0774d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2456a5f520ad5a005ec13bebbfb0774d">&#9670;&nbsp;</a></span>logf</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">ofstream door::Door::logf</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Logfile </p>

</div>
</div>
<a id="ac617cee68cc0993ff5c294d06023b19b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac617cee68cc0993ff5c294d06023b19b">&#9670;&nbsp;</a></span>node</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int door::Door::node</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>BBS Dropfile node number </p>

</div>
</div>
<a id="a7e9aa4c92094271c40d67979b087d36b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7e9aa4c92094271c40d67979b087d36b">&#9670;&nbsp;</a></span>opt</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AnyOption door::Door::opt</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Commandline options parser. </p>

</div>
</div>
<a id="adf76d445797eb513020a60f786f65767"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adf76d445797eb513020a60f786f65767">&#9670;&nbsp;</a></span>previous</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdoor_1_1ANSIColor.html">ANSIColor</a> door::Door::previous</td>
        </tr>
      </table>
</div><div class="memdoc">
<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>

</div>
</div>
<a id="a076ef095ae4e49acdb4afed0b413e430"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a076ef095ae4e49acdb4afed0b413e430">&#9670;&nbsp;</a></span>seconds_elapsed</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int door::Door::seconds_elapsed</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Used by time_thread to know when a minute has passed. </p>

</div>
</div>
<a id="a65e014489e39390328fbf448a304d548"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a65e014489e39390328fbf448a304d548">&#9670;&nbsp;</a></span>stop_thread</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::promise&lt;void&gt; door::Door::stop_thread</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Allow us to stop the time_thread. </p>

</div>
</div>
<a id="ad774c3579cd2cff08dcbd5c565bc9b70"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad774c3579cd2cff08dcbd5c565bc9b70">&#9670;&nbsp;</a></span>sysop</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string door::Door::sysop</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>BBS Dropfile sysop name </p>

</div>
</div>
<a id="a459531d32a3208856979ebcdeb7c6aed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a459531d32a3208856979ebcdeb7c6aed">&#9670;&nbsp;</a></span>time_left</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">atomic&lt;int&gt; door::Door::time_left</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>time left in minutes </p>

</div>
</div>
<a id="a76deeffd8b0df5112b6e4d03d9ebdd73"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76deeffd8b0df5112b6e4d03d9ebdd73">&#9670;&nbsp;</a></span>time_thread</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::thread door::Door::time_thread</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Thread used to update time_left and time_used. </p>

</div>
</div>
<a id="aafaad41e8f04b9df6466f512d4893d82"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aafaad41e8f04b9df6466f512d4893d82">&#9670;&nbsp;</a></span>time_used</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">atomic&lt;int&gt; door::Door::time_used</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>time used in minutes </p>

</div>
</div>
<a id="ac9694a43baa3f7a8c0aaea15910b2afc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac9694a43baa3f7a8c0aaea15910b2afc">&#9670;&nbsp;</a></span>tio_default</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">struct termios door::Door::tio_default</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Initial terminal defaults. </p>

</div>
</div>
<a id="abc021f4f29b9f78356641ba68df3ee4a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abc021f4f29b9f78356641ba68df3ee4a">&#9670;&nbsp;</a></span>track</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool door::Door::track</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000003">Todo:</a></b></dt><dd>Enable tracking cursor position. </dd></dl>

</div>
</div>
<a id="aaeb090ff9afcae8ea0a15416eae84850"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaeb090ff9afcae8ea0a15416eae84850">&#9670;&nbsp;</a></span>username</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string door::Door::username</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>BBS Dropfile username </p>

</div>
</div>
<a id="a773004acf25257a8e384bc6333b3e169"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a773004acf25257a8e384bc6333b3e169">&#9670;&nbsp;</a></span>width</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int door::Door::width</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Detected screen width. <a class="el" href="classdoor_1_1Door.html#ac271b0be7c45192f1e5691b33b6703bb">Door::detect_unicode_and_screen</a> </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="door_8h_source.html">door.h</a></li>
<li><a class="el" href="door_8cpp.html">door.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>