gStore/VSTree/EntryBuffer.h

41 lines
865 B
C++

/*
* EntryBuffer.h
*
* Created on: 2014Äê7ÔÂ3ÈÕ
* Author: hanshuo
*/
#ifndef ENTRYBUFFER_H_
#define ENTRYBUFFER_H_
class SigEntry;
#include<stdio.h>
/* EntryBuffer is used to loading entries from hard disk when building VSTree. */
class EntryBuffer
{
private:
int capacity;
int num;
SigEntry* elems;
public:
static int DEFAULT_CAPACITY;
EntryBuffer(int _capacity=200000); // to be determine the default capacity.
~EntryBuffer();
int getCapacity()const;
int getNum()const;
bool isEmpty()const;
bool isFull()const;
SigEntry* getElem(int _i);
bool insert(const SigEntry& _entry);
int fillElemsFromFile(FILE* _p_file); // fill this buffer with SigEntry from _p_file, until the buffer is full or meeting EOF.
void clear();
};
#endif /* ENTRYBUFFER_H_ */