<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>rlog: rlog::RLogChannel 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.0 --> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li id="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</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="nav"> <b>rlog</b>::<a class="el" href="classrlog_1_1RLogChannel.html">RLogChannel</a></div> <h1>rlog::RLogChannel Class Reference</h1><!-- doxytag: class="rlog::RLogChannel" --><!-- doxytag: inherits="rlog::RLogNode" -->Implements a hierarchical logging channel. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="RLogChannel_8h-source.html">rlog/RLogChannel.h</a>></code> <p> <p>Inheritance diagram for rlog::RLogChannel: <p><center><img src="classrlog_1_1RLogChannel.png" usemap="#rlog::RLogChannel_map" border="0" alt=""></center> <map name="rlog::RLogChannel_map"> <area href="classrlog_1_1RLogNode.html" alt="rlog::RLogNode" shape="rect" coords="0,0,116,24"> </map> <a href="classrlog_1_1RLogChannel-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"><a class="anchor" name="ebfd0dd182cfacfcc9505210ef8d6f8e"></a><!-- doxytag: member="rlog::RLogChannel::RLogChannel" ref="ebfd0dd182cfacfcc9505210ef8d6f8e" args="(const std::string &name, LogLevel level)" --> </td><td class="memItemRight" valign="bottom"><b>RLogChannel</b> (const std::string &name, LogLevel level)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrlog_1_1RLogChannel.html#b02534e508bec0d90cddd3c2ca2b12a7">publish</a> (const <a class="el" href="structrlog_1_1RLogData.html">RLogData</a> &data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Publish data. <a href="#b02534e508bec0d90cddd3c2ca2b12a7"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c18e338cfdce26aea367347d2370b670"></a><!-- doxytag: member="rlog::RLogChannel::name" ref="c18e338cfdce26aea367347d2370b670" args="() const" --> const std::string & </td><td class="memItemRight" valign="bottom"><b>name</b> () const</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="868b92bef7d3c26ae598751435052b6c"></a><!-- doxytag: member="rlog::RLogChannel::logLevel" ref="868b92bef7d3c26ae598751435052b6c" args="() const" --> LogLevel </td><td class="memItemRight" valign="bottom"><b>logLevel</b> () const</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a1d0e7e4356a74d7a023a38bc139f296"></a><!-- doxytag: member="rlog::RLogChannel::setLogLevel" ref="a1d0e7e4356a74d7a023a38bc139f296" args="(LogLevel level)" --> void </td><td class="memItemRight" valign="bottom"><b>setLogLevel</b> (LogLevel level)</td></tr> <tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5a7c64cea1781f7ec53953a5a37a7a3c"></a><!-- doxytag: member="rlog::RLogChannel::getComponent" ref="5a7c64cea1781f7ec53953a5a37a7a3c" args="(RLogChannel *componentParent, const char *component)" --> <a class="el" href="classrlog_1_1RLogChannel.html">RLogChannel</a> * </td><td class="memItemRight" valign="bottom"><b>getComponent</b> (<a class="el" href="classrlog_1_1RLogChannel.html">RLogChannel</a> *componentParent, const char *component)</td></tr> <tr><td colspan="2"><br><h2>Friends</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classrlog_1_1RLogChannel.html">RLogChannel</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classrlog_1_1RLogChannel.html#0a1d6647703bf72c94248004ae8a6b76">GetComponentChannel</a> (const char *component, const char *path, LogLevel level)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return the named channel for a particular component. <a href="#0a1d6647703bf72c94248004ae8a6b76"></a><br></td></tr> <tr><td colspan="2"><br><h2>Related Functions</h2></td></tr> <tr><td colspan="2">(Note that these are not member functions.) <br><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classrlog_1_1RLogChannel.html">RLogChannel</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classrlog_1_1RLogChannel.html#657f22441ad03c301e2e0bc04e79ad1a">GetGlobalChannel</a> (const char *path, LogLevel level)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return the named channel across all components. <a href="#657f22441ad03c301e2e0bc04e79ad1a"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Implements a hierarchical logging channel. <p> You should not need to use <a class="el" href="classrlog_1_1RLogChannel.html">RLogChannel</a> directly under normal circumstances. See RLOG_CHANNEL() macro, <a class="el" href="classrlog_1_1RLogChannel.html#0a1d6647703bf72c94248004ae8a6b76">GetComponentChannel()</a> and <a class="el" href="classrlog_1_1RLogChannel.html#657f22441ad03c301e2e0bc04e79ad1a">GetGlobalChannel()</a><p> <a class="el" href="classrlog_1_1RLogChannel.html">RLogChannel</a> implements channel logging support. A channel is a named logging location which is global to the program. Channels are hierarchically related.<p> For example, if somewhere in your program a message is logged to "debug/foo/bar", then it will be delived to any subscribers to "debug/foo/bar", or subscribers to "debug/foo", or subscribers to "debug". Subscribing to a channel means you will receive anything published on that channel or sub-channels.<p> As a special case, subscribing to the channel "" means you will receive all messages - as every message has a channel and the empty string "" is considered to mean the root of the channel tree.<p> In addition, componentized channels are all considered sub channels of the global channel hierarchy. All <a class="el" href="group__RLogMacros.html#ge8be8a2d2e9da76cb70e2f29e0801f73">rDebug()</a>, <a class="el" href="group__RLogMacros.html#gd62ee67e7f1de16d4f71b1d8699cfac8">rWarning()</a>, and <a class="el" href="group__RLogMacros.html#gc31d5e1de248b22df42a34e58a2b7349">rError()</a> macros publish to the componentized channels (component defined by RLOG_COMPONENT).<p> <div class="fragment"><pre class="fragment"> <span class="comment">// get the "debug" channel for our component. This is the same as</span> <span class="comment">// what rDebug() publishes to.</span> RLogChannel *node = RLOG_CHANNEL( <span class="stringliteral">"debug"</span>, Log_Debug ); <span class="comment">// equivalent to</span> RLogChannel *node = <a class="code" href="classrlog_1_1RLogChannel.html#0a1d6647703bf72c94248004ae8a6b76">GetComponentChannel</a>( RLOG_COMPONENT, <span class="stringliteral">"debug"</span> ); <span class="comment">// Or, get the global "debug" channel, which will have messages from</span> <span class="comment">// *all* component's "debug" channels.</span> RLogChannel *node = <a class="code" href="classrlog_1_1RLogChannel.html#657f22441ad03c301e2e0bc04e79ad1a">GetGlobalChannel</a>( <span class="stringliteral">"debug"</span>, Log_Debug ); </pre></div><p> <dl class="author" compact><dt><b>Author:</b></dt><dd>Valient Gough </dd></dl> <dl class="see" compact><dt><b>See also:</b></dt><dd>RLOG_CHANNEL() <p> <a class="el" href="classrlog_1_1RLogChannel.html#0a1d6647703bf72c94248004ae8a6b76">GetComponentChannel()</a> <p> <a class="el" href="classrlog_1_1RLogChannel.html#657f22441ad03c301e2e0bc04e79ad1a">GetGlobalChannel()</a> </dd></dl> <p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="b02534e508bec0d90cddd3c2ca2b12a7"></a><!-- doxytag: member="rlog::RLogChannel::publish" ref="b02534e508bec0d90cddd3c2ca2b12a7" args="(const RLogData &data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void RLogChannel::publish </td> <td>(</td> <td class="paramtype">const <a class="el" href="structrlog_1_1RLogData.html">RLogData</a> & </td> <td class="paramname"> <em>data</em> </td> <td> ) </td> <td width="100%"><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Publish data. <p> This iterates over the list of subscribers which have stated interest and sends them the data. <p> Reimplemented from <a class="el" href="classrlog_1_1RLogNode.html#798da2f13a0d98a48c8ba454ca460b88">rlog::RLogNode</a>. </div> </div><p> <hr><h2>Friends And Related Function Documentation</h2> <a class="anchor" name="0a1d6647703bf72c94248004ae8a6b76"></a><!-- doxytag: member="rlog::RLogChannel::GetComponentChannel" ref="0a1d6647703bf72c94248004ae8a6b76" args="(const char *component, const char *path, LogLevel level)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classrlog_1_1RLogChannel.html">RLogChannel</a> * GetComponentChannel </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>component</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>path</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">LogLevel </td> <td class="paramname"> <em>level</em> = <code>Log_Undef</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [friend]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Return the named channel for a particular component. <p> <dl class="author" compact><dt><b>Author:</b></dt><dd>Valient Gough </dd></dl> </div> </div><p> <a class="anchor" name="657f22441ad03c301e2e0bc04e79ad1a"></a><!-- doxytag: member="rlog::RLogChannel::GetGlobalChannel" ref="657f22441ad03c301e2e0bc04e79ad1a" args="(const char *path, LogLevel level)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classrlog_1_1RLogChannel.html">RLogChannel</a> * GetGlobalChannel </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>path</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">LogLevel </td> <td class="paramname"> <em>level</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [related]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Return the named channel across all components. <p> Channels are hierarchical. See <a class="el" href="classrlog_1_1RLogChannel.html">RLogChannel</a> for more detail. The global channel contains messages for all component channels.<p> For example, subscribing to the global "debug" means the subscriber would also get messages from <Component , "debug">, and <Component-B, "debug">, and <Component-C, "debug/foo">, etc.<p> <dl class="author" compact><dt><b>Author:</b></dt><dd>Valient Gough </dd></dl> </div> </div><p> <hr>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="RLogChannel_8h-source.html">RLogChannel.h</a><li>RLogChannel.cpp</ul> <hr size="1"><address style="align: right;"><small>Generated on Mon Nov 20 22:57:45 2006 for rlog by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.0 </small></address> </body> </html>