<!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: NamedPointer 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_1NamedPointer.html">NamedPointer</a> </div> </div> <div class="contents"> <h1>NamedPointer Class Reference</h1><!-- doxytag: class="TelEngine::NamedPointer" --><!-- doxytag: inherits="TelEngine::NamedString" -->A named pointer class. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="yateclass_8h-source.html">yateclass.h</a>></code> <p> <div class="dynheader"> Inheritance diagram for NamedPointer:</div> <div class="dynsection"> <p><center><img src="classTelEngine_1_1NamedPointer.png" usemap="#NamedPointer_map" border="0" alt=""></center> <map name="NamedPointer_map"> <area href="classTelEngine_1_1NamedString.html" alt="NamedString" shape="rect" coords="0,112,91,136"> <area href="classTelEngine_1_1String.html" alt="String" shape="rect" coords="0,56,91,80"> <area href="classTelEngine_1_1GenObject.html" alt="GenObject" shape="rect" coords="0,0,91,24"> </map> </div> <p> <a href="classTelEngine_1_1NamedPointer-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_1NamedPointer.html#47969884439d294ff61101a350a57fae">NamedPointer</a> (const char *name, <a class="el" href="classTelEngine_1_1GenObject.html">GenObject</a> *data=0, const char *value=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_1NamedPointer.html#d8d76d846a6f3e2fb12c569b5569e215">~NamedPointer</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1GenObject.html">GenObject</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1NamedPointer.html#f8f6dcedc8a874f9ce53f042ca262d26">userData</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1GenObject.html">GenObject</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1NamedPointer.html#228aec1b212179562e44e2345053c29b">takeData</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1NamedPointer.html#08ef7f0f1728e5842f18e9b8fdf36b6d">userData</a> (<a class="el" href="classTelEngine_1_1GenObject.html">GenObject</a> *data)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1NamedPointer.html#ee87a391e548199dafc028350e1ea9e8">userObject</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"><a class="el" href="classTelEngine_1_1NamedPointer.html">NamedPointer</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1NamedPointer.html#4ac02d48632550e6217ba1bcf00c0e2d">operator=</a> (const char *value)</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_1NamedPointer.html#aa71c3294b1a073c3ad0b64a2ed6325a">getObject</a> (const <a class="el" href="classTelEngine_1_1String.html">String</a> &name) const </td></tr> <tr><td colspan="2"><br><h2>Protected Member Functions</h2></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_1NamedPointer.html#60416725e977bd9da56c54ce34083363">changed</a> ()</td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> A named pointer class. <p> A named string holding a pointer to arbitrary data. The pointer is owned by the object: it will be released when the object is destroyed or the string value changed <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="47969884439d294ff61101a350a57fae"></a><!-- doxytag: member="TelEngine::NamedPointer::NamedPointer" ref="47969884439d294ff61101a350a57fae" args="(const char *name, GenObject *data=0, const char *value=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classTelEngine_1_1NamedPointer.html">NamedPointer</a> </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classTelEngine_1_1GenObject.html">GenObject</a> * </td> <td class="paramname"> <em>data</em> = <code>0</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>value</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 new named pointer <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 this pointer </td></tr> <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>Initial pointer value. The pointer will be owned by this object </td></tr> <tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>Initial string value </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="d8d76d846a6f3e2fb12c569b5569e215"></a><!-- doxytag: member="TelEngine::NamedPointer::~NamedPointer" ref="d8d76d846a6f3e2fb12c569b5569e215" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual ~<a class="el" href="classTelEngine_1_1NamedPointer.html">NamedPointer</a> </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Destructor. Release the pointer </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="60416725e977bd9da56c54ce34083363"></a><!-- doxytag: member="TelEngine::NamedPointer::changed" ref="60416725e977bd9da56c54ce34083363" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void changed </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [protected, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Called whenever the string value changed. Release the pointer <p>Reimplemented from <a class="el" href="classTelEngine_1_1String.html#60416725e977bd9da56c54ce34083363">String</a>.</p> </div> </div><p> <a class="anchor" name="aa71c3294b1a073c3ad0b64a2ed6325a"></a><!-- doxytag: member="TelEngine::NamedPointer::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_1NamedString.html#aa71c3294b1a073c3ad0b64a2ed6325a">NamedString</a>.</p> </div> </div><p> <a class="anchor" name="4ac02d48632550e6217ba1bcf00c0e2d"></a><!-- doxytag: member="TelEngine::NamedPointer::operator=" ref="4ac02d48632550e6217ba1bcf00c0e2d" args="(const char *value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classTelEngine_1_1NamedPointer.html">NamedPointer</a>& operator= </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>value</em> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <a class="el" href="classTelEngine_1_1String.html" title="A C-style string handling class.">String</a> value assignment operator <p>Reimplemented from <a class="el" href="classTelEngine_1_1NamedString.html#712071aa5629d4eafe0b276d9c4c8baa">NamedString</a>.</p> <p>References <a class="el" href="yateclass_8h-source.html#l02068">NamedString::operator=()</a>.</p> </div> </div><p> <a class="anchor" name="228aec1b212179562e44e2345053c29b"></a><!-- doxytag: member="TelEngine::NamedPointer::takeData" ref="228aec1b212179562e44e2345053c29b" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classTelEngine_1_1GenObject.html">GenObject</a>* takeData </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Retrive the pointer carried by this object and release ownership. The caller will own the returned pointer <dl class="return" compact><dt><b>Returns:</b></dt><dd>Pointer to arbitrary user <a class="el" href="classTelEngine_1_1GenObject.html">GenObject</a> </dd></dl> </div> </div><p> <a class="anchor" name="08ef7f0f1728e5842f18e9b8fdf36b6d"></a><!-- doxytag: member="TelEngine::NamedPointer::userData" ref="08ef7f0f1728e5842f18e9b8fdf36b6d" args="(GenObject *data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void userData </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1GenObject.html">GenObject</a> * </td> <td class="paramname"> <em>data</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Set obscure data carried by this object. Note that a RefObject's reference counter should be increased before adding it to this named pointer <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> </td><td>Pointer to arbitrary user data </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="f8f6dcedc8a874f9ce53f042ca262d26"></a><!-- doxytag: member="TelEngine::NamedPointer::userData" ref="f8f6dcedc8a874f9ce53f042ca262d26" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classTelEngine_1_1GenObject.html">GenObject</a>* userData </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Retrive the pointer carried by this object <dl class="return" compact><dt><b>Returns:</b></dt><dd>Pointer to arbitrary user <a class="el" href="classTelEngine_1_1GenObject.html">GenObject</a> </dd></dl> </div> </div><p> <a class="anchor" name="ee87a391e548199dafc028350e1ea9e8"></a><!-- doxytag: member="TelEngine::NamedPointer::userObject" ref="ee87a391e548199dafc028350e1ea9e8" args="(const String &name) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void* userObject </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> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get a pointer to a derived class of user data 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 user object id NULL or doesn't implement it </dd></dl> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="yateclass_8h-source.html">yateclass.h</a></ul> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Sun Dec 7 21:36:11 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>