00001
00002
00003 #ifndef _PROCESSHEAP_H_
00004 #define _PROCESSHEAP_H_
00005
00006 #include <cstdlib>
00007
00008 #include "alignedsuperblockheap.h"
00009 #include "conformantheap.h"
00010 #include "emptyhoardmanager.h"
00011 #include "hoardmanager.h"
00012 #include "hoardsuperblock.h"
00013
00014 namespace Hoard {
00015
00016 template <size_t SuperblockSize,
00017 int EmptinessClasses,
00018 class LockType,
00019 class ThresholdClass>
00020 class ProcessHeap :
00021 public ConformantHeap<
00022 HoardManager<AlignedSuperblockHeap<LockType, SuperblockSize>,
00023 EmptyHoardManager<HoardSuperblock<LockType, SuperblockSize, ProcessHeap<SuperblockSize, EmptinessClasses, LockType, ThresholdClass> > >,
00024 HoardSuperblock<LockType, SuperblockSize, ProcessHeap<SuperblockSize, EmptinessClasses, LockType, ThresholdClass> >,
00025 EmptinessClasses,
00026 LockType,
00027 ThresholdClass,
00028 ProcessHeap<SuperblockSize, EmptinessClasses, LockType, ThresholdClass> > > {
00029
00030 public:
00031
00032 ProcessHeap (void) {}
00033
00034
00035 inline void * malloc (size_t);
00036
00037 private:
00038
00039
00040 ProcessHeap (const ProcessHeap&);
00041 ProcessHeap& operator=(const ProcessHeap&);
00042
00043 };
00044
00045 }
00046
00047 #endif