Methods Summary |
---|
public void | add(org.apache.log4j.spi.LoggingEvent event)Add an event as the last event in the buffer.
ea[last] = event;
if(++last == maxSize)
last = 0;
if(numElems < maxSize)
numElems++;
else if(++first == maxSize)
first = 0;
|
public org.apache.log4j.spi.LoggingEvent | get(int i)Get the ith oldest event currently in the buffer. If
i is outside the range 0 to the number of elements
currently in the buffer, then null is returned.
if(i < 0 || i >= numElems)
return null;
return ea[(first + i) % maxSize];
|
public org.apache.log4j.spi.LoggingEvent | get()Get the oldest (first) element in the buffer. The oldest element
is removed from the buffer.
LoggingEvent r = null;
if(numElems > 0) {
numElems--;
r = ea[first];
ea[first] = null;
if(++first == maxSize)
first = 0;
}
return r;
|
public int | getMaxSize()
return maxSize;
|
public int | length()Get the number of elements in the buffer. This number is
guaranteed to be in the range 0 to maxSize
(inclusive).
return numElems;
|
public void | resize(int newSize)Resize the cyclic buffer to newSize .
if(newSize < 0) {
throw new IllegalArgumentException("Negative array size ["+newSize+
"] not allowed.");
}
if(newSize == numElems)
return; // nothing to do
LoggingEvent[] temp = new LoggingEvent[newSize];
int loopLen = newSize < numElems ? newSize : numElems;
for(int i = 0; i < loopLen; i++) {
temp[i] = ea[first];
ea[first] = null;
if(++first == numElems)
first = 0;
}
ea = temp;
first = 0;
numElems = loopLen;
maxSize = newSize;
if (loopLen == newSize) {
last = 0;
} else {
last = loopLen;
}
|