<!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: SignallingInterface 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 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 List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div class="navpath"><a class="el" href="namespaceTelEngine.html">TelEngine</a>::<a class="el" href="classTelEngine_1_1SignallingInterface.html">SignallingInterface</a> </div> </div> <div class="contents"> <h1>SignallingInterface Class Reference</h1><!-- doxytag: class="TelEngine::SignallingInterface" --><!-- doxytag: inherits="TelEngine::SignallingComponent" -->Abstract digital signalling interface (hardware access). <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="yatesig_8h-source.html">yatesig.h</a>></code> <p> <div class="dynheader"> Inheritance diagram for SignallingInterface:</div> <div class="dynsection"> <p><center><img src="classTelEngine_1_1SignallingInterface.png" usemap="#SignallingInterface_map" border="0" alt=""></center> <map name="SignallingInterface_map"> <area href="classTelEngine_1_1SignallingComponent.html" alt="SignallingComponent" shape="rect" coords="70,56,200,80"> <area href="classTelEngine_1_1GenObject.html" alt="GenObject" shape="rect" coords="0,0,130,24"> <area href="classTelEngine_1_1DebugEnabler.html" alt="DebugEnabler" shape="rect" coords="140,0,270,24"> </map> </div> <p> <a href="classTelEngine_1_1SignallingInterface-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 Types</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingInterface.html#a8f137f19095e0bdcf4f521e901f88bb">Operation</a> { <br> <b>Specific</b> = 0, <b>EnableTx</b> = 0x01, <b>EnableRx</b> = 0x02, <b>Enable</b> = 0x03, <br> <b>DisableTx</b> = 0x04, <b>DisableRx</b> = 0x08, <b>Disable</b> = 0x0c, <b>FlushTx</b> = 0x10, <br> <b>FlushRx</b> = 0x20, <b>Flush</b> = 0x30, <b>QueryTx</b> = 0x40, <b>QueryRx</b> = 0x80, <br> <b>Query</b> = 0xc0 <br> }</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingInterface.html#9b7018c6a58f6d63a9446fea1f12ad89">Notification</a> { <br> <b>LinkUp</b> = 0, <b>LinkDown</b>, <b>HardwareError</b>, <b>TxClockError</b>, <br> <b>RxClockError</b>, <b>AlignError</b>, <b>CksumError</b>, <b>TxOversize</b>, <br> <b>RxOversize</b>, <b>TxOverflow</b>, <b>RxOverflow</b>, <b>TxUnderrun</b>, <br> <b>RxUnderrun</b> <br> }</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingInterface.html#0a80a7bc045affcf10846075b88cbca0">PacketType</a> { <br> <b>Unknown</b> = 0, <b>SS7Fisu</b>, <b>SS7Lssu</b>, <b>SS7Msu</b>, <br> <b>Q921</b> <br> }</td></tr> <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingInterface.html#cd2cb85f124c6c35e9bf6fb3cae5a6ed">SignallingInterface</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingInterface.html#5169a3198ad804d293def0c74a3923f9">~SignallingInterface</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingInterface.html#608dd300cb161f52d6e3dce4c6120032">attach</a> (<a class="el" href="classTelEngine_1_1SignallingReceiver.html">SignallingReceiver</a> *receiver)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1SignallingReceiver.html">SignallingReceiver</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingInterface.html#05dc743d85490bffba25a29fcfc944d5">receiver</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingInterface.html#50ca140491051ae0a8c3972721cea735">control</a> (<a class="el" href="classTelEngine_1_1SignallingInterface.html#a8f137f19095e0bdcf4f521e901f88bb">Operation</a> oper, <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> *params=0)</td></tr> <tr><td colspan="2"><br><h2>Static Public Attributes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="structTelEngine_1_1TokenDict.html">TokenDict</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingInterface.html#eb4364fd46bd598d17e66ae964153330">s_notifName</a> []</td></tr> <tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingInterface.html#0aa2e22e21fad6119e97bb68912012ca">transmitPacket</a> (const <a class="el" href="classTelEngine_1_1DataBlock.html">DataBlock</a> &packet, bool repeat, <a class="el" href="classTelEngine_1_1SignallingInterface.html#0a80a7bc045affcf10846075b88cbca0">PacketType</a> type)=0</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingInterface.html#f95a0c57f606226c3701da7d21edace9">receivedPacket</a> (const <a class="el" href="classTelEngine_1_1DataBlock.html">DataBlock</a> &packet)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingInterface.html#34280330050209d4254d355a5bef8977">notify</a> (<a class="el" href="classTelEngine_1_1SignallingInterface.html#9b7018c6a58f6d63a9446fea1f12ad89">Notification</a> event)</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="6be5215a5348e28962378dfabf30370c"></a><!-- doxytag: member="TelEngine::SignallingInterface::SignallingReceiver" ref="6be5215a5348e28962378dfabf30370c" args="" --> class </td><td class="memItemRight" valign="bottom"><b>SignallingReceiver</b></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Abstract digital signalling interface (hardware access). <p> An interface to an abstraction of a Layer 1 (hardware HDLC) interface <hr><h2>Member Enumeration Documentation</h2> <a class="anchor" name="9b7018c6a58f6d63a9446fea1f12ad89"></a><!-- doxytag: member="TelEngine::SignallingInterface::Notification" ref="9b7018c6a58f6d63a9446fea1f12ad89" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="classTelEngine_1_1SignallingInterface.html#9b7018c6a58f6d63a9446fea1f12ad89">Notification</a> </td> </tr> </table> </div> <div class="memdoc"> <p> Interface generated notifications </div> </div><p> <a class="anchor" name="a8f137f19095e0bdcf4f521e901f88bb"></a><!-- doxytag: member="TelEngine::SignallingInterface::Operation" ref="a8f137f19095e0bdcf4f521e901f88bb" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="classTelEngine_1_1SignallingInterface.html#a8f137f19095e0bdcf4f521e901f88bb">Operation</a> </td> </tr> </table> </div> <div class="memdoc"> <p> Interface control operations </div> </div><p> <a class="anchor" name="0a80a7bc045affcf10846075b88cbca0"></a><!-- doxytag: member="TelEngine::SignallingInterface::PacketType" ref="0a80a7bc045affcf10846075b88cbca0" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="classTelEngine_1_1SignallingInterface.html#0a80a7bc045affcf10846075b88cbca0">PacketType</a> </td> </tr> </table> </div> <div class="memdoc"> <p> Packet types </div> </div><p> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="cd2cb85f124c6c35e9bf6fb3cae5a6ed"></a><!-- doxytag: member="TelEngine::SignallingInterface::SignallingInterface" ref="cd2cb85f124c6c35e9bf6fb3cae5a6ed" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classTelEngine_1_1SignallingInterface.html">SignallingInterface</a> </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Constructor </div> </div><p> <a class="anchor" name="5169a3198ad804d293def0c74a3923f9"></a><!-- doxytag: member="TelEngine::SignallingInterface::~SignallingInterface" ref="5169a3198ad804d293def0c74a3923f9" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual ~<a class="el" href="classTelEngine_1_1SignallingInterface.html">SignallingInterface</a> </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Destructor, stops and detaches the interface </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="608dd300cb161f52d6e3dce4c6120032"></a><!-- doxytag: member="TelEngine::SignallingInterface::attach" ref="608dd300cb161f52d6e3dce4c6120032" args="(SignallingReceiver *receiver)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void attach </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1SignallingReceiver.html">SignallingReceiver</a> * </td> <td class="paramname"> <em>receiver</em> </td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Attach a receiver to the interface. Detach from the old one if valid <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>receiver</em> </td><td>Pointer to receiver to attach </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="50ca140491051ae0a8c3972721cea735"></a><!-- doxytag: member="TelEngine::SignallingInterface::control" ref="50ca140491051ae0a8c3972721cea735" args="(Operation oper, NamedList *params=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual bool control </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1SignallingInterface.html#a8f137f19095e0bdcf4f521e901f88bb">Operation</a> </td> <td class="paramname"> <em>oper</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> * </td> <td class="paramname"> <em>params</em> = <code>0</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Execute a control operation. Operations can enable, disable or flush the transmitter, receiver or both. The status (enabled/disabled) can be queried and also interface-specific operations can be executed. <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>oper</em> </td><td>Operation to execute </td></tr> <tr><td valign="top"></td><td valign="top"><em>params</em> </td><td>Optional parameters for the operation </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if the command completed successfully, for query operations also indicates the interface is enabled and operational </dd></dl> </div> </div><p> <a class="anchor" name="34280330050209d4254d355a5bef8977"></a><!-- doxytag: member="TelEngine::SignallingInterface::notify" ref="34280330050209d4254d355a5bef8977" args="(Notification event)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool notify </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1SignallingInterface.html#9b7018c6a58f6d63a9446fea1f12ad89">Notification</a> </td> <td class="paramname"> <em>event</em> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Generate a notification event to the attached receiver <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> </td><td>Notification event to be reported </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if notification was accepted by the receiver </dd></dl> </div> </div><p> <a class="anchor" name="f95a0c57f606226c3701da7d21edace9"></a><!-- doxytag: member="TelEngine::SignallingInterface::receivedPacket" ref="f95a0c57f606226c3701da7d21edace9" args="(const DataBlock &packet)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool receivedPacket </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1DataBlock.html">DataBlock</a> & </td> <td class="paramname"> <em>packet</em> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Push a valid received Signalling Packet up the protocol stack. The starting and ending flags and any CRC are not part of the data. <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if packet was successfully delivered to the receiver </dd></dl> </div> </div><p> <a class="anchor" name="05dc743d85490bffba25a29fcfc944d5"></a><!-- doxytag: member="TelEngine::SignallingInterface::receiver" ref="05dc743d85490bffba25a29fcfc944d5" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classTelEngine_1_1SignallingReceiver.html">SignallingReceiver</a>* receiver </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Retrive the signalling receiver attached to this interface <dl class="return" compact><dt><b>Returns:</b></dt><dd>Pointer to attached receiver, NULL if none </dd></dl> </div> </div><p> <a class="anchor" name="0aa2e22e21fad6119e97bb68912012ca"></a><!-- doxytag: member="TelEngine::SignallingInterface::transmitPacket" ref="0aa2e22e21fad6119e97bb68912012ca" args="(const DataBlock &packet, bool repeat, PacketType type)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual bool transmitPacket </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1DataBlock.html">DataBlock</a> & </td> <td class="paramname"> <em>packet</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>repeat</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classTelEngine_1_1SignallingInterface.html#0a80a7bc045affcf10846075b88cbca0">PacketType</a> </td> <td class="paramname"> <em>type</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected, pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Transmit a packet over the hardware interface <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>packet</em> </td><td>Packet data to send </td></tr> <tr><td valign="top"></td><td valign="top"><em>repeat</em> </td><td>Continuously send a copy of the packet while no other data is available for transmission </td></tr> <tr><td valign="top"></td><td valign="top"><em>type</em> </td><td>Type of the packet to send </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if the interface accepted the packet </dd></dl> </div> </div><p> <hr><h2>Member Data Documentation</h2> <a class="anchor" name="eb4364fd46bd598d17e66ae964153330"></a><!-- doxytag: member="TelEngine::SignallingInterface::s_notifName" ref="eb4364fd46bd598d17e66ae964153330" args="[]" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structTelEngine_1_1TokenDict.html">TokenDict</a> <a class="el" href="classTelEngine_1_1SignallingInterface.html#eb4364fd46bd598d17e66ae964153330">s_notifName</a>[]<code> [static]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> Keeps the names associated with the notifications </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:14 2008 for Yate by <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>