OpenDDS
Snapshot(2023/04/07-19:43)
|
#include <DynamicDataBase.h>
Protected Member Functions | |
bool | is_type_supported (TypeKind tk, const char *func_name) |
bool | is_primitive (TypeKind tk) const |
bool | is_basic (TypeKind tk) const |
bool | is_complex (TypeKind tk) const |
bool | get_index_from_id (DDS::MemberId id, ACE_CDR::ULong &index, ACE_CDR::ULong bound) const |
bool | enum_string_helper (char *&strInOut, MemberId id) |
DDS::ReturnCode_t | check_member (DDS::MemberDescriptor_var &md, DDS::DynamicType_var &type, const char *method, const char *what, DDS::MemberId id, DDS::TypeKind tk) |
DDS::DynamicData * | interface_from_this () const |
![]() | |
LocalObject (void) | |
![]() | |
Object (int dummy=0) | |
TAO::Object_Proxy_Broker * | proxy_broker () const |
![]() | |
RcObject () | |
Static Protected Member Functions | |
static CORBA::ULong | bound_total (DDS::TypeDescriptor_var descriptor) |
static DDS::MemberId | get_union_default_member (DDS::DynamicType *type) |
static bool | discriminator_selects_no_member (DDS::DynamicType *type, ACE_CDR::Long disc) |
Protected Attributes | |
DDS::DynamicType_var | type_ |
The actual (i.e., non-alias) DynamicType of the associated type. More... | |
![]() | |
ACE_Atomic_Op< TAO_SYNCH_MUTEX, unsigned long > | refcount_ |
Additional Inherited Members | |
![]() | |
typedef DDS::DynamicData ::_ptr_type | _ptr_type |
typedef DDS::DynamicData ::_var_type | _var_type |
![]() | |
typedef LocalObject_ptr | _ptr_type |
typedef LocalObject_var | _var_type |
typedef LocalObject_out | _out_type |
![]() | |
typedef Object_ptr | _ptr_type |
typedef Object_var | _var_type |
typedef Object_out | _out_type |
![]() | |
readonly attribute DynamicType | type |
Definition at line 26 of file DynamicDataBase.h.
OpenDDS::XTypes::DynamicDataBase::DynamicDataBase | ( | ) |
Definition at line 17 of file DynamicDataBase.cpp.
OpenDDS::XTypes::DynamicDataBase::DynamicDataBase | ( | DDS::DynamicType_ptr | type | ) |
Definition at line 19 of file DynamicDataBase.cpp.
|
staticprotected |
Definition at line 251 of file DynamicDataBase.cpp.
Referenced by OpenDDS::XTypes::DynamicDataImpl::clear_value(), OpenDDS::XTypes::DynamicDataImpl::get_complex_from_collection(), OpenDDS::XTypes::DynamicDataImpl::get_item_count(), OpenDDS::XTypes::DynamicDataImpl::get_member_id_at_index(), OpenDDS::XTypes::DynamicDataImpl::get_value_from_collection(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_array(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialized_size_array(), and OpenDDS::XTypes::DynamicDataImpl::set_values_to_array().
|
protected |
Definition at line 202 of file DynamicDataBase.cpp.
References ACE_ERROR, OpenDDS::XTypes::bitmask_bound(), OpenDDS::XTypes::enum_bound(), OpenDDS::XTypes::get_base_type(), get_descriptor(), TAO::String_var< charT >::in(), is_basic(), LM_NOTICE, OpenDDS::DCPS::log_level, OpenDDS::DCPS::LogLevel::Notice, DDS::RETCODE_BAD_PARAMETER, DDS::RETCODE_OK, OpenDDS::XTypes::TK_BITMASK, OpenDDS::XTypes::TK_ENUM, type_, and OpenDDS::XTypes::typekind_to_string().
Referenced by OpenDDS::XTypes::DynamicDataImpl::get_value_from_struct(), OpenDDS::XTypes::DynamicDataImpl::get_value_from_union(), and OpenDDS::XTypes::DynamicDataImpl::set_value_to_struct().
|
staticprotected |
Definition at line 299 of file DynamicDataBase.cpp.
References OpenDDS::XTypes::DISCRIMINATOR_ID, DDS::DynamicType::get_member_by_index(), DDS::DynamicType::get_member_count(), OpenDDS::XTypes::Sequence< T >::length(), and DDS::RETCODE_OK.
Referenced by OpenDDS::XTypes::DynamicDataImpl::set_complex_to_union(), and OpenDDS::XTypes::DynamicDataImpl::set_value_to_union().
|
protected |
Definition at line 180 of file DynamicDataBase.cpp.
References OpenDDS::XTypes::get_enum_value(), OpenDDS::XTypes::get_enumerator_name(), OpenDDS::XTypes::get_member_type(), DDS::RETCODE_OK, CORBA::string_free(), OpenDDS::XTypes::TK_ENUM, and type_.
Referenced by OpenDDS::XTypes::DynamicDataImpl::get_string_value(), and OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_string_value().
|
inlinestatic |
Definition at line 68 of file DynamicDataBase.h.
References OpenDDS::XTypes::is_key(), OpenDDS::DCPS::Sample::KeyOnly, and OpenDDS::DCPS::Sample::NestedKeyOnly.
Referenced by OpenDDS::XTypes::DynamicDataXcdrReadImpl::exclude_struct_member(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_member_id_at_index(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_structure_xcdr2(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialized_size_structure_xcdr2(), and OpenDDS::XTypes::DynamicDataXcdrReadImpl::skip_to_struct_member().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataBase::get_descriptor | ( | DDS::MemberDescriptor *& | value, |
MemberId | id | ||
) |
Definition at line 30 of file DynamicDataBase.cpp.
References DDS::RETCODE_ERROR, DDS::RETCODE_OK, and type_.
Referenced by check_member(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_value_from_struct(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_values_from_struct(), OpenDDS::XTypes::print_struct(), and OpenDDS::XTypes::print_union().
|
protected |
Definition at line 154 of file DynamicDataBase.cpp.
References OpenDDS::XTypes::TK_ARRAY, OpenDDS::XTypes::TK_BITMASK, OpenDDS::XTypes::TK_MAP, OpenDDS::XTypes::TK_SEQUENCE, OpenDDS::XTypes::TK_STRING16, OpenDDS::XTypes::TK_STRING8, and type_.
Referenced by OpenDDS::XTypes::DynamicDataImpl::get_boolean_value(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_boolean_value(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_char_common(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::skip_to_array_element(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::skip_to_map_element(), and OpenDDS::XTypes::DynamicDataXcdrReadImpl::skip_to_sequence_element().
DDS::MemberId OpenDDS::XTypes::DynamicDataBase::get_member_id_by_name | ( | const char * | name | ) |
Definition at line 39 of file DynamicDataBase.cpp.
References ACE_ERROR, LM_NOTICE, OpenDDS::DCPS::log_level, OpenDDS::XTypes::MEMBER_ID_INVALID, OpenDDS::DCPS::LogLevel::Notice, DDS::RETCODE_OK, OpenDDS::XTypes::TK_ARRAY, OpenDDS::XTypes::TK_BITMASK, OpenDDS::XTypes::TK_BOOLEAN, OpenDDS::XTypes::TK_BYTE, OpenDDS::XTypes::TK_CHAR16, OpenDDS::XTypes::TK_CHAR8, OpenDDS::XTypes::TK_ENUM, OpenDDS::XTypes::TK_FLOAT128, OpenDDS::XTypes::TK_FLOAT32, OpenDDS::XTypes::TK_FLOAT64, OpenDDS::XTypes::TK_INT16, OpenDDS::XTypes::TK_INT32, OpenDDS::XTypes::TK_INT64, OpenDDS::XTypes::TK_INT8, OpenDDS::XTypes::TK_MAP, OpenDDS::XTypes::TK_SEQUENCE, OpenDDS::XTypes::TK_STRING16, OpenDDS::XTypes::TK_STRING8, OpenDDS::XTypes::TK_STRUCTURE, OpenDDS::XTypes::TK_UINT16, OpenDDS::XTypes::TK_UINT32, OpenDDS::XTypes::TK_UINT64, OpenDDS::XTypes::TK_UINT8, OpenDDS::XTypes::TK_UNION, type_, and OpenDDS::XTypes::typekind_to_string().
|
pure virtual |
|
staticprotected |
Definition at line 261 of file DynamicDataBase.cpp.
References OpenDDS::XTypes::DISCRIMINATOR_ID, DDS::DynamicType::get_member_by_index(), DDS::DynamicType::get_member_count(), OpenDDS::XTypes::Sequence< T >::length(), OpenDDS::XTypes::MEMBER_ID_INVALID, and DDS::RETCODE_OK.
|
static |
Definition at line 327 of file DynamicDataBase.cpp.
References DDS::DynamicType::get_descriptor(), DDS::DynamicType::get_member_by_index(), DDS::DynamicType::get_member_count(), OPENDDS_END_VERSIONED_NAMESPACE_DECL, and DDS::RETCODE_OK.
Referenced by OpenDDS::XTypes::DynamicDataXcdrReadImpl::exclude_struct_member(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_item_count(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_member_id_at_index(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_structure_xcdr2(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_union_xcdr2(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialized_size_structure_xcdr2(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialized_size_union_xcdr2(), and OpenDDS::XTypes::DynamicDataXcdrReadImpl::skip_to_struct_member().
|
protected |
Similar idea to std::shared_from_this(), provide a type compatible with parameter passing rules for IDL interfaces that are arguments to operations. Doesn't change the reference count.
Definition at line 23 of file DynamicDataBase.cpp.
Referenced by OpenDDS::XTypes::DynamicDataImpl::get_simple_value_enum().
|
protected |
Definition at line 134 of file DynamicDataBase.cpp.
References is_primitive(), OpenDDS::XTypes::TK_STRING16, and OpenDDS::XTypes::TK_STRING8.
Referenced by check_member(), and is_type_supported().
|
protected |
Definition at line 139 of file DynamicDataBase.cpp.
References OpenDDS::XTypes::TK_ARRAY, OpenDDS::XTypes::TK_BITSET, OpenDDS::XTypes::TK_MAP, OpenDDS::XTypes::TK_SEQUENCE, OpenDDS::XTypes::TK_STRUCTURE, and OpenDDS::XTypes::TK_UNION.
|
protected |
Definition at line 110 of file DynamicDataBase.cpp.
References OpenDDS::XTypes::TK_BOOLEAN, OpenDDS::XTypes::TK_BYTE, OpenDDS::XTypes::TK_CHAR16, OpenDDS::XTypes::TK_CHAR8, OpenDDS::XTypes::TK_FLOAT128, OpenDDS::XTypes::TK_FLOAT32, OpenDDS::XTypes::TK_FLOAT64, OpenDDS::XTypes::TK_INT16, OpenDDS::XTypes::TK_INT32, OpenDDS::XTypes::TK_INT64, OpenDDS::XTypes::TK_INT8, OpenDDS::XTypes::TK_UINT16, OpenDDS::XTypes::TK_UINT32, OpenDDS::XTypes::TK_UINT64, and OpenDDS::XTypes::TK_UINT8.
Referenced by OpenDDS::XTypes::DynamicDataImpl::clear_all_values(), OpenDDS::XTypes::DynamicDataImpl::clear_value(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_item_count(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_single_value(), OpenDDS::XTypes::DynamicDataImpl::get_value_from_self(), is_basic(), and OpenDDS::XTypes::DynamicDataImpl::set_single_value().
|
protected |
Verify that a given type is primitive or string or wstring.
Definition at line 97 of file DynamicDataBase.cpp.
References ACE_ERROR, is_basic(), LM_NOTICE, OpenDDS::DCPS::log_level, OpenDDS::DCPS::LogLevel::Notice, and OpenDDS::XTypes::typekind_to_string().
Referenced by OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_sequence_values(), OpenDDS::XTypes::DynamicDataImpl::get_single_value(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_single_value(), OpenDDS::XTypes::DynamicDataImpl::set_sequence_values(), and OpenDDS::XTypes::DynamicDataImpl::set_single_value().
|
inlinestatic |
Definition at line 75 of file DynamicDataBase.h.
References OpenDDS::DCPS::Sample::KeyOnly, OpenDDS::DCPS::Sample::NestedKeyOnly, and OPENDDS_END_VERSIONED_NAMESPACE_DECL.
Referenced by OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_complex_value(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_structure_xcdr2(), and OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialized_size_structure_xcdr2().
|
protected |
The actual (i.e., non-alias) DynamicType of the associated type.
Definition at line 65 of file DynamicDataBase.h.
Referenced by check_member(), OpenDDS::XTypes::DynamicDataImpl::check_seqmem_in_sequence_and_array(), OpenDDS::XTypes::DynamicDataImpl::check_seqmem_in_struct_and_union(), OpenDDS::XTypes::DynamicDataImpl::clear_all_values(), OpenDDS::XTypes::DynamicDataImpl::clear_value(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::clone(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::copy(), enum_string_helper(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::exclude_struct_member(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::exclude_union_member(), OpenDDS::XTypes::DynamicDataImpl::get_boolean_value(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_boolean_value(), OpenDDS::XTypes::DynamicDataImpl::get_char_common(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_char_common(), OpenDDS::XTypes::DynamicDataImpl::get_complex_from_aggregated(), OpenDDS::XTypes::DynamicDataImpl::get_complex_from_collection(), OpenDDS::XTypes::DynamicDataImpl::get_complex_from_union(), OpenDDS::XTypes::DynamicDataImpl::get_complex_value(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_complex_value(), get_descriptor(), get_index_from_id(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_item_count(), OpenDDS::XTypes::DynamicDataImpl::get_item_count(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::get_largest_complex_index(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::get_largest_sequence_index(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::get_largest_single_index(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_member_id_at_index(), OpenDDS::XTypes::DynamicDataImpl::get_member_id_at_index(), get_member_id_by_name(), OpenDDS::XTypes::DynamicDataImpl::get_sequence_size(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_sequence_values(), OpenDDS::XTypes::DynamicDataImpl::get_simple_value(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_simple_value(), OpenDDS::XTypes::DynamicDataImpl::get_simple_value_enum(), OpenDDS::XTypes::DynamicDataImpl::get_single_value(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_single_value(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_union_selected_member(), OpenDDS::XTypes::DynamicDataImpl::get_value_from_bitmask(), OpenDDS::XTypes::DynamicDataImpl::get_value_from_collection(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_value_from_collection(), OpenDDS::XTypes::DynamicDataImpl::get_value_from_enum(), OpenDDS::XTypes::DynamicDataImpl::get_value_from_self(), OpenDDS::XTypes::DynamicDataImpl::get_value_from_union(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_value_from_union(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_values_from_array(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_values_from_map(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_values_from_sequence(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_values_from_union(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::has_optional_member(), OpenDDS::XTypes::DynamicDataImpl::insert_discriminator(), OpenDDS::XTypes::DynamicDataImpl::insert_valid_discriminator(), OpenDDS::XTypes::DynamicDataImpl::is_default_member_selected(), OpenDDS::XTypes::DynamicDataImpl::read_discriminator(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::reconstruct_string_value(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::select_union_member(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_array(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_bitmask_value(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_enum_value(), OpenDDS::XTypes::DynamicDataImpl::serialize_i(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_selected_member_xcdr2(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_sequence(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_string_value(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_structure_xcdr2(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_union_xcdr2(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialized_size_array(), OpenDDS::XTypes::DynamicDataImpl::serialized_size_i(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialized_size_selected_member_xcdr2(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialized_size_sequence(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialized_size_structure_xcdr2(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialized_size_union_xcdr2(), OpenDDS::XTypes::DynamicDataImpl::set_boolean_value(), OpenDDS::XTypes::DynamicDataImpl::set_char_common(), OpenDDS::XTypes::DynamicDataImpl::set_complex_to_collection(), OpenDDS::XTypes::DynamicDataImpl::set_complex_to_struct(), OpenDDS::XTypes::DynamicDataImpl::set_complex_to_union(), OpenDDS::XTypes::DynamicDataImpl::set_complex_value(), OpenDDS::XTypes::DynamicDataImpl::set_sequence_values(), OpenDDS::XTypes::DynamicDataImpl::set_single_value(), OpenDDS::XTypes::DynamicDataImpl::set_string_value(), OpenDDS::XTypes::DynamicDataImpl::set_value_to_collection(), OpenDDS::XTypes::DynamicDataImpl::set_value_to_union(), OpenDDS::XTypes::DynamicDataImpl::set_values_to_array(), OpenDDS::XTypes::DynamicDataImpl::set_values_to_sequence(), OpenDDS::XTypes::DynamicDataImpl::set_values_to_union(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::skip_all(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::skip_struct_member_at_index(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::skip_to_array_element(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::skip_to_map_element(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::skip_to_sequence_element(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::skip_to_struct_member(), OpenDDS::XTypes::DynamicDataImpl::type(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::type(), and OpenDDS::XTypes::DynamicDataImpl::write_discriminator().