Public Member Functions | Private Attributes

TAO::In_Var_Array_Clonable_Argument_T< S_forany, Insert_Policy > Class Template Reference

IN stub argument of variable size element array. More...

#include <Var_Array_Argument_T.h>

Inheritance diagram for TAO::In_Var_Array_Clonable_Argument_T< S_forany, Insert_Policy >:
Inheritance graph
[legend]
Collaboration diagram for TAO::In_Var_Array_Clonable_Argument_T< S_forany, Insert_Policy >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 In_Var_Array_Clonable_Argument_T (const typename S_forany::_slice_type *x)
virtual ~In_Var_Array_Clonable_Argument_T (void)
virtual Argumentclone (void)
 Template method to clone a TAO Argument.

Private Attributes

bool is_clone_

Detailed Description

template<typename S_forany, template< typename > class Insert_Policy>
class TAO::In_Var_Array_Clonable_Argument_T< S_forany, Insert_Policy >

IN stub argument of variable size element array.

Definition at line 59 of file Var_Array_Argument_T.h.


Constructor & Destructor Documentation

template<typename S_forany , template< typename > class Insert_Policy>
TAO::In_Var_Array_Clonable_Argument_T< S_forany, Insert_Policy >::In_Var_Array_Clonable_Argument_T ( const typename S_forany::_slice_type *  x  ) 

Definition at line 29 of file Var_Array_Argument_T.inl.

  : In_Var_Array_Argument_T<S_forany,Insert_Policy> (x),
    is_clone_ (false)
{}

template<typename S_forany , template< typename > class Insert_Policy>
TAO::In_Var_Array_Clonable_Argument_T< S_forany, Insert_Policy >::~In_Var_Array_Clonable_Argument_T ( void   )  [virtual]

Definition at line 40 of file Var_Array_Argument_T.cpp.

{
  if (this->is_clone_)
    {
      typedef TAO::details::array_traits<S_forany> ARRAY_TRAITS;
      typename ARRAY_TRAITS::slice_type * tmp =
               const_cast<typename ARRAY_TRAITS::slice_type*> (this->x_.in ());
      ARRAY_TRAITS::free (tmp);
    }
}


Member Function Documentation

template<typename S_forany , template< typename > class Insert_Policy>
TAO::Argument * TAO::In_Var_Array_Clonable_Argument_T< S_forany, Insert_Policy >::clone ( void   )  [virtual]

Template method to clone a TAO Argument.

Reimplemented from TAO::Argument.

Definition at line 54 of file Var_Array_Argument_T.cpp.

{
  typedef TAO::details::array_traits<S_forany> ARRAY_TRAITS;
  typename ARRAY_TRAITS::slice_type * tmp_ptr = 0;
  ACE_ALLOCATOR_RETURN (tmp_ptr,
                        ARRAY_TRAITS::alloc (),
                        0);
  ARRAY_TRAITS::copy(tmp_ptr, this->x_.in ());

  In_Var_Array_Clonable_Argument_T<S_forany,Insert_Policy>* clone_arg
    = new In_Var_Array_Clonable_Argument_T<S_forany,Insert_Policy> (tmp_ptr);
  clone_arg->is_clone_ = true;
  return clone_arg;
}


Member Data Documentation

template<typename S_forany , template< typename > class Insert_Policy>
bool TAO::In_Var_Array_Clonable_Argument_T< S_forany, Insert_Policy >::is_clone_ [private]

Definition at line 69 of file Var_Array_Argument_T.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines