blob: a68a3b9b4bfd23a0cd634cb2ee1d10818311c57a [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Apache log4cxx: object.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname"><a href="http://logging.apache.org/log4cxx">Apache log4cxx</a>
&#160;<span id="projectnumber">Version 0.10.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('object_8h.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">object.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html">Object</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">base class for java-like objects. <a href="classlog4cxx_1_1helpers_1_1_object.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_object_1_1_clazz_object.html">Object::ClazzObject</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacelog4cxx"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelog4cxx.html">log4cxx</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespacelog4cxx_1_1helpers"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelog4cxx_1_1helpers.html">log4cxx::helpers</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a7a13485fd2b3040ee5cae53c2bc00f13"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="object_8h.html#a7a13485fd2b3040ee5cae53c2bc00f13">DECLARE_ABSTRACT_LOG4CXX_OBJECT</a>(object)</td></tr>
<tr class="separator:a7a13485fd2b3040ee5cae53c2bc00f13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e129ec12609d98bb2a10d15b46709ba"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="object_8h.html#a9e129ec12609d98bb2a10d15b46709ba">DECLARE_LOG4CXX_OBJECT</a>(object)</td></tr>
<tr class="separator:a9e129ec12609d98bb2a10d15b46709ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bca89baf41fe4f2f4ff96203de445d5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="object_8h.html#a1bca89baf41fe4f2f4ff96203de445d5">DECLARE_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS</a>(object, class)</td></tr>
<tr class="separator:a1bca89baf41fe4f2f4ff96203de445d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7407bf6e747dc0c5db5208a4ae4a07e6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="object_8h.html#a7407bf6e747dc0c5db5208a4ae4a07e6">IMPLEMENT_LOG4CXX_OBJECT</a>(object)</td></tr>
<tr class="separator:a7407bf6e747dc0c5db5208a4ae4a07e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7bf8c071020414cc69eb1c95845901c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="object_8h.html#af7bf8c071020414cc69eb1c95845901c">IMPLEMENT_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS</a>(object, class)</td></tr>
<tr class="separator:af7bf8c071020414cc69eb1c95845901c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8ff8f70159e03fe7d8c4aa743cc9cda"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="object_8h.html#ac8ff8f70159e03fe7d8c4aa743cc9cda">BEGIN_LOG4CXX_CAST_MAP</a>()</td></tr>
<tr class="separator:ac8ff8f70159e03fe7d8c4aa743cc9cda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a917a7d053853b1ffdf45a3d91aeca4f1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="object_8h.html#a917a7d053853b1ffdf45a3d91aeca4f1">END_LOG4CXX_CAST_MAP</a>()</td></tr>
<tr class="separator:a917a7d053853b1ffdf45a3d91aeca4f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a642180530328ec0378468edda5bc94e2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="object_8h.html#a642180530328ec0378468edda5bc94e2">LOG4CXX_CAST_ENTRY</a>(Interface)&#160;&#160;&#160;if (&amp;clazz == &amp;Interface::getStaticClass()) return (const Interface *)this;</td></tr>
<tr class="separator:a642180530328ec0378468edda5bc94e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a148aec9f47f8af8058c7b476b08a7802"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="object_8h.html#a148aec9f47f8af8058c7b476b08a7802">LOG4CXX_CAST_ENTRY2</a>(Interface, interface2)&#160;&#160;&#160;if (&amp;clazz == &amp;Interface::getStaticClass()) return (Interface *)(interface2 *)this;</td></tr>
<tr class="separator:a148aec9f47f8af8058c7b476b08a7802"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab14dc1a75d63a11359c8861a59786abc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="object_8h.html#ab14dc1a75d63a11359c8861a59786abc">LOG4CXX_CAST_ENTRY_CHAIN</a>(Interface)</td></tr>
<tr class="separator:ab14dc1a75d63a11359c8861a59786abc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a3786cf3e0c3d55955d25114ae2c273f8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelog4cxx_1_1helpers.html#a3786cf3e0c3d55955d25114ae2c273f8">LOG4CXX_PTR_DEF</a> (Object)</td></tr>
<tr class="separator:a3786cf3e0c3d55955d25114ae2c273f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ac8ff8f70159e03fe7d8c4aa743cc9cda"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define BEGIN_LOG4CXX_CAST_MAP</td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">void</span> * cast(<span class="keyword">const</span> helpers::Class&amp; clazz) <span class="keyword">const</span>\</div><div class="line">{\</div><div class="line"> const <span class="keywordtype">void</span> * <span class="keywordtype">object</span> = 0;\</div><div class="line"> if (&amp;clazz == &amp;helpers::Object::getStaticClass()) return (const helpers::Object *)this;</div></div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a7a13485fd2b3040ee5cae53c2bc00f13"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DECLARE_ABSTRACT_LOG4CXX_OBJECT</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">object</td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>:\</div><div class="line">class Clazz##<span class="keywordtype">object</span> : <span class="keyword">public</span> helpers::Class\</div><div class="line">{\</div><div class="line">public:\</div><div class="line"> Clazz##object() : helpers::Class() {}\</div><div class="line"> virtual ~Clazz##object() {}\</div><div class="line"> virtual <a class="code" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">log4cxx::LogString</a> getName()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> LOG4CXX_STR(#<span class="keywordtype">object</span>); } \</div><div class="line">};\</div><div class="line">virtual <span class="keyword">const</span> helpers::Class&amp; getClass() <span class="keyword">const</span>;\</div><div class="line">static <span class="keyword">const</span> helpers::Class&amp; getStaticClass(); \</div><div class="line">static <span class="keyword">const</span> <a class="code" href="classlog4cxx_1_1helpers_1_1_class_registration.html">log4cxx::helpers::ClassRegistration</a>&amp; registerClass();</div><div class="ttc" id="namespacelog4cxx_html_ad7ec98d27bca7666e23f27dd1fb181c8"><div class="ttname"><a href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">log4cxx::LogString</a></div><div class="ttdeci">std::basic_string&lt; logchar &gt; LogString</div><div class="ttdef"><b>Definition:</b> logstring.h:67</div></div>
<div class="ttc" id="classlog4cxx_1_1helpers_1_1_class_registration_html"><div class="ttname"><a href="classlog4cxx_1_1helpers_1_1_class_registration.html">log4cxx::helpers::ClassRegistration</a></div><div class="ttdef"><b>Definition:</b> classregistration.h:28</div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a9e129ec12609d98bb2a10d15b46709ba"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DECLARE_LOG4CXX_OBJECT</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">object</td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>:\</div><div class="line">class Clazz##<span class="keywordtype">object</span> : <span class="keyword">public</span> helpers::Class\</div><div class="line">{\</div><div class="line">public:\</div><div class="line"> Clazz##object() : helpers::Class() {}\</div><div class="line"> virtual ~Clazz##object() {}\</div><div class="line"> virtual <a class="code" href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">log4cxx::LogString</a> getName()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> LOG4CXX_STR(#<span class="keywordtype">object</span>); } \</div><div class="line"> virtual <a class="code" href="namespacelog4cxx_1_1helpers.html#aa808d0071a7cbb3a7e9214ee261c844a">helpers::ObjectPtr</a> newInstance() const\</div><div class="line"> {\</div><div class="line"> return <span class="keyword">new</span> object();\</div><div class="line"> }\</div><div class="line">};\</div><div class="line">virtual <span class="keyword">const</span> helpers::Class&amp; getClass() <span class="keyword">const</span>;\</div><div class="line">static <span class="keyword">const</span> helpers::Class&amp; getStaticClass(); \</div><div class="line">static <span class="keyword">const</span> <a class="code" href="classlog4cxx_1_1helpers_1_1_class_registration.html">log4cxx::helpers::ClassRegistration</a>&amp; registerClass();</div><div class="ttc" id="namespacelog4cxx_html_ad7ec98d27bca7666e23f27dd1fb181c8"><div class="ttname"><a href="namespacelog4cxx.html#ad7ec98d27bca7666e23f27dd1fb181c8">log4cxx::LogString</a></div><div class="ttdeci">std::basic_string&lt; logchar &gt; LogString</div><div class="ttdef"><b>Definition:</b> logstring.h:67</div></div>
<div class="ttc" id="classlog4cxx_1_1helpers_1_1_class_registration_html"><div class="ttname"><a href="classlog4cxx_1_1helpers_1_1_class_registration.html">log4cxx::helpers::ClassRegistration</a></div><div class="ttdef"><b>Definition:</b> classregistration.h:28</div></div>
<div class="ttc" id="namespacelog4cxx_1_1helpers_html_aa808d0071a7cbb3a7e9214ee261c844a"><div class="ttname"><a href="namespacelog4cxx_1_1helpers.html#aa808d0071a7cbb3a7e9214ee261c844a">log4cxx::helpers::ObjectPtr</a></div><div class="ttdeci">ObjectPtrT&lt; Object &gt; ObjectPtr</div><div class="ttdef"><b>Definition:</b> propertysetter.h:28</div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a1bca89baf41fe4f2f4ff96203de445d5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DECLARE_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">object, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">class&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>:\</div><div class="line">virtual <span class="keyword">const</span> helpers::Class&amp; getClass() <span class="keyword">const</span>;\</div><div class="line">static <span class="keyword">const</span> helpers::Class&amp; getStaticClass();\</div><div class="line">static <span class="keyword">const</span> <a class="code" href="classlog4cxx_1_1helpers_1_1_class_registration.html">log4cxx::helpers::ClassRegistration</a>&amp; registerClass();</div><div class="ttc" id="classlog4cxx_1_1helpers_1_1_class_registration_html"><div class="ttname"><a href="classlog4cxx_1_1helpers_1_1_class_registration.html">log4cxx::helpers::ClassRegistration</a></div><div class="ttdef"><b>Definition:</b> classregistration.h:28</div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a917a7d053853b1ffdf45a3d91aeca4f1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define END_LOG4CXX_CAST_MAP</td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">return</span> object;\</div><div class="line">}\</div><div class="line">bool instanceof(<span class="keyword">const</span> helpers::Class&amp; clazz) <span class="keyword">const</span>\</div><div class="line">{ <span class="keywordflow">return</span> cast(clazz) != 0; }</div></div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a7407bf6e747dc0c5db5208a4ae4a07e6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define IMPLEMENT_LOG4CXX_OBJECT</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">object</td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">const</span> <a class="code" href="classlog4cxx_1_1helpers_1_1_class.html">log4cxx::helpers::Class</a>&amp; object::getClass()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> getStaticClass(); }\</div><div class="line">const <a class="code" href="classlog4cxx_1_1helpers_1_1_class.html">log4cxx::helpers::Class</a>&amp; object::getStaticClass() { \</div><div class="line"> static Clazz##<span class="keywordtype">object</span> theClass; \</div><div class="line"> return theClass; \</div><div class="line">} \</div><div class="line">const <a class="code" href="classlog4cxx_1_1helpers_1_1_class_registration.html">log4cxx::helpers::ClassRegistration</a>&amp; object::registerClass() { \</div><div class="line"> static <a class="code" href="classlog4cxx_1_1helpers_1_1_class_registration.html">log4cxx::helpers::ClassRegistration</a> classReg(object::getStaticClass); \</div><div class="line"> return classReg; \</div><div class="line">}\</div><div class="line">namespace <a class="code" href="namespacelog4cxx.html">log4cxx</a> { <span class="keyword">namespace </span>classes { \</div><div class="line">const <a class="code" href="classlog4cxx_1_1helpers_1_1_class_registration.html">log4cxx::helpers::ClassRegistration</a>&amp; <span class="keywordtype">object</span>##Registration = object::registerClass(); \</div><div class="line">} }</div><div class="ttc" id="classlog4cxx_1_1helpers_1_1_class_html"><div class="ttname"><a href="classlog4cxx_1_1helpers_1_1_class.html">log4cxx::helpers::Class</a></div><div class="ttdef"><b>Definition:</b> class.h:39</div></div>
<div class="ttc" id="classlog4cxx_1_1helpers_1_1_class_registration_html"><div class="ttname"><a href="classlog4cxx_1_1helpers_1_1_class_registration.html">log4cxx::helpers::ClassRegistration</a></div><div class="ttdef"><b>Definition:</b> classregistration.h:28</div></div>
<div class="ttc" id="namespacelog4cxx_html"><div class="ttname"><a href="namespacelog4cxx.html">log4cxx</a></div><div class="ttdef"><b>Definition:</b> appender.h:33</div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="af7bf8c071020414cc69eb1c95845901c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define IMPLEMENT_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">object, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">class&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">const</span> <a class="code" href="classlog4cxx_1_1helpers_1_1_class.html">log4cxx::helpers::Class</a>&amp; object::getClass()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> getStaticClass(); }\</div><div class="line">const <a class="code" href="classlog4cxx_1_1helpers_1_1_class.html">log4cxx::helpers::Class</a>&amp; object::getStaticClass() { \</div><div class="line"> static <span class="keyword">class </span>theClass; \</div><div class="line"> return theClass; \</div><div class="line">} \</div><div class="line">const <a class="code" href="classlog4cxx_1_1helpers_1_1_class_registration.html">log4cxx::helpers::ClassRegistration</a>&amp; object::registerClass() { \</div><div class="line"> static <a class="code" href="classlog4cxx_1_1helpers_1_1_class_registration.html">log4cxx::helpers::ClassRegistration</a> classReg(object::getStaticClass); \</div><div class="line"> return classReg; \</div><div class="line">}\</div><div class="line">namespace <a class="code" href="namespacelog4cxx.html">log4cxx</a> { <span class="keyword">namespace </span>classes { \</div><div class="line">const <a class="code" href="classlog4cxx_1_1helpers_1_1_class_registration.html">log4cxx::helpers::ClassRegistration</a>&amp; <span class="keywordtype">object</span>##Registration = object::registerClass(); \</div><div class="line">} }</div><div class="ttc" id="classlog4cxx_1_1helpers_1_1_class_html"><div class="ttname"><a href="classlog4cxx_1_1helpers_1_1_class.html">log4cxx::helpers::Class</a></div><div class="ttdef"><b>Definition:</b> class.h:39</div></div>
<div class="ttc" id="classlog4cxx_1_1helpers_1_1_class_registration_html"><div class="ttname"><a href="classlog4cxx_1_1helpers_1_1_class_registration.html">log4cxx::helpers::ClassRegistration</a></div><div class="ttdef"><b>Definition:</b> classregistration.h:28</div></div>
<div class="ttc" id="namespacelog4cxx_html"><div class="ttname"><a href="namespacelog4cxx.html">log4cxx</a></div><div class="ttdef"><b>Definition:</b> appender.h:33</div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a642180530328ec0378468edda5bc94e2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LOG4CXX_CAST_ENTRY</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">Interface</td><td>)</td>
<td>&#160;&#160;&#160;if (&amp;clazz == &amp;Interface::getStaticClass()) return (const Interface *)this;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a148aec9f47f8af8058c7b476b08a7802"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LOG4CXX_CAST_ENTRY2</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">Interface, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">interface2&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td>&#160;&#160;&#160;if (&amp;clazz == &amp;Interface::getStaticClass()) return (Interface *)(interface2 *)this;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ab14dc1a75d63a11359c8861a59786abc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LOG4CXX_CAST_ENTRY_CHAIN</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">Interface</td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordtype">object</span> = Interface::cast(clazz);\</div><div class="line">if (<span class="keywordtype">object</span> != 0) return <span class="keywordtype">object</span>;</div></div><!-- fragment -->
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
</body>
</html>