OpenDDS
Snapshot(2023/04/28-20:55)
|
#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) |
DDS::ReturnCode_t | 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 > | |
DDS::ReturnCode_t | 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 > | |
DDS::ReturnCode_t | 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 > | |
DDS::ReturnCode_t | 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 |
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 |
![]() | |
static bool | has_explicit_keys (DDS::DynamicType *dt) |
static bool | exclude_member (DCPS::Sample::Extent ext, bool is_key, bool has_explicit_keys) |
static DCPS::Sample::Extent | nested (DCPS::Sample::Extent ext) |
![]() | |
static _ptr_type | _narrow (CORBA::Object_ptr obj) |
![]() | |
static LocalObject_ptr | _duplicate (LocalObject_ptr obj) |
static LocalObject_ptr | _nil (void) |
static LocalObject_ptr | _narrow (CORBA::Object_ptr obj) |
![]() | |
static CORBA::Boolean | marshal (const Object_ptr x, TAO_OutputCDR &cdr) |
static void | _tao_any_destructor (void *) |
static CORBA::Boolean | is_nil_i (CORBA::Object_ptr obj) |
static void | tao_object_initialize (Object *) |
static CORBA::Object_ptr | _duplicate (CORBA::Object_ptr obj) |
static CORBA::Object_ptr | _nil (void) |
static CORBA::Object_ptr | _narrow (CORBA::Object_ptr obj) |
![]() | |
readonly attribute DynamicType | type |
![]() | |
bool | is_type_supported (TypeKind tk, const char *func_name) |
Verify that a given type is primitive or string or wstring. More... | |
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 &member_desc, DDS::DynamicType_var &member_type, const char *method, const char *action, DDS::MemberId id, DDS::TypeKind tk=TK_NONE) |
DDS::ReturnCode_t | check_member (DDS::DynamicType_var &member_type, const char *method, const char *action, DDS::MemberId id, DDS::TypeKind tk=TK_NONE) |
DDS::ReturnCode_t | get_selected_union_branch (DDS::Int32 disc, bool &found_selected_member, DDS::MemberDescriptor_var &selected_md) const |
DDS::ReturnCode_t | get_selected_union_branch (bool &found_selected_member, DDS::MemberDescriptor_var &selected_md) |
bool | discriminator_selects_no_member (DDS::Int32 disc) const |
DDS::DynamicData * | interface_from_this () const |
DDS::ReturnCode_t | unsupported_method (const char *method_name, bool warning=false) const |
![]() | |
LocalObject (void) | |
![]() | |
Object (int dummy=0) | |
TAO::Object_Proxy_Broker * | proxy_broker () const |
![]() | |
RcObject () | |
![]() | |
static DDS::MemberId | get_union_default_member (DDS::DynamicType *type) |
![]() | |
DDS::DynamicType_var | type_ |
The actual (i.e., non-alias) DynamicType of the associated type. More... | |
DDS::TypeDescriptor_var | type_desc_ |
![]() | |
ACE_Atomic_Op< TAO_SYNCH_MUTEX, unsigned long > | refcount_ |
Definition at line 22 of file DynamicDataXcdrReadImpl.h.
OpenDDS::XTypes::DynamicDataXcdrReadImpl::DynamicDataXcdrReadImpl | ( | ) |
Definition at line 51 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 60 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 78 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 97 of file DynamicDataXcdrReadImpl.cpp.
References copy().
OpenDDS::XTypes::DynamicDataXcdrReadImpl::~DynamicDataXcdrReadImpl | ( | ) |
Definition at line 117 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 2118 of file DynamicDataXcdrReadImpl.cpp.
References check_xcdr1_mutable_i().
Referenced by OpenDDS::DCPS::RecorderImpl::get_dynamic_data().
|
private |
Definition at line 2830 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 626 of file DynamicDataXcdrReadImpl.cpp.
References DDS::RETCODE_UNSUPPORTED.
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::clear_nonkey_values | ( | ) |
Implements DDS::DynamicData.
Definition at line 631 of file DynamicDataXcdrReadImpl.cpp.
References DDS::RETCODE_UNSUPPORTED.
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::clear_value | ( | DDS::MemberId | id | ) |
Definition at line 636 of file DynamicDataXcdrReadImpl.cpp.
References DDS::RETCODE_UNSUPPORTED.
DDS::DynamicData_ptr OpenDDS::XTypes::DynamicDataXcdrReadImpl::clone | ( | void | ) |
Implements DDS::DynamicData.
Definition at line 654 of file DynamicDataXcdrReadImpl.cpp.
References chain_, DynamicDataXcdrReadImpl(), OpenDDS::DCPS::Serializer::encoding(), extent_, strm_, and OpenDDS::XTypes::DynamicDataBase::type_.
|
private |
Definition at line 122 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 701 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 856 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 1397 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 1408 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_NO_DATA, 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 1381 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 2080 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 1376 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 1297 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_NO_DATA, 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 1514 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_NO_DATA, 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 1291 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 1281 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 1286 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 2236 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 826 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 1261 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 2040 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 1237 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 2020 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::TK_ENUM, and value.
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_int64_value_impl | ( | CORBA::LongLong & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1271 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 1249 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 2030 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::TK_ENUM, and value.
|
inlineprivate |
Definition at line 533 of file DynamicDataXcdrReadImpl.h.
Referenced by skip_aggregated_member().
ACE_CDR::ULong OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_item_count | ( | ) |
Implements DDS::DynamicData.
Definition at line 374 of file DynamicDataXcdrReadImpl.cpp.
References ACE_DEBUG, ACE_TEXT(), DDS::APPENDABLE, OpenDDS::XTypes::DynamicTypeMembersByIdImpl::begin(), OpenDDS::XTypes::bound_total(), 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::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_, OpenDDS::XTypes::DynamicDataBase::type_desc_, 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 165 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 2794 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 1968 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_NO_DATA, 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 |
Reimplemented from OpenDDS::XTypes::DynamicDataBase.
Definition at line 2906 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_impl(), get_int8_value(), get_string_value(), get_uint16_value(), get_uint32_value(), get_uint64_value_impl(), 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 1168 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::XTypes::is_primitive(), OpenDDS::XTypes::DynamicDataBase::is_type_supported(), LM_ERROR, read_value(), DDS::RETCODE_ERROR, DDS::RETCODE_NO_DATA, 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 1495 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 1266 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 2045 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 1243 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 2025 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::TK_BITMASK, and value.
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_uint64_value_impl | ( | CORBA::ULongLong & | value, |
DDS::MemberId | id | ||
) |
Definition at line 1276 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 2055 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 1255 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 2035 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 769 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 1104 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 723 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, exclude_struct_member(), extent_, OpenDDS::XTypes::get_base_type(), get_from_struct_common_checks(), OpenDDS::DCPS::Sample::KeyOnly, LM_NOTICE, OpenDDS::DCPS::LogLevel::Notice, read_value(), DDS::RETCODE_ERROR, DDS::RETCODE_NO_DATA, 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 892 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_ERROR, DDS::RETCODE_NO_DATA, 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 1878 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 1923 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 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_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 1688 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_ERROR, DDS::RETCODE_NO_DATA, 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 1739 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 1504 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 2104 of file DynamicDataXcdrReadImpl.cpp.
References DDS::RETCODE_UNSUPPORTED, and value.
|
private |
Definition at line 140 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 109 of file DynamicDataXcdrReadImpl.cpp.
References copy().
|
private |
Definition at line 2577 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 660 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 1640 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 2569 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 647 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, LM_ERROR, and DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 169 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 313 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 161 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 305 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 153 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 297 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 145 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 289 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 193 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataXcdrReadImpl::set_descriptor | ( | MemberId | id, |
DDS::MemberDescriptor * | value | ||
) |
Definition at line 135 of file DynamicDataXcdrReadImpl.cpp.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 137 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 281 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 121 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 265 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 129 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 273 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 233 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 201 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 106 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 249 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 217 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 177 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 321 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 241 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 209 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 113 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 257 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 225 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 185 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
inline |
Definition at line 329 of file DynamicDataXcdrReadImpl.h.
References DDS::RETCODE_UNSUPPORTED.
|
private |
Setup the strm_ object so that it has the correct alignment state.
Definition at line 1159 of file DynamicDataXcdrReadImpl.cpp.
References align_state_, encoding_, OpenDDS::DCPS::Serializer::rdstate(), reset_align_state_, and strm_.
|
private |
Definition at line 2783 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 2549 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 2696 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 2462 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::bound_total(), 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 2516 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 2479 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 2317 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 2436 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(), and skip_member().
|
private |
Skip a member of a final or appendable struct at the given index.
Definition at line 2285 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 1012 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::bound_total(), 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 1062 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 968 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 2131 of file DynamicDataXcdrReadImpl.cpp.
References ACE_ERROR, ACE_TEXT(), DDS::APPENDABLE, OpenDDS::DCPS::DCPS_debug_level, encoding_, OpenDDS::XTypes::DynamicDataBase::exclude_member(), extent_, DDS::FINAL, OpenDDS::XTypes::DynamicDataBase::has_explicit_keys(), DDS::MemberDescriptor::index, LM_ERROR, LM_NOTICE, OpenDDS::DCPS::log_level, OpenDDS::DCPS::LogLevel::Notice, OpenDDS::DCPS::Serializer::read_delimiter(), OpenDDS::DCPS::Serializer::read_parameter_id(), DDS::RETCODE_ERROR, DDS::RETCODE_NO_DATA, DDS::RETCODE_OK, OpenDDS::DCPS::Serializer::rpos(), OpenDDS::DCPS::Serializer::skip(), skip_struct_member_at_index(), strm_, OpenDDS::XTypes::DynamicDataBase::type_, OpenDDS::DCPS::Encoding::xcdr_version(), and OpenDDS::DCPS::Encoding::XCDR_VERSION_2.
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 2113 of file DynamicDataXcdrReadImpl.cpp.
References OpenDDS::XTypes::DynamicDataBase::type_.
Referenced by get_value_from_union(), OpenDDS::XTypes::print_dynamic_data(), and OpenDDS::XTypes::print_members().
|
private |
The alignment state that a Serializer object associated with this DynamicData object will be set to.
Definition at line 548 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 537 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 558 of file DynamicDataXcdrReadImpl.h.
Referenced by release_chains(), and skip_aggregated_member().
|
private |
Definition at line 539 of file DynamicDataXcdrReadImpl.h.
Referenced by check_xcdr1_mutable_i(), copy(), DynamicDataXcdrReadImpl(), setup_stream(), skip_aggregated_member(), and skip_to_struct_member().
|
private |
Definition at line 540 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 563 of file DynamicDataXcdrReadImpl.h.
Referenced by copy(), get_item_count(), and get_member_id_at_index().
|
staticprivate |
Definition at line 560 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 544 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 552 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().