<!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: CyclicBuffer 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.4.6 --> | |
<div class="tabs"> | |
<ul> | |
<li><a href="main.html"><span>Main 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 List</span></a></li> | |
<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"> | |
<a class="el" href="namespacelog4cxx.html">log4cxx</a>::<a class="el" href="namespacelog4cxx_1_1helpers.html">helpers</a>::<a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html">CyclicBuffer</a></div> | |
<h1>CyclicBuffer Class Reference</h1><!-- doxytag: class="log4cxx::helpers::CyclicBuffer" --><a href="classlog4cxx_1_1helpers_1_1_cyclic_buffer-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2> | |
<a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html">CyclicBuffer</a> is used by other appenders to hold instances of <a class="el" href="classlog4cxx_1_1spi_1_1_logging_event.html">LoggingEvent</a> for immediate or deferred display. | |
<p> | |
This buffer gives read access to any element in the buffer not just the first or last element. | |
<p> | |
<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="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html#cba9071c4d0eb3671e686e73d19bab40">CyclicBuffer</a> (int maxSize)</td></tr> | |
<tr><td class="mdescLeft"> </td><td class="mdescRight">Instantiate a new <a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html">CyclicBuffer</a> of at most <code>maxSize</code> events. <a href="#cba9071c4d0eb3671e686e73d19bab40"></a><br></td></tr> | |
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html#0e064a0e9c783c50a3ddeebcd59fb0ee">~CyclicBuffer</a> ()</td></tr> | |
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html#ed460fe1de28e3e2c98ff110a26aebab">add</a> (const <a class="el" href="classlog4cxx_1_1helpers_1_1_object_ptr_t.html">spi::LoggingEventPtr</a> &event)</td></tr> | |
<tr><td class="mdescLeft"> </td><td class="mdescRight">Add an <code>event</code> as the last event in the buffer. <a href="#ed460fe1de28e3e2c98ff110a26aebab"></a><br></td></tr> | |
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classlog4cxx_1_1helpers_1_1_object_ptr_t.html">spi::LoggingEventPtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html#87ffb0bb5b80153c19481c4e0e1d6d5e">get</a> (int i)</td></tr> | |
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the <em>i</em>th oldest event currently in the buffer. <a href="#87ffb0bb5b80153c19481c4e0e1d6d5e"></a><br></td></tr> | |
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html#f4f2c480908c2bdb309699d15cca3a80">getMaxSize</a> () const </td></tr> | |
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classlog4cxx_1_1helpers_1_1_object_ptr_t.html">spi::LoggingEventPtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html#db9eaabb59e592b6770d7760792fdd97">get</a> ()</td></tr> | |
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the oldest (first) element in the buffer. <a href="#db9eaabb59e592b6770d7760792fdd97"></a><br></td></tr> | |
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html#57b988236ee6a3a5e572d126d3fbccc1">length</a> () const </td></tr> | |
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the number of elements in the buffer. <a href="#57b988236ee6a3a5e572d126d3fbccc1"></a><br></td></tr> | |
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html#b8b22b9d0f25d76dda44f79aeabd826f">resize</a> (int newSize)</td></tr> | |
<tr><td class="mdescLeft"> </td><td class="mdescRight">Resize the cyclic buffer to <code>newSize</code>. <a href="#b8b22b9d0f25d76dda44f79aeabd826f"></a><br></td></tr> | |
</table> | |
<hr><h2>Constructor & Destructor Documentation</h2> | |
<a class="anchor" name="cba9071c4d0eb3671e686e73d19bab40"></a><!-- doxytag: member="log4cxx::helpers::CyclicBuffer::CyclicBuffer" ref="cba9071c4d0eb3671e686e73d19bab40" args="(int maxSize)" --><p> | |
<table class="mdTable" cellpadding="2" cellspacing="0"> | |
<tr> | |
<td class="mdRow"> | |
<table cellpadding="0" cellspacing="0" border="0"> | |
<tr> | |
<td class="md" nowrap valign="top"><a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html">CyclicBuffer</a> </td> | |
<td class="md" valign="top">( </td> | |
<td class="md" nowrap valign="top">int </td> | |
<td class="mdname1" valign="top" nowrap> <em>maxSize</em> </td> | |
<td class="md" valign="top"> ) </td> | |
<td class="md" nowrap></td> | |
</tr> | |
</table> | |
</td> | |
</tr> | |
</table> | |
<table cellspacing="5" cellpadding="0" border="0"> | |
<tr> | |
<td> | |
| |
</td> | |
<td> | |
<p> | |
Instantiate a new <a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html">CyclicBuffer</a> of at most <code>maxSize</code> events. | |
<p> | |
The <code>maxSize</code> argument must a positive integer. <dl compact><dt><b>Parameters:</b></dt><dd> | |
<table border="0" cellspacing="2" cellpadding="0"> | |
<tr><td valign="top"></td><td valign="top"><em>maxSize</em> </td><td>The maximum number of elements in the buffer. </td></tr> | |
</table> | |
</dl> | |
<dl compact><dt><b>Exceptions:</b></dt><dd> | |
<table border="0" cellspacing="2" cellpadding="0"> | |
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classlog4cxx_1_1helpers_1_1_illegal_argument_exception.html">IllegalArgumentException</a></em> </td><td>if <code>maxSize</code> is negative. </td></tr> | |
</table> | |
</dl> | |
</td> | |
</tr> | |
</table> | |
<a class="anchor" name="0e064a0e9c783c50a3ddeebcd59fb0ee"></a><!-- doxytag: member="log4cxx::helpers::CyclicBuffer::~CyclicBuffer" ref="0e064a0e9c783c50a3ddeebcd59fb0ee" args="()" --><p> | |
<table class="mdTable" cellpadding="2" cellspacing="0"> | |
<tr> | |
<td class="mdRow"> | |
<table cellpadding="0" cellspacing="0" border="0"> | |
<tr> | |
<td class="md" nowrap valign="top">~<a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html">CyclicBuffer</a> </td> | |
<td class="md" valign="top">( </td> | |
<td class="mdname1" valign="top" nowrap> </td> | |
<td class="md" valign="top"> ) </td> | |
<td class="md" nowrap></td> | |
</tr> | |
</table> | |
</td> | |
</tr> | |
</table> | |
<table cellspacing="5" cellpadding="0" border="0"> | |
<tr> | |
<td> | |
| |
</td> | |
<td> | |
<p> | |
</td> | |
</tr> | |
</table> | |
<hr><h2>Member Function Documentation</h2> | |
<a class="anchor" name="ed460fe1de28e3e2c98ff110a26aebab"></a><!-- doxytag: member="log4cxx::helpers::CyclicBuffer::add" ref="ed460fe1de28e3e2c98ff110a26aebab" args="(const spi::LoggingEventPtr &event)" --><p> | |
<table class="mdTable" cellpadding="2" cellspacing="0"> | |
<tr> | |
<td class="mdRow"> | |
<table cellpadding="0" cellspacing="0" border="0"> | |
<tr> | |
<td class="md" nowrap valign="top">void add </td> | |
<td class="md" valign="top">( </td> | |
<td class="md" nowrap valign="top">const <a class="el" href="classlog4cxx_1_1helpers_1_1_object_ptr_t.html">spi::LoggingEventPtr</a> & </td> | |
<td class="mdname1" valign="top" nowrap> <em>event</em> </td> | |
<td class="md" valign="top"> ) </td> | |
<td class="md" nowrap></td> | |
</tr> | |
</table> | |
</td> | |
</tr> | |
</table> | |
<table cellspacing="5" cellpadding="0" border="0"> | |
<tr> | |
<td> | |
| |
</td> | |
<td> | |
<p> | |
Add an <code>event</code> as the last event in the buffer. | |
<p> | |
</td> | |
</tr> | |
</table> | |
<a class="anchor" name="db9eaabb59e592b6770d7760792fdd97"></a><!-- doxytag: member="log4cxx::helpers::CyclicBuffer::get" ref="db9eaabb59e592b6770d7760792fdd97" args="()" --><p> | |
<table class="mdTable" cellpadding="2" cellspacing="0"> | |
<tr> | |
<td class="mdRow"> | |
<table cellpadding="0" cellspacing="0" border="0"> | |
<tr> | |
<td class="md" nowrap valign="top"><a class="el" href="classlog4cxx_1_1helpers_1_1_object_ptr_t.html">spi::LoggingEventPtr</a> get </td> | |
<td class="md" valign="top">( </td> | |
<td class="mdname1" valign="top" nowrap> </td> | |
<td class="md" valign="top"> ) </td> | |
<td class="md" nowrap></td> | |
</tr> | |
</table> | |
</td> | |
</tr> | |
</table> | |
<table cellspacing="5" cellpadding="0" border="0"> | |
<tr> | |
<td> | |
| |
</td> | |
<td> | |
<p> | |
Get the oldest (first) element in the buffer. | |
<p> | |
The oldest element is removed from the buffer. </td> | |
</tr> | |
</table> | |
<a class="anchor" name="87ffb0bb5b80153c19481c4e0e1d6d5e"></a><!-- doxytag: member="log4cxx::helpers::CyclicBuffer::get" ref="87ffb0bb5b80153c19481c4e0e1d6d5e" args="(int i)" --><p> | |
<table class="mdTable" cellpadding="2" cellspacing="0"> | |
<tr> | |
<td class="mdRow"> | |
<table cellpadding="0" cellspacing="0" border="0"> | |
<tr> | |
<td class="md" nowrap valign="top"><a class="el" href="classlog4cxx_1_1helpers_1_1_object_ptr_t.html">spi::LoggingEventPtr</a> get </td> | |
<td class="md" valign="top">( </td> | |
<td class="md" nowrap valign="top">int </td> | |
<td class="mdname1" valign="top" nowrap> <em>i</em> </td> | |
<td class="md" valign="top"> ) </td> | |
<td class="md" nowrap></td> | |
</tr> | |
</table> | |
</td> | |
</tr> | |
</table> | |
<table cellspacing="5" cellpadding="0" border="0"> | |
<tr> | |
<td> | |
| |
</td> | |
<td> | |
<p> | |
Get the <em>i</em>th oldest event currently in the buffer. | |
<p> | |
If <em>i</em> is outside the range 0 to the number of elements currently in the buffer, then <code>null</code> is returned. </td> | |
</tr> | |
</table> | |
<a class="anchor" name="f4f2c480908c2bdb309699d15cca3a80"></a><!-- doxytag: member="log4cxx::helpers::CyclicBuffer::getMaxSize" ref="f4f2c480908c2bdb309699d15cca3a80" args="() const " --><p> | |
<table class="mdTable" cellpadding="2" cellspacing="0"> | |
<tr> | |
<td class="mdRow"> | |
<table cellpadding="0" cellspacing="0" border="0"> | |
<tr> | |
<td class="md" nowrap valign="top">int getMaxSize </td> | |
<td class="md" valign="top">( </td> | |
<td class="mdname1" valign="top" nowrap> </td> | |
<td class="md" valign="top"> ) </td> | |
<td class="md" nowrap> const<code> [inline]</code></td> | |
</tr> | |
</table> | |
</td> | |
</tr> | |
</table> | |
<table cellspacing="5" cellpadding="0" border="0"> | |
<tr> | |
<td> | |
| |
</td> | |
<td> | |
<p> | |
</td> | |
</tr> | |
</table> | |
<a class="anchor" name="57b988236ee6a3a5e572d126d3fbccc1"></a><!-- doxytag: member="log4cxx::helpers::CyclicBuffer::length" ref="57b988236ee6a3a5e572d126d3fbccc1" args="() const " --><p> | |
<table class="mdTable" cellpadding="2" cellspacing="0"> | |
<tr> | |
<td class="mdRow"> | |
<table cellpadding="0" cellspacing="0" border="0"> | |
<tr> | |
<td class="md" nowrap valign="top">int length </td> | |
<td class="md" valign="top">( </td> | |
<td class="mdname1" valign="top" nowrap> </td> | |
<td class="md" valign="top"> ) </td> | |
<td class="md" nowrap> const<code> [inline]</code></td> | |
</tr> | |
</table> | |
</td> | |
</tr> | |
</table> | |
<table cellspacing="5" cellpadding="0" border="0"> | |
<tr> | |
<td> | |
| |
</td> | |
<td> | |
<p> | |
Get the number of elements in the buffer. | |
<p> | |
This number is guaranteed to be in the range 0 to <code>maxSize</code> (inclusive). </td> | |
</tr> | |
</table> | |
<a class="anchor" name="b8b22b9d0f25d76dda44f79aeabd826f"></a><!-- doxytag: member="log4cxx::helpers::CyclicBuffer::resize" ref="b8b22b9d0f25d76dda44f79aeabd826f" args="(int newSize)" --><p> | |
<table class="mdTable" cellpadding="2" cellspacing="0"> | |
<tr> | |
<td class="mdRow"> | |
<table cellpadding="0" cellspacing="0" border="0"> | |
<tr> | |
<td class="md" nowrap valign="top">void resize </td> | |
<td class="md" valign="top">( </td> | |
<td class="md" nowrap valign="top">int </td> | |
<td class="mdname1" valign="top" nowrap> <em>newSize</em> </td> | |
<td class="md" valign="top"> ) </td> | |
<td class="md" nowrap></td> | |
</tr> | |
</table> | |
</td> | |
</tr> | |
</table> | |
<table cellspacing="5" cellpadding="0" border="0"> | |
<tr> | |
<td> | |
| |
</td> | |
<td> | |
<p> | |
Resize the cyclic buffer to <code>newSize</code>. | |
<p> | |
<dl compact><dt><b>Exceptions:</b></dt><dd> | |
<table border="0" cellspacing="2" cellpadding="0"> | |
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classlog4cxx_1_1helpers_1_1_illegal_argument_exception.html">IllegalArgumentException</a></em> </td><td>if <code>newSize</code> is negative. </td></tr> | |
</table> | |
</dl> | |
</td> | |
</tr> | |
</table> | |
<hr>The documentation for this class was generated from the following file:<ul> | |
<li><a class="el" href="cyclicbuffer_8h.html">cyclicbuffer.h</a></ul> | |
<!-- | |
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> |