ACE  6.0.6
Public Types | Public Member Functions | Private Attributes
ACE_Utils::Auto_Functor Class Reference

Helper template to implement auto_ptr<>-like classes, but executing a functor in the destructor, instead of always deleting things. More...

#include <Auto_Functor.h>

List of all members.

Public Types

typedef X element_type
typedef Functor functor_type

Public Member Functions

 Auto_Functor (X *p=0, Functor functor=Functor())
 Constructor.
 Auto_Functor (Auto_Functor &rhs)
Auto_Functor< X, Functor > & operator= (Auto_Functor &rhs)
template<typename Y >
 Auto_Functor (Auto_Functor< Y, Functor > &rhs)
template<typename Y >
Auto_Functor< X, Functor > & operator= (Auto_Functor< Y, Functor > &rhs)
 ~Auto_Functor ()
X & operator* () const
X * operator-> () const
X * get ()
X * release ()
void reset (X *p=0)
void reset (X *p, Functor f)
Functor const & functor () const
 Auto_Functor (Auto_Functor_Ref< X, Functor > rhs)
Auto_Functor< X, Functor > & operator= (Auto_Functor_Ref< X, Functor > rhs)
template<typename Y >
 operator Auto_Functor_Ref< Y, Functor > ()
template<typename Y >
 operator Auto_Functor< Y, Functor > ()

Private Attributes

X * p_
Functor f_

Detailed Description

Helper template to implement auto_ptr<>-like classes, but executing a functor in the destructor, instead of always deleting things.

The functor is called in the destructor, and it must implement:

Functor() throw();
Functor(Functor const &) throw();
Functor & operator=(Functor const &) throw();
void operator()(X * p) throw();


Member Typedef Documentation


Constructor & Destructor Documentation

ACE_Utils::Auto_Functor::Auto_Functor ( X *  p = 0,
Functor  functor = Functor() 
) [inline, explicit]

Constructor.

ACE_Utils::Auto_Functor::Auto_Functor ( Auto_Functor rhs) [inline]
template<typename Y >
ACE_Utils::Auto_Functor::Auto_Functor ( Auto_Functor< Y, Functor > &  rhs) [inline]
ACE_Utils::Auto_Functor::~Auto_Functor ( )
ACE_Utils::Auto_Functor::Auto_Functor ( Auto_Functor_Ref< X, Functor >  rhs) [inline]

Member Function Documentation

Functor const & ACE_Utils::Auto_Functor::functor ( ) const [inline]
X * ACE_Utils::Auto_Functor::get ( ) [inline]
template<typename Y >
ACE_Utils::Auto_Functor::operator Auto_Functor< Y, Functor > ( )
template<typename Y >
ACE_Utils::Auto_Functor::operator Auto_Functor_Ref< Y, Functor > ( )
X & ACE_Utils::Auto_Functor::operator* ( ) const [inline]
X * ACE_Utils::Auto_Functor::operator-> ( ) const [inline]
ACE_Utils::Auto_Functor< X, Functor > & ACE_Utils::Auto_Functor::operator= ( Auto_Functor rhs) [inline]
template<typename Y >
ACE_Utils::Auto_Functor< X, Functor > & ACE_Utils::Auto_Functor::operator= ( Auto_Functor< Y, Functor > &  rhs) [inline]
ACE_Utils::Auto_Functor< X, Functor > & ACE_Utils::Auto_Functor::operator= ( Auto_Functor_Ref< X, Functor >  rhs) [inline]
X * ACE_Utils::Auto_Functor::release ( ) [inline]
void ACE_Utils::Auto_Functor::reset ( X *  p = 0)
void ACE_Utils::Auto_Functor::reset ( X *  p,
Functor  f 
)

Member Data Documentation

Functor ACE_Utils::Auto_Functor::f_ [private]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines