Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > eeacaa4eb55fa544d622989e42fc27b1 > files > 536

libyate-devel-2.0.0-2mdv2009.1.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Yate: SignallingCallControl Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<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 class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="namespaceTelEngine.html">TelEngine</a>::<a class="el" href="classTelEngine_1_1SignallingCallControl.html">SignallingCallControl</a>
  </div>
</div>
<div class="contents">
<h1>SignallingCallControl Class Reference</h1><!-- doxytag: class="TelEngine::SignallingCallControl" --><!-- doxytag: inherits="TelEngine::Mutex" -->Abstract phone call signalling.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="yatesig_8h-source.html">yatesig.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for SignallingCallControl:</div>
<div class="dynsection">

<p><center><img src="classTelEngine_1_1SignallingCallControl.png" usemap="#SignallingCallControl_map" border="0" alt=""></center>
<map name="SignallingCallControl_map">
<area href="classTelEngine_1_1Mutex.html" alt="Mutex" shape="rect" coords="210,0,340,24">
<area href="classTelEngine_1_1ISDNQ931.html" alt="ISDNQ931" shape="rect" coords="0,112,130,136">
<area href="classTelEngine_1_1ISDNQ931Monitor.html" alt="ISDNQ931Monitor" shape="rect" coords="140,112,270,136">
<area href="classTelEngine_1_1SS7ISUP.html" alt="SS7ISUP" shape="rect" coords="280,112,410,136">
<area href="classTelEngine_1_1SS7TUP.html" alt="SS7TUP" shape="rect" coords="420,112,550,136">
<area href="classTelEngine_1_1SS7BICC.html" alt="SS7BICC" shape="rect" coords="280,168,410,192">
</map>
</div>

<p>
<a href="classTelEngine_1_1SignallingCallControl-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#abe043c32c4adef83ffefaa62bb8eecf">SignallingCallControl</a> (const <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> &amp;params, const char *msgPrefix=0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#6ca8251d029bd14a302ff45d606f4827">~SignallingCallControl</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#7f69920979213c25c2924c19332a930c">setExiting</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#2f7b9339e5818d69f9e4a3c438e6adc8">exiting</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#8af5038360da3cdd202091591ffde915">verify</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classTelEngine_1_1String.html">String</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#cdeb3057f22160702232b12fa264635b">msgPrefix</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1SignallingCircuitGroup.html">SignallingCircuitGroup</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#93a8fde0a8dd54b3af9537643fefe599">circuits</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#85ee8c9a08b41ccfcee5305575f81f89">attach</a> (<a class="el" href="classTelEngine_1_1SignallingCircuitGroup.html">SignallingCircuitGroup</a> *circuits)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#4a2d47bffd3673d567c072f9987231e7">reserveCircuit</a> (<a class="el" href="classTelEngine_1_1SignallingCircuit.html">SignallingCircuit</a> *&amp;cic, const char *range=0, int checkLock=-1, const <a class="el" href="classTelEngine_1_1String.html">String</a> *list=0, bool mandatory=true, bool reverseRestrict=false)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#bb7bbe1cb68f7307e66f94d52b62b2ec">releaseCircuit</a> (<a class="el" href="classTelEngine_1_1SignallingCircuit.html">SignallingCircuit</a> *&amp;cic, bool sync=false)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#a695be538b11f2e450b03cb968002d27">releaseCircuit</a> (unsigned int code, bool sync=false)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#58f3f1c466132efae7d50d4fc54154a2">cleanup</a> (const char *reason=&quot;offline&quot;)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classTelEngine_1_1SignallingEvent.html">SignallingEvent</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#60b984499483882d3ed71e6888a79201">getEvent</a> (const <a class="el" href="classTelEngine_1_1Time.html">Time</a> &amp;when)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classTelEngine_1_1SignallingCall.html">SignallingCall</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#fac516ff786fca04996485785b03f8bf">call</a> (<a class="el" href="classTelEngine_1_1SignallingMessage.html">SignallingMessage</a> *msg, <a class="el" href="classTelEngine_1_1String.html">String</a> &amp;reason)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#46a1c6aa81129a921c03f70573a08831">buildVerifyEvent</a> (<a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> &amp;params)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#9e5c784c528f39ad68c680587539d04a">setDumper</a> (<a class="el" href="classTelEngine_1_1SignallingDumper.html">SignallingDumper</a> *dumper=0)</td></tr>

<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#4bccabc12b0f739c91232cb0a969bcae">strategy</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#9123b1217f53b1563e5f1cafd86c140b">processEvent</a> (<a class="el" href="classTelEngine_1_1SignallingEvent.html">SignallingEvent</a> *event)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classTelEngine_1_1SignallingEvent.html">SignallingEvent</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#e97dc4c68dc04811ec8b0f92bca22e43">processCircuitEvent</a> (<a class="el" href="classTelEngine_1_1SignallingCircuitEvent.html">SignallingCircuitEvent</a> &amp;event, <a class="el" href="classTelEngine_1_1SignallingCall.html">SignallingCall</a> *call=0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#6562d88987a3519ce4859d9f7e756943">clearCalls</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#fc81ec2a414dfbc93c0ba9a9426ae487">removeCall</a> (<a class="el" href="classTelEngine_1_1SignallingCall.html">SignallingCall</a> *call, bool del=false)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#8cfd57608770166158479ca246b38c80">dump</a> (const <a class="el" href="classTelEngine_1_1DataBlock.html">DataBlock</a> &amp;data, bool sent=false, int link=0)</td></tr>

<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1ObjList.html">ObjList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#ffaea14f53611dfe901fa973753127a7">m_calls</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1String.html">String</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#490a5779edc6c0c0eb19d1e72e06c29e">m_msgPrefix</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#cd869f7a828638c5ca2040a8dc528394">m_verifyEvent</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1SignallingTimer.html">SignallingTimer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingCallControl.html#af291201e1a5ec5ab52f0fc0697ed7d8">m_verifyTimer</a></td></tr>

<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="eac0b3c62db296b5e3ec8ee954489867"></a><!-- doxytag: member="TelEngine::SignallingCallControl::SignallingCall" ref="eac0b3c62db296b5e3ec8ee954489867" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><b>SignallingCall</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="537728a4b3c076d17843a7ec8f5f6e41"></a><!-- doxytag: member="TelEngine::SignallingCallControl::SS7ISUPCall" ref="537728a4b3c076d17843a7ec8f5f6e41" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><b>SS7ISUPCall</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0d3631d9e9ddb61bd3c3b035e0db2da3"></a><!-- doxytag: member="TelEngine::SignallingCallControl::ISDNQ931Call" ref="0d3631d9e9ddb61bd3c3b035e0db2da3" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><b>ISDNQ931Call</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="cf4a56399f99494c40dfc4a54b503ba1"></a><!-- doxytag: member="TelEngine::SignallingCallControl::ISDNQ931CallMonitor" ref="cf4a56399f99494c40dfc4a54b503ba1" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><b>ISDNQ931CallMonitor</b></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Abstract phone call signalling. 
<p>
Interface of protocol independent signalling for phone calls <hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="abe043c32c4adef83ffefaa62bb8eecf"></a><!-- doxytag: member="TelEngine::SignallingCallControl::SignallingCallControl" ref="abe043c32c4adef83ffefaa62bb8eecf" args="(const NamedList &amp;params, const char *msgPrefix=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTelEngine_1_1SignallingCallControl.html">SignallingCallControl</a>           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>params</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>msgPrefix</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constructor <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>params</em>&nbsp;</td><td>Call controller's parameters </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msgPrefix</em>&nbsp;</td><td>Optional prefix to be added before a decoded message's parameters or retrive message parameters from a list </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="6ca8251d029bd14a302ff45d606f4827"></a><!-- doxytag: member="TelEngine::SignallingCallControl::~SignallingCallControl" ref="6ca8251d029bd14a302ff45d606f4827" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual ~<a class="el" href="classTelEngine_1_1SignallingCallControl.html">SignallingCallControl</a>           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Destructor 
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="85ee8c9a08b41ccfcee5305575f81f89"></a><!-- doxytag: member="TelEngine::SignallingCallControl::attach" ref="85ee8c9a08b41ccfcee5305575f81f89" args="(SignallingCircuitGroup *circuits)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void attach           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1SignallingCircuitGroup.html">SignallingCircuitGroup</a> *&nbsp;</td>
          <td class="paramname"> <em>circuits</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Attach/detach a circuit group to this call controller. Set group's allocation strategy. Set locked flags for all circuits belonging to the attached circuit group. Cleanup controller before detaching the group or attaching a new one This method is thread safe <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>circuits</em>&nbsp;</td><td>Pointer to the <a class="el" href="classTelEngine_1_1SignallingCircuitGroup.html" title="Group of data circuits used by signalling.">SignallingCircuitGroup</a> to attach. 0 to detach and force a cleanup </td></tr>
  </table>
</dl>

<p>Referenced by <a class="el" href="yatesig_8h-source.html#l07760">ISDNQ931Monitor::destruct()</a>, and <a class="el" href="yatesig_8h-source.html#l07497">ISDNQ931::destruct()</a>.</p>

</div>
</div><p>
<a class="anchor" name="46a1c6aa81129a921c03f70573a08831"></a><!-- doxytag: member="TelEngine::SignallingCallControl::buildVerifyEvent" ref="46a1c6aa81129a921c03f70573a08831" args="(NamedList &amp;params)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void buildVerifyEvent           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>params</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Build the parameters of a Verify event <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>params</em>&nbsp;</td><td>The list of parameters to fill </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="fac516ff786fca04996485785b03f8bf"></a><!-- doxytag: member="TelEngine::SignallingCallControl::call" ref="fac516ff786fca04996485785b03f8bf" args="(SignallingMessage *msg, String &amp;reason)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classTelEngine_1_1SignallingCall.html">SignallingCall</a>* call           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1SignallingMessage.html">SignallingMessage</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1String.html">String</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>reason</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create an outgoing call. Send a NewCall event with the given msg parameter <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>Call parameters </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reason</em>&nbsp;</td><td>Failure reason if any </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Referenced <a class="el" href="classTelEngine_1_1SignallingCall.html" title="Abstract single phone call.">SignallingCall</a> pointer on success or 0 on failure </dd></dl>

<p>Reimplemented in <a class="el" href="classTelEngine_1_1SS7ISUP.html#fac516ff786fca04996485785b03f8bf">SS7ISUP</a>, and <a class="el" href="classTelEngine_1_1ISDNQ931.html#9191e2cfe6d70e7209c925d9f26e8a7f">ISDNQ931</a>.</p>

</div>
</div><p>
<a class="anchor" name="93a8fde0a8dd54b3af9537643fefe599"></a><!-- doxytag: member="TelEngine::SignallingCallControl::circuits" ref="93a8fde0a8dd54b3af9537643fefe599" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTelEngine_1_1SignallingCircuitGroup.html">SignallingCircuitGroup</a>* circuits           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the circuit group attached to this call controller <dl class="return" compact><dt><b>Returns:</b></dt><dd>The circuit group attached to this call controller </dd></dl>

</div>
</div><p>
<a class="anchor" name="58f3f1c466132efae7d50d4fc54154a2"></a><!-- doxytag: member="TelEngine::SignallingCallControl::cleanup" ref="58f3f1c466132efae7d50d4fc54154a2" args="(const char *reason=&quot;offline&quot;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void cleanup           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>reason</em> = <code>&quot;offline&quot;</code>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Cleanup <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>reason</em>&nbsp;</td><td>Cleanup reason </td></tr>
  </table>
</dl>

<p>Reimplemented in <a class="el" href="classTelEngine_1_1SS7ISUP.html#58f3f1c466132efae7d50d4fc54154a2">SS7ISUP</a>, <a class="el" href="classTelEngine_1_1ISDNQ931.html#58f3f1c466132efae7d50d4fc54154a2">ISDNQ931</a>, and <a class="el" href="classTelEngine_1_1ISDNQ931Monitor.html#58f3f1c466132efae7d50d4fc54154a2">ISDNQ931Monitor</a>.</p>

</div>
</div><p>
<a class="anchor" name="6562d88987a3519ce4859d9f7e756943"></a><!-- doxytag: member="TelEngine::SignallingCallControl::clearCalls" ref="6562d88987a3519ce4859d9f7e756943" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void clearCalls           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Clear call list 
</div>
</div><p>
<a class="anchor" name="8cfd57608770166158479ca246b38c80"></a><!-- doxytag: member="TelEngine::SignallingCallControl::dump" ref="8cfd57608770166158479ca246b38c80" args="(const DataBlock &amp;data, bool sent=false, int link=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool dump           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classTelEngine_1_1DataBlock.html">DataBlock</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>sent</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>link</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Dump data if the dumper is valid This method is thread safe <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>Buffer to dump </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sent</em>&nbsp;</td><td>True if data is being sent, false if is being received </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>link</em>&nbsp;</td><td>Link number (relevant to MTP2 only) </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True if the data was dumped successfully </dd></dl>

<p>References <a class="el" href="yateclass_8h-source.html#l02544">DataBlock::data()</a>, and <a class="el" href="yateclass_8h-source.html#l02558">DataBlock::length()</a>.</p>

</div>
</div><p>
<a class="anchor" name="2f7b9339e5818d69f9e4a3c438e6adc8"></a><!-- doxytag: member="TelEngine::SignallingCallControl::exiting" ref="2f7b9339e5818d69f9e4a3c438e6adc8" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool exiting           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get exiting flag <dl class="return" compact><dt><b>Returns:</b></dt><dd>The exiting flag </dd></dl>

</div>
</div><p>
<a class="anchor" name="60b984499483882d3ed71e6888a79201"></a><!-- doxytag: member="TelEngine::SignallingCallControl::getEvent" ref="60b984499483882d3ed71e6888a79201" args="(const Time &amp;when)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classTelEngine_1_1SignallingEvent.html">SignallingEvent</a>* getEvent           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classTelEngine_1_1Time.html">Time</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>when</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Iterate through the call list to get an event <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>when</em>&nbsp;</td><td>The current time </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><a class="el" href="classTelEngine_1_1SignallingEvent.html" title="A single signalling related event.">SignallingEvent</a> pointer or 0 if no events </dd></dl>

</div>
</div><p>
<a class="anchor" name="cdeb3057f22160702232b12fa264635b"></a><!-- doxytag: member="TelEngine::SignallingCallControl::msgPrefix" ref="cdeb3057f22160702232b12fa264635b" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classTelEngine_1_1String.html">String</a>&amp; msgPrefix           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the prefix used by this call controller when decoding message parameters or retrive message parameters from a list <dl class="return" compact><dt><b>Returns:</b></dt><dd><a class="el" href="classTelEngine_1_1Message.html" title="A message container class.">Message</a> parameters prefix used by this call controller </dd></dl>

</div>
</div><p>
<a class="anchor" name="e97dc4c68dc04811ec8b0f92bca22e43"></a><!-- doxytag: member="TelEngine::SignallingCallControl::processCircuitEvent" ref="e97dc4c68dc04811ec8b0f92bca22e43" args="(SignallingCircuitEvent &amp;event, SignallingCall *call=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classTelEngine_1_1SignallingEvent.html">SignallingEvent</a>* processCircuitEvent           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1SignallingCircuitEvent.html">SignallingCircuitEvent</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>event</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1SignallingCall.html">SignallingCall</a> *&nbsp;</td>
          <td class="paramname"> <em>call</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Process an event received from a non-reserved circuit <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>event</em>&nbsp;</td><td>The event </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>call</em>&nbsp;</td><td>Optional signalling call whose circuit generated the event </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Signalling event pointer or 0 </dd></dl>

<p>Reimplemented in <a class="el" href="classTelEngine_1_1SS7ISUP.html#e97dc4c68dc04811ec8b0f92bca22e43">SS7ISUP</a>.</p>

</div>
</div><p>
<a class="anchor" name="9123b1217f53b1563e5f1cafd86c140b"></a><!-- doxytag: member="TelEngine::SignallingCallControl::processEvent" ref="9123b1217f53b1563e5f1cafd86c140b" args="(SignallingEvent *event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool processEvent           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1SignallingEvent.html">SignallingEvent</a> *&nbsp;</td>
          <td class="paramname"> <em>event</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Process an event received from a call. This will give to derived classes an opportunity to intercept events generated by their calls <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>event</em>&nbsp;</td><td>The event </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True if the event was processed by the controller. False to deliver the event to the requestor </dd></dl>

</div>
</div><p>
<a class="anchor" name="a695be538b11f2e450b03cb968002d27"></a><!-- doxytag: member="TelEngine::SignallingCallControl::releaseCircuit" ref="a695be538b11f2e450b03cb968002d27" args="(unsigned int code, bool sync=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool releaseCircuit           </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>sync</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initiate a release of a circuit from the attached group This method is thread safe <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>code</em>&nbsp;</td><td>The circuit's code </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sync</em>&nbsp;</td><td>Synchronous release requested </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True if the circuit release was initiated </dd></dl>

</div>
</div><p>
<a class="anchor" name="bb7bbe1cb68f7307e66f94d52b62b2ec"></a><!-- doxytag: member="TelEngine::SignallingCallControl::releaseCircuit" ref="bb7bbe1cb68f7307e66f94d52b62b2ec" args="(SignallingCircuit *&amp;cic, bool sync=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool releaseCircuit           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1SignallingCircuit.html">SignallingCircuit</a> *&amp;&nbsp;</td>
          <td class="paramname"> <em>cic</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>sync</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initiate a release of a circuit. Set cic to 0. This method is thread safe <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cic</em>&nbsp;</td><td>The circuit to release </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sync</em>&nbsp;</td><td>Synchronous release requested </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True if the circuit release was initiated </dd></dl>

</div>
</div><p>
<a class="anchor" name="fc81ec2a414dfbc93c0ba9a9426ae487"></a><!-- doxytag: member="TelEngine::SignallingCallControl::removeCall" ref="fc81ec2a414dfbc93c0ba9a9426ae487" args="(SignallingCall *call, bool del=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void removeCall           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1SignallingCall.html">SignallingCall</a> *&nbsp;</td>
          <td class="paramname"> <em>call</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>del</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove a call from list <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>call</em>&nbsp;</td><td>The call to remove </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>del</em>&nbsp;</td><td>True to delete it. False to remove without destruct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="4a2d47bffd3673d567c072f9987231e7"></a><!-- doxytag: member="TelEngine::SignallingCallControl::reserveCircuit" ref="4a2d47bffd3673d567c072f9987231e7" args="(SignallingCircuit *&amp;cic, const char *range=0, int checkLock=&#45;1, const String *list=0, bool mandatory=true, bool reverseRestrict=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool reserveCircuit           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1SignallingCircuit.html">SignallingCircuit</a> *&amp;&nbsp;</td>
          <td class="paramname"> <em>cic</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>range</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>checkLock</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classTelEngine_1_1String.html">String</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>mandatory</em> = <code>true</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>reverseRestrict</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Reserve a circuit for later use. If the circuit list is 0, try to reserve a circuit from the group using its strategy. Release the given circuit before trying to reserve it. Set cic to 0 on failure. This method is thread safe <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cic</em>&nbsp;</td><td>Destination circuit </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>checkLock</em>&nbsp;</td><td><a class="el" href="classTelEngine_1_1Lock.html" title="Ephemeral mutex locking object.">Lock</a> flags to check. If the given lock flags are set, reservation will fail </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>range</em>&nbsp;</td><td>Optional range name to restrict circuit reservation within attached circuit group </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>Comma separated list of circuits </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mandatory</em>&nbsp;</td><td>The list is mandatory. If false and none of the circuits in the list are available, try to reserve a free one. Ignored if list is 0 </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reverseRestrict</em>&nbsp;</td><td>Used when failed to reserve circuit from list. If true and the circuit allocation strategy includes any restriction (odd or even) use the opposite restriction to reserve a circuit. Ignored if mandatory is true </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>False if the operation failed </dd></dl>

</div>
</div><p>
<a class="anchor" name="9e5c784c528f39ad68c680587539d04a"></a><!-- doxytag: member="TelEngine::SignallingCallControl::setDumper" ref="9e5c784c528f39ad68c680587539d04a" args="(SignallingDumper *dumper=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void setDumper           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1SignallingDumper.html">SignallingDumper</a> *&nbsp;</td>
          <td class="paramname"> <em>dumper</em> = <code>0</code>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set or remove the data dumper <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dumper</em>&nbsp;</td><td>Pointer to the data dumper object, 0 to remove </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="7f69920979213c25c2924c19332a930c"></a><!-- doxytag: member="TelEngine::SignallingCallControl::setExiting" ref="7f69920979213c25c2924c19332a930c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void setExiting           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set exiting flag 
</div>
</div><p>
<a class="anchor" name="4bccabc12b0f739c91232cb0a969bcae"></a><!-- doxytag: member="TelEngine::SignallingCallControl::strategy" ref="4bccabc12b0f739c91232cb0a969bcae" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int strategy           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the strategy used by the attached circuit group to allocate circuits <dl class="return" compact><dt><b>Returns:</b></dt><dd>The strategy used by the attached circuit group to allocate circuits </dd></dl>

</div>
</div><p>
<a class="anchor" name="8af5038360da3cdd202091591ffde915"></a><!-- doxytag: member="TelEngine::SignallingCallControl::verify" ref="8af5038360da3cdd202091591ffde915" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool verify           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check the verify event flag. Reset it if true is returned <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if the verify event flag is set </dd></dl>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="ffaea14f53611dfe901fa973753127a7"></a><!-- doxytag: member="TelEngine::SignallingCallControl::m_calls" ref="ffaea14f53611dfe901fa973753127a7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTelEngine_1_1ObjList.html">ObjList</a> <a class="el" href="classTelEngine_1_1SignallingCallControl.html#ffaea14f53611dfe901fa973753127a7">m_calls</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
List of active calls 
</div>
</div><p>
<a class="anchor" name="490a5779edc6c0c0eb19d1e72e06c29e"></a><!-- doxytag: member="TelEngine::SignallingCallControl::m_msgPrefix" ref="490a5779edc6c0c0eb19d1e72e06c29e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTelEngine_1_1String.html">String</a> <a class="el" href="classTelEngine_1_1SignallingCallControl.html#490a5779edc6c0c0eb19d1e72e06c29e">m_msgPrefix</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Prefix to be added to decoded message parameters or retrive message parameters from a list 
</div>
</div><p>
<a class="anchor" name="cd869f7a828638c5ca2040a8dc528394"></a><!-- doxytag: member="TelEngine::SignallingCallControl::m_verifyEvent" ref="cd869f7a828638c5ca2040a8dc528394" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classTelEngine_1_1SignallingCallControl.html#cd869f7a828638c5ca2040a8dc528394">m_verifyEvent</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Draw attention to call controller's user that something changed by raising a Verify event 
</div>
</div><p>
<a class="anchor" name="af291201e1a5ec5ab52f0fc0697ed7d8"></a><!-- doxytag: member="TelEngine::SignallingCallControl::m_verifyTimer" ref="af291201e1a5ec5ab52f0fc0697ed7d8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTelEngine_1_1SignallingTimer.html">SignallingTimer</a> <a class="el" href="classTelEngine_1_1SignallingCallControl.html#af291201e1a5ec5ab52f0fc0697ed7d8">m_verifyTimer</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Timer used to raise verify events 
</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="yatesig_8h-source.html">yatesig.h</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun Dec 7 21:36:13 2008 for Yate by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>