summaryrefslogtreecommitdiff
path: root/TAO/tao/Array_VarOut_T.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/Array_VarOut_T.h')
-rw-r--r--TAO/tao/Array_VarOut_T.h99
1 files changed, 60 insertions, 39 deletions
diff --git a/TAO/tao/Array_VarOut_T.h b/TAO/tao/Array_VarOut_T.h
index d9efb3f754e..dd711969e5a 100644
--- a/TAO/tao/Array_VarOut_T.h
+++ b/TAO/tao/Array_VarOut_T.h
@@ -20,31 +20,50 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+namespace TAO
+{
+ /**
+ * struct Array_Traits
+ *
+ * @brief Specialized for each array in generated code.
+ *
+ */
+ template<typename T, typename T_slice>
+ struct Array_Traits
+ {
+ static T_slice * tao_alloc (void);
+ static void tao_free (T_slice * _tao_slice);
+ static T_slice * tao_dup (const T_slice * _tao_slice);
+ static void tao_copy (T_slice * _tao_to,
+ const T_slice * _tao_from);
+ };
+};
+
/**
* @class TAO_Array_Var_Base_T
*
* @brief Parametrized implementation of _var base class for arrays.
*
*/
-template<typename T_slice, typename T_life>
+template<typename T, typename T_slice, typename T_life>
class TAO_Array_Var_Base_T
{
public:
TAO_Array_Var_Base_T (void);
TAO_Array_Var_Base_T (T_slice *);
- TAO_Array_Var_Base_T (const TAO_Array_Var_Base_T<T_slice,T_life> &);
+ TAO_Array_Var_Base_T (const TAO_Array_Var_Base_T<T,T_slice,T_life> &);
~TAO_Array_Var_Base_T (void);
-
+
T_slice & operator[] (CORBA::ULong index);
T_slice const & operator[] (CORBA::ULong index) const;
- operator T_slice * const & () const;
-
+ operator T_slice * const & () const;
+
typedef const T_slice * _in_type;
typedef T_slice * _inout_type;
typedef T_slice *& _out_type;
typedef T_slice * _retn_type;
- // in, inout, out, _retn
+ // in, inout, out, _retn
_in_type in (void) const;
_inout_type inout (void);
_out_type out (void);
@@ -64,17 +83,17 @@ protected:
* elements of fixed size.
*
*/
-template<typename T_slice, typename T_life>
-class TAO_FixedArray_Var_T: public TAO_Array_Var_Base_T<T_slice,T_life>
+template<typename T, typename T_slice, typename T_life>
+class TAO_FixedArray_Var_T: public TAO_Array_Var_Base_T<T,T_slice,T_life>
{
public:
TAO_FixedArray_Var_T (void);
TAO_FixedArray_Var_T (T_slice *);
- TAO_FixedArray_Var_T (const TAO_FixedArray_Var_T<T_slice,T_life> &);
-
- TAO_FixedArray_Var_T<T_slice,T_life> &operator= (T_slice *);
- TAO_FixedArray_Var_T<T_slice,T_life> &operator= (
- const TAO_FixedArray_Var_T<T_slice,T_life> &
+ TAO_FixedArray_Var_T (const TAO_FixedArray_Var_T<T,T_slice,T_life> &);
+
+ TAO_FixedArray_Var_T<T,T_slice,T_life> &operator= (T_slice *);
+ TAO_FixedArray_Var_T<T,T_slice,T_life> &operator= (
+ const TAO_FixedArray_Var_T<T,T_slice,T_life> &
);
};
@@ -85,19 +104,19 @@ public:
* elements of variable size.
*
*/
-template<typename T_slice, typename T_life>
-class TAO_VarArray_Var_T : public TAO_Array_Var_Base_T<T_slice,T_life>
+template<typename T, typename T_slice, typename T_life>
+class TAO_VarArray_Var_T : public TAO_Array_Var_Base_T<T,T_slice,T_life>
{
public:
TAO_VarArray_Var_T (void);
TAO_VarArray_Var_T (T_slice *);
- TAO_VarArray_Var_T (const TAO_VarArray_Var_T<T_slice,T_life> &);
-
- TAO_VarArray_Var_T<T_slice,T_life> &operator= (T_slice *);
- TAO_VarArray_Var_T<T_slice,T_life> &operator= (
- const TAO_VarArray_Var_T<T_slice,T_life> &
+ TAO_VarArray_Var_T (const TAO_VarArray_Var_T<T,T_slice,T_life> &);
+
+ TAO_VarArray_Var_T<T,T_slice,T_life> &operator= (T_slice *);
+ TAO_VarArray_Var_T<T,T_slice,T_life> &operator= (
+ const TAO_VarArray_Var_T<T,T_slice,T_life> &
);
-
+
operator T_slice *& ();
};
@@ -107,26 +126,26 @@ public:
* @brief Parametrized implementation of _out class for arrays.
*
*/
-template<typename T_var, typename T_slice, typename T_life>
+template<typename T, typename T_var, typename T_slice, typename T_life>
class TAO_Array_Out_T
{
public:
TAO_Array_Out_T (T_slice *&);
TAO_Array_Out_T (T_var &);
- TAO_Array_Out_T (const TAO_Array_Out_T<T_var,T_slice,T_life> &);
-
- TAO_Array_Out_T<T_var,T_slice,T_life> &operator= (
- const TAO_Array_Out_T<T_var,T_slice,T_life> &
+ TAO_Array_Out_T (const TAO_Array_Out_T<T,T_var,T_slice,T_life> &);
+
+ TAO_Array_Out_T<T,T_var,T_slice,T_life> &operator= (
+ const TAO_Array_Out_T<T,T_var,T_slice,T_life> &
);
- TAO_Array_Out_T<T_var,T_slice,T_life> &operator= (T_slice *);
-
+ TAO_Array_Out_T<T,T_var,T_slice,T_life> &operator= (T_slice *);
+
operator T_slice *& ();
T_slice *& ptr (void);
-
+
T_slice & operator[] (CORBA::ULong index);
const T_slice & operator[] (CORBA::ULong index) const;
private:
- typedef TAO_Array_Out_T<T_var,T_slice,T_life> THIS_OUT_TYPE;
+ typedef TAO_Array_Out_T<T,T_var,T_slice,T_life> THIS_OUT_TYPE;
T_slice *& ptr_;
// Assignment from T_var not allowed.
void operator= (const T_var &);
@@ -138,28 +157,30 @@ private:
* @brief Parametrized implementation of _forany class for arrays.
*
*/
-template<typename T_slice, typename T_life>
+template<typename T, typename T_slice, typename T_life>
class TAO_Array_Forany_T
{
public:
TAO_Array_Forany_T (void);
TAO_Array_Forany_T (T_slice *,
CORBA::Boolean nocopy = 0);
- TAO_Array_Forany_T (const TAO_Array_Forany_T<T_slice,T_life> &);
+ TAO_Array_Forany_T (const TAO_Array_Forany_T<T,T_slice,T_life> &);
~TAO_Array_Forany_T (void);
-
+
static void _tao_any_destructor (void *);
-
+
TAO_Array_Forany_T & operator= (T_slice *);
- TAO_Array_Forany_T & operator= (const TAO_Array_Forany_T<T_slice,T_life> &);
-
+ TAO_Array_Forany_T & operator= (
+ const TAO_Array_Forany_T<T,T_slice,T_life> &
+ );
+
T_slice & operator[] (CORBA::ULong index);
const T_slice & operator[] (CORBA::ULong index) const;
-
+
operator T_slice * const & () const;
operator T_slice *& ();
-
- // in, inout, out, _retn
+
+ // in, inout, out, _retn
const T_slice * in (void) const;
T_slice * inout (void);
T_slice * &out (void);