Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

TAO_Abstract_Manager Class Template Reference

Manager for abstract intefaces. More...

#include <Sequence_T.h>

Collaboration diagram for TAO_Abstract_Manager:

Collaboration graph
[legend]
List of all members.

Public Methods

 TAO_Abstract_Manager (const TAO_Abstract_Manager< T, T_var > &rhs)
 Copy constructor, the semantics are non-trivial: + The referenced element is duplicated or not according to the release value on the <rhs>. More...

 TAO_Abstract_Manager (T **, CORBA::Boolean release)
 Constructor from address of an element, it should be private and only TAO_*_Object_Sequence would use it, but we have some problems with friendship and templates. More...

 ~TAO_Abstract_Manager (void)
 Destructor, only releases the object if <release_> is true. More...

TAO_Abstract_Manager< T, T_var > & operator= (const TAO_Abstract_Manager< T, T_var > &rhs)
 Assignment from another managed type, only release if <this->release_> is true. More...

TAO_Abstract_Manager< T, T_var > & operator= (T *)
 Assignment from T *. More...

TAO_Abstract_Manager< T, T_var > & operator= (const T_var &)
 Assignment from T_var. More...

T * operator-> (void) const
 Return pointer. More...

 operator const T * () const
 Cast (read-only). More...

 operator T *& ()
 Cast. More...

 operator const T_var () const
 Cast (read-only) so that assignment from a structured type to a T_var will make a copy. More...

T * in (void) const
 for in parameter. More...

T *& inout (void)
 for inout parameter. More...

T *& out (void)
 for out parameter. More...

T * _retn (void)
 for return type. More...


Private Attributes

T ** ptr_
 data member, notice that it is a pointer, to implement the reference behavior for assignment. More...

CORBA::Boolean release_
 release flag based on parent's flag. More...


Detailed Description

template<class T, class T_var>
class TAO_Abstract_Manager< T, T_var >

Manager for abstract intefaces.

An abstract interface can be either a valuetype or an object references, so a manager class is needed.

See also:
TAO_Object_Manager


Constructor & Destructor Documentation

template<class T, class T_var>
ACE_INLINE TAO_Abstract_Manager< T, T_var >::TAO_Abstract_Manager const TAO_Abstract_Manager< T, T_var > &    rhs
 

Copy constructor, the semantics are non-trivial: + The referenced element is duplicated or not according to the release value on the <rhs>.

+ In any case a new reference to the same object is created.

template<class T, class T_var>
ACE_INLINE TAO_Abstract_Manager< T, T_var >::TAO_Abstract_Manager T **    buffer,
CORBA::Boolean    release
 

Constructor from address of an element, it should be private and only TAO_*_Object_Sequence would use it, but we have some problems with friendship and templates.

template<class T, class T_var>
ACE_INLINE TAO_Abstract_Manager< T, T_var >::~TAO_Abstract_Manager void   
 

Destructor, only releases the object if <release_> is true.


Member Function Documentation

template<class T, class T_var>
ACE_INLINE T * TAO_Abstract_Manager< T, T_var >::_retn void   
 

for return type.

template<class T, class T_var>
ACE_INLINE T * TAO_Abstract_Manager< T, T_var >::in void    const
 

for in parameter.

template<class T, class T_var>
ACE_INLINE T *& TAO_Abstract_Manager< T, T_var >::inout void   
 

for inout parameter.

template<class T, class T_var>
ACE_INLINE TAO_Abstract_Manager< T, T_var >::operator const T *   const
 

Cast (read-only).

template<class T, class T_var>
ACE_INLINE TAO_Abstract_Manager< T, T_var >::operator const T_var   const
 

Cast (read-only) so that assignment from a structured type to a T_var will make a copy.

template<class T, class T_var>
ACE_INLINE TAO_Abstract_Manager< T, T_var >::operator T *&  
 

Cast.

template<class T, class T_var>
ACE_INLINE T * TAO_Abstract_Manager< T, T_var >::operator-> void    const
 

Return pointer.

template<class T, class T_var>
TAO_Abstract_Manager< T, T_var > & TAO_Abstract_Manager< T, T_var >::operator= const T_var &    p
 

Assignment from T_var.

template<class T, class T_var>
TAO_Abstract_Manager< T, T_var > & TAO_Abstract_Manager< T, T_var >::operator= T *    p
 

Assignment from T *.

template<class T, class T_var>
TAO_Abstract_Manager< T, T_var > & TAO_Abstract_Manager< T, T_var >::operator= const TAO_Abstract_Manager< T, T_var > &    rhs
 

Assignment from another managed type, only release if <this->release_> is true.

@ TODO what happens if rhs.release_ is true an this->relase_ is false?

template<class T, class T_var>
ACE_INLINE T *& TAO_Abstract_Manager< T, T_var >::out void   
 

for out parameter.


Member Data Documentation

template<class T, class T_var>
T** TAO_Abstract_Manager::ptr_ [private]
 

data member, notice that it is a pointer, to implement the reference behavior for assignment.

template<class T, class T_var>
CORBA::Boolean TAO_Abstract_Manager::release_ [private]
 

release flag based on parent's flag.


The documentation for this class was generated from the following files:
Generated on Thu Oct 10 18:22:24 2002 for TAO by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001