#include <DynAnyFactory.h>
Inheritance diagram for TAO_DynAnyFactory:
Public Member Functions | |
TAO_DynAnyFactory (void) | |
Constructor. | |
virtual DynamicAny::DynAny_ptr | create_dyn_any (const CORBA::Any &value) |
virtual DynamicAny::DynAny_ptr | create_dyn_any_from_type_code (CORBA::TypeCode_ptr type) |
virtual DynamicAny::DynAny_ptr | create_dyn_any_without_truncation (const CORBA::Any &value) |
virtual DynamicAny::DynAnySeq * | create_multiple_dyn_anys (const DynamicAny::AnySeq &values,::CORBA::Boolean allow_truncate) |
virtual DynamicAny::AnySeq * | create_multiple_anys (const DynamicAny::DynAnySeq &values) |
Static Public Member Functions | |
static CORBA::TCKind | unalias (CORBA::TypeCode_ptr tc) |
Obtain the kind of object, after all aliasing has been removed. | |
static CORBA::TypeCode_ptr | strip_alias (CORBA::TypeCode_ptr tc) |
Private Member Functions | |
TAO_DynAnyFactory (const TAO_DynAnyFactory &src) | |
TAO_DynAnyFactory & | operator= (const TAO_DynAnyFactory &src) |
Definition at line 41 of file DynAnyFactory.h.
TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_DynAnyFactory::TAO_DynAnyFactory | ( | void | ) |
TAO_DynAnyFactory::TAO_DynAnyFactory | ( | const TAO_DynAnyFactory & | src | ) | [private] |
DynamicAny::DynAny_ptr TAO_DynAnyFactory::create_dyn_any | ( | const CORBA::Any & | value | ) | [virtual] |
Definition at line 38 of file DynAnyFactory.cpp.
00039 { 00040 return 00041 TAO::MakeDynAnyUtils::make_dyn_any_t<const CORBA::Any&> ( 00042 value._tao_get_typecode (), 00043 value); 00044 }
DynamicAny::DynAny_ptr TAO_DynAnyFactory::create_dyn_any_from_type_code | ( | CORBA::TypeCode_ptr | type | ) | [virtual] |
Definition at line 47 of file DynAnyFactory.cpp.
00048 { 00049 // Second arg is typed in the template parameter, repeating it 00050 // this way allows cleaner template code. 00051 return 00052 TAO::MakeDynAnyUtils::make_dyn_any_t<CORBA::TypeCode_ptr> ( 00053 type, 00054 type); 00055 }
DynamicAny::DynAny_ptr TAO_DynAnyFactory::create_dyn_any_without_truncation | ( | const CORBA::Any & | value | ) | [virtual] |
DynamicAny::AnySeq * TAO_DynAnyFactory::create_multiple_anys | ( | const DynamicAny::DynAnySeq & | values | ) | [virtual] |
DynamicAny::DynAnySeq * TAO_DynAnyFactory::create_multiple_dyn_anys | ( | const DynamicAny::AnySeq & | values, | |
::CORBA::Boolean | allow_truncate | |||
) | [virtual] |
TAO_DynAnyFactory& TAO_DynAnyFactory::operator= | ( | const TAO_DynAnyFactory & | src | ) | [private] |
CORBA::TypeCode_ptr TAO_DynAnyFactory::strip_alias | ( | CORBA::TypeCode_ptr | tc | ) | [static] |
Same as above, but returns type code instead of TCKind. Caller must release the return value.
Definition at line 98 of file DynAnyFactory.cpp.
References TAO_Pseudo_Var_T< T >::_retn(), and CORBA::tk_alias.
Referenced by TAO_DynCommon::check_type_and_unalias(), TAO_DynStruct_i::current_member_kind(), TAO_DynStruct_i::current_member_name(), TAO_DynAny_i::equal(), TAO_DynEnum_i::get_as_string(), TAO_DynStruct_i::get_members(), TAO_DynStruct_i::get_members_as_dyn_any(), TAO_DynCommon::get_string(), TAO_DynUnion_i::init(), TAO_DynStruct_i::init(), TAO_DynCommon::insert_string(), TAO_DynEnum_i::set_as_string(), TAO_DynEnum_i::set_as_ulong(), TAO_DynUnion_i::set_discriminator(), TAO_DynSequence_i::set_elements(), TAO_DynSequence_i::set_elements_as_dyn_any(), TAO_DynUnion_i::set_from_any(), TAO_DynStruct_i::set_from_any(), TAO_DynSequence_i::set_length(), TAO_DynStruct_i::set_members(), TAO_DynStruct_i::set_members_as_dyn_any(), TAO_DynUnion_i::set_to_default_member(), and TAO_DynUnion_i::set_to_no_active_member().
00099 { 00100 CORBA::TypeCode_var retval = CORBA::TypeCode::_duplicate (tc); 00101 CORBA::TCKind tck = retval->kind (); 00102 00103 while (tck == CORBA::tk_alias) 00104 { 00105 retval = retval->content_type (); 00106 00107 tck = retval->kind (); 00108 } 00109 00110 return retval._retn (); 00111 }
CORBA::TCKind TAO_DynAnyFactory::unalias | ( | CORBA::TypeCode_ptr | tc | ) | [static] |
Obtain the kind of object, after all aliasing has been removed.
Definition at line 82 of file DynAnyFactory.cpp.
References TAO_Pseudo_Var_T< T >::in(), and CORBA::tk_alias.
Referenced by TAO_DynCommon::check_component(), TAO_DynStruct_i::check_typecode(), TAO_DynAny_i::check_typecode(), TAO_DynStruct_i::current_member_kind(), TAO_DynUnion_i::discriminator_kind(), TAO_DynAny_i::equal(), TAO_DynStruct_i::from_any(), TAO_DynEnum_i::from_any(), TAO_DynCommon::get_abstract(), TAO_DynCommon::get_val(), TAO_DynUnion_i::init(), TAO_DynSequence_i::init(), TAO_DynEnum_i::init(), TAO_DynArray_i::init(), TAO_DynCommon::insert_abstract(), TAO_DynCommon::insert_reference(), TAO_DynCommon::insert_val(), TAO_DynUnion_i::label_match(), TAO::MakeDynAnyUtils::make_dyn_any_t(), TAO_DynUnion_i::member_kind(), TAO_DynUnion_i::set_discriminator(), TAO_DynCommon::set_flag(), TAO_DynStruct_i::set_from_any(), TAO_DynAny_i::set_to_default_value(), TAO_DynUnion_i::set_to_no_active_member(), and TAO_DynStruct_i::to_any().
00083 { 00084 CORBA::TCKind tck = tc->kind (); 00085 00086 while (tck == CORBA::tk_alias) 00087 { 00088 CORBA::TypeCode_var temp = tc->content_type (); 00089 00090 tck = TAO_DynAnyFactory::unalias (temp.in ()); 00091 } 00092 00093 return tck; 00094 }