Sophie

Sophie

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

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_demo.cpp</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><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>
<div class="contents">
<h1>EchoLinkDirectory_demo.cpp</h1><p>An example of how to use the <a class="el" href="classEchoLink_1_1Directory.html" title="A class for accessing an EchoLink directory server.">EchoLink::Directory</a> class</p>
<div class="fragment"><pre class="fragment"><span class="preprocessor">#include &lt;iostream&gt;</span>
<span class="preprocessor">#include &lt;iomanip&gt;</span>
<span class="preprocessor">#include &lt;cstdlib&gt;</span>
<span class="preprocessor">#include &lt;AsyncCppApplication.h&gt;</span>
<span class="preprocessor">#include &lt;<a class="code" href="EchoLinkDirectory_8h.html" title="Contains a class to access an EchoLink directory server.">EchoLinkDirectory.h</a>&gt;</span>

<span class="keyword">using namespace </span>std;
<span class="keyword">using namespace </span>Async;
<span class="keyword">using namespace </span>EchoLink;

<span class="keyword">class </span>MyClass : <span class="keyword">public</span> SigC::Object
{
  <span class="keyword">public</span>:
    MyClass(<span class="keyword">const</span> <span class="keywordtype">string</span>&amp; mycall, <span class="keyword">const</span> <span class="keywordtype">string</span>&amp; mypass) : mycall(mycall)
    {
      dir = <span class="keyword">new</span> <a name="_a0"></a><a class="code" href="classEchoLink_1_1Directory.html" title="A class for accessing an EchoLink directory server.">Directory</a>(<span class="stringliteral">&quot;server1.echolink.org&quot;</span>, mycall, mypass, <span class="stringliteral">&quot;Testing...&quot;</span>);
      dir-&gt;statusChanged.connect(slot(*<span class="keyword">this</span>, &amp;MyClass::onStatusChanged));
      dir-&gt;stationListUpdated.connect(
          slot(*<span class="keyword">this</span>, &amp;MyClass::onStationListUpdated));
      dir-&gt;error.connect(slot(*<span class="keyword">this</span>, &amp;MyClass::onError));
      dir-&gt;makeBusy();  <span class="comment">// Set status busy so noone think we are really online</span>
    }
    
    ~MyClass(<span class="keywordtype">void</span>)
    {
      <span class="keyword">delete</span> dir;
    }
    
  <span class="keyword">private</span>:
    <span class="keywordtype">string</span>      mycall;
    <a class="code" href="classEchoLink_1_1Directory.html" title="A class for accessing an EchoLink directory server.">Directory</a> * dir;
    
    <span class="keywordtype">void</span> onStatusChanged(<a class="code" href="classEchoLink_1_1StationData.html#a1655d3dd8609fadfb3f2eddfd870f684">StationData::Status</a> status)
    {
      cerr &lt;&lt; <span class="stringliteral">&quot;Status changed to &quot;</span> &lt;&lt; StationData::statusStr(status) &lt;&lt; endl;
      <span class="keywordflow">if</span> (status == StationData::STAT_BUSY)
      {
        dir-&gt;getCalls();
      }
      <span class="keywordflow">else</span>
      {
        Application::app().quit();
      }
    }
    
    <span class="keywordtype">void</span> onStationListUpdated(<span class="keywordtype">void</span>)
    {
      <span class="keyword">const</span> list&lt;StationData&gt;&amp; stations = dir-&gt;stations();
      list&lt;StationData&gt;::const_iterator it;
      <span class="keywordflow">for</span> (it = stations.begin(); it != stations.end(); ++it)
      {
        cerr &lt;&lt; *it &lt;&lt; endl;
      }
      
      cerr &lt;&lt; endl &lt;&lt; <span class="stringliteral">&quot;Message:&quot;</span> &lt;&lt; endl;
      cerr &lt;&lt; dir-&gt;message() &lt;&lt; endl;
      
      <span class="keyword">const</span> <a name="_a1"></a><a class="code" href="classEchoLink_1_1StationData.html" title="A class for representing data for a station.">StationData</a> *mydata = dir-&gt;findCall(mycall);
      cerr &lt;&lt; endl &lt;&lt; <span class="stringliteral">&quot;My station data:&quot;</span> &lt;&lt; endl &lt;&lt; *mydata &lt;&lt; endl;
      dir-&gt;makeOffline();
    }
    
    <span class="keywordtype">void</span> onError(<span class="keyword">const</span> <span class="keywordtype">string</span>&amp; msg)
    {
      cerr &lt;&lt; <span class="stringliteral">&quot;ERROR: &quot;</span> &lt;&lt; msg &lt;&lt; endl;
      Application::app().quit();
    }
};

<span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)
{
  CppApplication app; <span class="comment">// or QtApplication</span>
  <span class="keywordflow">if</span> (argc &lt; 3)
  {
    cerr &lt;&lt; <span class="stringliteral">&quot;Usage: EchoLinkDispatcher_demo &lt;callsign&gt; &lt;password&gt;\n&quot;</span>;
    exit(1);
  }
  MyClass my_class(argv[1], argv[2]);
  app.exec();
}
</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>