KDECore
kallocator.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef KALLOCATOR_H
00027 #define KALLOCATOR_H
00028
00029 #include <qvaluelist.h>
00030 #include "kdelibs_export.h"
00031
00032 class KZoneAllocatorPrivate;
00033
00034
00046 class KDECORE_EXPORT KZoneAllocator
00047 {
00048 public:
00053 KZoneAllocator(unsigned long _blockSize = 8*1024);
00054
00058 ~KZoneAllocator();
00059
00065 void* allocate(size_t _size);
00066
00087 void deallocate(void *ptr);
00088
00109 void free_since(void *ptr);
00110
00111 protected:
00113 class MemBlock;
00115 typedef QValueList<MemBlock *> MemList;
00116 void addBlock(MemBlock *b);
00117 void delBlock(MemBlock *b);
00118 void insertHash(MemBlock *b);
00119 void initHash();
00121 MemBlock *currentBlock;
00123 unsigned long blockSize;
00125 unsigned long blockOffset;
00127 unsigned int log2;
00129 unsigned int num_blocks;
00131 MemList **hashList;
00133 unsigned int hashSize;
00135 bool hashDirty;
00136 private:
00137 KZoneAllocatorPrivate *d;
00138 };
00139
00140 #endif