blob: dd0a42acfdab1f8c45bde8bb39794c03f7a6313d [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: CyclicBuffer Class 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 class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><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="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#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('classlog4cxx_1_1helpers_1_1_cyclic_buffer.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="#pub-methods">Public Member Functions</a> &#124;
<a href="classlog4cxx_1_1helpers_1_1_cyclic_buffer-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">CyclicBuffer Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html" title="CyclicBuffer is used by other appenders to hold instances of LoggingEvent for immediate or deferred d...">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.
<a href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:acba9071c4d0eb3671e686e73d19bab40"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html#acba9071c4d0eb3671e686e73d19bab40">CyclicBuffer</a> (int maxSize)</td></tr>
<tr class="memdesc:acba9071c4d0eb3671e686e73d19bab40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Instantiate a new <a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html" title="CyclicBuffer is used by other appenders to hold instances of LoggingEvent for immediate or deferred d...">CyclicBuffer</a> of at most <code>maxSize</code> events. <a href="#acba9071c4d0eb3671e686e73d19bab40">More...</a><br /></td></tr>
<tr class="separator:acba9071c4d0eb3671e686e73d19bab40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e064a0e9c783c50a3ddeebcd59fb0ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html#a0e064a0e9c783c50a3ddeebcd59fb0ee">~CyclicBuffer</a> ()</td></tr>
<tr class="separator:a0e064a0e9c783c50a3ddeebcd59fb0ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed460fe1de28e3e2c98ff110a26aebab"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html#aed460fe1de28e3e2c98ff110a26aebab">add</a> (const <a class="el" href="namespacelog4cxx_1_1spi.html#ab5abd68f0fb303c6d5f5f7d1ff49b3a6">spi::LoggingEventPtr</a> &amp;event)</td></tr>
<tr class="memdesc:aed460fe1de28e3e2c98ff110a26aebab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an <code>event</code> as the last event in the buffer. <a href="#aed460fe1de28e3e2c98ff110a26aebab">More...</a><br /></td></tr>
<tr class="separator:aed460fe1de28e3e2c98ff110a26aebab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87ffb0bb5b80153c19481c4e0e1d6d5e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx_1_1spi.html#ab5abd68f0fb303c6d5f5f7d1ff49b3a6">spi::LoggingEventPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html#a87ffb0bb5b80153c19481c4e0e1d6d5e">get</a> (int i)</td></tr>
<tr class="memdesc:a87ffb0bb5b80153c19481c4e0e1d6d5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the <em>i</em>th oldest event currently in the buffer. <a href="#a87ffb0bb5b80153c19481c4e0e1d6d5e">More...</a><br /></td></tr>
<tr class="separator:a87ffb0bb5b80153c19481c4e0e1d6d5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4f2c480908c2bdb309699d15cca3a80"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html#af4f2c480908c2bdb309699d15cca3a80">getMaxSize</a> () const </td></tr>
<tr class="separator:af4f2c480908c2bdb309699d15cca3a80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb9eaabb59e592b6770d7760792fdd97"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelog4cxx_1_1spi.html#ab5abd68f0fb303c6d5f5f7d1ff49b3a6">spi::LoggingEventPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html#adb9eaabb59e592b6770d7760792fdd97">get</a> ()</td></tr>
<tr class="memdesc:adb9eaabb59e592b6770d7760792fdd97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the oldest (first) element in the buffer. <a href="#adb9eaabb59e592b6770d7760792fdd97">More...</a><br /></td></tr>
<tr class="separator:adb9eaabb59e592b6770d7760792fdd97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57b988236ee6a3a5e572d126d3fbccc1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html#a57b988236ee6a3a5e572d126d3fbccc1">length</a> () const </td></tr>
<tr class="memdesc:a57b988236ee6a3a5e572d126d3fbccc1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of elements in the buffer. <a href="#a57b988236ee6a3a5e572d126d3fbccc1">More...</a><br /></td></tr>
<tr class="separator:a57b988236ee6a3a5e572d126d3fbccc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8b22b9d0f25d76dda44f79aeabd826f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html#ab8b22b9d0f25d76dda44f79aeabd826f">resize</a> (int newSize)</td></tr>
<tr class="memdesc:ab8b22b9d0f25d76dda44f79aeabd826f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resize the cyclic buffer to <code>newSize</code>. <a href="#ab8b22b9d0f25d76dda44f79aeabd826f">More...</a><br /></td></tr>
<tr class="separator:ab8b22b9d0f25d76dda44f79aeabd826f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html" title="CyclicBuffer is used by other appenders to hold instances of LoggingEvent for immediate or deferred d...">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>
<p>This buffer gives read access to any element in the buffer not just the first or last element. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="acba9071c4d0eb3671e686e73d19bab40"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html">CyclicBuffer</a> </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>maxSize</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Instantiate a new <a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html" title="CyclicBuffer is used by other appenders to hold instances of LoggingEvent for immediate or deferred d...">CyclicBuffer</a> of at most <code>maxSize</code> events. </p>
<p>The <code>maxSize</code> argument must a positive integer. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">maxSize</td><td>The maximum number of elements in the buffer. </td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classlog4cxx_1_1helpers_1_1_illegal_argument_exception.html" title="Thrown to indicate that a method has been passed an illegal or inappropriate argument. ">IllegalArgumentException</a></td><td>if <code>maxSize</code> is negative. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a0e064a0e9c783c50a3ddeebcd59fb0ee"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">~<a class="el" href="classlog4cxx_1_1helpers_1_1_cyclic_buffer.html">CyclicBuffer</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="aed460fe1de28e3e2c98ff110a26aebab"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void add </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacelog4cxx_1_1spi.html#ab5abd68f0fb303c6d5f5f7d1ff49b3a6">spi::LoggingEventPtr</a> &amp;&#160;</td>
<td class="paramname"><em>event</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Add an <code>event</code> as the last event in the buffer. </p>
</div>
</div>
<a class="anchor" id="a87ffb0bb5b80153c19481c4e0e1d6d5e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacelog4cxx_1_1spi.html#ab5abd68f0fb303c6d5f5f7d1ff49b3a6">spi::LoggingEventPtr</a> get </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the <em>i</em>th oldest event currently in the buffer. </p>
<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. </p>
</div>
</div>
<a class="anchor" id="adb9eaabb59e592b6770d7760792fdd97"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacelog4cxx_1_1spi.html#ab5abd68f0fb303c6d5f5f7d1ff49b3a6">spi::LoggingEventPtr</a> get </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the oldest (first) element in the buffer. </p>
<p>The oldest element is removed from the buffer. </p>
</div>
</div>
<a class="anchor" id="af4f2c480908c2bdb309699d15cca3a80"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int getMaxSize </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a57b988236ee6a3a5e572d126d3fbccc1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int length </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the number of elements in the buffer. </p>
<p>This number is guaranteed to be in the range 0 to <code>maxSize</code> (inclusive). </p>
</div>
</div>
<a class="anchor" id="ab8b22b9d0f25d76dda44f79aeabd826f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void resize </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>newSize</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Resize the cyclic buffer to <code>newSize</code>. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classlog4cxx_1_1helpers_1_1_illegal_argument_exception.html" title="Thrown to indicate that a method has been passed an illegal or inappropriate argument. ">IllegalArgumentException</a></td><td>if <code>newSize</code> is negative. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="cyclicbuffer_8h.html">cyclicbuffer.h</a></li>
</ul>
</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>