<!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>logstream Member List</h1>This is the complete list of members for <a class="el" href="classlog4cxx_1_1logstream.html">logstream</a>, including all inherited members.<p><table>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream__base.html#0edbfebc35a61a5047480e1ae978fb38">end_message</a>()</td><td><a class="el" href="classlog4cxx_1_1logstream__base.html">logstream_base</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream__base.html#e95420093e23b645a275e115043684e9">endmsg</a>(logstream_base &amp;)</td><td><a class="el" href="classlog4cxx_1_1logstream__base.html">logstream_base</a></td><td><code> [static]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream.html#cc248831fec96b660d813c565ffd93b7">erase</a>()</td><td><a class="el" href="classlog4cxx_1_1logstream.html">logstream</a></td><td><code> [protected, virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream__base.html#20edf1feedb30e49b45f6056cb0acf21">fill</a>()</td><td><a class="el" href="classlog4cxx_1_1logstream__base.html">logstream_base</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream__base.html#5bd23ee910d99bdca1b590ebe1dd8d8e">fill</a>(int newval)</td><td><a class="el" href="classlog4cxx_1_1logstream__base.html">logstream_base</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream__base.html#4bffd9ffd951baa394eaaed7ab4dcf8b">flags</a>(std::ios_base::fmtflags newflags)</td><td><a class="el" href="classlog4cxx_1_1logstream__base.html">logstream_base</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream.html#9e8c5ad843e0886f9e6c683e6888de77">get_stream_state</a>(std::ios_base &amp;base, std::ios_base &amp;mask, int &amp;fill, bool &amp;fillSet) const </td><td><a class="el" href="classlog4cxx_1_1logstream.html">logstream</a></td><td><code> [protected, virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream__base.html#2748af78ff2396cf61c227cb09569d86">insert</a>(std::ios_base &amp;(*manip)(std::ios_base &amp;))</td><td><a class="el" href="classlog4cxx_1_1logstream__base.html">logstream_base</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream__base.html#e2931e09e0fd8eac15c83f0254b4e4ac">isEnabled</a>() const </td><td><a class="el" href="classlog4cxx_1_1logstream__base.html">logstream_base</a></td><td><code> [inline]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream__base.html#f43c11d7ecdeb6d5cf628bd71a9ad028">isEnabledFor</a>(const LevelPtr &amp;level) const </td><td><a class="el" href="classlog4cxx_1_1logstream__base.html">logstream_base</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream.html#3175ec78d6e1235ebd1ab3aad0e8e717">log</a>(LoggerPtr &amp;logger, const LevelPtr &amp;level, const log4cxx::spi::LocationInfo &amp;location)</td><td><a class="el" href="classlog4cxx_1_1logstream.html">logstream</a></td><td><code> [protected, virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream.html#b8cfa901d8135b7a27ddc1ee1be30cbf">logstream</a>(const log4cxx::LoggerPtr &amp;logger, const log4cxx::LevelPtr &amp;level)</td><td><a class="el" href="classlog4cxx_1_1logstream.html">logstream</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream.html#75d0bc1ee880f1d3034a8238609cae12">logstream</a>(const Ch *loggerName, const log4cxx::LevelPtr &amp;level)</td><td><a class="el" href="classlog4cxx_1_1logstream.html">logstream</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream.html#e1620472fb6d478b3441a32afcca9c97">logstream</a>(const std::basic_string&lt; Ch &gt; &amp;loggerName, const log4cxx::LevelPtr &amp;level)</td><td><a class="el" href="classlog4cxx_1_1logstream.html">logstream</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream__base.html#97b38f730d79dc1307d603bcb9ce1dcd">logstream_base</a>(const log4cxx::LoggerPtr &amp;logger, const log4cxx::LevelPtr &amp;level)</td><td><a class="el" href="classlog4cxx_1_1logstream__base.html">logstream_base</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream__base.html#ccda5f6f4f49c945db2e303a9ca11a53">nop</a>(logstream_base &amp;)</td><td><a class="el" href="classlog4cxx_1_1logstream__base.html">logstream_base</a></td><td><code> [static]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream.html#99359af16778cf382f92639bafe47bc4">operator std::basic_ostream</a>()</td><td><a class="el" href="classlog4cxx_1_1logstream.html">logstream</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream.html#16b0cf66b02e5379ac1a1b6c6bfc6745">operator&lt;&lt;</a>(std::ios_base &amp;(*manip)(std::ios_base &amp;))</td><td><a class="el" href="classlog4cxx_1_1logstream.html">logstream</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream.html#e1a3439b13992a3683f41d0ba6f00057">operator&lt;&lt;</a>(logstream_manipulator manip)</td><td><a class="el" href="classlog4cxx_1_1logstream.html">logstream</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream.html#c691c1371c01f9d81f88d521f2e6ddfb">operator&lt;&lt;</a>(const log4cxx::LevelPtr &amp;level)</td><td><a class="el" href="classlog4cxx_1_1logstream.html">logstream</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream.html#21740c3f4276a003e5aeade5d3f30912">operator&lt;&lt;</a>(const log4cxx::spi::LocationInfo &amp;location)</td><td><a class="el" href="classlog4cxx_1_1logstream.html">logstream</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream.html#6e067f7ab2408d133ad7ba8aa7b32edc">operator&lt;&lt;</a>(const V &amp;val)</td><td><a class="el" href="classlog4cxx_1_1logstream.html">logstream</a></td><td><code> [inline]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream.html#deb6fa7cda042b18572dc519f0077f2e">operator&gt;&gt;</a>(const log4cxx::spi::LocationInfo &amp;location)</td><td><a class="el" href="classlog4cxx_1_1logstream.html">logstream</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream__base.html#1de59f1b10893c8c314b8fab5453d557">precision</a>()</td><td><a class="el" href="classlog4cxx_1_1logstream__base.html">logstream_base</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream__base.html#5902205aee84171d925dbb635aa29a43">precision</a>(int newval)</td><td><a class="el" href="classlog4cxx_1_1logstream__base.html">logstream_base</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream.html#979bc47725d6c28a371e71b4f45ed548">refresh_stream_state</a>()</td><td><a class="el" href="classlog4cxx_1_1logstream.html">logstream</a></td><td><code> [protected, virtual]</code></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream__base.html#f71d0e6a57da49afb8b1acf6fa2bf971">set_stream_state</a>(std::ios_base &amp;os, int &amp;fillchar)</td><td><a class="el" href="classlog4cxx_1_1logstream__base.html">logstream_base</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream__base.html#4b0afcc4495f35758b419b77d2afe0e4">setf</a>(std::ios_base::fmtflags newflags, std::ios_base::fmtflags mask)</td><td><a class="el" href="classlog4cxx_1_1logstream__base.html">logstream_base</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream__base.html#05eb8e97f5c585bdf68dd22a3bfaeedc">setf</a>(std::ios_base::fmtflags newflags)</td><td><a class="el" href="classlog4cxx_1_1logstream__base.html">logstream_base</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream__base.html#16a971221dd24c189c9916ca2cf90b0a">setLevel</a>(const LevelPtr &amp;level)</td><td><a class="el" href="classlog4cxx_1_1logstream__base.html">logstream_base</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream__base.html#9f24a4873ac46d6bd3911dda3fd7f6b3">setLocation</a>(const log4cxx::spi::LocationInfo &amp;location)</td><td><a class="el" href="classlog4cxx_1_1logstream__base.html">logstream_base</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream__base.html#3eeed61a3424d2f907c8a1e420fddf6d">width</a>()</td><td><a class="el" href="classlog4cxx_1_1logstream__base.html">logstream_base</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream__base.html#8434e31214926edbe6dc886f146d60b3">width</a>(int newval)</td><td><a class="el" href="classlog4cxx_1_1logstream__base.html">logstream_base</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream.html#b89ec4ba9633690d16b3d41f33c6548e">~logstream</a>()</td><td><a class="el" href="classlog4cxx_1_1logstream.html">logstream</a></td><td></td></tr>
  <tr class="memlist"><td><a class="el" href="classlog4cxx_1_1logstream__base.html#ae49dbe6cf9523ca9602dd1e7fd71682">~logstream_base</a>()</td><td><a class="el" href="classlog4cxx_1_1logstream__base.html">logstream_base</a></td><td><code> [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>
