00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __UT_SmallAlloc__
00020 #define __UT_SmallAlloc__
00021
00022 #include "UT_API.h"
00023 #include <stddef.h>
00024 #include <SYS/SYS_Types.h>
00025
00026
00027
00028
00029
00030 class UT_API UT_SmallAlloc {
00031 public:
00032 UT_SmallAlloc(size_t page_size);
00033 ~UT_SmallAlloc();
00034
00035 void *alloc(size_t size);
00036
00037
00038 void clear();
00039
00040 int64 getMemoryUsage() const { return myTotalUsage; }
00041
00042 private:
00043 void init();
00044
00045 private:
00046 size_t myPageSize;
00047 size_t myHalfPageSize;
00048 int myHeadOffset;
00049 void *myHead;
00050 void *myTail;
00051 size_t myTotalUsage;
00052 };
00053
00054 #endif
00055