Apache log4cxx Version 0.13.0
Loading...
Searching...
No Matches
cyclicbuffer.h
Go to the documentation of this file.
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#ifndef _LOG4CXX_HELPERS_CYCLICBUFFER_H
19#define _LOG4CXX_HELPERS_CYCLICBUFFER_H
20
22
23namespace log4cxx
24{
25namespace helpers
26{
34class LOG4CXX_EXPORT CyclicBuffer
35{
36 log4cxx::spi::LoggingEventList ea;
37 int first;
38 int last;
39 int numElems;
40 int maxSize;
41
42 public:
51 CyclicBuffer(int maxSize);
53
57 void add(const spi::LoggingEventPtr& event);
58
65
66 int getMaxSize() const
67 {
68 return maxSize;
69 }
70
76
82 int length() const
83 {
84 return numElems;
85 }
86
91 void resize(int newSize);
92}; // class CyclicBuffer
93} //namespace helpers
94} //namespace log4cxx
95
96#endif //_LOG4CXX_HELPERS_CYCLICBUFFER_H
CyclicBuffer is used by other appenders to hold instances of LoggingEvent for immediate or deferred d...
Definition: cyclicbuffer.h:35
spi::LoggingEventPtr get()
Get the oldest (first) element in the buffer.
int getMaxSize() const
Definition: cyclicbuffer.h:66
int length() const
Get the number of elements in the buffer.
Definition: cyclicbuffer.h:82
void resize(int newSize)
Resize the cyclic buffer to newSize.
void add(const spi::LoggingEventPtr &event)
Add an event as the last event in the buffer.
CyclicBuffer(int maxSize)
Instantiate a new CyclicBuffer of at most maxSize events.
spi::LoggingEventPtr get(int i)
Get the ith oldest event currently in the buffer.
std::shared_ptr< LoggingEvent > LoggingEventPtr
Definition: appender.h:38
Definition: messagehandler.h:23