#include <Allocator.h>
Inheritance diagram for acdk::lang::sys::Allocator:
AllocatorHeader: 0 - 4 (Allocator*) 5 - 8 size_t size of allocated chunk including AllocatorHeader acdk::lang::Object/Raw 9 - n the allocated memory
Public Member Functions | |
Allocator (int allocatorFlags=StandardAllocatorType) | |
virtual | ~Allocator () |
type of the allocated object | |
int | getFlags () |
combination of AllocatorTypeFlags | |
virtual void | lock ()=0 |
in case of GC or other scanning activities the Allocator should be locked. | |
virtual void | unlock ()=0 |
in case of GC or other scanning activities the Allocator should be locked. | |
virtual void * | allocate (size_t size, AllocatedType at=RawMem)=0 |
Allocates Memory. | |
virtual void | deallocate (void *ptr, AllocatedType at=RawMem)=0 |
Frees Memory. | |
virtual void | listObjects (::acdk::lang::ref::NotifyObjectEventListener *listener, int flags)=0 |
virtual const AllocatorInfo & | getAllocatorInfo ()=0 |
virtual bool | doGc (bool threadStorage=true, bool force=false)=0 |
try to garbage collect items | |
void | initObjectPtr (void *ptr, AllocatedType type) |
use to initialize Object flags probably has no effects | |
void * | os_alloc (size_t size) |
underlying allocation mechanism via operator ::new may call doGc and or throw OutOfMemoryError | |
void | os_dealloc (size_t size, void *ptr) |
dealocate memory via operator ::delete | |
Static Public Member Functions | |
MemChunkHeader * | getHeaderFromObject (void *obj) |
MemChunkHeader * | getHeaderFromChunk (void *obj) |
size_t | getHeaderSize () |
void * | getObjectFromChunk (void *ptr) |
void * | getChunkFromObject (void *ptr) |
Public Attributes | |
int | flags |
bit combination of AllocatorTypeFlags |
|
|
|
type of the allocated object
|
|
Allocates Memory. It is important, that the Allocator itself will be found in MemChunkHeader directly before this memory location)
Implemented in acdk::lang::sys::AbstractAllocator, acdk::lang::sys::BitmapPagedAllocator, acdk::lang::sys::BoehmGCAllocator, acdk::lang::sys::PagedAllocator, and acdk::lang::sys::TracedRawAllocator. |
|
Frees Memory.
Implemented in acdk::lang::sys::AbstractAllocator, acdk::lang::sys::BitmapPagedAllocator, acdk::lang::sys::BoehmGCAllocator, acdk::lang::sys::PagedAllocator, and acdk::lang::sys::TracedRawAllocator. |
|
try to garbage collect items
Implemented in acdk::lang::sys::AbstractAllocator, and acdk::lang::sys::PagedAllocator. |
|
Implemented in acdk::lang::sys::AbstractAllocator. |
|
|
|
combination of AllocatorTypeFlags
|
|
|
|
|
|
|
|
|
|
use to initialize Object flags probably has no effects
|
|
Implemented in acdk::lang::sys::AbstractAllocator, 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 Implemented in acdk::lang::sys::AbstractAllocator. |
|
underlying allocation mechanism via operator ::new may call doGc and or throw OutOfMemoryError
|
|
dealocate memory via operator ::delete
|
|
in case of GC or other scanning activities the Allocator should be locked. allocate() and deallocate should simply block Implemented in acdk::lang::sys::AbstractAllocator. |
|
bit combination of AllocatorTypeFlags
|