NAME
ACE_Obstack - Define a simple "mark and release" memory allocation utility.
SYNOPSIS
#include <ace/Obstack.h>
class ACE_Obstack
{
public:
ACE_Obstack (
size_t size = 4096 - sizeof (ACE_Obchunk),
ACE_Allocator *allocator_strategy = 0
);
~ACE_Obstack (void);
char *copy (const char *data, size_t len);
void release (void);
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;
protected:
ACE_Allocator *allocator_strategy_;
size_t size_;
};
DESCRIPTION
The implementation is similar to the GNU obstack utility, which is used extensively in the GCC compiler.
Initialization and termination methods.
ACE_Obstack (
size_t size = 4096 - sizeof (ACE_Obchunk),
ACE_Allocator *allocator_strategy = 0
);
~ACE_Obstack (void);
char *copy (const char *data, size_t len);
Copy the data into the current Obchunk.
void release (void);
"Release" the entire stack of Obchunks, putting it back on the free list.
void dump (void) const;
Dump the state of an object.
ACE_ALLOC_HOOK_DECLARE;
Declare the dynamic allocation hooks.
Don't change the order of the following two fields.
Head of the Obchunk chain. Pointer to the current Obchunk.
AUTHOR
Doug Schmidt
LIBRARY
ace