summaryrefslogtreecommitdiff
path: root/TAO/tao/Objref_VarOut_T.h
diff options
context:
space:
mode:
authorbala <bala@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-10-28 18:31:01 +0000
committerbala <bala@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-10-28 18:31:01 +0000
commitcdb6fd66611283a0314ab23e08472d11dae4f0e4 (patch)
treefd6ae8c3db752254802dfaafd1543974a4741e47 /TAO/tao/Objref_VarOut_T.h
parentf984aa2bff444f381570d2f97ac9ba958926fb6b (diff)
downloadATCD-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.h50
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_;
};