<!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: DataTranslator 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_1DataTranslator.html">DataTranslator</a> </div> </div> <div class="contents"> <h1>DataTranslator Class Reference</h1><!-- doxytag: class="TelEngine::DataTranslator" --><!-- doxytag: inherits="TelEngine::DataConsumer" -->An unidirectional data translator (codec). <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="yatephone_8h-source.html">yatephone.h</a>></code> <p> <div class="dynheader"> Inheritance diagram for DataTranslator:</div> <div class="dynsection"> <p><center><img src="classTelEngine_1_1DataTranslator.png" usemap="#DataTranslator_map" border="0" alt=""></center> <map name="DataTranslator_map"> <area href="classTelEngine_1_1DataConsumer.html" alt="DataConsumer" shape="rect" coords="0,168,95,192"> <area href="classTelEngine_1_1DataNode.html" alt="DataNode" shape="rect" coords="0,112,95,136"> <area href="classTelEngine_1_1RefObject.html" alt="RefObject" shape="rect" coords="0,56,95,80"> <area href="classTelEngine_1_1GenObject.html" alt="GenObject" shape="rect" coords="0,0,95,24"> </map> </div> <p> <a href="classTelEngine_1_1DataTranslator-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_1DataTranslator.html#31b074769d11914183071013cd4f843d">DataTranslator</a> (const char *sFormat, const char *dFormat)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1DataTranslator.html#eb3e6b31d8ac0ff8c87896fb32fdf393">DataTranslator</a> (const char *sFormat, <a class="el" href="classTelEngine_1_1DataSource.html">DataSource</a> *source=0)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1DataTranslator.html#7050974d4aa6a0cda5a5e0782194482d">~DataTranslator</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_1DataTranslator.html#aa71c3294b1a073c3ad0b64a2ed6325a">getObject</a> (const <a class="el" href="classTelEngine_1_1String.html">String</a> &name) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classTelEngine_1_1DataSource.html">DataSource</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1DataTranslator.html#62f27df35e897ffa333df4ea7512c210">getTransSource</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1DataTranslator.html">DataTranslator</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1DataTranslator.html#5ed36faf2c1be6f8e2834ca11e4e82e7">getFirstTranslator</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classTelEngine_1_1DataTranslator.html">DataTranslator</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1DataTranslator.html#d1ce33ac50dfe4693ea4e2d4bccf761e">getFirstTranslator</a> () const </td></tr> <tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classTelEngine_1_1ObjList.html">ObjList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1DataTranslator.html#3a15b3921bb6f0c6befbca07e06fa95f">srcFormats</a> (const <a class="el" href="classTelEngine_1_1DataFormat.html">DataFormat</a> &dFormat="slin", int maxCost=-1, unsigned int maxLen=0, <a class="el" href="classTelEngine_1_1ObjList.html">ObjList</a> *lst=0)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classTelEngine_1_1ObjList.html">ObjList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1DataTranslator.html#822e6e3d97d30e91e7375e87e442b031">destFormats</a> (const <a class="el" href="classTelEngine_1_1DataFormat.html">DataFormat</a> &sFormat="slin", int maxCost=-1, unsigned int maxLen=0, <a class="el" href="classTelEngine_1_1ObjList.html">ObjList</a> *lst=0)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classTelEngine_1_1ObjList.html">ObjList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1DataTranslator.html#d0a59ad71e73636dcf590a8b54ee863f">allFormats</a> (const <a class="el" href="classTelEngine_1_1ObjList.html">ObjList</a> *formats, bool existing=true, bool sameRate=true, bool sameChans=true)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classTelEngine_1_1ObjList.html">ObjList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1DataTranslator.html#0b9534645ab6a25928709c361ecd993d">allFormats</a> (const <a class="el" href="classTelEngine_1_1String.html">String</a> &formats, bool existing=true, bool sameRate=true, bool sameChans=true)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1DataTranslator.html#2352429780fb27ad46453cdd268bf473">canConvert</a> (const <a class="el" href="classTelEngine_1_1DataFormat.html">DataFormat</a> &fmt1, const <a class="el" href="classTelEngine_1_1DataFormat.html">DataFormat</a> &fmt2="slin")</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1DataTranslator.html#9ddfb58417bef5d9336f32fda93f1d99">cost</a> (const <a class="el" href="classTelEngine_1_1DataFormat.html">DataFormat</a> &sFormat, const <a class="el" href="classTelEngine_1_1DataFormat.html">DataFormat</a> &dFormat)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classTelEngine_1_1DataTranslator.html">DataTranslator</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1DataTranslator.html#6685b4dc2adab678d0d65d8eff550a7d">create</a> (const <a class="el" href="classTelEngine_1_1DataFormat.html">DataFormat</a> &sFormat, const <a class="el" href="classTelEngine_1_1DataFormat.html">DataFormat</a> &dFormat)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1DataTranslator.html#08c3323a5a2791f03e4a9a8070769e61">attachChain</a> (<a class="el" href="classTelEngine_1_1DataSource.html">DataSource</a> *source, <a class="el" href="classTelEngine_1_1DataConsumer.html">DataConsumer</a> *consumer, bool override=false)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1DataTranslator.html#eee342af706b6acec394339bc94e6f52">detachChain</a> (<a class="el" href="classTelEngine_1_1DataSource.html">DataSource</a> *source, <a class="el" href="classTelEngine_1_1DataConsumer.html">DataConsumer</a> *consumer)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1DataTranslator.html#9c825a75224318e397ab7fb62493af5a">setMaxChain</a> (unsigned int maxChain)</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_1DataTranslator.html#c262f089839a46664b1e597bc7b9b0f0">synchronize</a> (<a class="el" href="classTelEngine_1_1DataSource.html">DataSource</a> *source)</td></tr> <tr><td colspan="2"><br><h2>Static Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1DataTranslator.html#78248a78eff2570181e1d5cb81bf23fe">install</a> (<a class="el" href="classTelEngine_1_1TranslatorFactory.html">TranslatorFactory</a> *factory)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1DataTranslator.html#5d864e6f520e2035f0c88cb8bc39bbc9">uninstall</a> (<a class="el" href="classTelEngine_1_1TranslatorFactory.html">TranslatorFactory</a> *factory)</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="4f64a066c07eda4c21041af1a66a1a40"></a><!-- doxytag: member="TelEngine::DataTranslator::TranslatorFactory" ref="4f64a066c07eda4c21041af1a66a1a40" args="" --> class </td><td class="memItemRight" valign="bottom"><b>TranslatorFactory</b></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> An unidirectional data translator (codec). <p> The <a class="el" href="classTelEngine_1_1DataTranslator.html" title="An unidirectional data translator (codec).">DataTranslator</a> holds a translator (codec) capable of unidirectional conversion of data from one type to another. <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="31b074769d11914183071013cd4f843d"></a><!-- doxytag: member="TelEngine::DataTranslator::DataTranslator" ref="31b074769d11914183071013cd4f843d" args="(const char *sFormat, const char *dFormat)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classTelEngine_1_1DataTranslator.html">DataTranslator</a> </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>sFormat</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>dFormat</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Construct a data translator. <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>sFormat</em> </td><td>Name of the source format (data received from the consumer) </td></tr> <tr><td valign="top"></td><td valign="top"><em>dFormat</em> </td><td>Name of the destination format (data supplied to the source) </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="eb3e6b31d8ac0ff8c87896fb32fdf393"></a><!-- doxytag: member="TelEngine::DataTranslator::DataTranslator" ref="eb3e6b31d8ac0ff8c87896fb32fdf393" args="(const char *sFormat, DataSource *source=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classTelEngine_1_1DataTranslator.html">DataTranslator</a> </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>sFormat</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classTelEngine_1_1DataSource.html">DataSource</a> * </td> <td class="paramname"> <em>source</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> Creates a data translator from an existing source, does not increment the source's reference counter. <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>sFormat</em> </td><td>Name of the source format (data received from the consumer) </td></tr> <tr><td valign="top"></td><td valign="top"><em>source</em> </td><td>Optional pointer to a <a class="el" href="classTelEngine_1_1DataSource.html">DataSource</a> object </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="7050974d4aa6a0cda5a5e0782194482d"></a><!-- doxytag: member="TelEngine::DataTranslator::~DataTranslator" ref="7050974d4aa6a0cda5a5e0782194482d" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">~<a class="el" href="classTelEngine_1_1DataTranslator.html">DataTranslator</a> </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Destroys the translator and its source </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="0b9534645ab6a25928709c361ecd993d"></a><!-- doxytag: member="TelEngine::DataTranslator::allFormats" ref="0b9534645ab6a25928709c361ecd993d" args="(const String &formats, bool existing=true, bool sameRate=true, bool sameChans=true)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classTelEngine_1_1ObjList.html">ObjList</a>* allFormats </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1String.html">String</a> & </td> <td class="paramname"> <em>formats</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>existing</em> = <code>true</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>sameRate</em> = <code>true</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>sameChans</em> = <code>true</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get a list of formats supported by transcoding for a given format 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>formats</em> </td><td>Data format names as comma separated list </td></tr> <tr><td valign="top"></td><td valign="top"><em>existing</em> </td><td>Also return formats already existing in the initial list </td></tr> <tr><td valign="top"></td><td valign="top"><em>sameRate</em> </td><td>Only return formats with same sampling rate </td></tr> <tr><td valign="top"></td><td valign="top"><em>sameChans</em> </td><td>Only return formats with same number of channels </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>List of format names, must be freed by the caller </dd></dl> </div> </div><p> <a class="anchor" name="d0a59ad71e73636dcf590a8b54ee863f"></a><!-- doxytag: member="TelEngine::DataTranslator::allFormats" ref="d0a59ad71e73636dcf590a8b54ee863f" args="(const ObjList *formats, bool existing=true, bool sameRate=true, bool sameChans=true)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classTelEngine_1_1ObjList.html">ObjList</a>* allFormats </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1ObjList.html">ObjList</a> * </td> <td class="paramname"> <em>formats</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>existing</em> = <code>true</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>sameRate</em> = <code>true</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>sameChans</em> = <code>true</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get a list of formats supported by transcoding for a given format 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>formats</em> </td><td>List of data format names </td></tr> <tr><td valign="top"></td><td valign="top"><em>existing</em> </td><td>Also return formats already existing in the initial list </td></tr> <tr><td valign="top"></td><td valign="top"><em>sameRate</em> </td><td>Only return formats with same sampling rate </td></tr> <tr><td valign="top"></td><td valign="top"><em>sameChans</em> </td><td>Only return formats with same number of channels </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>List of format names, must be freed by the caller </dd></dl> </div> </div><p> <a class="anchor" name="08c3323a5a2791f03e4a9a8070769e61"></a><!-- doxytag: member="TelEngine::DataTranslator::attachChain" ref="08c3323a5a2791f03e4a9a8070769e61" args="(DataSource *source, DataConsumer *consumer, bool override=false)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static bool attachChain </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1DataSource.html">DataSource</a> * </td> <td class="paramname"> <em>source</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classTelEngine_1_1DataConsumer.html">DataConsumer</a> * </td> <td class="paramname"> <em>consumer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>override</em> = <code>false</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Attach a consumer to a source, possibly trough a chain of translators <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>source</em> </td><td>Source to attach the chain to </td></tr> <tr><td valign="top"></td><td valign="top"><em>consumer</em> </td><td>Consumer where the chain ends </td></tr> <tr><td valign="top"></td><td valign="top"><em>override</em> </td><td>Attach chain for temporary source override </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if successfull, false if no translator chain could be built </dd></dl> </div> </div><p> <a class="anchor" name="2352429780fb27ad46453cdd268bf473"></a><!-- doxytag: member="TelEngine::DataTranslator::canConvert" ref="2352429780fb27ad46453cdd268bf473" args="(const DataFormat &fmt1, const DataFormat &fmt2="slin")" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static bool canConvert </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1DataFormat.html">DataFormat</a> & </td> <td class="paramname"> <em>fmt1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1DataFormat.html">DataFormat</a> & </td> <td class="paramname"> <em>fmt2</em> = <code>"slin"</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Check if bidirectional conversion can be performed by installed translators <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>fmt1</em> </td><td>Name of the first data format </td></tr> <tr><td valign="top"></td><td valign="top"><em>fmt2</em> </td><td>Name of the second data format </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if translators can be created for both directions </dd></dl> </div> </div><p> <a class="anchor" name="9ddfb58417bef5d9336f32fda93f1d99"></a><!-- doxytag: member="TelEngine::DataTranslator::cost" ref="9ddfb58417bef5d9336f32fda93f1d99" args="(const DataFormat &sFormat, const DataFormat &dFormat)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static int cost </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1DataFormat.html">DataFormat</a> & </td> <td class="paramname"> <em>sFormat</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1DataFormat.html">DataFormat</a> & </td> <td class="paramname"> <em>dFormat</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Finds the cost of a translator given the source and destination format names <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>sFormat</em> </td><td>Name of the source format (data received from the consumer) </td></tr> <tr><td valign="top"></td><td valign="top"><em>dFormat</em> </td><td>Name of the destination format (data supplied to the source) </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>Cost of best (cheapest) codec or -1 if no known codec exists </dd></dl> </div> </div><p> <a class="anchor" name="6685b4dc2adab678d0d65d8eff550a7d"></a><!-- doxytag: member="TelEngine::DataTranslator::create" ref="6685b4dc2adab678d0d65d8eff550a7d" args="(const DataFormat &sFormat, const DataFormat &dFormat)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classTelEngine_1_1DataTranslator.html">DataTranslator</a>* create </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1DataFormat.html">DataFormat</a> & </td> <td class="paramname"> <em>sFormat</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1DataFormat.html">DataFormat</a> & </td> <td class="paramname"> <em>dFormat</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Creates a translator given the source and destination format names <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>sFormat</em> </td><td>Name of the source format (data received from the consumer) </td></tr> <tr><td valign="top"></td><td valign="top"><em>dFormat</em> </td><td>Name of the destination format (data supplied to the source) </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to a <a class="el" href="classTelEngine_1_1DataTranslator.html" title="An unidirectional data translator (codec).">DataTranslator</a> object or NULL if no known codec exists </dd></dl> </div> </div><p> <a class="anchor" name="822e6e3d97d30e91e7375e87e442b031"></a><!-- doxytag: member="TelEngine::DataTranslator::destFormats" ref="822e6e3d97d30e91e7375e87e442b031" args="(const DataFormat &sFormat="slin", int maxCost=-1, unsigned int maxLen=0, ObjList *lst=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classTelEngine_1_1ObjList.html">ObjList</a>* destFormats </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1DataFormat.html">DataFormat</a> & </td> <td class="paramname"> <em>sFormat</em> = <code>"slin"</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>maxCost</em> = <code>-1</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>maxLen</em> = <code>0</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classTelEngine_1_1ObjList.html">ObjList</a> * </td> <td class="paramname"> <em>lst</em> = <code>0</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get a list of formats supported for a given input format <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>sFormat</em> </td><td>Name of source format </td></tr> <tr><td valign="top"></td><td valign="top"><em>maxCost</em> </td><td>Maximum cost of candidates to consider, -1 to accept all </td></tr> <tr><td valign="top"></td><td valign="top"><em>maxLen</em> </td><td>Maximum length of codec chains to consider, 0 to accept all </td></tr> <tr><td valign="top"></td><td valign="top"><em>lst</em> </td><td>Initial list, will append to it if not empty </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>List of destination format names, must be freed by the caller </dd></dl> </div> </div><p> <a class="anchor" name="eee342af706b6acec394339bc94e6f52"></a><!-- doxytag: member="TelEngine::DataTranslator::detachChain" ref="eee342af706b6acec394339bc94e6f52" args="(DataSource *source, DataConsumer *consumer)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static bool detachChain </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1DataSource.html">DataSource</a> * </td> <td class="paramname"> <em>source</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classTelEngine_1_1DataConsumer.html">DataConsumer</a> * </td> <td class="paramname"> <em>consumer</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Detach a consumer from a source, possibly trough a chain of translators <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>source</em> </td><td>Source to dettach the chain from </td></tr> <tr><td valign="top"></td><td valign="top"><em>consumer</em> </td><td>Consumer where the chain ends </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if successfull, false if source and consumers were not attached </dd></dl> </div> </div><p> <a class="anchor" name="d1ce33ac50dfe4693ea4e2d4bccf761e"></a><!-- doxytag: member="TelEngine::DataTranslator::getFirstTranslator" ref="d1ce33ac50dfe4693ea4e2d4bccf761e" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="classTelEngine_1_1DataTranslator.html">DataTranslator</a>* getFirstTranslator </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> Constant version to get the first translator from a chain <dl class="return" compact><dt><b>Returns:</b></dt><dd>Pointer to the first translator in a chain </dd></dl> </div> </div><p> <a class="anchor" name="5ed36faf2c1be6f8e2834ca11e4e82e7"></a><!-- doxytag: member="TelEngine::DataTranslator::getFirstTranslator" ref="5ed36faf2c1be6f8e2834ca11e4e82e7" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classTelEngine_1_1DataTranslator.html">DataTranslator</a>* getFirstTranslator </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Get the first translator from a chain <dl class="return" compact><dt><b>Returns:</b></dt><dd>Pointer to the first translator in a chain </dd></dl> </div> </div><p> <a class="anchor" name="aa71c3294b1a073c3ad0b64a2ed6325a"></a><!-- doxytag: member="TelEngine::DataTranslator::getObject" ref="aa71c3294b1a073c3ad0b64a2ed6325a" args="(const String &name) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void* getObject </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1String.html">String</a> & </td> <td class="paramname"> <em>name</em> </td> <td> ) </td> <td> const<code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get a pointer to a derived class given that class name <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>Name of the class we are asking for </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>Pointer to the requested class or NULL if this object doesn't implement it </dd></dl> <p>Reimplemented from <a class="el" href="classTelEngine_1_1DataConsumer.html#aa71c3294b1a073c3ad0b64a2ed6325a">DataConsumer</a>.</p> </div> </div><p> <a class="anchor" name="62f27df35e897ffa333df4ea7512c210"></a><!-- doxytag: member="TelEngine::DataTranslator::getTransSource" ref="62f27df35e897ffa333df4ea7512c210" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="classTelEngine_1_1DataSource.html">DataSource</a>* getTransSource </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get the data source of a translator object <dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the <a class="el" href="classTelEngine_1_1DataSource.html">DataSource</a> object or NULL </dd></dl> <p>Reimplemented from <a class="el" href="classTelEngine_1_1DataConsumer.html#62f27df35e897ffa333df4ea7512c210">DataConsumer</a>.</p> </div> </div><p> <a class="anchor" name="78248a78eff2570181e1d5cb81bf23fe"></a><!-- doxytag: member="TelEngine::DataTranslator::install" ref="78248a78eff2570181e1d5cb81bf23fe" args="(TranslatorFactory *factory)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void install </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1TranslatorFactory.html">TranslatorFactory</a> * </td> <td class="paramname"> <em>factory</em> </td> <td> ) </td> <td><code> [static, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Install a Translator Factory in the list of known codecs <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>factory</em> </td><td>A pointer to a <a class="el" href="classTelEngine_1_1TranslatorFactory.html" title="An unidirectional data translator (codec).">TranslatorFactory</a> instance </td></tr> </table> </dl> <p>Referenced by <a class="el" href="yatephone_8h-source.html#l00797">TranslatorFactory::TranslatorFactory()</a>.</p> </div> </div><p> <a class="anchor" name="9c825a75224318e397ab7fb62493af5a"></a><!-- doxytag: member="TelEngine::DataTranslator::setMaxChain" ref="9c825a75224318e397ab7fb62493af5a" args="(unsigned int maxChain)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void setMaxChain </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>maxChain</em> </td> <td> ) </td> <td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Set the length of the longest translator chain we are allowed to create <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>maxChain</em> </td><td>Desired longest chain length </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="3a15b3921bb6f0c6befbca07e06fa95f"></a><!-- doxytag: member="TelEngine::DataTranslator::srcFormats" ref="3a15b3921bb6f0c6befbca07e06fa95f" args="(const DataFormat &dFormat="slin", int maxCost=-1, unsigned int maxLen=0, ObjList *lst=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classTelEngine_1_1ObjList.html">ObjList</a>* srcFormats </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1DataFormat.html">DataFormat</a> & </td> <td class="paramname"> <em>dFormat</em> = <code>"slin"</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>maxCost</em> = <code>-1</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>maxLen</em> = <code>0</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classTelEngine_1_1ObjList.html">ObjList</a> * </td> <td class="paramname"> <em>lst</em> = <code>0</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get a list of formats supported for a given output format. <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dFormat</em> </td><td>Name of destination format </td></tr> <tr><td valign="top"></td><td valign="top"><em>maxCost</em> </td><td>Maximum cost of candidates to consider, -1 to accept all </td></tr> <tr><td valign="top"></td><td valign="top"><em>maxLen</em> </td><td>Maximum length of codec chains to consider, 0 to accept all </td></tr> <tr><td valign="top"></td><td valign="top"><em>lst</em> </td><td>Initial list, will append to it if not empty </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>List of source format names, must be freed by the caller </dd></dl> </div> </div><p> <a class="anchor" name="c262f089839a46664b1e597bc7b9b0f0"></a><!-- doxytag: member="TelEngine::DataTranslator::synchronize" ref="c262f089839a46664b1e597bc7b9b0f0" args="(DataSource *source)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual bool synchronize </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1DataSource.html">DataSource</a> * </td> <td class="paramname"> <em>source</em> </td> <td> ) </td> <td><code> [protected, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Synchronize the consumer with a source <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>source</em> </td><td>Data source to copy the timestamp from </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if we could synchronize with the source </dd></dl> <p>Reimplemented from <a class="el" href="classTelEngine_1_1DataConsumer.html#c262f089839a46664b1e597bc7b9b0f0">DataConsumer</a>.</p> </div> </div><p> <a class="anchor" name="5d864e6f520e2035f0c88cb8bc39bbc9"></a><!-- doxytag: member="TelEngine::DataTranslator::uninstall" ref="5d864e6f520e2035f0c88cb8bc39bbc9" args="(TranslatorFactory *factory)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void uninstall </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1TranslatorFactory.html">TranslatorFactory</a> * </td> <td class="paramname"> <em>factory</em> </td> <td> ) </td> <td><code> [static, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Remove a Translator Factory from the list of known codecs <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>factory</em> </td><td>A pointer to a <a class="el" href="classTelEngine_1_1TranslatorFactory.html" title="An unidirectional data translator (codec).">TranslatorFactory</a> instance </td></tr> </table> </dl> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="yatephone_8h-source.html">yatephone.h</a></ul> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Sun Dec 7 21:36:12 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>