<!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 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 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 <sigc++/sigc++.h></span> <a name="l00047"></a>00047 <a name="l00048"></a>00048 <span class="preprocessor">#include <string></span> <a name="l00049"></a>00049 <span class="preprocessor">#include <list></span> <a name="l00050"></a>00050 <span class="preprocessor">#include <vector></span> <a name="l00051"></a>00051 <span class="preprocessor">#include <iostream></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 <AsyncTcpClient.h></span> <a name="l00061"></a>00061 <span class="preprocessor">#include <AsyncTimer.h></span> <a name="l00062"></a>00062 <span class="preprocessor">#include <<a class="code" href="EchoLinkStationData_8h.html" title="Contains a class that represent station data.">EchoLinkStationData.h</a>></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 & 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& <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& <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& <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& <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">""</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& <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& <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& <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& <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& <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& <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& <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& <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<StationData>& <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<StationData>& <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<StationData>& <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<StationData>& <a class="code" href="classEchoLink_1_1Directory.html#a9342880ea51943bb989c4c808709e7bc" title="Get a list of all active &quot;normal&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& <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& 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<StationData> &stns, <a name="l00335"></a>00335 <span class="keyword">const</span> std::string& 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<void, StationData::Status> <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<void> <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<void, const std::string&> <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<StationData> the_links; <a name="l00374"></a>00374 std::list<StationData> the_repeaters; <a name="l00375"></a>00375 std::list<StationData> the_stations; <a name="l00376"></a>00376 std::list<StationData> 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<StationData> get_call_list; <a name="l00383"></a>00383 <a name="l00384"></a>00384 Async::TcpClient * ctrl_con; <a name="l00385"></a>00385 std::list<Cmd> 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>&); <a name="l00393"></a>00393 <a class="code" href="classEchoLink_1_1Directory.html" title="A class for accessing an EchoLink directory server.">Directory</a>& 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>&); <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>& 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& <a class="code" href="namespaceEchoLink.html#a91106e25ae960b2b7b432790c19204f3">operator<<</a>(std::ostream& os, <span class="keyword">const</span> StationData& 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 <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>