Eneboo - Documentación para desarrolladores
|
00001 // -*- C++ -*- 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 // Disable allocation from this heap. 00035 inline void * malloc (size_t); 00036 00037 private: 00038 00039 // Prevent copying or assignment. 00040 ProcessHeap (const ProcessHeap&); 00041 ProcessHeap& operator=(const ProcessHeap&); 00042 00043 }; 00044 00045 } 00046 00047 #endif