49 unsigned long long iSize;
58 bool Close(
bool DoSync =
true);
62 enum OpenFlags {NoImmMap = (1<<0),Public = (1<<1),ReadOnly = (1<<2),
63 UnMapped = (1<<3), Moveable = (1<<4), Fallback = (1 << 5)};
66 inline operator void *() {
return Base;};
67 inline void *Data() {
return Base;};
68 inline unsigned long long Size() {
return iSize;};
69 inline void AddSize(
unsigned long long const size) {iSize += size;};
70 inline bool validData()
const {
return Base != MAP_FAILED && Base != 0; };
74 bool Sync(
unsigned long Start,
unsigned long Stop);
77 explicit MMap(
unsigned long Flags);
88 unsigned long ItemSize;
96 unsigned long WorkSpace;
97 unsigned long const GrowFactor;
98 unsigned long const Limit;
100 unsigned int PoolCount;
107 unsigned long RawAllocate(
unsigned long long Size,
unsigned long Aln = 0);
108 unsigned long Allocate(
unsigned long ItemSize);
109 unsigned long WriteString(
const char *String,
unsigned long Len = std::numeric_limits<unsigned long>::max());
110 inline unsigned long WriteString(
const std::string &S) {
return WriteString(S.c_str(),S.length());};
111 void UsePools(Pool &P,
unsigned int Count) {Pools = &P; PoolCount = Count;};
113 DynamicMMap(
FileFd &F,
unsigned long Flags,
unsigned long const &WorkSpace = 2*1024*1024,
114 unsigned long const &Grow = 1024*1024,
unsigned long const &Limit = 0);
115 DynamicMMap(
unsigned long Flags,
unsigned long const &WorkSpace = 2*1024*1024,
116 unsigned long const &Grow = 1024*1024,
unsigned long const &Limit = 0);