A platform for high-performance distributed tool and library development written in C++. It can be deployed in two different cluster modes: standalone or distributed. API for v0.5.0, released on June 13, 2018.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
PDBCircularBuffer.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * *
3  * Copyright 2018 Rice University *
4  * *
5  * Licensed under the Apache License, Version 2.0 (the "License"); *
6  * you may not use this file except in compliance with the License. *
7  * 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 /*
19  * File: PDBCircularBuffer.h
20  * Author: Jia
21  *
22  * Created on November 17, 2015, 11:27 AM
23  */
24 
25 #ifndef PDBCIRCULARBUFFER_H
26 #define PDBCIRCULARBUFFER_H
27 
28 
29 #include "PDBLogger.h"
30 
31 template <class T>
33 public:
34  PDBCircularBuffer(unsigned int bufferSize, pdb::PDBLoggerPtr logger);
36 
37  int addToTail(T const&);
38  T popFromHead();
39  bool isFull();
40  bool isEmpty();
41  unsigned int getSize();
42 
43 protected:
44  int initArray();
45 
46 private:
47  T* array;
49  unsigned int maxArraySize;
50  unsigned int arrayHead;
51  unsigned int arrayTail;
52 };
53 
54 
55 #endif /* PDBCIRCULARBUFFER_H */
unsigned int arrayHead
PDBCircularBuffer(unsigned int bufferSize, pdb::PDBLoggerPtr logger)
unsigned int maxArraySize
pdb::PDBLoggerPtr logger
unsigned int arrayTail
unsigned int getSize()
int addToTail(T const &)
std::shared_ptr< PDBLogger > PDBLoggerPtr
Definition: PDBLogger.h:40