<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--

 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.

--><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Apache log4cxx: Member List</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.4.6 -->
<div class="tabs">
  <ul>
    <li><a href="main.html"><span>Main&nbsp;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 id="current"><a href="classes.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="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul></div>
<h1>Appender Member List</h1>This is the complete list of members for <a class="el" href="classlog4cxx_1_1_appender.html">Appender</a>, including all inherited members.<p><table>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1spi_1_1_option_handler.html#f04d4bfbd66b46083b1aa042fdafbb06">activateOptions</a>(log4cxx::helpers::Pool &amp;p)=0</td><td><a class="el" href="classlog4cxx_1_1spi_1_1_option_handler.html">OptionHandler</a></td><td><code> [pure virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1_appender.html#06931700a645a1cf08353968672d5dfe">addFilter</a>(const spi::FilterPtr &amp;newFilter)=0</td><td><a class="el" href="classlog4cxx_1_1_appender.html">Appender</a></td><td><code> [pure virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#d46110ab1ec2f0c6f3d1e0803df6cdc4">addRef</a>() const =0</td><td><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html">Object</a></td><td><code> [pure virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#5a7744a4efdb699356cef215613903c3">cast</a>(const Class &amp;clazz) const =0</td><td><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html">Object</a></td><td><code> [pure virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1_appender.html#5219689d2c359a4bf6ddc48ea1e8dd42">clearFilters</a>()=0</td><td><a class="el" href="classlog4cxx_1_1_appender.html">Appender</a></td><td><code> [pure virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1_appender.html#f6ee7eacbde6b379b68d954e44f6e549">close</a>()=0</td><td><a class="el" href="classlog4cxx_1_1_appender.html">Appender</a></td><td><code> [pure virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1_appender.html#e78c4f3ccf2a3b33eb83d76e49e79dc6">doAppend</a>(const spi::LoggingEventPtr &amp;event, log4cxx::helpers::Pool &amp;pool)=0</td><td><a class="el" href="classlog4cxx_1_1_appender.html">Appender</a></td><td><code> [pure virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#e7b62e37794f297c0cede40ed0e84fcd">getClass</a>() const </td><td><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html">Object</a></td><td><code> [virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1_appender.html#31134324f99ee92e17f359e3daa05ca7">getFilter</a>() const =0</td><td><a class="el" href="classlog4cxx_1_1_appender.html">Appender</a></td><td><code> [pure virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1_appender.html#1ec13ad0f8e6a13f91dc7a7ce7a4a564">getLayout</a>() const =0</td><td><a class="el" href="classlog4cxx_1_1_appender.html">Appender</a></td><td><code> [pure virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1_appender.html#e7a22efd00c94d9d06b832fe6953baa3">getName</a>() const =0</td><td><a class="el" href="classlog4cxx_1_1_appender.html">Appender</a></td><td><code> [pure virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#0bdbda4effe8938c1aca6d4397e5a39d">getStaticClass</a>()</td><td><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html">Object</a></td><td><code> [static]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#3604a5fb08f7048d41b51a3943740b96">instanceof</a>(const Class &amp;clazz) const =0</td><td><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html">Object</a></td><td><code> [pure virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#50ec9288d0b7e3140dee8e24ee74a212">registerClass</a>()</td><td><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html">Object</a></td><td><code> [static]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#1f5e8d8350f515ab75e47c61f2e31c21">releaseRef</a>() const =0</td><td><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html">Object</a></td><td><code> [pure virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1_appender.html#1fa0a21a0f0a6ec3a9e92a98db9ffa85">requiresLayout</a>() const =0</td><td><a class="el" href="classlog4cxx_1_1_appender.html">Appender</a></td><td><code> [pure virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1_appender.html#88cfba44fa745f658fab9b8c6a8d959f">setLayout</a>(const LayoutPtr &amp;layout)=0</td><td><a class="el" href="classlog4cxx_1_1_appender.html">Appender</a></td><td><code> [pure virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1_appender.html#46473dcf1999f98a4c97168a3d2c7c84">setName</a>(const LogString &amp;name)=0</td><td><a class="el" href="classlog4cxx_1_1_appender.html">Appender</a></td><td><code> [pure virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1spi_1_1_option_handler.html#8f2ae2ded63f80c627269c99b20c19ee">setOption</a>(const LogString &amp;option, const LogString &amp;value)=0</td><td><a class="el" href="classlog4cxx_1_1spi_1_1_option_handler.html">OptionHandler</a></td><td><code> [pure virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1_appender.html#15a14100e46e406766b1c92c670948e1">~Appender</a>()</td><td><a class="el" href="classlog4cxx_1_1_appender.html">Appender</a></td><td><code> [inline, virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html#b5cc4f9ba1ea5c2f25bc4b1f0dac5dc5">~Object</a>()</td><td><a class="el" href="classlog4cxx_1_1helpers_1_1_object.html">Object</a></td><td><code> [inline, virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1spi_1_1_option_handler.html#d773ac49843844af53fe553912ed63e5">~OptionHandler</a>()</td><td><a class="el" href="classlog4cxx_1_1spi_1_1_option_handler.html">OptionHandler</a></td><td><code> [inline, virtual]</code></td></tr>
</table><!--
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>
