Apache Log4cxx  Version 1.3.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#include <memory>
23
24namespace LOG4CXX_NS
25{
26namespace helpers
27{
36{
37 private:
38 LOG4CXX_DECLARE_PRIVATE_MEMBER_PTR(CyclicBufferPriv, m_priv)
39
40 public:
49 CyclicBuffer(int maxSize);
51
55 void add(const spi::LoggingEventPtr& event);
56
63
64 int getMaxSize() const;
65
71
77 int length() const;
78
83 void resize(int newSize);
84}; // class CyclicBuffer
85} //namespace helpers
86} //namespace log4cxx
87
88#endif //_LOG4CXX_HELPERS_CYCLICBUFFER_H
CyclicBuffer is used by other appenders to hold instances of LoggingEvent for immediate or deferred d...
Definition: cyclicbuffer.h:36
spi::LoggingEventPtr get()
Get the oldest (first) element in the buffer.
int length() const
Get the number of elements in the buffer.
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.
#define LOG4CXX_DECLARE_PRIVATE_MEMBER_PTR(T, V)
Definition: log4cxx.h:85
#define LOG4CXX_EXPORT
Definition: log4cxx.h:101
#define LOG4CXX_NS
Definition: log4cxx.h:104
std::shared_ptr< LoggingEvent > LoggingEventPtr
Definition: appender.h:32