6 #ifndef OPENDDS_DCPS_XTYPES_DYNAMIC_DATA_XCDR_READ_IMPL_H 7 #define OPENDDS_DCPS_XTYPES_DYNAMIC_DATA_XCDR_READ_IMPL_H 9 #ifndef OPENDDS_SAFETY_PROFILE 31 DDS::DynamicType_ptr type,
55 DDS::DynamicData_ptr clone();
194 DDS::DynamicData_ptr)
335 DDS::DynamicType_ptr type();
337 bool check_xcdr1_mutable(DDS::DynamicType_ptr dt);
341 #ifndef OPENDDS_NO_CONTENT_SUBSCRIPTION_PROFILE 351 , dup_(dd_.chain_->duplicate())
353 dd_.setup_stream(dup_.get());
358 dd_.release_chains();
379 template<
typename ValueType>
380 bool read_value(ValueType& value,
TypeKind tk);
383 bool exclude_struct_member(
MemberId id, DDS::MemberDescriptor_var& md)
const;
386 bool exclude_union_member(
MemberId id)
const;
399 template<TypeKind MemberTypeKind,
typename MemberType>
404 template<TypeKind MemberTypeKind,
typename MemberType>
409 template<TypeKind ElementTypeKind,
typename ElementType>
410 bool get_value_from_collection(ElementType& value,
MemberId id,
TypeKind collection_tk,
418 template<TypeKind ValueTypeKind,
typename ValueType>
425 template<TypeKind CharKind, TypeKind StringKind,
typename ToCharT,
typename CharT>
428 template<
typename UIntType, TypeKind UIntTypeKind>
435 bool get_from_struct_common_checks(
const DDS::MemberDescriptor_var& md,
MemberId id,
436 TypeKind kind,
bool is_sequence =
false);
445 bool skip_to_sequence_element(
MemberId id, DDS::DynamicType_ptr coll_type = 0);
446 bool skip_to_array_element(
MemberId id, DDS::DynamicType_ptr coll_type = 0);
451 bool skip_to_map_element(
MemberId id);
457 template<
typename SequenceType>
458 bool read_values(SequenceType& value,
TypeKind elem_tk);
465 template<TypeKind ElementTypeKind,
typename SequenceType>
469 template<TypeKind ElementTypeKind,
typename SequenceType>
470 bool get_values_from_union(SequenceType& value,
MemberId id,
473 template<TypeKind ElementTypeKind,
typename SequenceType>
474 bool get_values_from_sequence(SequenceType& value,
MemberId id,
477 template<TypeKind ElementTypeKind,
typename SequenceType>
478 bool get_values_from_array(SequenceType& value,
MemberId id,
481 template<TypeKind ElementTypeKind,
typename SequenceType>
482 bool get_values_from_map(SequenceType& value,
MemberId id,
487 template<TypeKind ElementTypeKind,
typename SequenceType>
493 bool skip(
const char* func_name,
const char* description,
size_t n,
int size = 1);
506 bool skip_member(DDS::DynamicType_ptr member_type);
510 bool skip_sequence_member(DDS::DynamicType_ptr type);
511 bool skip_array_member(DDS::DynamicType_ptr type);
512 bool skip_map_member(DDS::DynamicType_ptr type);
517 bool skip_collection_member(DDS::DynamicType_ptr coll_type);
520 bool skip_aggregated_member(DDS::DynamicType_ptr type);
522 void release_chains();
524 bool get_primitive_size(DDS::DynamicType_ptr dt,
ACE_CDR::ULong& size)
const;
526 bool has_optional_member(
bool& has_optional)
const;
530 bool check_xcdr1_mutable_i(DDS::DynamicType_ptr dt, DynamicTypeNameSet& dtns);
575 #endif // OPENDDS_SAFETY_PROFILE 577 #endif // OPENDDS_DCPS_XTYPES_DYNAMIC_DATA_XCDR_READ_IMPL_H
sequence< unsigned short > UInt16Seq
sequence< long > Int32Seq
DDS::ReturnCode_t set_wstring_values(DDS::MemberId, const DDS::WstringSeq &)
sequence< wchar > WcharSeq
const LogLevel::Value value
DDS::ReturnCode_t set_float128_value(DDS::MemberId, CORBA::LongDouble)
DynamicDataXcdrReadImpl & dd_
DDS::ReturnCode_t set_uint64_value(DDS::MemberId, CORBA::ULongLong)
DDS::ReturnCode_t set_float64_values(DDS::MemberId, const DDS::Float64Seq &)
sequence< long long > Int64Seq
DDS::ReturnCode_t set_int32_values(DDS::MemberId, const DDS::Int32Seq &)
ACE_CDR::LongLong LongLong
DDS::ReturnCode_t set_uint32_values(DDS::MemberId, const DDS::UInt32Seq &)
#define OpenDDS_Dcps_Export
DDS::ReturnCode_t set_boolean_value(DDS::MemberId, CORBA::Boolean)
DDS::ReturnCode_t set_uint16_value(DDS::MemberId, CORBA::UShort)
DDS::ReturnCode_t set_float128_values(DDS::MemberId, const DDS::Float128Seq &)
DDS::ReturnCode_t set_byte_values(DDS::MemberId, const DDS::ByteSeq &)
DDS::ReturnCode_t set_float64_value(DDS::MemberId, CORBA::Double)
DDS::ReturnCode_t set_byte_value(DDS::MemberId, CORBA::Octet)
DDS::ReturnCode_t set_char16_values(DDS::MemberId, const DDS::WcharSeq &)
DDS::ReturnCode_t set_int64_value(DDS::MemberId, CORBA::LongLong)
DCPS::Serializer::RdState align_state_
DDS::ReturnCode_t set_int32_value(DDS::MemberId, CORBA::Long)
DDS::ReturnCode_t set_int8_values(DDS::MemberId, const DDS::Int8Seq &)
DCPS::Sample::Extent extent_
DDS::ReturnCode_t set_char8_values(DDS::MemberId, const DDS::CharSeq &)
ACE_CDR::ULongLong ULongLong
sequence< short > Int16Seq
DDS::ReturnCode_t set_int16_values(DDS::MemberId, const DDS::Int16Seq &)
DDS::ReturnCode_t set_wstring_value(DDS::MemberId, const CORBA::WChar *)
DDS::ReturnCode_t set_int64_values(DDS::MemberId, const DDS::Int64Seq &)
ACE_Message_Block * chain_
DDS::ReturnCode_t set_uint8_values(DDS::MemberId, const DDS::UInt8Seq &)
sequence< unsigned long long > UInt64Seq
sequence< boolean > BooleanSeq
typedef OPENDDS_VECTOR(MemberPair) MatchedSet
Class to serialize and deserialize data for DDS.
DDS::ReturnCode_t set_char8_value(DDS::MemberId, CORBA::Char)
DDS::ReturnCode_t set_boolean_values(DDS::MemberId, const DDS::BooleanSeq &)
sequence< uint8 > UInt8Seq
DDS::ReturnCode_t set_float32_value(DDS::MemberId, CORBA::Float)
sequence< octet > ByteSeq
sequence< unsigned long > UInt32Seq
DDS::ReturnCode_t set_float32_values(DDS::MemberId, const DDS::Float32Seq &)
sequence< long double > Float128Seq
DDS::ReturnCode_t set_uint16_values(DDS::MemberId, const DDS::UInt16Seq &)
IntermediateChains chains_to_release
sequence< float > Float32Seq
DDS::ReturnCode_t set_int16_value(DDS::MemberId, CORBA::Short)
DDS::ReturnCode_t set_complex_value(DDS::MemberId, DDS::DynamicData_ptr)
typedef OPENDDS_SET(DynamicTypePtrPair) DynamicTypePtrPairSeen
DCPS::Message_Block_Ptr dup_
const IntermediateChains & get_intermediate_chains() const
DDS::ReturnCode_t set_uint32_value(DDS::MemberId, CORBA::ULong)
DDS::ReturnCode_t set_uint64_values(DDS::MemberId, const DDS::UInt64Seq &)
DDS::ReturnCode_t set_uint8_value(DDS::MemberId, CORBA::UInt8)
sequence< wstring > WstringSeq
DDS::ReturnCode_t copy(DDS::DynamicData_ptr dest, DDS::DynamicData_ptr src)
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
DDS::ReturnCode_t set_char16_value(DDS::MemberId, CORBA::WChar)
const ReturnCode_t RETCODE_UNSUPPORTED
ScopedChainManager(DynamicDataXcdrReadImpl &dd)
DDS::ReturnCode_t set_string_value(DDS::MemberId, const char *)
DDS::ReturnCode_t set_int8_value(DDS::MemberId, CORBA::Int8)
const DCPS::Encoding encoding(DCPS::Encoding::KIND_UNALIGNED_CDR, DCPS::ENDIAN_BIG)
sequence< double > Float64Seq
The Internal API and Implementation of OpenDDS.
ACE_CDR::ULong item_count_
Cache the number of items (i.e., members or elements) in the data it holds.
sequence< string > StringSeq
DDS::ReturnCode_t set_string_values(DDS::MemberId, const DDS::StringSeq &)
bool print_dynamic_data(DDS::DynamicData_ptr dd, DCPS::String &type_string, DCPS::String &indent)