ACE 8.0.0
Loading...
Searching...
No Matches
Static Public Member Functions | Protected Member Functions | Private Member Functions | List of all members
ACE_Managed_Object< TYPE > Class Template Reference

Wrapper for interface to allocate an object managed by the ACE_Object_Manager. More...

#include <Managed_Object.h>

Static Public Member Functions

static TYPE * get_preallocated_object (ACE_Object_Manager::Preallocated_Object identifier)
 
static TYPE * get_preallocated_array (ACE_Object_Manager::Preallocated_Array identifier)
 

Protected Member Functions

 ACE_Managed_Object ()=delete
 

Private Member Functions

 ACE_Managed_Object (const ACE_Managed_Object< TYPE > &)=delete
 
void operator= (const ACE_Managed_Object< TYPE > &)=delete
 

Detailed Description

template<class TYPE>
class ACE_Managed_Object< TYPE >

Wrapper for interface to allocate an object managed by the ACE_Object_Manager.

This template class wraps an interface that is used to allocate and access an object that is managed by the ACE_Object_Manager. Because static template member functions are not supported by some compilers, it is a separate (template) class. This interface is typically used to replace a static object with one that is dynamically allocated. It helps to avoid problems with order of static object construction/destruction. Managed objects won't be allocated until needed, but should be allocated when first needed. And they are destroyed in the reverse order of construction. <get_preallocated_object> accesses a "preallocated" object, i.e., one that is identified by a value in the ACE_Object_Manager:: Preallocated_Object enum. These objects are used internally by the ACE library. Hooks are provided for the application to preallocate objects via the same mechanism. ACE_APPLICATION_PREALLOCATED_OBJECT_DECLARATIONS can be used to define enum values; ACE_APPLICATION_PREALLOCATED_OBJECT_DEFINITIONS can be used to define the corresponding objects. The format of the ACE internal library definitions should be followed. And similarly, ACE_APPLICATION_PREALLOCATED_ARRAY_DECLARATIONS and ACE_APPLICATION_PREALLOCATED_ARRAY_DEFINITIONS can be used to preallocate arrays. By default, preallocation uses dynamic allocation. The preallocated objects and arrays are allocated off the heap in the ACE_Object_Manager constructor. To statically place the preallocated objects in program global data instead of on the heap, #define ACE_HAS_STATIC_PREALLOCATION prior to building the ACE library.

Constructor & Destructor Documentation

◆ ACE_Managed_Object() [1/2]

template<class TYPE >
ACE_Managed_Object< TYPE >::ACE_Managed_Object ( )
protecteddelete

◆ ACE_Managed_Object() [2/2]

template<class TYPE >
ACE_Managed_Object< TYPE >::ACE_Managed_Object ( const ACE_Managed_Object< TYPE > & )
privatedelete

Member Function Documentation

◆ get_preallocated_array()

template<class TYPE >
static TYPE * ACE_Managed_Object< TYPE >::get_preallocated_array ( ACE_Object_Manager::Preallocated_Array identifier)
inlinestatic

Get the preallocated array identified by "id". Returns a pointer to the array. Beware: no error indication is provided, because it can only be used for accessing preallocated arrays.

◆ get_preallocated_object()

template<class TYPE >
static TYPE * ACE_Managed_Object< TYPE >::get_preallocated_object ( ACE_Object_Manager::Preallocated_Object identifier)
inlinestatic

Get the preallocated object identified by "id". Returns a pointer to the object. Beware: no error indication is provided, because it can only be used for accessing preallocated objects.

◆ operator=()

template<class TYPE >
void ACE_Managed_Object< TYPE >::operator= ( const ACE_Managed_Object< TYPE > & )
privatedelete

The documentation for this class was generated from the following file: