/* * CENA C++ Utilities * * by Stephane Chatty * * Copyright 1992 * Centre d'Etudes de la Navigation Aerienne (CENA) * * Memory allocation (original C version by Michel Beaudouin-Lafon) * * $Id$ * $CurLog$ */ #ifndef Allocator_H_ #define Allocator_H_ #include "cplus_bugs.h" class CcuAllocator { private: static void MemoryOverflow (); unsigned int BlockSize; unsigned int ChunkSize; void* FreeList; /* list of free blocks of memory */ void* AllocEnd; /* end of the last chunk */ void* AllocNext; /* room left in the last chunk */ public: CcuAllocator (unsigned int); ~CcuAllocator (); void* Alloc (); void Free (void*); }; #ifndef CPLUS_BUG19 template class CcuAllocatorOf : public CcuAllocator { public: inline CcuAllocatorOf () : CcuAllocator (sizeof (OBJECT)) {} inline OBJECT* Alloc () { return (OBJECT*) CcuAllocator::Alloc (); } }; #endif #endif /* Allocator_H_ */