ANNA Suite  2020b
Multipurpose development suite for Telco applications
Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
anna::AutoPointer Class Reference

#include <AutoPointer.hpp>

Inheritance diagram for anna::AutoPointer:
Inheritance graph
[legend]

Classes

struct  WhenFinished
 

Public Member Functions

virtual ~AutoPointer ()
 
WhenFinished::_v getWhenFinished () const
 
void setWhenFinished (const WhenFinished::_v whenFinished)
 
virtual String asString () const
 

Static Public Member Functions

template<typename T >
static T * release (T &instance)
 
template<typename T >
static T * release (T *instance)
 
static const char * className ()
 

Protected Member Functions

 AutoPointer (const WhenFinished::_v whenFinished)
 

Detailed Description

Clase de la que deben heredar todas las clases con capacidades de liberación automática. Respector a auto_ptr tiene la ventaja de que puede actuar sobre objetos creados en la pila.

La clase que implemente este interface debe declara como friend a esta clase.

Constructor & Destructor Documentation

◆ ~AutoPointer()

virtual anna::AutoPointer::~AutoPointer ( )
inlinevirtual

Destructor.

39 {;}

◆ AutoPointer()

anna::AutoPointer::AutoPointer ( const WhenFinished::_v  whenFinished)
inlineprotected

Constructor

Parameters
whenFinishedIndica que operación a realizar cuando se invoque a anna::AutoPointer::release.
98 : a_whenFinished(whenFinished) {;}

Member Function Documentation

◆ asString()

virtual String anna::AutoPointer::asString ( ) const
virtual

Devuelve una cadena con la informacion relevante de este objeto.

Returns
Una cadena con la informacion relevante de este objeto.

◆ className()

static const char* anna::AutoPointer::className ( )
inlinestatic

Devuelve el nombre lógico de esta clase.

Returns
el nombre lógico de esta clase.
91 { return "AutoPointer"; }

◆ getWhenFinished()

WhenFinished::_v anna::AutoPointer::getWhenFinished ( ) const
inline

Devuelve la operación que se realizará cuando se termine con esta instancia y se invoque a anna::AutoPointer::release.

Returns
la operación que se realizará cuando se termine con esta instancia y se invoque a anna::AutoPointer::release.
45 { return a_whenFinished; }

◆ release() [1/2]

template<typename T >
static T* anna::AutoPointer::release ( T &  instance)
inlinestatic

Si fuera necesario libera de la instancia recibida.

Parameters
instanceInstancia a liberar si fuera necesario. Puede ser NULL.
Returns
Devolverá NULL si la instancia ha sido liberada o la misma instancia recibida en caso de que no haya sido liberada.
65  {
66  return release(&instance);
67  }
static T * release(T &instance)
Definition: AutoPointer.hpp:64

◆ release() [2/2]

template<typename T >
static T* anna::AutoPointer::release ( T *  instance)
inlinestatic

Si fuera necesario libera de la instancia recibida.

Parameters
instanceInstancia a liberar si fuera necesario. Puede ser NULL.
Returns
Devolverá NULL si la instancia ha sido liberada o la misma instancia recibida en caso de que no haya sido liberada.
75  {
76  if(instance == NULL)
77  return NULL;
78 
79  if(instance->getWhenFinished() == WhenFinished::Delete) {
80  delete instance;
81  instance = NULL;
82  }
83 
84  return instance;
85  }
Definition: AutoPointer.hpp:32

◆ setWhenFinished()

void anna::AutoPointer::setWhenFinished ( const WhenFinished::_v  whenFinished)
inline

Establece la operación a realizar cuando se invoca al método anna::AutoPointer::release.

Parameters
whenFinishedIndica que operación a realizar cuando se invoque a anna::AutoPointer::release.
51 { a_whenFinished = whenFinished; }
Here is the call graph for this function:

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