NAME

ACE_Allocator - Interface for a dynamic memory allocator that uses inheritance and dynamic binding to provide extensible mechanisms for allocating and deallocating memory.

SYNOPSIS

#include <ace/Malloc.h >

class ACE_Allocator { public: static ACE_Allocator *instance (void); static ACE_Allocator *instance (ACE_Allocator *); static void close_singleton (void); virtual ~ACE_Allocator (void); virtual void *malloc (size_t nbytes) = 0; virtual void *calloc ( size_t nbytes, char initial_value = ' ' ) = 0; virtual void free (void *ptr) = 0; virtual int remove (void) = 0; virtual int bind ( const char *name, void *pointer, int duplicates = 0 ) = 0; virtual int trybind (const char *name, void *&pointer) = 0; virtual int find (const char *name, void *&pointer) = 0; virtual int find (const char *name) = 0; virtual int unbind (const char *name) = 0; virtual int unbind (const char *name, void *&pointer) = 0; virtual int sync (ssize_t len = -1, int flags = MS_SYNC) = 0; virtual int sync ( void *addr, size_t len, int flags = MS_SYNC ) = 0; virtual int protect (ssize_t len = -1, int prot = PROT_RDWR) = 0; virtual int protect ( void *addr, size_t len, int prot = PROT_RDWR ) = 0; virtual void print_stats (void) const = 0; virtual void dump (void) const = 0; private: static ACE_Allocator *allocator_; static int delete_allocator_; };

Memory Management

static ACE_Allocator *instance (void);

static ACE_Allocator *instance (ACE_Allocator *);

static void close_singleton (void);

virtual ~ACE_Allocator (void);

virtual void *malloc (size_t nbytes) = 0;

virtual void *calloc (size_t nbytes, char initial_value = '  ') = 0;

virtual void free (void *ptr) = 0;

virtual int remove (void) = 0;

Map manager like functions

virtual int bind (
    const char *name,
    void *pointer,
    int duplicates = 0
    ) = 0;

virtual int trybind (const char *name, void *&pointer) = 0;

virtual int find (const char *name, void *&pointer) = 0;

virtual int find (const char *name) = 0;

virtual int unbind (const char *name) = 0;

virtual int unbind (const char *name, void *&pointer) = 0;

Protection and

sync" (i.e., flushing memory to persistent" backing store).
virtual int sync (ssize_t len = -1, int flags = MS_SYNC) = 0;

virtual int sync (void *addr, size_t len, int flags = MS_SYNC) = 0;

virtual int protect (ssize_t len = -1, int prot = PROT_RDWR) = 0;

virtual int protect (
    void *addr,
    size_t len,
    int prot = PROT_RDWR
    ) = 0;

virtual void print_stats (void) const = 0;

virtual void dump (void) const = 0;

AUTHOR

Doug Schmidt and Irfan Pyarali

LIBRARY

ace