Static Public Member Functions

TAO::DynAnyBasicTypeUtils< T > Struct Template Reference

#include <DynAnyUtils_T.h>

List of all members.

Static Public Member Functions

static void insert_value (const T &val, TAO_DynCommon *the_dynany)
static BasicTypeTraits< T >
::return_type 
get_value (TAO_DynCommon *the_dynany)

Detailed Description

template<typename T>
struct TAO::DynAnyBasicTypeUtils< T >

Definition at line 37 of file DynAnyUtils_T.h.


Member Function Documentation

template<typename T >
BasicTypeTraits< T >::return_type TAO::DynAnyBasicTypeUtils< T >::get_value ( TAO_DynCommon the_dynany  )  [static]

Definition at line 61 of file DynAnyUtils_T.cpp.

  {
    if (the_dynany->destroyed ())
      {
        throw ::CORBA::OBJECT_NOT_EXIST ();
      }

    if (the_dynany->has_components ())
      {
        DynamicAny::DynAny_var cc = the_dynany->check_component ();
        TAO_DynCommon *dc = dynamic_cast<TAO_DynCommon *> (cc.in ());
        return DynAnyBasicTypeUtils<T>::get_value (dc);
      }
    else
      {
        typedef typename BasicTypeTraits<T>::return_type ret_type;
        typedef typename BasicTypeTraits<T>::extract_type ext_type;
        ret_type retval = ret_type ();
        ext_type extval (retval);
        const CORBA::Any &my_any = the_dynany->the_any ();

        if (!(my_any >>= extval))
          {
            throw DynamicAny::DynAny::TypeMismatch ();
          }

        return BasicTypeTraits<T>::convert (extval);
      }
  }

template<typename T >
void TAO::DynAnyBasicTypeUtils< T >::insert_value ( const T &  val,
TAO_DynCommon the_dynany 
) [static]

Definition at line 35 of file DynAnyUtils_T.cpp.

  {
    if (the_dynany->destroyed ())
      {
        throw ::CORBA::OBJECT_NOT_EXIST ();
      }

    if (the_dynany->has_components ())
      {
        DynamicAny::DynAny_var cc = the_dynany->check_component ();
        TAO_DynCommon *dc = dynamic_cast<TAO_DynCommon *> (cc.in ());
        DynAnyBasicTypeUtils<T>::insert_value (val, dc);
      }
    else
      {
        the_dynany->check_type (BasicTypeTraits<T>::tc_value);
        CORBA::Any &my_any = the_dynany->the_any ();
        typedef typename TAO::BasicTypeTraits<T>::insert_type i_type;
        i_type insert_arg (val);
        my_any <<= insert_arg;
      }
  }


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