<!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" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<title>CyclicBuffer xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/log4j/helpers/CyclicBuffer.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> * contributor license agreements.  See the NOTICE file distributed with</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * the License.  You may obtain a copy of the License at</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * </em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> * </em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * limitations under the License.</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> */</em>
<a name="17" href="#17">17</a>       
<a name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.log4j.helpers;
<a name="19" href="#19">19</a>  
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LoggingEvent;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <em class="jxr_javadoccomment">/**</em>
<a name="23" href="#23">23</a>  
<a name="24" href="#24">24</a>  <em class="jxr_javadoccomment">   CyclicBuffer is used by other appenders to hold {@link LoggingEvent</em>
<a name="25" href="#25">25</a>  <em class="jxr_javadoccomment">   LoggingEvents} for immediate or differed display.</em>
<a name="26" href="#26">26</a>  <em class="jxr_javadoccomment">   </em>
<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment">   &lt;p&gt;This buffer gives read access to any element in the buffer not</em>
<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment">   just the first or last element.</em>
<a name="29" href="#29">29</a>  
<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment">   @author Ceki G&amp;uuml;lc&amp;uuml;</em>
<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment">   @since 0.9.0</em>
<a name="32" href="#32">32</a>  
<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> */</em>
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/helpers/CyclicBuffer.html">CyclicBuffer</a> {
<a name="35" href="#35">35</a>    
<a name="36" href="#36">36</a>    <a href="../../../../org/apache/log4j/spi/LoggingEvent.html">LoggingEvent</a>[] ea;
<a name="37" href="#37">37</a>    <strong class="jxr_keyword">int</strong> first; 
<a name="38" href="#38">38</a>    <strong class="jxr_keyword">int</strong> last; 
<a name="39" href="#39">39</a>    <strong class="jxr_keyword">int</strong> numElems;
<a name="40" href="#40">40</a>    <strong class="jxr_keyword">int</strong> maxSize;
<a name="41" href="#41">41</a>  
<a name="42" href="#42">42</a>    <em class="jxr_javadoccomment">/**</em>
<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment">     Instantiate a new CyclicBuffer of at most &lt;code&gt;maxSize&lt;/code&gt; events.</em>
<a name="44" href="#44">44</a>  
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment">     The &lt;code&gt;maxSize&lt;/code&gt; argument must a positive integer.</em>
<a name="46" href="#46">46</a>  
<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment">     @param maxSize The maximum number of elements in the buffer.</em>
<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment">  */</em>
<a name="49" href="#49">49</a>    <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/helpers/CyclicBuffer.html">CyclicBuffer</a>(<strong class="jxr_keyword">int</strong> maxSize) <strong class="jxr_keyword">throws</strong> IllegalArgumentException {
<a name="50" href="#50">50</a>      <strong class="jxr_keyword">if</strong>(maxSize &lt; 1) {
<a name="51" href="#51">51</a>        <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"The maxSize argument ("</span>+maxSize+
<a name="52" href="#52">52</a>  			    <span class="jxr_string">") is not a positive integer."</span>);
<a name="53" href="#53">53</a>      }
<a name="54" href="#54">54</a>      <strong class="jxr_keyword">this</strong>.maxSize = maxSize;
<a name="55" href="#55">55</a>      ea = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/spi/LoggingEvent.html">LoggingEvent</a>[maxSize];
<a name="56" href="#56">56</a>      first = 0;
<a name="57" href="#57">57</a>      last = 0;
<a name="58" href="#58">58</a>      numElems = 0;
<a name="59" href="#59">59</a>    }
<a name="60" href="#60">60</a>      
<a name="61" href="#61">61</a>    <em class="jxr_javadoccomment">/**</em>
<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     Add an &lt;code&gt;event&lt;/code&gt; as the last event in the buffer.</em>
<a name="63" href="#63">63</a>  
<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">   */</em>
<a name="65" href="#65">65</a>    <strong class="jxr_keyword">public</strong>
<a name="66" href="#66">66</a>    <strong class="jxr_keyword">void</strong> add(<a href="../../../../org/apache/log4j/spi/LoggingEvent.html">LoggingEvent</a> event) {    
<a name="67" href="#67">67</a>      ea[last] = event;    
<a name="68" href="#68">68</a>      <strong class="jxr_keyword">if</strong>(++last == maxSize)
<a name="69" href="#69">69</a>        last = 0;
<a name="70" href="#70">70</a>  
<a name="71" href="#71">71</a>      <strong class="jxr_keyword">if</strong>(numElems &lt; maxSize)
<a name="72" href="#72">72</a>        numElems++;
<a name="73" href="#73">73</a>      <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(++first == maxSize)
<a name="74" href="#74">74</a>        first = 0;
<a name="75" href="#75">75</a>    }
<a name="76" href="#76">76</a>  
<a name="77" href="#77">77</a>  
<a name="78" href="#78">78</a>    <em class="jxr_javadoccomment">/**</em>
<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     Get the &lt;i&gt;i&lt;/i&gt;th oldest event currently in the buffer. If</em>
<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     &lt;em&gt;i&lt;/em&gt; is outside the range 0 to the number of elements</em>
<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     currently in the buffer, then &lt;code&gt;null&lt;/code&gt; is returned.</em>
<a name="82" href="#82">82</a>  
<a name="83" href="#83">83</a>  
<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment">  */</em>
<a name="85" href="#85">85</a>    <strong class="jxr_keyword">public</strong>
<a name="86" href="#86">86</a>    <a href="../../../../org/apache/log4j/spi/LoggingEvent.html">LoggingEvent</a> get(<strong class="jxr_keyword">int</strong> i) {
<a name="87" href="#87">87</a>      <strong class="jxr_keyword">if</strong>(i &lt; 0 || i &gt;= numElems)
<a name="88" href="#88">88</a>        <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="89" href="#89">89</a>  
<a name="90" href="#90">90</a>      <strong class="jxr_keyword">return</strong> ea[(first + i) % maxSize];
<a name="91" href="#91">91</a>    }
<a name="92" href="#92">92</a>  
<a name="93" href="#93">93</a>    <strong class="jxr_keyword">public</strong> 
<a name="94" href="#94">94</a>    <strong class="jxr_keyword">int</strong> getMaxSize() {
<a name="95" href="#95">95</a>      <strong class="jxr_keyword">return</strong> maxSize;
<a name="96" href="#96">96</a>    }
<a name="97" href="#97">97</a>  
<a name="98" href="#98">98</a>    <em class="jxr_javadoccomment">/**</em>
<a name="99" href="#99">99</a>  <em class="jxr_javadoccomment">     Get the oldest (first) element in the buffer. The oldest element</em>
<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     is removed from the buffer.</em>
<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">  */</em>
<a name="102" href="#102">102</a>   <strong class="jxr_keyword">public</strong>
<a name="103" href="#103">103</a>   <a href="../../../../org/apache/log4j/spi/LoggingEvent.html">LoggingEvent</a> get() {
<a name="104" href="#104">104</a>     <a href="../../../../org/apache/log4j/spi/LoggingEvent.html">LoggingEvent</a> r = <strong class="jxr_keyword">null</strong>;
<a name="105" href="#105">105</a>     <strong class="jxr_keyword">if</strong>(numElems &gt; 0) {
<a name="106" href="#106">106</a>       numElems--;
<a name="107" href="#107">107</a>       r = ea[first];
<a name="108" href="#108">108</a>       ea[first] = <strong class="jxr_keyword">null</strong>;
<a name="109" href="#109">109</a>       <strong class="jxr_keyword">if</strong>(++first == maxSize)
<a name="110" href="#110">110</a> 	first = 0;
<a name="111" href="#111">111</a>     } 
<a name="112" href="#112">112</a>     <strong class="jxr_keyword">return</strong> r;
<a name="113" href="#113">113</a>   }
<a name="114" href="#114">114</a>   
<a name="115" href="#115">115</a>   <em class="jxr_javadoccomment">/**</em>
<a name="116" href="#116">116</a> <em class="jxr_javadoccomment">     Get the number of elements in the buffer. This number is</em>
<a name="117" href="#117">117</a> <em class="jxr_javadoccomment">     guaranteed to be in the range 0 to &lt;code&gt;maxSize&lt;/code&gt;</em>
<a name="118" href="#118">118</a> <em class="jxr_javadoccomment">     (inclusive).</em>
<a name="119" href="#119">119</a> <em class="jxr_javadoccomment">  */</em>
<a name="120" href="#120">120</a>   <strong class="jxr_keyword">public</strong>
<a name="121" href="#121">121</a>   <strong class="jxr_keyword">int</strong> length() {
<a name="122" href="#122">122</a>     <strong class="jxr_keyword">return</strong> numElems;
<a name="123" href="#123">123</a>   } 
<a name="124" href="#124">124</a> 
<a name="125" href="#125">125</a>   <em class="jxr_javadoccomment">/**</em>
<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     Resize the cyclic buffer to &lt;code&gt;newSize&lt;/code&gt;.</em>
<a name="127" href="#127">127</a> 
<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     @throws IllegalArgumentException if &lt;code&gt;newSize&lt;/code&gt; is negative.</em>
<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">   */</em>
<a name="130" href="#130">130</a>   <strong class="jxr_keyword">public</strong> 
<a name="131" href="#131">131</a>   <strong class="jxr_keyword">void</strong> resize(<strong class="jxr_keyword">int</strong> newSize) {
<a name="132" href="#132">132</a>     <strong class="jxr_keyword">if</strong>(newSize &lt; 0) {
<a name="133" href="#133">133</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Negative array size ["</span>+newSize+
<a name="134" href="#134">134</a> 					 <span class="jxr_string">"] not allowed."</span>);
<a name="135" href="#135">135</a>     }
<a name="136" href="#136">136</a>     <strong class="jxr_keyword">if</strong>(newSize == numElems)
<a name="137" href="#137">137</a>       <strong class="jxr_keyword">return</strong>; <em class="jxr_comment">// nothing to do</em>
<a name="138" href="#138">138</a>     
<a name="139" href="#139">139</a>     <a href="../../../../org/apache/log4j/spi/LoggingEvent.html">LoggingEvent</a>[] temp = <strong class="jxr_keyword">new</strong>  LoggingEvent[newSize];
<a name="140" href="#140">140</a> 
<a name="141" href="#141">141</a>     <strong class="jxr_keyword">int</strong> loopLen = newSize &lt; numElems ? newSize : numElems;
<a name="142" href="#142">142</a>     
<a name="143" href="#143">143</a>     <strong class="jxr_keyword">for</strong>(<strong class="jxr_keyword">int</strong> i = 0; i &lt; loopLen; i++) {
<a name="144" href="#144">144</a>       temp[i] = ea[first];
<a name="145" href="#145">145</a>       ea[first] = <strong class="jxr_keyword">null</strong>;
<a name="146" href="#146">146</a>       <strong class="jxr_keyword">if</strong>(++first == numElems) 
<a name="147" href="#147">147</a> 	first = 0;
<a name="148" href="#148">148</a>     }
<a name="149" href="#149">149</a>     ea = temp;
<a name="150" href="#150">150</a>     first = 0;
<a name="151" href="#151">151</a>     numElems = loopLen;
<a name="152" href="#152">152</a>     maxSize = newSize;
<a name="153" href="#153">153</a>     <strong class="jxr_keyword">if</strong> (loopLen == newSize) {
<a name="154" href="#154">154</a>       last = 0;
<a name="155" href="#155">155</a>     } <strong class="jxr_keyword">else</strong> {
<a name="156" href="#156">156</a>       last = loopLen;
<a name="157" href="#157">157</a>     }
<a name="158" href="#158">158</a>   }
<a name="159" href="#159">159</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

