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.

References TAO_DynCommon::check_component(), TAO_DynCommon::destroyed(), TAO_DynCommon::has_components(), and TAO_DynCommon::the_any().

00062   {
00063     if (the_dynany->destroyed ())
00064       {
00065         throw ::CORBA::OBJECT_NOT_EXIST ();
00066       }
00067 
00068     if (the_dynany->has_components ())
00069       {
00070         DynamicAny::DynAny_var cc = the_dynany->check_component ();
00071         TAO_DynCommon *dc = dynamic_cast<TAO_DynCommon *> (cc.in ());
00072         return DynAnyBasicTypeUtils<T>::get_value (dc);
00073       }
00074     else
00075       {
00076         typedef typename BasicTypeTraits<T>::return_type ret_type;
00077         typedef typename BasicTypeTraits<T>::extract_type ext_type;
00078         ret_type retval = ret_type ();
00079         ext_type extval (retval);
00080         const CORBA::Any &my_any = the_dynany->the_any ();
00081 
00082         if (!(my_any >>= extval))
00083           {
00084             throw DynamicAny::DynAny::TypeMismatch ();
00085           }
00086 
00087         return BasicTypeTraits<T>::convert (extval);
00088       }
00089   }

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.

References TAO_DynCommon::check_component(), TAO_DynCommon::check_type(), TAO_DynCommon::destroyed(), TAO_DynCommon::has_components(), and TAO_DynCommon::the_any().

00037   {
00038     if (the_dynany->destroyed ())
00039       {
00040         throw ::CORBA::OBJECT_NOT_EXIST ();
00041       }
00042 
00043     if (the_dynany->has_components ())
00044       {
00045         DynamicAny::DynAny_var cc = the_dynany->check_component ();
00046         TAO_DynCommon *dc = dynamic_cast<TAO_DynCommon *> (cc.in ());
00047         DynAnyBasicTypeUtils<T>::insert_value (val, dc);
00048       }
00049     else
00050       {
00051         the_dynany->check_type (BasicTypeTraits<T>::tc_value);
00052         CORBA::Any &my_any = the_dynany->the_any ();
00053         typedef typename TAO::BasicTypeTraits<T>::insert_type i_type;
00054         i_type insert_arg (val);
00055         my_any <<= insert_arg;
00056       }
00057   }


The documentation for this struct was generated from the following files:
Generated on Tue Feb 2 17:43:14 2010 for TAO_DynamicAny by  doxygen 1.4.7