#include <Malloc_Allocator.h>
Inheritance diagram for ACE_Static_Allocator_Base:
Public Methods | |
ACE_Static_Allocator_Base (char *buffer, size_t size) | |
virtual void * | malloc (size_t nbytes) |
Allocate <nbytes>, but don't give them any initial value. | |
virtual void * | calloc (size_t nbytes, char initial_value= '\0') |
Allocate <nbytes>, giving them <initial_value>. | |
virtual void * | calloc (size_t n_elem, size_t elem_size, char initial_value= '\0') |
virtual void | free (void *ptr) |
Free <ptr> (must have been allocated by <ACE_Allocator::malloc>). | |
virtual int | remove (void) |
Remove any resources associated with this memory manager. | |
virtual int | bind (const char *name, void *pointer, int duplicates=0) |
virtual int | trybind (const char *name, void *&pointer) |
virtual int | find (const char *name, void *&pointer) |
virtual int | find (const char *name) |
Returns 0 if the name is in the mapping. -1, otherwise. | |
virtual int | unbind (const char *name) |
virtual int | unbind (const char *name, void *&pointer) |
virtual int | sync (ssize_t len=-1, int flags=MS_SYNC) |
virtual int | sync (void *addr, size_t len, int flags=MS_SYNC) |
virtual int | protect (ssize_t len=-1, int prot=PROT_RDWR) |
virtual int | protect (void *addr, size_t len, int prot=PROT_RDWR) |
virtual void | dump (void) const |
Dump the state of the object. | |
Protected Methods | |
ACE_Static_Allocator_Base (void) | |
Don't allow direct instantiations of this class. | |
Protected Attributes | |
char * | buffer_ |
Pointer to the buffer. | |
size_t | size_ |
Size of the buffer. | |
size_t | offset_ |
Pointer to the current offset in the <buffer_>. |
This class manages a fixed-size <POOL_SIZE> of memory. Every time <malloc>/<calloc> is called, it simply moves an internal index forward and returns a pointer to the requested chunk. All memory is allocated statically (typically via the <ACE_Static_Allocator> template) and <free> is a no-op. This behavior is useful for use-cases where all the memory allocation needs are known in advance and no deletions ever occur.
|
|
|
Don't allow direct instantiations of this class.
|
|
Associate <name> with <pointer>. If <duplicates> == 0 then do not allow duplicate <name>/<pointer> associations, else if <duplicates> != 0 then allow duplicate <name>/<pointer> assocations. Returns 0 if successfully binds (1) a previously unbound <name> or (2) <duplicates> != 0, returns 1 if trying to bind a previously bound <name> and <duplicates> == 0, else returns -1 if a resource failure occurs. Implements ACE_Allocator. |
|
Allocate <n_elem> each of size <elem_size>, giving them <initial_value>. Implements ACE_Allocator. |
|
Allocate <nbytes>, giving them <initial_value>.
Implements ACE_Allocator. |
|
Dump the state of the object.
Implements ACE_Allocator. |
|
Returns 0 if the name is in the mapping. -1, otherwise.
Implements ACE_Allocator. |
|
Locate <name> and pass out parameter via pointer. If found, return 0, returns -1 if failure occurs. Implements ACE_Allocator. |
|
Free <ptr> (must have been allocated by <ACE_Allocator::malloc>).
Implements ACE_Allocator. |
|
Allocate <nbytes>, but don't give them any initial value.
Implements ACE_Allocator. |
|
Change the protection of the pages of the mapped region to <prot> starting at <addr> up to <len> bytes. Implements ACE_Allocator. |
|
Change the protection of the pages of the mapped region to <prot> starting at <this->base_addr_> up to <len> bytes. If <len> == -1 then change protection of all pages in the mapped region. Implements ACE_Allocator. |
|
Remove any resources associated with this memory manager.
Implements ACE_Allocator. |
|
Sync <len> bytes of the memory region to the backing store starting at <addr_>. Implements ACE_Allocator. |
|
Sync <len> bytes of the memory region to the backing store starting at <this->base_addr_>. If <len> == -1 then sync the whole region. Implements ACE_Allocator. |
|
Associate <name> with <pointer>. Does not allow duplicate <name>/<pointer> associations. Returns 0 if successfully binds (1) a previously unbound <name>, 1 if trying to bind a previously bound <name>, or returns -1 if a resource failure occurs. When this call returns <pointer>'s value will always reference the void * that <name> is associated with. Thus, if the caller needs to use <pointer> (e.g., to free it) a copy must be maintained by the caller. Implements ACE_Allocator. |
|
Break any association of name. Returns the value of pointer in case the caller needs to deallocate memory. Implements ACE_Allocator. |
|
Unbind (remove) the name from the map. Don't return the pointer to the caller Implements ACE_Allocator. |
|
Pointer to the buffer.
|
|
Pointer to the current offset in the <buffer_>.
|
|
Size of the buffer.
|