<!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: JGEngine 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_1JGEngine.html">JGEngine</a> </div> </div> <div class="contents"> <h1>JGEngine Class Reference</h1><!-- doxytag: class="TelEngine::JGEngine" --><!-- doxytag: inherits="TelEngine::JBService,TelEngine::JBThreadList" -->A Jingle engine. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="yatejingle_8h-source.html">yatejingle.h</a>></code> <p> <div class="dynheader"> Inheritance diagram for JGEngine:</div> <div class="dynsection"> <p><center><img src="classTelEngine_1_1JGEngine.png" usemap="#JGEngine_map" border="0" alt=""></center> <map name="JGEngine_map"> <area href="classTelEngine_1_1JBService.html" alt="JBService" shape="rect" coords="103,56,196,80"> <area href="classTelEngine_1_1JBThreadList.html" alt="JBThreadList" shape="rect" coords="206,56,299,80"> <area href="classTelEngine_1_1DebugEnabler.html" alt="DebugEnabler" shape="rect" coords="0,0,93,24"> <area href="classTelEngine_1_1Mutex.html" alt="Mutex" shape="rect" coords="103,0,196,24"> <area href="classTelEngine_1_1GenObject.html" alt="GenObject" shape="rect" coords="206,0,299,24"> </map> </div> <p> <a href="classTelEngine_1_1JGEngine-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"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1JGEngine.html#379575ff3cabfc4c436350ddd7bb505d">JGEngine</a> (<a class="el" href="classTelEngine_1_1JBEngine.html">JBEngine</a> *engine, const <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> *params, int prio=0)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1JGEngine.html#b3df919760eab8edf554414af3894921">~JGEngine</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">u_int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1JGEngine.html#eb263837b83d9b611cc6aea658437802">stanzaTimeout</a> () const </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_1JGEngine.html#c391e1e7a016b4064486b5994fc1fed7">initialize</a> (const <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> &params)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1JGEvent.html">JGEvent</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1JGEngine.html#7583d3fc2c4bbcb67e841df18ed3d7ff">getEvent</a> (u_int64_t time)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1JGSession.html">JGSession</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1JGEngine.html#2a8c5fd02b5d46af7dc48bc2a4e4beba">call</a> (const <a class="el" href="classTelEngine_1_1String.html">String</a> &callerName, const <a class="el" href="classTelEngine_1_1String.html">String</a> &remoteJID, <a class="el" href="classTelEngine_1_1XMLElement.html">XMLElement</a> *media, <a class="el" href="classTelEngine_1_1XMLElement.html">XMLElement</a> *transport, const char *msg=0)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1JGEngine.html#f4edda34aa25274494cbed2704741120">defProcessEvent</a> (<a class="el" href="classTelEngine_1_1JGEvent.html">JGEvent</a> *event)</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_1JGEngine.html#95532bffd1e8f32aa58725812e73fd35">processEvent</a> (<a class="el" href="classTelEngine_1_1JGEvent.html">JGEvent</a> *event)</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_1JGEngine.html#eb76442d8fb651cb95647bf4a0e7fb28">accept</a> (<a class="el" href="classTelEngine_1_1JBEvent.html">JBEvent</a> *event, bool &processed, bool &insert)</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="0b292114c6d25e1e8deda6cc4d9e55a6"></a><!-- doxytag: member="TelEngine::JGEngine::JGSession" ref="0b292114c6d25e1e8deda6cc4d9e55a6" args="" --> class </td><td class="memItemRight" valign="bottom"><b>JGSession</b></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> A Jingle engine. <p> This class holds a Jingle service for the Jabber engine. Handle jingle stanzas, stanza write fail events and stream termination events <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="379575ff3cabfc4c436350ddd7bb505d"></a><!-- doxytag: member="TelEngine::JGEngine::JGEngine" ref="379575ff3cabfc4c436350ddd7bb505d" args="(JBEngine *engine, const NamedList *params, int prio=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classTelEngine_1_1JGEngine.html">JGEngine</a> </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1JBEngine.html">JBEngine</a> * </td> <td class="paramname"> <em>engine</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> * </td> <td class="paramname"> <em>params</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>prio</em> = <code>0</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Constructor. Constructs a Jingle service <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>engine</em> </td><td>The Jabber engine </td></tr> <tr><td valign="top"></td><td valign="top"><em>params</em> </td><td>Service's parameters </td></tr> <tr><td valign="top"></td><td valign="top"><em>prio</em> </td><td>The priority of this service </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="b3df919760eab8edf554414af3894921"></a><!-- doxytag: member="TelEngine::JGEngine::~JGEngine" ref="b3df919760eab8edf554414af3894921" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual ~<a class="el" href="classTelEngine_1_1JGEngine.html">JGEngine</a> </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Destructor. Terminates all active sessions </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="eb76442d8fb651cb95647bf4a0e7fb28"></a><!-- doxytag: member="TelEngine::JGEngine::accept" ref="eb76442d8fb651cb95647bf4a0e7fb28" args="(JBEvent *event, bool &processed, bool &insert)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual bool accept </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1JBEvent.html">JBEvent</a> * </td> <td class="paramname"> <em>event</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool & </td> <td class="paramname"> <em>processed</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool & </td> <td class="paramname"> <em>insert</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Accept an event from the Jabber engine <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>The event to accept </td></tr> <tr><td valign="top"></td><td valign="top"><em>processed</em> </td><td>Set to true on exit to signal that the event was already processed </td></tr> <tr><td valign="top"></td><td valign="top"><em>insert</em> </td><td>Set to true if accepted to insert on top of the event queue </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>False if not accepted, let the engine try another service </dd></dl> <p>Reimplemented from <a class="el" href="classTelEngine_1_1JBService.html#eb76442d8fb651cb95647bf4a0e7fb28">JBService</a>.</p> </div> </div><p> <a class="anchor" name="2a8c5fd02b5d46af7dc48bc2a4e4beba"></a><!-- doxytag: member="TelEngine::JGEngine::call" ref="2a8c5fd02b5d46af7dc48bc2a4e4beba" args="(const String &callerName, const String &remoteJID, XMLElement *media, XMLElement *transport, const char *msg=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classTelEngine_1_1JGSession.html">JGSession</a>* call </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1String.html">String</a> & </td> <td class="paramname"> <em>callerName</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1String.html">String</a> & </td> <td class="paramname"> <em>remoteJID</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classTelEngine_1_1XMLElement.html">XMLElement</a> * </td> <td class="paramname"> <em>media</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classTelEngine_1_1XMLElement.html">XMLElement</a> * </td> <td class="paramname"> <em>transport</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>msg</em> = <code>0</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Make an outgoing call. 'media' and 'transport' will be invalid on exit. Don't delete them <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>callerName</em> </td><td>The local peer's username </td></tr> <tr><td valign="top"></td><td valign="top"><em>remoteJID</em> </td><td>The remote peer's JID </td></tr> <tr><td valign="top"></td><td valign="top"><em>media</em> </td><td>A valid 'description' XML element </td></tr> <tr><td valign="top"></td><td valign="top"><em>transport</em> </td><td>A valid 'transport' XML element </td></tr> <tr><td valign="top"></td><td valign="top"><em>msg</em> </td><td>Optional message to send before call </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>Valid <a class="el" href="classTelEngine_1_1JGSession.html" title="A Jingle session.">JGSession</a> pointer (referenced) on success </dd></dl> </div> </div><p> <a class="anchor" name="f4edda34aa25274494cbed2704741120"></a><!-- doxytag: member="TelEngine::JGEngine::defProcessEvent" ref="f4edda34aa25274494cbed2704741120" args="(JGEvent *event)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void defProcessEvent </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1JGEvent.html">JGEvent</a> * </td> <td class="paramname"> <em>event</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Default event processor. Delete 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>event</em> </td><td>The event to process </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="7583d3fc2c4bbcb67e841df18ed3d7ff"></a><!-- doxytag: member="TelEngine::JGEngine::getEvent" ref="7583d3fc2c4bbcb67e841df18ed3d7ff" args="(u_int64_t time)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classTelEngine_1_1JGEvent.html">JGEvent</a>* getEvent </td> <td>(</td> <td class="paramtype">u_int64_t </td> <td class="paramname"> <em>time</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Call <a class="el" href="classTelEngine_1_1JGEngine.html#7583d3fc2c4bbcb67e841df18ed3d7ff">getEvent()</a> for each session list until an event is generated or the end is reached 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>time</em> </td><td>Current time in miliseconds </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>The first generated event </dd></dl> </div> </div><p> <a class="anchor" name="c391e1e7a016b4064486b5994fc1fed7"></a><!-- doxytag: member="TelEngine::JGEngine::initialize" ref="c391e1e7a016b4064486b5994fc1fed7" args="(const NamedList &params)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void initialize </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> & </td> <td class="paramname"> <em>params</em> </td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Initialize this service <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> </td><td>Service's parameters </td></tr> </table> </dl> <p>Reimplemented from <a class="el" href="classTelEngine_1_1JBService.html#c391e1e7a016b4064486b5994fc1fed7">JBService</a>.</p> </div> </div><p> <a class="anchor" name="95532bffd1e8f32aa58725812e73fd35"></a><!-- doxytag: member="TelEngine::JGEngine::processEvent" ref="95532bffd1e8f32aa58725812e73fd35" args="(JGEvent *event)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void processEvent </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1JGEvent.html">JGEvent</a> * </td> <td class="paramname"> <em>event</em> </td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Process events from the sessions. Default action: Delete event. Descendants must override this method to process generated events <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>The event to process </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="eb263837b83d9b611cc6aea658437802"></a><!-- doxytag: member="TelEngine::JGEngine::stanzaTimeout" ref="eb263837b83d9b611cc6aea658437802" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">u_int64_t stanzaTimeout </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get the timeout interval of a sent stanza <dl class="return" compact><dt><b>Returns:</b></dt><dd>The timeout interval of a sent stanza </dd></dl> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="yatejingle_8h-source.html">yatejingle.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 <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>