#include <Allocator.h>
Inheritance diagram for acdk::lang::sys::AbstractAllocator:
The returned Object pointer is at offset ALIGNEDSIZEOF(MemChunkHeader).
All operations are protected by a simple/fast mutex
Public Member Functions | |
AbstractAllocator (int allocatorFlags, const core_string &name) | |
virtual | ~AbstractAllocator () |
virtual void | lock () |
in case of GC or other scanning activities the Allocator should be locked. | |
virtual void | unlock () |
in case of GC or other scanning activities the Allocator should be locked. | |
virtual void * | raw_allocate (size_t size, AllocatedType type)=0 |
virtual void | raw_deallocate (size_t size, void *ptr, AllocatedType type)=0 |
virtual void * | allocate (size_t size, AllocatedType at=RawMem) |
Allocates Memory. | |
virtual void | deallocate (void *ptr, AllocatedType at=RawMem) |
Frees Memory. | |
virtual void | listObjects (::acdk::lang::ref::NotifyObjectEventListener *listener, int flags)=0 |
virtual const AllocatorInfo & | getAllocatorInfo () |
virtual bool | doGc (bool threadStorage=true, bool force=false) |
try to garbage collect items | |
const char * | name () const |
Public Attributes | |
AllocatorInfo | _allocInfo |
Protected Attributes | |
core_fastmutex | _lock |
|
|
|
|
|
Allocates Memory. It is important, that the Allocator itself will be found in MemChunkHeader directly before this memory location)
Implements acdk::lang::sys::Allocator. Reimplemented in acdk::lang::sys::BitmapPagedAllocator, acdk::lang::sys::BoehmGCAllocator, acdk::lang::sys::PagedAllocator, and acdk::lang::sys::TracedRawAllocator. |
|
Frees Memory.
Implements acdk::lang::sys::Allocator. Reimplemented in acdk::lang::sys::BitmapPagedAllocator, acdk::lang::sys::BoehmGCAllocator, acdk::lang::sys::PagedAllocator, and acdk::lang::sys::TracedRawAllocator. |
|
try to garbage collect items
Implements acdk::lang::sys::Allocator. Reimplemented in acdk::lang::sys::PagedAllocator. |
|
Implements acdk::lang::sys::Allocator. |
|
Implements acdk::lang::sys::Allocator. Implemented in acdk::lang::sys::RawAllocator, acdk::lang::sys::BitmapPagedAllocator, acdk::lang::sys::BoehmGCAllocator, acdk::lang::sys::PagedAllocator, and acdk::lang::sys::TracedRawAllocator. |
|
in case of GC or other scanning activities the Allocator should be locked. allocate() and deallocate should simply block Implements acdk::lang::sys::Allocator. |
|
|
|
Implemented in acdk::lang::sys::RawAllocator, acdk::lang::sys::BitmapPagedAllocator, acdk::lang::sys::BoehmGCAllocator, acdk::lang::sys::PagedAllocator, and acdk::lang::sys::TracedRawAllocator. |
|
Implemented in acdk::lang::sys::RawAllocator, acdk::lang::sys::BitmapPagedAllocator, acdk::lang::sys::BoehmGCAllocator, acdk::lang::sys::PagedAllocator, and acdk::lang::sys::TracedRawAllocator. |
|
in case of GC or other scanning activities the Allocator should be locked. allocate() and deallocate should simply block Implements acdk::lang::sys::Allocator. |
|
|
|
|