OpenDDS
Snapshot(2023/04/07-19:43)
|
#include <DynamicDataXcdrReadImpl.h>
Classes | |
class | ScopedChainManager |
Private Member Functions | |
void | copy (const DynamicDataXcdrReadImpl &other) |
bool | skip_all () |
void | setup_stream (ACE_Message_Block *chain) |
template<typename ValueType > | |
bool | read_value (ValueType &value, TypeKind tk) |
bool | exclude_struct_member (MemberId id, DDS::MemberDescriptor_var &md) const |
Check if a member with a given id is excluded from struct sample. More... | |
bool | exclude_union_member (MemberId id) const |
Check if a member with a given Id is excluded from a union sample. More... | |
template<TypeKind ValueTypeKind, typename ValueType > | |
DDS::ReturnCode_t | get_single_value (ValueType &value, MemberId id, TypeKind enum_or_bitmask=TK_NONE, LBound lower=0, LBound upper=0) |
template<TypeKind CharKind, TypeKind StringKind, typename ToCharT , typename CharT > | |
DDS::ReturnCode_t | get_char_common (CharT &value, MemberId id) |
Common method to read a single char8 or char16 value. More... | |
template<typename UIntType , TypeKind UIntTypeKind> | |
bool | get_boolean_from_bitmask (ACE_CDR::ULong index, ACE_CDR::Boolean &value) |
bool | skip_to_struct_member (DDS::MemberDescriptor *member_desc, MemberId id) |
bool | get_from_struct_common_checks (const DDS::MemberDescriptor_var &md, MemberId id, TypeKind kind, bool is_sequence=false) |
DDS::MemberDescriptor * | get_union_selected_member () |
Return the member descriptor for the selected member from a union data or null. More... | |
DDS::MemberDescriptor * | get_from_union_common_checks (MemberId id, const char *func_name) |
bool | skip_to_map_element (MemberId id) |
template<typename SequenceType > | |
bool | read_values (SequenceType &value, TypeKind elem_tk) |
template<TypeKind ElementTypeKind, typename SequenceType > | |
DDS::ReturnCode_t | get_sequence_values (SequenceType &value, MemberId id, TypeKind enum_or_bitmask=TK_NONE, LBound lower=0, LBound upper=0) |
Common method to read a value sequence of any type (primitive, string, wstring). More... | |
bool | skip (const char *func_name, const char *description, size_t n, int size=1) |
bool | read_discriminator (const DDS::DynamicType_ptr disc_type, DDS::ExtensibilityKind union_ek, ACE_CDR::Long &label) |
bool | skip_struct_member_at_index (ACE_CDR::ULong index, ACE_CDR::ULong &num_skipped) |
bool | skip_member (DDS::DynamicType_ptr member_type) |
bool | skip_collection_member (DDS::DynamicType_ptr coll_type) |
bool | skip_aggregated_member (DDS::DynamicType_ptr type) |
Skip a member which is a structure or a union. More... | |
void | release_chains () |
bool | get_primitive_size (DDS::DynamicType_ptr dt, ACE_CDR::ULong &size) const |
bool | has_optional_member (bool &has_optional) const |
typedef | OPENDDS_SET (DCPS::String) DynamicTypeNameSet |
A set of strings used to prevent infinite recursion when checking for XCDR1 Mutable. More... | |
bool | check_xcdr1_mutable_i (DDS::DynamicType_ptr dt, DynamicTypeNameSet &dtns) |
typedef | OPENDDS_VECTOR (ACE_Message_Block *) IntermediateChains |
const IntermediateChains & | get_intermediate_chains () const |
template<TypeKind MemberTypeKind, typename MemberType > | |
bool | get_value_from_struct (MemberType &value, MemberId id, TypeKind enum_or_bitmask=TK_NONE, LBound lower=0, LBound upper=0) |
template<TypeKind MemberTypeKind, typename MemberType > | |
bool | get_value_from_union (MemberType &value, MemberId id, TypeKind enum_or_bitmask=TK_NONE, LBound lower=0, LBound upper=0) |
template<TypeKind ElementTypeKind, typename ElementType > | |
bool | get_value_from_collection (ElementType &value, MemberId id, TypeKind collection_tk, TypeKind enum_or_bitmask=TK_NONE, LBound lower=0, LBound upper=0) |
bool | skip_to_sequence_element (MemberId id, DDS::DynamicType_ptr coll_type=0) |
bool | skip_to_array_element (MemberId id, DDS::DynamicType_ptr coll_type=0) |
template<TypeKind ElementTypeKind, typename SequenceType > | |
bool | get_values_from_struct (SequenceType &value, MemberId id, TypeKind enum_or_bitmask, LBound lower, LBound upper) |
template<TypeKind ElementTypeKind, typename SequenceType > | |
bool | get_values_from_union (SequenceType &value, MemberId id, TypeKind enum_or_bitmask, LBound lower, LBound upper) |
template<TypeKind ElementTypeKind, typename SequenceType > | |
bool | get_values_from_sequence (SequenceType &value, MemberId id, TypeKind enum_or_bitmask, LBound lower, LBound upper) |
template<TypeKind ElementTypeKind, typename SequenceType > | |
bool | get_values_from_array (SequenceType &value, MemberId id, TypeKind enum_or_bitmask, LBound lower, LBound upper) |
template<TypeKind ElementTypeKind, typename SequenceType > | |
bool | get_values_from_map (SequenceType &value, MemberId id, TypeKind enum_or_bitmask, LBound lower, LBound upper) |
bool | skip_sequence_member (DDS::DynamicType_ptr type) |
bool | skip_array_member (DDS::DynamicType_ptr type) |
bool | skip_map_member (DDS::DynamicType_ptr type) |
Private Attributes | |
ACE_Message_Block * | chain_ |
DCPS::Encoding | encoding_ |
DCPS::Sample::Extent | extent_ |
bool | reset_align_state_ |
DCPS::Serializer::RdState | align_state_ |
DCPS::Serializer | strm_ |
IntermediateChains | chains_to_release |
ACE_CDR::ULong | item_count_ |
Cache the number of items (i.e., members or elements) in the data it holds. More... | |
Static Private Attributes | |
static const ACE_CDR::ULong | ITEM_COUNT_INVALID = ACE_UINT32_MAX |
Definition at line 22 of file DynamicDataXcdrReadImpl.h.
OpenDDS::XTypes::DynamicDataXcdrReadImpl::DynamicDataXcdrReadImpl | ( | ) |
Definition at line 50 of file DynamicDataXcdrReadImpl.cpp.
Referenced by clone(), and get_complex_value().
OpenDDS::XTypes::DynamicDataXcdrReadImpl::DynamicDataXcdrReadImpl | ( | ACE_Message_Block * | chain, |
const DCPS::Encoding & | encoding, | ||
DDS::DynamicType_ptr | type, | ||
DCPS::Sample::Extent | ext = DCPS::Sample::Full |
||
) |
This creates a duplicated ACE_Message_Block chain from the provided chain. The duplicated chain is released when the object is destroyed. Caller is responsible for the release of the input message block chain.
Definition at line 59 of file DynamicDataXcdrReadImpl.cpp.
References encoding_, OpenDDS::DCPS::Encoding::xcdr_version(), OpenDDS::DCPS::Encoding::XCDR_VERSION_1, and OpenDDS::DCPS::Encoding::XCDR_VERSION_2.
OpenDDS::XTypes::DynamicDataXcdrReadImpl::DynamicDataXcdrReadImpl | ( | DCPS::Serializer & | ser, |
DDS::DynamicType_ptr | type, | ||
DCPS::Sample::Extent | ext = DCPS::Sample::Full |
||
) |
Use this when you want to pass the alignment state of a given Serializer object over. A typical use case would be when a part of the data has already been consumed from ser and you want to give the remaining to DynamicData.
Definition at line 77 of file DynamicDataXcdrReadImpl.cpp.
References align_state_, encoding_, OpenDDS::DCPS::Serializer::rdstate(), strm_, OpenDDS::DCPS::Encoding::xcdr_version(), OpenDDS::DCPS::Encoding::XCDR_VERSION_1, and OpenDDS::DCPS::Encoding::XCDR_VERSION_2.
OpenDDS::XTypes::DynamicDataXcdrReadImpl::DynamicDataXcdrReadImpl | ( | const DynamicDataXcdrReadImpl & | other | ) |
Definition at line 96 of file DynamicDataXcdrReadImpl.cpp.
References copy().
OpenDDS::XTypes::DynamicDataXcdrReadImpl::~DynamicDataXcdrReadImpl | ( | ) |
Definition at line 116 of file DynamicDataXcdrReadImpl.cpp.
References chain_, and ACE_Message_Block::release().
bool OpenDDS::XTypes::DynamicDataXcdrReadImpl::check_xcdr1_mutable | ( | DDS::DynamicType_ptr | dt | ) |
Definition at line 2059 of file DynamicDataXcdrReadImpl.cpp.
References check_xcdr1_mutable_i().
Referenced by OpenDDS::DCPS::RecorderImpl::get_dynamic_data().
|
private |
Definition at line 2805 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, encoding_, TAO::String_var< charT >::in(), OpenDDS::DCPS::Encoding::kind(), OpenDDS::DCPS::Encoding::KIND_XCDR1, LM_NOTICE, DDS::MUTABLE, OpenDDS::DCPS::LogLevel::Notice, DDS::RETCODE_OK, and value.
Referenced by check_xcdr1_mutable().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::clear_all_values | ( | ) |
Implements DDS::DynamicData.
Definition at line 631 of file DynamicDataXcdrReadImpl.cpp.
References DDS::RETCODE_UNSUPPORTED.
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::clear_nonkey_values | ( | ) |
Implements DDS::DynamicData.
Definition at line 636 of file DynamicDataXcdrReadImpl.cpp.
References DDS::RETCODE_UNSUPPORTED.
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::clear_value | ( | DDS::MemberId | id | ) |
Definition at line 641 of file DynamicDataXcdrReadImpl.cpp.
References DDS::RETCODE_UNSUPPORTED.
DDS::DynamicData_ptr OpenDDS::XTypes::DynamicDataXcdrReadImpl::clone | ( | void | ) |
Implements DDS::DynamicData.
Definition at line 659 of file DynamicDataXcdrReadImpl.cpp.
References chain_, DynamicDataXcdrReadImpl(), OpenDDS::DCPS::Serializer::encoding(), extent_, strm_, and OpenDDS::XTypes::DynamicDataBase::type_.
|
private |
Definition at line 121 of file DynamicDataXcdrReadImpl.cpp.
References align_state_, chain_, ACE_Message_Block::duplicate(), encoding_, extent_, item_count_, ACE_Message_Block::release(), reset_align_state_, strm_, and OpenDDS::XTypes::DynamicDataBase::type_.
Referenced by DynamicDataXcdrReadImpl(), and operator=().
CORBA::Boolean OpenDDS::XTypes::DynamicDataXcdrReadImpl::equals | ( | DDS::DynamicData_ptr | other | ) |
|
private |
Check if a member with a given id is excluded from struct sample.
Definition at line 706 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, OpenDDS::XTypes::DynamicDataBase::exclude_member(), extent_, OpenDDS::XTypes::DynamicDataBase::has_explicit_keys(), LM_NOTICE, OpenDDS::DCPS::LogLevel::Notice, DDS::RETCODE_OK, and OpenDDS::XTypes::DynamicDataBase::type_.
Referenced by get_complex_value(), get_value_from_struct(), and get_values_from_struct().
|
private |
Check if a member with a given Id is excluded from a union sample.
Definition at line 848 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, OpenDDS::XTypes::DISCRIMINATOR_ID, extent_, OpenDDS::DCPS::Sample::Full, OpenDDS::DCPS::Sample::KeyOnly, LM_NOTICE, OpenDDS::DCPS::LogLevel::Notice, DDS::RETCODE_OK, and OpenDDS::XTypes::DynamicDataBase::type_.
Referenced by get_complex_value(), get_value_from_union(), and get_values_from_union().
|
private |
Definition at line 1368 of file DynamicDataXcdrReadImpl.cpp.
References read_value().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_boolean_value | ( | CORBA::Boolean & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1379 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, extent_, OpenDDS::XTypes::DynamicDataBase::get_index_from_id(), LM_ERROR, read_value(), DDS::RETCODE_ERROR, DDS::RETCODE_OK, strm_, OpenDDS::XTypes::TK_ARRAY, OpenDDS::XTypes::TK_BITMASK, OpenDDS::XTypes::TK_BOOLEAN, OpenDDS::XTypes::TK_MAP, OpenDDS::XTypes::TK_SEQUENCE, OpenDDS::XTypes::TK_STRUCTURE, OpenDDS::XTypes::TK_UINT8, OpenDDS::XTypes::TK_UNION, OpenDDS::XTypes::DynamicDataBase::type_, OpenDDS::XTypes::typekind_to_string(), and value.
Referenced by get_simple_value().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_boolean_values | ( | DDS::BooleanSeq & | value, |
DDS::MemberId | id | ||
) |
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_byte_value | ( | CORBA::Octet & | value, |
DDS::MemberId | id | ||
) |
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_byte_values | ( | DDS::ByteSeq & | value, |
DDS::MemberId | id | ||
) |
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_char16_value | ( | CORBA::WChar & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1352 of file DynamicDataXcdrReadImpl.cpp.
References DDS::RETCODE_UNSUPPORTED, and value.
Referenced by get_simple_value().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_char16_values | ( | DDS::WcharSeq & | value, |
DDS::MemberId | id | ||
) |
Definition at line 2021 of file DynamicDataXcdrReadImpl.cpp.
References DDS::RETCODE_UNSUPPORTED, and value.
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_char8_value | ( | CORBA::Char & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1347 of file DynamicDataXcdrReadImpl.cpp.
References value.
Referenced by get_simple_value().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_char8_values | ( | DDS::CharSeq & | value, |
DDS::MemberId | id | ||
) |
|
private |
Common method to read a single char8 or char16 value.
Definition at line 1276 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, extent_, OpenDDS::XTypes::DynamicDataBase::get_index_from_id(), LM_ERROR, DDS::RETCODE_ERROR, DDS::RETCODE_OK, ACE_OS::strlen(), strm_, OpenDDS::XTypes::TK_ARRAY, OpenDDS::XTypes::TK_MAP, OpenDDS::XTypes::TK_SEQUENCE, OpenDDS::XTypes::TK_STRUCTURE, OpenDDS::XTypes::TK_UNION, OpenDDS::XTypes::DynamicDataBase::type_, and OpenDDS::XTypes::typekind_to_string().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_complex_value | ( | DDS::DynamicData_ptr & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1477 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, ACE_TEXT(), DDS::APPENDABLE, OpenDDS::DCPS::DCPS_debug_level, OpenDDS::XTypes::DISCRIMINATOR_ID, DynamicDataXcdrReadImpl(), exclude_struct_member(), exclude_union_member(), extent_, OpenDDS::XTypes::get_base_type(), get_from_union_common_checks(), OpenDDS::DCPS::Sample::KeyOnly, LM_ERROR, LM_NOTICE, DDS::MUTABLE, OpenDDS::XTypes::DynamicDataBase::nested(), OpenDDS::DCPS::LogLevel::Notice, OpenDDS::DCPS::Serializer::read_parameter_id(), CORBA::release(), DDS::RETCODE_ERROR, DDS::RETCODE_OK, OpenDDS::DCPS::Serializer::skip_delimiter(), skip_to_array_element(), skip_to_map_element(), skip_to_sequence_element(), skip_to_struct_member(), strm_, OpenDDS::XTypes::TK_ARRAY, OpenDDS::XTypes::TK_MAP, OpenDDS::XTypes::TK_SEQUENCE, OpenDDS::XTypes::TK_STRUCTURE, OpenDDS::XTypes::TK_UNION, OpenDDS::XTypes::DynamicDataBase::type_, and OpenDDS::XTypes::typekind_to_string().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_float128_value | ( | CORBA::LongDouble & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1270 of file DynamicDataXcdrReadImpl.cpp.
References value.
Referenced by get_simple_value().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_float128_values | ( | DDS::Float128Seq & | value, |
DDS::MemberId | id | ||
) |
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_float32_value | ( | CORBA::Float & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1260 of file DynamicDataXcdrReadImpl.cpp.
References value.
Referenced by get_simple_value().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_float32_values | ( | DDS::Float32Seq & | value, |
DDS::MemberId | id | ||
) |
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_float64_value | ( | CORBA::Double & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1265 of file DynamicDataXcdrReadImpl.cpp.
References value.
Referenced by get_simple_value().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_float64_values | ( | DDS::Float64Seq & | value, |
DDS::MemberId | id | ||
) |
|
private |
Definition at line 2205 of file DynamicDataXcdrReadImpl.cpp.
References ACE_DEBUG, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::XTypes::get_base_type(), LM_DEBUG, DDS::RETCODE_OK, OpenDDS::XTypes::TK_SEQUENCE, and OpenDDS::XTypes::typekind_to_string().
Referenced by get_value_from_struct(), and get_values_from_struct().
|
private |
Definition at line 818 of file DynamicDataXcdrReadImpl.cpp.
References ACE_DEBUG, ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, get_union_selected_member(), LM_DEBUG, LM_ERROR, and OpenDDS::XTypes::MEMBER_ID_INVALID.
Referenced by get_complex_value(), get_value_from_union(), and get_values_from_union().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_int16_value | ( | CORBA::Short & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1240 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::TK_ENUM, and value.
Referenced by get_simple_value().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_int16_values | ( | DDS::Int16Seq & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1981 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::TK_ENUM, and value.
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_int32_value | ( | CORBA::Long & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1216 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::TK_ENUM, and value.
Referenced by get_simple_value().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_int32_values | ( | DDS::Int32Seq & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1961 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::TK_ENUM, and value.
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_int64_value | ( | CORBA::LongLong & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1250 of file DynamicDataXcdrReadImpl.cpp.
References value.
Referenced by get_simple_value().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_int64_values | ( | DDS::Int64Seq & | value, |
DDS::MemberId | id | ||
) |
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_int8_value | ( | CORBA::Int8 & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1228 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::TK_ENUM.
Referenced by get_simple_value().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_int8_values | ( | DDS::Int8Seq & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1971 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::TK_ENUM, and value.
|
inlineprivate |
Definition at line 537 of file DynamicDataXcdrReadImpl.h.
Referenced by skip_aggregated_member().
ACE_CDR::ULong OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_item_count | ( | ) |
Implements DDS::DynamicData.
Definition at line 373 of file DynamicDataXcdrReadImpl.cpp.
References ACE_DEBUG, ACE_TEXT(), DDS::APPENDABLE, OpenDDS::XTypes::DynamicTypeMembersByIdImpl::begin(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::XTypes::DISCRIMINATOR_ID, OpenDDS::XTypes::DynamicTypeMembersByIdImpl::end(), extent_, DDS::FINAL, OpenDDS::DCPS::Sample::Full, OpenDDS::XTypes::get_base_type(), OpenDDS::XTypes::DynamicDataBase::has_explicit_keys(), has_optional_member(), OpenDDS::XTypes::DynamicDataBase::is_primitive(), item_count_, ITEM_COUNT_INVALID, OpenDDS::DCPS::Sample::KeyOnly, OpenDDS::XTypes::Sequence< T >::length(), LM_DEBUG, DDS::MUTABLE, OpenDDS::DCPS::Serializer::read_delimiter(), read_discriminator(), OpenDDS::DCPS::Serializer::read_parameter_id(), DDS::RETCODE_OK, OpenDDS::DCPS::Serializer::rpos(), OpenDDS::DCPS::Serializer::skip(), OpenDDS::DCPS::Serializer::skip_delimiter(), skip_member(), skip_sequence_member(), skip_struct_member_at_index(), strm_, struct_has_explicit_keys(), 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, OpenDDS::XTypes::DynamicDataBase::type_, and OpenDDS::XTypes::typekind_to_string().
Referenced by get_member_id_at_index().
DDS::MemberId OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_member_id_at_index | ( | ACE_CDR::ULong | index | ) |
Definition at line 164 of file DynamicDataXcdrReadImpl.cpp.
References ACE_DEBUG, ACE_ERROR, ACE_TEXT(), DDS::APPENDABLE, OpenDDS::DCPS::DCPS_debug_level, OpenDDS::XTypes::DISCRIMINATOR_ID, OpenDDS::XTypes::DynamicDataBase::exclude_member(), extent_, DDS::FINAL, OpenDDS::DCPS::Sample::Full, OpenDDS::XTypes::get_base_type(), get_item_count(), get_union_selected_member(), OpenDDS::XTypes::DynamicDataBase::has_explicit_keys(), has_optional_member(), item_count_, ITEM_COUNT_INVALID, OpenDDS::DCPS::Sample::KeyOnly, LM_DEBUG, LM_NOTICE, OpenDDS::XTypes::MEMBER_ID_INVALID, DDS::MUTABLE, OpenDDS::DCPS::LogLevel::Notice, OpenDDS::DCPS::Serializer::read_parameter_id(), DDS::RETCODE_OK, OpenDDS::DCPS::Serializer::skip(), OpenDDS::DCPS::Serializer::skip_delimiter(), skip_sequence_member(), skip_struct_member_at_index(), strm_, struct_has_explicit_keys(), 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, OpenDDS::XTypes::DynamicDataBase::type_, and OpenDDS::XTypes::typekind_to_string().
|
private |
Definition at line 2769 of file DynamicDataXcdrReadImpl.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 skip_array_member(), skip_map_member(), skip_sequence_member(), skip_to_array_element(), skip_to_map_element(), and skip_to_sequence_element().
|
private |
Common method to read a value sequence of any type (primitive, string, wstring).
Definition at line 1916 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::XTypes::DynamicDataBase::is_type_supported(), LM_ERROR, DDS::RETCODE_ERROR, DDS::RETCODE_OK, OpenDDS::XTypes::TK_ARRAY, OpenDDS::XTypes::TK_MAP, OpenDDS::XTypes::TK_SEQUENCE, OpenDDS::XTypes::TK_STRUCTURE, OpenDDS::XTypes::TK_UNION, OpenDDS::XTypes::DynamicDataBase::type_, OpenDDS::XTypes::typekind_to_string(), and value.
|
virtual |
Implements OpenDDS::XTypes::DynamicDataBase.
Definition at line 2881 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::get_base_type(), get_boolean_value(), get_byte_value(), get_char16_value(), get_char8_value(), get_float128_value(), get_float32_value(), get_float64_value(), get_int16_value(), get_int32_value(), get_int64_value(), get_int8_value(), get_string_value(), get_uint16_value(), get_uint32_value(), get_uint64_value(), get_uint8_value(), get_wstring_value(), OpenDDS::XTypes::print_member(), DDS::RETCODE_ERROR, DDS::RETCODE_OK, DDS::RETCODE_UNSUPPORTED, 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_STRING16, OpenDDS::XTypes::TK_STRING8, OpenDDS::XTypes::TK_UINT16, OpenDDS::XTypes::TK_UINT32, OpenDDS::XTypes::TK_UINT64, OpenDDS::XTypes::TK_UINT8, and OpenDDS::XTypes::DynamicDataBase::type_.
|
private |
Read a single value of type primitive (except char8, char16, and boolean), string, or wstring.
Definition at line 1161 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::XTypes::DynamicDataBase::is_primitive(), OpenDDS::XTypes::DynamicDataBase::is_type_supported(), LM_ERROR, read_value(), DDS::RETCODE_ERROR, DDS::RETCODE_OK, OpenDDS::XTypes::TK_ARRAY, OpenDDS::XTypes::TK_MAP, OpenDDS::XTypes::TK_SEQUENCE, OpenDDS::XTypes::TK_STRUCTURE, OpenDDS::XTypes::TK_UNION, OpenDDS::XTypes::DynamicDataBase::type_, OpenDDS::XTypes::typekind_to_string(), and value.
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_string_value | ( | char *& | value, |
DDS::MemberId | id | ||
) |
Definition at line 1458 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::DynamicDataBase::enum_string_helper(), DDS::RETCODE_OK, CORBA::string_free(), and value.
Referenced by get_simple_value().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_string_values | ( | DDS::StringSeq & | value, |
DDS::MemberId | id | ||
) |
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_uint16_value | ( | CORBA::UShort & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1245 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::TK_BITMASK, and value.
Referenced by get_simple_value().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_uint16_values | ( | DDS::UInt16Seq & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1986 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::TK_BITMASK, and value.
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_uint32_value | ( | CORBA::ULong & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1222 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::TK_BITMASK, and value.
Referenced by get_simple_value().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_uint32_values | ( | DDS::UInt32Seq & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1966 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::TK_BITMASK, and value.
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_uint64_value | ( | CORBA::ULongLong & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1255 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::TK_BITMASK, and value.
Referenced by get_simple_value().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_uint64_values | ( | DDS::UInt64Seq & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1996 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::TK_BITMASK, and value.
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_uint8_value | ( | CORBA::UInt8 & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1234 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::TK_BITMASK.
Referenced by get_simple_value().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_uint8_values | ( | DDS::UInt8Seq & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1976 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::TK_BITMASK, and value.
|
private |
Return the member descriptor for the selected member from a union data or null.
Definition at line 761 of file DynamicDataXcdrReadImpl.cpp.
References DDS::APPENDABLE, OpenDDS::XTypes::DynamicTypeMembersByIdImpl::begin(), OpenDDS::XTypes::DynamicTypeMembersByIdImpl::end(), OpenDDS::XTypes::get_base_type(), OpenDDS::XTypes::Sequence< T >::length(), DDS::MUTABLE, read_discriminator(), DDS::RETCODE_OK, OpenDDS::DCPS::Serializer::skip_delimiter(), strm_, and OpenDDS::XTypes::DynamicDataBase::type_.
Referenced by get_from_union_common_checks(), and get_member_id_at_index().
|
private |
Reading a value of type primitive, string, or wstring as a member of a struct, union, or a collection (sequence, array, map). TK_ENUM should be passed to enum_or_bitmask if is a 8-bit, 16-bit, or 32-bit signed integer type. In that case, and should be set to form the bit_bound range of the enum type that matches the number of bits of value. For instance, if we are reading a 8-bit integer, then is TK_ENUM, lower is 1 and upper is 8. This allows reading an enum with a particular bit bound as an integer with the matching size. Similarly, if we are reading an unsigned integer, set enum_or_bitmask to TK_BITMASK, and lower and upper to form a corresponding range for the bitmask's bit bound.
Definition at line 1097 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::XTypes::get_base_type(), LM_ERROR, read_value(), DDS::RETCODE_OK, skip_to_array_element(), skip_to_map_element(), skip_to_sequence_element(), OpenDDS::XTypes::TK_ARRAY, OpenDDS::XTypes::TK_MAP, OpenDDS::XTypes::TK_SEQUENCE, OpenDDS::XTypes::DynamicDataBase::type_, and OpenDDS::XTypes::typekind_to_string().
|
private |
Reading a value of type primitive, string, or wstring as a member of a struct, union, or a collection (sequence, array, map). TK_ENUM should be passed to enum_or_bitmask if is a 8-bit, 16-bit, or 32-bit signed integer type. In that case, and should be set to form the bit_bound range of the enum type that matches the number of bits of value. For instance, if we are reading a 8-bit integer, then is TK_ENUM, lower is 1 and upper is 8. This allows reading an enum with a particular bit bound as an integer with the matching size. Similarly, if we are reading an unsigned integer, set enum_or_bitmask to TK_BITMASK, and lower and upper to form a corresponding range for the bitmask's bit bound.
Definition at line 728 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, exclude_struct_member(), extent_, OpenDDS::XTypes::get_base_type(), OpenDDS::XTypes::DynamicDataBase::get_descriptor(), get_from_struct_common_checks(), OpenDDS::DCPS::Sample::KeyOnly, LM_NOTICE, OpenDDS::DCPS::LogLevel::Notice, read_value(), DDS::RETCODE_OK, and skip_to_struct_member().
|
private |
Reading a value of type primitive, string, or wstring as a member of a struct, union, or a collection (sequence, array, map). TK_ENUM should be passed to enum_or_bitmask if is a 8-bit, 16-bit, or 32-bit signed integer type. In that case, and should be set to form the bit_bound range of the enum type that matches the number of bits of value. For instance, if we are reading a 8-bit integer, then is TK_ENUM, lower is 1 and upper is 8. This allows reading an enum with a particular bit bound as an integer with the matching size. Similarly, if we are reading an unsigned integer, set enum_or_bitmask to TK_BITMASK, and lower and upper to form a corresponding range for the bitmask's bit bound.
Definition at line 884 of file DynamicDataXcdrReadImpl.cpp.
References ACE_DEBUG, ACE_ERROR, ACE_TEXT(), DDS::APPENDABLE, OpenDDS::DCPS::DCPS_debug_level, OpenDDS::XTypes::DISCRIMINATOR_ID, exclude_union_member(), OpenDDS::XTypes::get_base_type(), get_from_union_common_checks(), LM_DEBUG, LM_ERROR, LM_NOTICE, DDS::MUTABLE, OpenDDS::DCPS::LogLevel::Notice, OpenDDS::DCPS::Serializer::read_parameter_id(), read_value(), DDS::RETCODE_OK, OpenDDS::DCPS::Serializer::skip_delimiter(), strm_, type(), OpenDDS::XTypes::DynamicDataBase::type_, and OpenDDS::XTypes::typekind_to_string().
|
private |
Templates for reading a sequence of primitives, strings or wstrings as a member (or an element) of a given containing type. See get_value_from_struct and the similar methods for the use of enum_or_bitmask, lower, upper.
Definition at line 1826 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::XTypes::get_base_type(), LM_ERROR, read_values(), DDS::RETCODE_OK, skip_to_array_element(), OpenDDS::XTypes::TK_SEQUENCE, OpenDDS::XTypes::DynamicDataBase::type_, and OpenDDS::XTypes::typekind_to_string().
|
private |
Templates for reading a sequence of primitives, strings or wstrings as a member (or an element) of a given containing type. See get_value_from_struct and the similar methods for the use of enum_or_bitmask, lower, upper.
Definition at line 1871 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::XTypes::get_base_type(), LM_ERROR, read_values(), DDS::RETCODE_OK, skip_to_map_element(), OpenDDS::XTypes::TK_SEQUENCE, OpenDDS::XTypes::DynamicDataBase::type_, and OpenDDS::XTypes::typekind_to_string().
|
private |
Templates for reading a sequence of primitives, strings or wstrings as a member (or an element) of a given containing type. See get_value_from_struct and the similar methods for the use of enum_or_bitmask, lower, upper.
Definition at line 1774 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::XTypes::get_base_type(), LM_ERROR, read_values(), DDS::RETCODE_OK, skip_to_sequence_element(), OpenDDS::XTypes::TK_SEQUENCE, OpenDDS::XTypes::DynamicDataBase::type_, and OpenDDS::XTypes::typekind_to_string().
|
private |
Templates for reading a sequence of primitives, strings or wstrings as a member (or an element) of a given containing type. See get_value_from_struct and the similar methods for the use of enum_or_bitmask, lower, upper.
Definition at line 1649 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, exclude_struct_member(), extent_, OpenDDS::XTypes::get_base_type(), OpenDDS::XTypes::DynamicDataBase::get_descriptor(), get_from_struct_common_checks(), OpenDDS::DCPS::Sample::KeyOnly, LM_NOTICE, OpenDDS::DCPS::LogLevel::Notice, read_values(), DDS::RETCODE_OK, and skip_to_struct_member().
|
private |
Templates for reading a sequence of primitives, strings or wstrings as a member (or an element) of a given containing type. See get_value_from_struct and the similar methods for the use of enum_or_bitmask, lower, upper.
Definition at line 1687 of file DynamicDataXcdrReadImpl.cpp.
References ACE_DEBUG, ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::XTypes::DISCRIMINATOR_ID, exclude_union_member(), OpenDDS::XTypes::get_base_type(), get_from_union_common_checks(), LM_DEBUG, LM_ERROR, LM_NOTICE, DDS::MUTABLE, OpenDDS::DCPS::LogLevel::Notice, OpenDDS::DCPS::Serializer::read_parameter_id(), read_values(), DDS::RETCODE_OK, strm_, OpenDDS::XTypes::TK_SEQUENCE, OpenDDS::XTypes::DynamicDataBase::type_, and OpenDDS::XTypes::typekind_to_string().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_wstring_value | ( | CORBA::WChar *& | value, |
DDS::MemberId | id | ||
) |
Definition at line 1467 of file DynamicDataXcdrReadImpl.cpp.
References DDS::RETCODE_UNSUPPORTED, value, and CORBA::wstring_free().
Referenced by get_simple_value().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_wstring_values | ( | DDS::WstringSeq & | value, |
DDS::MemberId | id | ||
) |
Definition at line 2045 of file DynamicDataXcdrReadImpl.cpp.
References DDS::RETCODE_UNSUPPORTED, and value.
|
private |
Definition at line 139 of file DynamicDataXcdrReadImpl.cpp.
References DDS::RETCODE_OK, OpenDDS::XTypes::TK_STRUCTURE, and OpenDDS::XTypes::DynamicDataBase::type_.
Referenced by get_item_count(), and get_member_id_at_index().
DDS::DynamicData_ptr OpenDDS::XTypes::DynamicDataXcdrReadImpl::loan_value | ( | DDS::MemberId | id | ) |
|
private |
A set of strings used to prevent infinite recursion when checking for XCDR1 Mutable.
|
private |
DynamicDataXcdrReadImpl & OpenDDS::XTypes::DynamicDataXcdrReadImpl::operator= | ( | const DynamicDataXcdrReadImpl & | other | ) |
Definition at line 108 of file DynamicDataXcdrReadImpl.cpp.
References copy().
|
private |
Definition at line 2552 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, LM_ERROR, DDS::MUTABLE, OpenDDS::DCPS::Serializer::read_parameter_id(), DDS::RETCODE_OK, strm_, OpenDDS::XTypes::TK_BOOLEAN, OpenDDS::XTypes::TK_BYTE, OpenDDS::XTypes::TK_CHAR16, OpenDDS::XTypes::TK_CHAR8, OpenDDS::XTypes::TK_ENUM, 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, OpenDDS::XTypes::TK_UINT8, OpenDDS::XTypes::typekind_to_string(), and value.
Referenced by get_item_count(), get_union_selected_member(), and skip_all().
|
private |
Reading a single value as a given type. For instance, an enum with bit bound of 32 is read as an 32-bit integer and thus TK_INT32 should be passed to tk.
Definition at line 665 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, LM_NOTICE, OpenDDS::DCPS::log_level, OpenDDS::DCPS::LogLevel::Notice, strm_, 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_STRING16, OpenDDS::XTypes::TK_STRING8, OpenDDS::XTypes::TK_UINT16, OpenDDS::XTypes::TK_UINT32, OpenDDS::XTypes::TK_UINT64, OpenDDS::XTypes::TK_UINT8, and OpenDDS::XTypes::typekind_to_string().
Referenced by get_boolean_from_bitmask(), get_boolean_value(), get_single_value(), get_value_from_collection(), get_value_from_struct(), and get_value_from_union().
|
private |
Read a sequence with element type elem_tk and store the result in value, which is a sequence of primitives or strings or wstrings. Sequence of enums or bitmasks are read as a sequence of signed and unsigned integers, respectively. In that case, elem_tk is set to TK_ENUM or TK_BITMASK.
Definition at line 1601 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, LM_NOTICE, OpenDDS::DCPS::log_level, OpenDDS::DCPS::LogLevel::Notice, OpenDDS::DCPS::Serializer::skip_delimiter(), strm_, 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_STRING16, OpenDDS::XTypes::TK_STRING8, OpenDDS::XTypes::TK_UINT16, OpenDDS::XTypes::TK_UINT32, OpenDDS::XTypes::TK_UINT64, OpenDDS::XTypes::TK_UINT8, OpenDDS::XTypes::typekind_to_string(), and value.
Referenced by get_values_from_array(), get_values_from_map(), get_values_from_sequence(), get_values_from_struct(), and get_values_from_union().
|
private |
Definition at line 2544 of file DynamicDataXcdrReadImpl.cpp.
References chains_to_release, and ACE_Message_Block::release().
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::return_loaned_value | ( | DDS::DynamicData_ptr | value | ) |
Definition at line 652 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, LM_ERROR, and DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 171 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 315 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 163 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 307 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 155 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 299 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 147 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 291 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 195 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::set_descriptor | ( | MemberId | id, |
DDS::MemberDescriptor * | value | ||
) |
Definition at line 134 of file DynamicDataXcdrReadImpl.cpp.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 139 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 283 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 123 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 267 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 131 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 275 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 91 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 235 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 59 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 203 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 107 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 251 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 75 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 219 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 179 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 323 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 99 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 243 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 67 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 211 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 115 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 259 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 83 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 227 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 187 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 331 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
private |
Setup the strm_ object so that it has the correct alignment state.
Definition at line 1152 of file DynamicDataXcdrReadImpl.cpp.
References align_state_, encoding_, OpenDDS::DCPS::Serializer::rdstate(), reset_align_state_, and strm_.
|
private |
Definition at line 2758 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, LM_ERROR, OpenDDS::DCPS::Serializer::skip(), and strm_.
Referenced by skip_all(), skip_array_member(), skip_collection_member(), skip_map_member(), skip_member(), and skip_sequence_member().
|
private |
Skip a member which is a structure or a union.
Definition at line 2524 of file DynamicDataXcdrReadImpl.cpp.
References chains_to_release, OpenDDS::DCPS::Serializer::current(), ACE_Message_Block::duplicate(), encoding_, get_intermediate_chains(), OpenDDS::DCPS::Serializer::rdstate(), skip_all(), and strm_.
Referenced by skip_member().
|
private |
Skip the whole data corresponding to this type if it is a struct or union. This is called by a containing type when it wants to skip a member which is an object of this type.
Definition at line 2671 of file DynamicDataXcdrReadImpl.cpp.
References ACE_DEBUG, ACE_ERROR, ACE_TEXT(), DDS::APPENDABLE, OpenDDS::XTypes::DynamicTypeMembersByIdImpl::begin(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::DCPS::Serializer::encoding(), OpenDDS::XTypes::DynamicTypeMembersByIdImpl::end(), OpenDDS::XTypes::extensibility(), OpenDDS::XTypes::get_base_type(), OpenDDS::DCPS::Encoding::kind(), OpenDDS::DCPS::Encoding::KIND_XCDR2, OpenDDS::XTypes::Sequence< T >::length(), LM_DEBUG, LM_ERROR, DDS::MUTABLE, OpenDDS::DCPS::Serializer::read_delimiter(), read_discriminator(), DDS::RETCODE_OK, skip(), skip_member(), skip_struct_member_at_index(), strm_, OpenDDS::XTypes::TK_STRUCTURE, OpenDDS::XTypes::TK_UNION, and OpenDDS::XTypes::DynamicDataBase::type_.
Referenced by skip_aggregated_member(), skip_to_array_element(), and skip_to_sequence_element().
|
private |
Skip a member which is a sequence, array, or map.
Definition at line 2431 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::get_base_type(), get_primitive_size(), DDS::RETCODE_OK, skip(), and skip_collection_member().
Referenced by skip_member().
|
private |
Skip a non-primitive collection member. That is, a sequence or an array of non-primitive elements, or a map with at least either key type or value type is non-primitive.
Definition at line 2491 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::DCPS::Serializer::encoding(), OpenDDS::DCPS::Encoding::kind(), OpenDDS::DCPS::Encoding::KIND_XCDR2, LM_ERROR, LM_NOTICE, OpenDDS::DCPS::LogLevel::Notice, OpenDDS::DCPS::Serializer::read_delimiter(), skip(), skip_to_array_element(), skip_to_sequence_element(), strm_, OpenDDS::XTypes::TK_ARRAY, OpenDDS::XTypes::TK_MAP, OpenDDS::XTypes::TK_SEQUENCE, and OpenDDS::XTypes::typekind_to_string().
Referenced by skip_array_member(), skip_map_member(), and skip_sequence_member().
|
private |
Skip a member which is a sequence, array, or map.
Definition at line 2454 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::XTypes::get_base_type(), get_primitive_size(), LM_ERROR, DDS::RETCODE_OK, skip(), skip_collection_member(), and strm_.
Referenced by skip_member().
|
private |
Skip a member with the given type. The member can be a part of any containing type, such as a member in a struct or union, an element in a sequence or array, etc. Note that this assumes any header preceding this type, e.g. EMHEADER if this is a member of a mutable struct, is already consumed, and the read pointer is pointing to the actual data of the member.
Definition at line 2286 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::XTypes::get_base_type(), LM_ERROR, DDS::RETCODE_OK, skip(), skip_aggregated_member(), skip_array_member(), skip_map_member(), skip_sequence_member(), strm_, 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, and OpenDDS::XTypes::typekind_to_string().
Referenced by get_item_count(), skip_all(), skip_struct_member_at_index(), skip_to_array_element(), skip_to_map_element(), and skip_to_sequence_element().
|
private |
Skip a member which is a sequence, array, or map.
Definition at line 2405 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::XTypes::get_base_type(), get_primitive_size(), LM_ERROR, DDS::RETCODE_OK, skip(), skip_collection_member(), and strm_.
Referenced by get_item_count(), get_member_id_at_index(), skip_member(), and skip_to_struct_member().
|
private |
Skip a member of a final or appendable struct at the given index.
Definition at line 2254 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::DCPS::Serializer::encoding(), OpenDDS::DCPS::Encoding::kind(), OpenDDS::DCPS::Encoding::KIND_XCDR2, LM_ERROR, DDS::RETCODE_OK, skip_member(), strm_, and OpenDDS::XTypes::DynamicDataBase::type_.
Referenced by get_item_count(), get_member_id_at_index(), skip_all(), and skip_to_struct_member().
|
private |
Skip to an element with a given ID in a sequence or array, or skip the entire collection.
Definition at line 1002 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::get_base_type(), OpenDDS::XTypes::DynamicDataBase::get_index_from_id(), get_primitive_size(), DDS::RETCODE_OK, OpenDDS::DCPS::Serializer::skip(), skip_all(), OpenDDS::DCPS::Serializer::skip_delimiter(), skip_member(), strm_, and OpenDDS::XTypes::DynamicDataBase::type_.
Referenced by get_complex_value(), get_value_from_collection(), get_values_from_array(), and skip_collection_member().
|
private |
Skip to an element with a given ID in a map. The key associated with that element is also skipped.
Definition at line 1055 of file DynamicDataXcdrReadImpl.cpp.
References ACE_UINT32_MAX, OpenDDS::XTypes::get_base_type(), OpenDDS::XTypes::DynamicDataBase::get_index_from_id(), get_primitive_size(), OpenDDS::DCPS::Serializer::read_delimiter(), DDS::RETCODE_OK, OpenDDS::DCPS::Serializer::rpos(), OpenDDS::DCPS::Serializer::skip(), skip_member(), strm_, and OpenDDS::XTypes::DynamicDataBase::type_.
Referenced by get_complex_value(), get_value_from_collection(), and get_values_from_map().
|
private |
Skip to an element with a given ID in a sequence or array, or skip the entire collection.
Definition at line 958 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::get_base_type(), OpenDDS::XTypes::DynamicDataBase::get_index_from_id(), get_primitive_size(), DDS::RETCODE_OK, OpenDDS::DCPS::Serializer::skip(), skip_all(), OpenDDS::DCPS::Serializer::skip_delimiter(), skip_member(), strm_, and OpenDDS::XTypes::DynamicDataBase::type_.
Referenced by get_complex_value(), get_value_from_collection(), get_values_from_sequence(), and skip_collection_member().
|
private |
Skip to a member with a given ID in a struct.
Definition at line 2072 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, ACE_TEXT(), DDS::APPENDABLE, OpenDDS::DCPS::DCPS_debug_level, OpenDDS::XTypes::DynamicDataBase::exclude_member(), extent_, DDS::FINAL, OpenDDS::XTypes::get_base_type(), OpenDDS::XTypes::DynamicDataBase::has_explicit_keys(), DDS::MemberDescriptor::index, LM_ERROR, LM_NOTICE, OpenDDS::DCPS::LogLevel::Notice, OpenDDS::DCPS::Serializer::read_delimiter(), OpenDDS::DCPS::Serializer::read_parameter_id(), DDS::RETCODE_OK, OpenDDS::DCPS::Serializer::rpos(), OpenDDS::DCPS::Serializer::skip(), OpenDDS::DCPS::Serializer::skip_delimiter(), skip_sequence_member(), skip_struct_member_at_index(), strm_, OpenDDS::XTypes::TK_SEQUENCE, and OpenDDS::XTypes::DynamicDataBase::type_.
Referenced by get_complex_value(), get_value_from_struct(), and get_values_from_struct().
DDS::DynamicType_ptr OpenDDS::XTypes::DynamicDataXcdrReadImpl::type | ( | void | ) |
Definition at line 2054 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::DynamicDataBase::type_.
Referenced by get_value_from_union(), OpenDDS::XTypes::print_dynamic_data(), OpenDDS::XTypes::print_struct(), and OpenDDS::XTypes::print_union().
|
private |
The alignment state that a Serializer object associated with this DynamicData object will be set to.
Definition at line 552 of file DynamicDataXcdrReadImpl.h.
Referenced by copy(), DynamicDataXcdrReadImpl(), and setup_stream().
|
private |
A duplicate of the original message block chain passed from the constructor. This is released in the destructor.
Definition at line 541 of file DynamicDataXcdrReadImpl.h.
Referenced by clone(), copy(), and ~DynamicDataXcdrReadImpl().
|
private |
Message block chains created during each get_*_value or get_*_values method's execution that need to be released when the method ends. Those chains are created when the method skips a nested aggregated type (i.e., struct and union) by calling skip_aggregated_member().
Definition at line 562 of file DynamicDataXcdrReadImpl.h.
Referenced by release_chains(), and skip_aggregated_member().
|
private |
Definition at line 543 of file DynamicDataXcdrReadImpl.h.
Referenced by check_xcdr1_mutable_i(), copy(), DynamicDataXcdrReadImpl(), setup_stream(), and skip_aggregated_member().
|
private |
Definition at line 544 of file DynamicDataXcdrReadImpl.h.
Referenced by clone(), copy(), exclude_struct_member(), exclude_union_member(), get_boolean_value(), get_char_common(), get_complex_value(), get_item_count(), get_member_id_at_index(), get_value_from_struct(), get_values_from_struct(), and skip_to_struct_member().
|
private |
Cache the number of items (i.e., members or elements) in the data it holds.
Definition at line 567 of file DynamicDataXcdrReadImpl.h.
Referenced by copy(), get_item_count(), and get_member_id_at_index().
|
staticprivate |
Definition at line 564 of file DynamicDataXcdrReadImpl.h.
Referenced by get_item_count(), and get_member_id_at_index().
|
private |
Indicate whether the alignment state of a Serializer object associated with this DynamicData needs to be reset.
Definition at line 548 of file DynamicDataXcdrReadImpl.h.
Referenced by copy(), and setup_stream().
|
private |
Each public interface creates a new Serializer object with a message block chain that is a duplicate from chain_.
Definition at line 556 of file DynamicDataXcdrReadImpl.h.
Referenced by clone(), copy(), DynamicDataXcdrReadImpl(), get_boolean_value(), get_char_common(), get_complex_value(), get_item_count(), get_member_id_at_index(), get_union_selected_member(), get_value_from_union(), get_values_from_union(), read_discriminator(), read_value(), read_values(), setup_stream(), skip(), skip_aggregated_member(), skip_all(), skip_collection_member(), skip_map_member(), skip_member(), skip_sequence_member(), skip_struct_member_at_index(), skip_to_array_element(), skip_to_map_element(), skip_to_sequence_element(), and skip_to_struct_member().