ACE_PI_Control_Block Class Reference

This information is stored in memory allocated by the <Memory_Pool>. More...

#include <PI_Malloc.h>

Collaboration diagram for ACE_PI_Control_Block:

Collaboration graph
[legend]
List of all members.

Public Types

typedef ACE_Based_Pointer<
ACE_Malloc_Header
MALLOC_HEADER_PTR
typedef ACE_Based_Pointer<
ACE_Name_Node
NAME_NODE_PTR
typedef ACE_Based_Pointer_Basic<
char > 
CHAR_PTR

Public Member Functions

void dump (void) const
 Dump the state of the object.

Static Public Member Functions

static void print_alignment_info (void)
 Print out a bunch of size info for debugging.

Public Attributes

int ref_counter_
 Reference counter.
NAME_NODE_PTR name_head_
 Head of the linked list of Name Nodes.
MALLOC_HEADER_PTR freep_
 Current head of the freelist.
char lock_name_ [MAXNAMELEN]
 Name of lock thats ensures mutual exclusion.
char align_ [(ACE_PI_CONTROL_BLOCK_ALIGN_BYTES)?ACE_PI_CONTROL_BLOCK_ALIGN_BYTES:ACE_MALLOC_ALIGN]
 Force alignment.
ACE_Malloc_Header base_
 Dummy node used to anchor the freelist. This needs to come last...

Private Member Functions

void operator= (const ACE_Control_Block &)

Classes

class  ACE_Malloc_Header
 This is the control block header. It's used by <ACE_Malloc> to keep track of each chunk of data when it's in the free list or in use. More...
class  ACE_Name_Node
 This class supports "named memory regions" within <ACE_Malloc>. More...

Detailed Description

This information is stored in memory allocated by the <Memory_Pool>.

This class implements the control block structure that can be used in a "position indepent" fashion, i.e., you don't need to "map" the underlying memory pool to the same address in processes sharing the memory. The tradoff of this flexibility is more expensive malloc/free operations.


Member Typedef Documentation

typedef ACE_Based_Pointer_Basic<char> ACE_PI_Control_Block::CHAR_PTR
 

typedef ACE_Based_Pointer<ACE_Malloc_Header> ACE_PI_Control_Block::MALLOC_HEADER_PTR
 

typedef ACE_Based_Pointer<ACE_Name_Node> ACE_PI_Control_Block::NAME_NODE_PTR
 


Member Function Documentation

void ACE_PI_Control_Block::dump void   )  const
 

Dump the state of the object.

void ACE_PI_Control_Block::operator= const ACE_Control_Block  )  [private]
 

void ACE_PI_Control_Block::print_alignment_info void   )  [static]
 

Print out a bunch of size info for debugging.


Member Data Documentation

char ACE_PI_Control_Block::align_[(ACE_PI_CONTROL_BLOCK_ALIGN_BYTES)?ACE_PI_CONTROL_BLOCK_ALIGN_BYTES:ACE_MALLOC_ALIGN]
 

Force alignment.

ACE_Malloc_Header ACE_PI_Control_Block::base_
 

Dummy node used to anchor the freelist. This needs to come last...

MALLOC_HEADER_PTR ACE_PI_Control_Block::freep_
 

Current head of the freelist.

char ACE_PI_Control_Block::lock_name_[MAXNAMELEN]
 

Name of lock thats ensures mutual exclusion.

NAME_NODE_PTR ACE_PI_Control_Block::name_head_
 

Head of the linked list of Name Nodes.

int ACE_PI_Control_Block::ref_counter_
 

Reference counter.


The documentation for this class was generated from the following files:
Generated on Wed Nov 23 15:49:37 2005 for ACE by  doxygen 1.4.5