Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 00862db86d46065a3a8f965b33c95850 > files > 10

echolib-devel-0.13.1-5.fc14.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>EchoLib: EchoLinkDirectory.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.2-20100208 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="dir_d583404e3b046262ade615a4e7154c3b.html">include</a>
  </div>
</div>
<div class="contents">
<h1>EchoLinkDirectory.h</h1><a href="EchoLinkDirectory_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00036"></a>00036 <span class="preprocessor">#ifndef ECHOLINK_DIRECTORY_INCLUDED</span>
<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">#define ECHOLINK_DIRECTORY_INCLUDED</span>
<a name="l00038"></a>00038 <span class="preprocessor"></span>
<a name="l00039"></a>00039 
<a name="l00040"></a>00040 <span class="comment">/****************************************************************************</span>
<a name="l00041"></a>00041 <span class="comment"> *</span>
<a name="l00042"></a>00042 <span class="comment"> * System Includes</span>
<a name="l00043"></a>00043 <span class="comment"> *</span>
<a name="l00044"></a>00044 <span class="comment"> ****************************************************************************/</span>
<a name="l00045"></a>00045 
<a name="l00046"></a>00046 <span class="preprocessor">#include &lt;sigc++/sigc++.h&gt;</span>
<a name="l00047"></a>00047 
<a name="l00048"></a>00048 <span class="preprocessor">#include &lt;string&gt;</span>
<a name="l00049"></a>00049 <span class="preprocessor">#include &lt;list&gt;</span>
<a name="l00050"></a>00050 <span class="preprocessor">#include &lt;vector&gt;</span>
<a name="l00051"></a>00051 <span class="preprocessor">#include &lt;iostream&gt;</span>
<a name="l00052"></a>00052 
<a name="l00053"></a>00053 
<a name="l00054"></a>00054 <span class="comment">/****************************************************************************</span>
<a name="l00055"></a>00055 <span class="comment"> *</span>
<a name="l00056"></a>00056 <span class="comment"> * Project Includes</span>
<a name="l00057"></a>00057 <span class="comment"> *</span>
<a name="l00058"></a>00058 <span class="comment"> ****************************************************************************/</span>
<a name="l00059"></a>00059 
<a name="l00060"></a>00060 <span class="preprocessor">#include &lt;AsyncTcpClient.h&gt;</span>
<a name="l00061"></a>00061 <span class="preprocessor">#include &lt;AsyncTimer.h&gt;</span>
<a name="l00062"></a>00062 <span class="preprocessor">#include &lt;<a class="code" href="EchoLinkStationData_8h.html" title="Contains a class that represent station data.">EchoLinkStationData.h</a>&gt;</span>
<a name="l00063"></a>00063 
<a name="l00064"></a>00064 
<a name="l00065"></a>00065 <span class="comment">/****************************************************************************</span>
<a name="l00066"></a>00066 <span class="comment"> *</span>
<a name="l00067"></a>00067 <span class="comment"> * Local Includes</span>
<a name="l00068"></a>00068 <span class="comment"> *</span>
<a name="l00069"></a>00069 <span class="comment"> ****************************************************************************/</span>
<a name="l00070"></a>00070 
<a name="l00071"></a>00071 
<a name="l00072"></a>00072 
<a name="l00073"></a>00073 <span class="comment">/****************************************************************************</span>
<a name="l00074"></a>00074 <span class="comment"> *</span>
<a name="l00075"></a>00075 <span class="comment"> * Forward declarations</span>
<a name="l00076"></a>00076 <span class="comment"> *</span>
<a name="l00077"></a>00077 <span class="comment"> ****************************************************************************/</span>
<a name="l00078"></a>00078 
<a name="l00079"></a>00079 <span class="keyword">class </span>Cmd;
<a name="l00080"></a>00080 
<a name="l00081"></a>00081 
<a name="l00082"></a>00082 <span class="comment">/****************************************************************************</span>
<a name="l00083"></a>00083 <span class="comment"> *</span>
<a name="l00084"></a>00084 <span class="comment"> * Namespace</span>
<a name="l00085"></a>00085 <span class="comment"> *</span>
<a name="l00086"></a>00086 <span class="comment"> ****************************************************************************/</span>
<a name="l00087"></a>00087 
<a name="l00088"></a><a class="code" href="namespaceEchoLink.html">00088</a> <span class="keyword">namespace </span>EchoLink
<a name="l00089"></a>00089 {
<a name="l00090"></a>00090 
<a name="l00091"></a>00091 <span class="comment">/****************************************************************************</span>
<a name="l00092"></a>00092 <span class="comment"> *</span>
<a name="l00093"></a>00093 <span class="comment"> * Defines &amp; typedefs</span>
<a name="l00094"></a>00094 <span class="comment"> *</span>
<a name="l00095"></a>00095 <span class="comment"> ****************************************************************************/</span>
<a name="l00096"></a>00096 
<a name="l00097"></a>00097 
<a name="l00098"></a>00098 
<a name="l00099"></a>00099 <span class="comment">/****************************************************************************</span>
<a name="l00100"></a>00100 <span class="comment"> *</span>
<a name="l00101"></a>00101 <span class="comment"> * Exported Global Variables</span>
<a name="l00102"></a>00102 <span class="comment"> *</span>
<a name="l00103"></a>00103 <span class="comment"> ****************************************************************************/</span>
<a name="l00104"></a>00104 
<a name="l00105"></a>00105 
<a name="l00106"></a>00106 
<a name="l00107"></a>00107 <span class="comment">/****************************************************************************</span>
<a name="l00108"></a>00108 <span class="comment"> *</span>
<a name="l00109"></a>00109 <span class="comment"> * Class definitions</span>
<a name="l00110"></a>00110 <span class="comment"> *</span>
<a name="l00111"></a>00111 <span class="comment"> ****************************************************************************/</span>
<a name="l00112"></a>00112 
<a name="l00125"></a><a class="code" href="classEchoLink_1_1Directory.html">00125</a> <span class="keyword">class </span><a class="code" href="classEchoLink_1_1Directory.html" title="A class for accessing an EchoLink directory server.">Directory</a> : <span class="keyword">public</span> SigC::Object
<a name="l00126"></a>00126 {
<a name="l00127"></a>00127   <span class="keyword">public</span>:
<a name="l00128"></a><a class="code" href="classEchoLink_1_1Directory.html#abeb4e266ca1aafd363e9b7f963b22ada">00128</a>     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="classEchoLink_1_1Directory.html#abeb4e266ca1aafd363e9b7f963b22ada">MAX_DESCRIPTION_SIZE</a> = 27;
<a name="l00129"></a>00129     
<a name="l00137"></a>00137     <a class="code" href="classEchoLink_1_1Directory.html#a1c51aa0cd62d63ddac022ba364f781d9" title="Constructor.">Directory</a>(<span class="keyword">const</span> std::string&amp; <a class="code" href="classEchoLink_1_1Directory.html#ac233e65be3c7fcb4c1ec3fa95b30fac2" title="Get the name of the remote host.">server</a>, <span class="keyword">const</span> std::string&amp; <a class="code" href="classEchoLink_1_1Directory.html#a210c27d3a339f6602eed7c6a3be7ee3e" title="Get the callsign that is used when logging in to the server.">callsign</a>,
<a name="l00138"></a>00138           <span class="keyword">const</span> std::string&amp; <a class="code" href="classEchoLink_1_1Directory.html#a2b96919c75268f61e193dc703dd06b9f" title="Get the password that is used when logging in to the server.">password</a>, <span class="keyword">const</span> std::string&amp; <a class="code" href="classEchoLink_1_1Directory.html#aac925dbd5f3597237a2adc6b051586b7" title="Get the description that is used when registering in the server.">description</a>=<span class="stringliteral">&quot;&quot;</span>);
<a name="l00139"></a>00139   
<a name="l00143"></a>00143     <a class="code" href="classEchoLink_1_1Directory.html#a7c499940ca5f89ce0164c3173791e902" title="Destructor.">~Directory</a>(<span class="keywordtype">void</span>);
<a name="l00144"></a>00144     
<a name="l00152"></a>00152     <span class="keywordtype">void</span> <a class="code" href="classEchoLink_1_1Directory.html#a0e7a60f04e1e5746958bf0ea4afdefb0" title="Login to the directory server and set status to online.">makeOnline</a>(<span class="keywordtype">void</span>);
<a name="l00153"></a>00153     
<a name="l00161"></a>00161     <span class="keywordtype">void</span> <a class="code" href="classEchoLink_1_1Directory.html#a4843c97d468b056e67bf4187fa8ff041" title="Login to the directory server and set status to busy.">makeBusy</a>(<span class="keywordtype">void</span>);
<a name="l00162"></a>00162     
<a name="l00166"></a>00166     <span class="keywordtype">void</span> <a class="code" href="classEchoLink_1_1Directory.html#a6b76eddc6f4cf3104c5a9f9d1e1d8023" title="Logout from the directory server.">makeOffline</a>(<span class="keywordtype">void</span>);
<a name="l00167"></a>00167     
<a name="l00171"></a><a class="code" href="classEchoLink_1_1Directory.html#a3e8fe9fc0fbefa15ecd15b8d6bd6df65">00171</a>     <span class="keywordtype">void</span> <a class="code" href="classEchoLink_1_1Directory.html#a3e8fe9fc0fbefa15ecd15b8d6bd6df65" title="Refresh the current registration in the directory server.">refreshRegistration</a>(<span class="keywordtype">void</span>) { onRefreshRegistration(0); }
<a name="l00172"></a>00172     
<a name="l00177"></a><a class="code" href="classEchoLink_1_1Directory.html#ae198ae8edf8bedb5f57e5126cff945b1">00177</a>     <a class="code" href="classEchoLink_1_1StationData.html#a1655d3dd8609fadfb3f2eddfd870f684">StationData::Status</a> <a class="code" href="classEchoLink_1_1Directory.html#ae198ae8edf8bedb5f57e5126cff945b1" title="Return the current status of the registration.">status</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> current_status; }
<a name="l00178"></a>00178     
<a name="l00184"></a><a class="code" href="classEchoLink_1_1Directory.html#a93a314733074e1eee85229b00ccf2e06">00184</a>     std::string <a class="code" href="classEchoLink_1_1Directory.html#a93a314733074e1eee85229b00ccf2e06" title="Return the current status of the registration in string representation.">statusStr</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span>
<a name="l00185"></a>00185 <span class="keyword">    </span>{ 
<a name="l00186"></a>00186       <span class="keywordflow">return</span> <a class="code" href="classEchoLink_1_1Directory.html#a93a314733074e1eee85229b00ccf2e06" title="Return the current status of the registration in string representation.">StationData::statusStr</a>(current_status);
<a name="l00187"></a>00187     }
<a name="l00188"></a>00188     
<a name="l00201"></a>00201     <span class="keywordtype">void</span> <a class="code" href="classEchoLink_1_1Directory.html#a2c730c307a8c9b6dedd21dda84c5584e" title="Get the station list from the directory server.">getCalls</a>(<span class="keywordtype">void</span>);
<a name="l00202"></a>00202     
<a name="l00207"></a>00207     <span class="keywordtype">void</span> <a class="code" href="classEchoLink_1_1Directory.html#ad32e3a0e75f628a376990f0b8c4148bd" title="Set the hostname or IP-address of the EchoLink server to use.">setServer</a>(<span class="keyword">const</span> std::string&amp; <a class="code" href="classEchoLink_1_1Directory.html#ac233e65be3c7fcb4c1ec3fa95b30fac2" title="Get the name of the remote host.">server</a>);
<a name="l00208"></a>00208     
<a name="l00213"></a><a class="code" href="classEchoLink_1_1Directory.html#ac233e65be3c7fcb4c1ec3fa95b30fac2">00213</a>     <span class="keyword">const</span> std::string&amp; <a class="code" href="classEchoLink_1_1Directory.html#ac233e65be3c7fcb4c1ec3fa95b30fac2" title="Get the name of the remote host.">server</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> the_server; }
<a name="l00214"></a>00214     
<a name="l00219"></a>00219     <span class="keywordtype">void</span> <a class="code" href="classEchoLink_1_1Directory.html#a7ff7ece81b03a3d964a3907a631d37ef" title="Set the callsign to use when logging in to the server.">setCallsign</a>(<span class="keyword">const</span> std::string&amp; <a class="code" href="classEchoLink_1_1Directory.html#a210c27d3a339f6602eed7c6a3be7ee3e" title="Get the callsign that is used when logging in to the server.">callsign</a>);
<a name="l00220"></a>00220     
<a name="l00225"></a><a class="code" href="classEchoLink_1_1Directory.html#a210c27d3a339f6602eed7c6a3be7ee3e">00225</a>     <span class="keyword">const</span> std::string&amp; <a class="code" href="classEchoLink_1_1Directory.html#a210c27d3a339f6602eed7c6a3be7ee3e" title="Get the callsign that is used when logging in to the server.">callsign</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> the_callsign; }
<a name="l00226"></a>00226     
<a name="l00231"></a>00231     <span class="keywordtype">void</span> <a class="code" href="classEchoLink_1_1Directory.html#aa01eaf1f6d1987d4ff6a6c0ed190d4da" title="Set the password to use when logging in to the server.">setPassword</a>(<span class="keyword">const</span> std::string&amp; <a class="code" href="classEchoLink_1_1Directory.html#a2b96919c75268f61e193dc703dd06b9f" title="Get the password that is used when logging in to the server.">password</a>);
<a name="l00232"></a>00232 
<a name="l00237"></a><a class="code" href="classEchoLink_1_1Directory.html#a2b96919c75268f61e193dc703dd06b9f">00237</a>     <span class="keyword">const</span> std::string&amp; <a class="code" href="classEchoLink_1_1Directory.html#a2b96919c75268f61e193dc703dd06b9f" title="Get the password that is used when logging in to the server.">password</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> the_password; }
<a name="l00238"></a>00238     
<a name="l00247"></a>00247     <span class="keywordtype">void</span> <a class="code" href="classEchoLink_1_1Directory.html#ac316d7debe327af8afe58f1d374ee120" title="Set the description to register in the server.">setDescription</a>(<span class="keyword">const</span> std::string&amp; <a class="code" href="classEchoLink_1_1Directory.html#aac925dbd5f3597237a2adc6b051586b7" title="Get the description that is used when registering in the server.">description</a>);
<a name="l00248"></a>00248 
<a name="l00253"></a><a class="code" href="classEchoLink_1_1Directory.html#aac925dbd5f3597237a2adc6b051586b7">00253</a>     <span class="keyword">const</span> std::string&amp; <a class="code" href="classEchoLink_1_1Directory.html#aac925dbd5f3597237a2adc6b051586b7" title="Get the description that is used when registering in the server.">description</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> the_description; }
<a name="l00254"></a>00254     
<a name="l00263"></a><a class="code" href="classEchoLink_1_1Directory.html#ae80fdbcf80e88674fd50977f8ce92276">00263</a>     <span class="keyword">const</span> std::list&lt;StationData&gt;&amp; <a class="code" href="classEchoLink_1_1Directory.html#ae80fdbcf80e88674fd50977f8ce92276" title="Get a list of all active links.">links</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> the_links; }
<a name="l00264"></a>00264     
<a name="l00273"></a><a class="code" href="classEchoLink_1_1Directory.html#a0e3aa144921e3ce39cb4e21881aa5cf3">00273</a>     <span class="keyword">const</span> std::list&lt;StationData&gt;&amp; <a class="code" href="classEchoLink_1_1Directory.html#a0e3aa144921e3ce39cb4e21881aa5cf3" title="Get a list of all active repeasters.">repeaters</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span>
<a name="l00274"></a>00274 <span class="keyword">    </span>{
<a name="l00275"></a>00275       <span class="keywordflow">return</span> the_repeaters;
<a name="l00276"></a>00276     }
<a name="l00277"></a>00277     
<a name="l00287"></a><a class="code" href="classEchoLink_1_1Directory.html#a72b36dfd960407da0d6ba52f845268cd">00287</a>     <span class="keyword">const</span> std::list&lt;StationData&gt;&amp; <a class="code" href="classEchoLink_1_1Directory.html#a72b36dfd960407da0d6ba52f845268cd" title="Get a list of all active conferences.">conferences</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span>
<a name="l00288"></a>00288 <span class="keyword">    </span>{
<a name="l00289"></a>00289       <span class="keywordflow">return</span> the_conferences;
<a name="l00290"></a>00290     }
<a name="l00291"></a>00291     
<a name="l00296"></a><a class="code" href="classEchoLink_1_1Directory.html#a9342880ea51943bb989c4c808709e7bc">00296</a>     <span class="keyword">const</span> std::list&lt;StationData&gt;&amp; <a class="code" href="classEchoLink_1_1Directory.html#a9342880ea51943bb989c4c808709e7bc" title="Get a list of all active &amp;quot;normal&amp;quot; stations.">stations</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> the_stations; }
<a name="l00297"></a>00297     
<a name="l00306"></a><a class="code" href="classEchoLink_1_1Directory.html#a9d806a5896ba94c6cb41ab46fb3a2357">00306</a>     <span class="keyword">const</span> std::string&amp; <a class="code" href="classEchoLink_1_1Directory.html#a9d806a5896ba94c6cb41ab46fb3a2357" title="Get the message returned by the directory server.">message</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> the_message; }
<a name="l00307"></a>00307     
<a name="l00314"></a>00314     <span class="keyword">const</span> <a class="code" href="classEchoLink_1_1StationData.html" title="A class for representing data for a station.">StationData</a> *<a class="code" href="classEchoLink_1_1Directory.html#a6f36016a308bef628dd2f53630362c6c" title="Find a callsign in the station list.">findCall</a>(<span class="keyword">const</span> std::string&amp; call);
<a name="l00315"></a>00315     
<a name="l00322"></a>00322     <span class="keyword">const</span> <a class="code" href="classEchoLink_1_1StationData.html" title="A class for representing data for a station.">StationData</a> *<a class="code" href="classEchoLink_1_1Directory.html#aef8fd5e557cba1fcae26768aced7ad7b" title="Find a station in the station list given a station ID.">findStation</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);
<a name="l00323"></a>00323 
<a name="l00334"></a>00334     <span class="keywordtype">void</span> <a class="code" href="classEchoLink_1_1Directory.html#a85e4eca3689e8c3244044f9c4de2a567" title="Find stations from their mapping code.">findStationsByCode</a>(std::vector&lt;StationData&gt; &amp;stns,
<a name="l00335"></a>00335                     <span class="keyword">const</span> std::string&amp; code, <span class="keywordtype">bool</span> exact=<span class="keyword">true</span>);
<a name="l00336"></a>00336     
<a name="l00341"></a><a class="code" href="classEchoLink_1_1Directory.html#a2fbe97870f5f6b66e46c6c45912396aa">00341</a>     SigC::Signal1&lt;void, StationData::Status&gt; <a class="code" href="classEchoLink_1_1Directory.html#a2fbe97870f5f6b66e46c6c45912396aa" title="A signal that is emitted when the registration status changes.">statusChanged</a>;
<a name="l00342"></a>00342     
<a name="l00346"></a><a class="code" href="classEchoLink_1_1Directory.html#aec778842f843b8c30c013749be3e57ea">00346</a>     SigC::Signal0&lt;void&gt; <a class="code" href="classEchoLink_1_1Directory.html#aec778842f843b8c30c013749be3e57ea" title="A signal that is emitted when the station list has been updated.">stationListUpdated</a>;
<a name="l00347"></a>00347     
<a name="l00352"></a><a class="code" href="classEchoLink_1_1Directory.html#a5dc519d8d71c06e3362ef6c8a3947cda">00352</a>     SigC::Signal1&lt;void, const std::string&amp;&gt; <a class="code" href="classEchoLink_1_1Directory.html#a5dc519d8d71c06e3362ef6c8a3947cda" title="A signal that is emitted when an error occurs.">error</a>;
<a name="l00353"></a>00353     
<a name="l00354"></a>00354   <span class="keyword">protected</span>:
<a name="l00355"></a>00355     
<a name="l00356"></a>00356   <span class="keyword">private</span>:
<a name="l00357"></a>00357     <span class="keyword">typedef</span> <span class="keyword">enum</span>
<a name="l00358"></a>00358     {
<a name="l00359"></a>00359       CS_WAITING_FOR_START, CS_WAITING_FOR_COUNT, CS_WAITING_FOR_CALL,
<a name="l00360"></a>00360       CS_WAITING_FOR_DATA,  CS_WAITING_FOR_ID,    CS_WAITING_FOR_IP,
<a name="l00361"></a>00361       CS_WAITING_FOR_END,   CS_IDLE,              CS_WAITING_FOR_OK
<a name="l00362"></a>00362     } ComState;
<a name="l00363"></a>00363     
<a name="l00364"></a>00364     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> DIRECTORY_SERVER_PORT      = 5200;
<a name="l00365"></a>00365     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> REGISTRATION_REFRESH_TIME  = 5 * 60 * 1000; <span class="comment">// 5 minutes</span>
<a name="l00366"></a>00366     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> CMD_TIMEOUT                = 120 * 1000; <span class="comment">// 2 minutes</span>
<a name="l00367"></a>00367     
<a name="l00368"></a>00368     ComState                com_state;
<a name="l00369"></a>00369     std::string             the_server;
<a name="l00370"></a>00370     std::string             the_callsign;
<a name="l00371"></a>00371     std::string             the_password;
<a name="l00372"></a>00372     std::string             the_description;
<a name="l00373"></a>00373     std::list&lt;StationData&gt;  the_links;
<a name="l00374"></a>00374     std::list&lt;StationData&gt;  the_repeaters;
<a name="l00375"></a>00375     std::list&lt;StationData&gt;  the_stations;
<a name="l00376"></a>00376     std::list&lt;StationData&gt;  the_conferences;
<a name="l00377"></a>00377     std::string             the_message;
<a name="l00378"></a>00378     std::string             error_str;
<a name="l00379"></a>00379     
<a name="l00380"></a>00380     <span class="keywordtype">int</span>                     get_call_cnt;
<a name="l00381"></a>00381     <a class="code" href="classEchoLink_1_1StationData.html" title="A class for representing data for a station.">StationData</a>             get_call_entry;
<a name="l00382"></a>00382     std::list&lt;StationData&gt;  get_call_list;
<a name="l00383"></a>00383     
<a name="l00384"></a>00384     Async::TcpClient *      ctrl_con;
<a name="l00385"></a>00385     std::list&lt;Cmd&gt;          cmd_queue;
<a name="l00386"></a>00386     <a class="code" href="classEchoLink_1_1StationData.html#a1655d3dd8609fadfb3f2eddfd870f684">StationData::Status</a>     the_status;
<a name="l00387"></a>00387     Async::Timer *          reg_refresh_timer;
<a name="l00388"></a>00388     <a class="code" href="classEchoLink_1_1StationData.html#a1655d3dd8609fadfb3f2eddfd870f684">StationData::Status</a>     current_status;
<a name="l00389"></a>00389     <span class="keywordtype">bool</span>                    server_changed;
<a name="l00390"></a>00390     Async::Timer *          cmd_timer;
<a name="l00391"></a>00391     
<a name="l00392"></a>00392     <a class="code" href="classEchoLink_1_1Directory.html#a1c51aa0cd62d63ddac022ba364f781d9" title="Constructor.">Directory</a>(<span class="keyword">const</span> <a class="code" href="classEchoLink_1_1Directory.html" title="A class for accessing an EchoLink directory server.">Directory</a>&amp;);
<a name="l00393"></a>00393     <a class="code" href="classEchoLink_1_1Directory.html" title="A class for accessing an EchoLink directory server.">Directory</a>&amp; operator =(<span class="keyword">const</span> <a class="code" href="classEchoLink_1_1Directory.html" title="A class for accessing an EchoLink directory server.">Directory</a>&amp;);
<a name="l00394"></a>00394     
<a name="l00395"></a>00395     <span class="keywordtype">void</span> printBuf(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">int</span> len);
<a name="l00396"></a>00396     <span class="keywordtype">int</span> handleCallList(<span class="keywordtype">char</span> *buf, <span class="keywordtype">int</span> len);
<a name="l00397"></a>00397     
<a name="l00398"></a>00398     <span class="keywordtype">void</span> ctrlSockConnected(<span class="keywordtype">void</span>);
<a name="l00399"></a>00399     <span class="keywordtype">void</span> ctrlSockDisconnected(Async::TcpConnection *con,
<a name="l00400"></a>00400             Async::TcpClient::DisconnectReason reason);
<a name="l00401"></a>00401     <span class="keywordtype">int</span> ctrlSockDataReceived(Async::TcpConnection *con, <span class="keywordtype">void</span> *ptr, <span class="keywordtype">int</span> len);
<a name="l00402"></a>00402     <span class="keywordtype">void</span> sendNextCmd(<span class="keywordtype">void</span>);
<a name="l00403"></a>00403     <span class="keywordtype">void</span> addCmdToQueue(Cmd cmd);
<a name="l00404"></a>00404     <span class="keywordtype">void</span> setStatus(<a class="code" href="classEchoLink_1_1StationData.html#a1655d3dd8609fadfb3f2eddfd870f684">StationData::Status</a> new_status);
<a name="l00405"></a>00405     <span class="keywordtype">void</span> createClientObject(<span class="keywordtype">void</span>);
<a name="l00406"></a>00406     <span class="keywordtype">void</span> onRefreshRegistration(Async::Timer *timer);
<a name="l00407"></a>00407     <span class="keywordtype">void</span> onCmdTimeout(Async::Timer *timer);
<a name="l00408"></a>00408     <span class="keywordtype">bool</span> stationCodeEq(<span class="keyword">const</span> <a class="code" href="classEchoLink_1_1StationData.html" title="A class for representing data for a station.">StationData</a>&amp; stn, std::string code, <span class="keywordtype">bool</span> exact);
<a name="l00409"></a>00409 
<a name="l00410"></a>00410 };  <span class="comment">/* class Directory */</span>
<a name="l00411"></a>00411 
<a name="l00412"></a>00412 
<a name="l00413"></a>00413 std::ostream&amp; <a class="code" href="namespaceEchoLink.html#a91106e25ae960b2b7b432790c19204f3">operator&lt;&lt;</a>(std::ostream&amp; os, <span class="keyword">const</span> StationData&amp; station);
<a name="l00414"></a>00414 
<a name="l00415"></a>00415 
<a name="l00416"></a>00416 } <span class="comment">/* namespace */</span>
<a name="l00417"></a>00417 
<a name="l00418"></a>00418 
<a name="l00419"></a>00419 <span class="preprocessor">#endif </span><span class="comment">/* ECHOLINK_DIRECTORY_INCLUDED */</span>
<a name="l00420"></a>00420 
<a name="l00421"></a>00421 
<a name="l00422"></a>00422 
<a name="l00423"></a>00423 <span class="comment">/*</span>
<a name="l00424"></a>00424 <span class="comment"> * This file has not been truncated</span>
<a name="l00425"></a>00425 <span class="comment"> */</span>
<a name="l00426"></a>00426 
</pre></div></div>
<hr class="footer"/><address style="text-align: right;"><small>Generated by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address>
</body>
</html>