TAO_Fixed_Var_T< T > Class Template Reference

Parametrized implementation of _var class for structs, unions, and exceptions with members of fixed size. More...

#include <VarOut_T.h>

Inheritance diagram for TAO_Fixed_Var_T< T >:

Inheritance graph
[legend]
Collaboration diagram for TAO_Fixed_Var_T< T >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef T & _out_type
typedef T _retn_type

Public Member Functions

 TAO_Fixed_Var_T (void)
 TAO_Fixed_Var_T (T *)
 TAO_Fixed_Var_T (const TAO_Fixed_Var_T< T > &)
 TAO_Fixed_Var_T (const T &)
TAO_Fixed_Var_Toperator= (T *)
TAO_Fixed_Var_Toperator= (const TAO_Fixed_Var_T< T > &)
TAO_Fixed_Var_Toperator= (const T &)
_out_type out (void)
_retn_type _retn (void)

Detailed Description

template<typename T>
class TAO_Fixed_Var_T< T >

Parametrized implementation of _var class for structs, unions, and exceptions with members of fixed size.

Definition at line 72 of file VarOut_T.h.


Member Typedef Documentation

template<typename T>
typedef T& TAO_Fixed_Var_T< T >::_out_type

Definition at line 88 of file VarOut_T.h.

template<typename T>
typedef T TAO_Fixed_Var_T< T >::_retn_type

Definition at line 89 of file VarOut_T.h.


Constructor & Destructor Documentation

template<typename T>
ACE_INLINE TAO_Fixed_Var_T< T >::TAO_Fixed_Var_T ( void   ) 

Definition at line 90 of file VarOut_T.inl.

00091 {}

template<typename T>
ACE_INLINE TAO_Fixed_Var_T< T >::TAO_Fixed_Var_T ( T *   ) 

Definition at line 95 of file VarOut_T.inl.

00096   : TAO_Var_Base_T<T> (p)
00097 {}

template<typename T>
ACE_INLINE TAO_Fixed_Var_T< T >::TAO_Fixed_Var_T ( const TAO_Fixed_Var_T< T > &   ) 

Definition at line 101 of file VarOut_T.inl.

00102   : TAO_Var_Base_T<T> (p)
00103 {}

template<typename T>
ACE_INLINE TAO_Fixed_Var_T< T >::TAO_Fixed_Var_T ( const T &   ) 

Definition at line 108 of file VarOut_T.inl.

References ACE_NEW.

00109 {
00110   ACE_NEW (this->ptr_,
00111            T (p));
00112 }


Member Function Documentation

template<typename T>
ACE_INLINE T TAO_Fixed_Var_T< T >::_retn ( void   ) 

Definition at line 142 of file VarOut_T.inl.

References TAO_Var_Base_T< T >::ptr_.

00143 {
00144   return *this->ptr_;
00145 }

template<typename T>
TAO_Fixed_Var_T< T > & TAO_Fixed_Var_T< T >::operator= ( const T &   ) 

Definition at line 40 of file VarOut_T.cpp.

References TAO_Var_Base_T< T >::ptr_.

00041 {
00042   // Strongly exception safe assignment using copy and non-throwing
00043   // swap technique.
00044   TAO_Fixed_Var_T<T> tmp (p);
00045 
00046   T * old_ptr = this->ptr_;
00047   this->ptr_ = tmp.ptr_;
00048   tmp.ptr_ = old_ptr;
00049 
00050   return *this;
00051 }

template<typename T>
TAO_Fixed_Var_T< T > & TAO_Fixed_Var_T< T >::operator= ( const TAO_Fixed_Var_T< T > &   ) 

Definition at line 24 of file VarOut_T.cpp.

References TAO_Var_Base_T< T >::ptr_.

00025 {
00026   // Strongly exception safe assignment using copy and non-throwing
00027   // swap technique.
00028   TAO_Fixed_Var_T<T> tmp (p);
00029 
00030   T * old_ptr = this->ptr_;
00031   this->ptr_ = tmp.ptr_;
00032   tmp.ptr_ = old_ptr;
00033 
00034   return *this;
00035 }

template<typename T>
ACE_INLINE TAO_Fixed_Var_T< T > & TAO_Fixed_Var_T< T >::operator= ( T *   ) 

Definition at line 117 of file VarOut_T.inl.

References TAO_Var_Base_T< T >::ptr_.

00118 {
00119   delete this->ptr_;
00120   this->ptr_ = p;
00121   return *this;
00122 }

template<typename T>
ACE_INLINE T & TAO_Fixed_Var_T< T >::out ( void   ) 

Definition at line 128 of file VarOut_T.inl.

References TAO_Var_Base_T< T >::ptr_.

00129 {
00130   // Use plain new, using the ACE_NEW macros will mean we dereference a
00131   // nil pointer and crash which is more bad then plain new which could
00132   // lead to a bad_alloc exception
00133   if (this->ptr_ == 0)
00134     this->ptr_ = new T;
00135 
00136   return *this->ptr_;
00137 }


The documentation for this class was generated from the following files:
Generated on Tue Feb 2 17:39:29 2010 for TAO by  doxygen 1.4.7