diff options
author | bala <bala@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-10-28 18:31:01 +0000 |
---|---|---|
committer | bala <bala@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-10-28 18:31:01 +0000 |
commit | cdb6fd66611283a0314ab23e08472d11dae4f0e4 (patch) | |
tree | fd6ae8c3db752254802dfaafd1543974a4741e47 /TAO/tao/Objref_VarOut_T.h | |
parent | f984aa2bff444f381570d2f97ac9ba958926fb6b (diff) | |
download | ATCD-cdb6fd66611283a0314ab23e08472d11dae4f0e4.tar.gz |
ChangeLogTag:Tue Oct 28 12:02:47 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
Diffstat (limited to 'TAO/tao/Objref_VarOut_T.h')
-rw-r--r-- | TAO/tao/Objref_VarOut_T.h | 50 |
1 files changed, 35 insertions, 15 deletions
diff --git a/TAO/tao/Objref_VarOut_T.h b/TAO/tao/Objref_VarOut_T.h index 6b37c42991f..1d9064b7571 100644 --- a/TAO/tao/Objref_VarOut_T.h +++ b/TAO/tao/Objref_VarOut_T.h @@ -10,19 +10,40 @@ */ //============================================================================= - #ifndef TAO_OBJREF_VAROUT_T_H #define TAO_OBJREF_VAROUT_T_H #include /**/ "ace/pre.h" -#include "tao/varbase.h" +#include "ace/CORBA_macros.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "ace/CORBA_macros.h" +#include "tao/Basic_Types.h" +#include "tao/varbase.h" + +class TAO_OutputCDR; + +namespace TAO +{ + /** + * struct Objref_Traits + * + * @brief Specialized for each interface in generated code. + * + */ + template<typename T> + struct Objref_Traits + { + static T * tao_duplicate (T *); + static void tao_release (T *); + static T * tao_nil (void); + static CORBA::Boolean tao_marshal (T *, + TAO_OutputCDR &); + }; +}; /** * @class TAO_Objref_Var_T @@ -31,19 +52,18 @@ * references. * */ - -template <typename T, typename T_life> +template <typename T> class TAO_Objref_Var_T : private TAO_Base_var { public: TAO_Objref_Var_T (void); TAO_Objref_Var_T (T * p) : ptr_ (p) {} - TAO_Objref_Var_T (const TAO_Objref_Var_T<T, T_life> &); + TAO_Objref_Var_T (const TAO_Objref_Var_T<T> &); ~TAO_Objref_Var_T (void); - TAO_Objref_Var_T<T, T_life> & operator= (T *); - TAO_Objref_Var_T<T, T_life> & operator= ( - const TAO_Objref_Var_T<T, T_life> & + TAO_Objref_Var_T<T> & operator= (T *); + TAO_Objref_Var_T<T> & operator= ( + const TAO_Objref_Var_T<T> & ); T * operator-> (void) const; @@ -82,16 +102,16 @@ private: * @brief Parametrized implementation of _out class for object references. * */ -template <typename T, typename T_life> +template <typename T> class TAO_Objref_Out_T { public: TAO_Objref_Out_T (T *&); - TAO_Objref_Out_T (TAO_Objref_Var_T<T, T_life> &); - TAO_Objref_Out_T (const TAO_Objref_Out_T<T, T_life> &); + TAO_Objref_Out_T (TAO_Objref_Var_T<T> &); + TAO_Objref_Out_T (const TAO_Objref_Out_T<T> &); - TAO_Objref_Out_T &operator= (const TAO_Objref_Out_T<T, T_life> &); - TAO_Objref_Out_T &operator= (const TAO_Objref_Var_T<T, T_life> &); + TAO_Objref_Out_T &operator= (const TAO_Objref_Out_T<T> &); + TAO_Objref_Out_T &operator= (const TAO_Objref_Var_T<T> &); TAO_Objref_Out_T &operator= (T *); // Cast operator. @@ -101,7 +121,7 @@ public: T * operator-> (void); private: - typedef TAO_Objref_Out_T<T, T_life> THIS_OUT_TYPE; + typedef TAO_Objref_Out_T<T> THIS_OUT_TYPE; T *& ptr_; }; |