OpenDDS  Snapshot(2022/02/14-09:11)
Classes | Typedefs | Enumerations | Functions | Variables
OpenDDS::XTypes Namespace Reference

Classes

struct  AnnotationParameterValue
 
struct  AppliedAnnotation
 
struct  AppliedAnnotationParameter
 
struct  AppliedBuiltinMemberAnnotations
 
struct  AppliedBuiltinTypeAnnotations
 
struct  AppliedVerbatimAnnotation
 
struct  CommonAliasBody
 
struct  CommonAnnotationParameter
 
struct  CommonArrayHeader
 
struct  CommonBitfield
 
struct  CommonBitflag
 
struct  CommonBitmaskHeader
 
struct  CommonCollectionElement
 
struct  CommonCollectionHeader
 
struct  CommonDiscriminatorMember
 
struct  CommonEnumeratedHeader
 
struct  CommonEnumeratedLiteral
 
struct  CommonStructMember
 
struct  CommonUnionMember
 
struct  CompleteAliasBody
 
struct  CompleteAliasHeader
 
struct  CompleteAliasType
 
struct  CompleteAnnotationHeader
 
struct  CompleteAnnotationParameter
 
struct  CompleteAnnotationType
 
struct  CompleteArrayHeader
 
struct  CompleteArrayType
 
struct  CompleteBitfield
 
struct  CompleteBitflag
 
struct  CompleteBitmaskType
 
struct  CompleteBitsetHeader
 
struct  CompleteBitsetType
 
struct  CompleteCollectionElement
 
struct  CompleteCollectionHeader
 
struct  CompleteDiscriminatorMember
 
struct  CompleteElementDetail
 
struct  CompleteEnumeratedHeader
 
struct  CompleteEnumeratedLiteral
 
struct  CompleteEnumeratedType
 
struct  CompleteExtendedType
 
struct  CompleteMapType
 
struct  CompleteMemberDetail
 
struct  CompleteSequenceType
 
struct  CompleteStructHeader
 
struct  CompleteStructMember
 
struct  CompleteStructType
 
struct  CompleteTypeDetail
 
struct  CompleteTypeObject
 
struct  CompleteUnionHeader
 
struct  CompleteUnionMember
 
struct  CompleteUnionType
 
class  DynamicData
 
class  DynamicType
 
class  DynamicTypeMember
 
struct  EquivalenceHash_tag
 
struct  EquivalenceHashWrapper
 
struct  ExtendedAnnotationParameterValue
 
struct  ExtendedTypeDefn
 
class  External
 
class  Fake_TAO_Array_Forany_T
 
class  MemberDescriptor
 
struct  MinimalAliasBody
 
struct  MinimalAliasHeader
 
struct  MinimalAliasType
 
struct  MinimalAnnotationHeader
 
struct  MinimalAnnotationParameter
 
struct  MinimalAnnotationType
 
struct  MinimalArrayHeader
 
struct  MinimalArrayType
 
struct  MinimalBitfield
 
struct  MinimalBitflag
 
struct  MinimalBitmaskType
 
struct  MinimalBitsetHeader
 
struct  MinimalBitsetType
 
struct  MinimalCollectionElement
 
struct  MinimalCollectionHeader
 
struct  MinimalDiscriminatorMember
 
struct  MinimalEnumeratedHeader
 
struct  MinimalEnumeratedLiteral
 
struct  MinimalEnumeratedType
 
struct  MinimalExtendedType
 
struct  MinimalMapType
 
struct  MinimalMemberDetail
 
struct  MinimalSequenceType
 
struct  MinimalStructHeader
 
struct  MinimalStructMember
 
struct  MinimalStructType
 
struct  MinimalTypeDetail
 
struct  MinimalTypeObject
 
struct  MinimalUnionHeader
 
struct  MinimalUnionMember
 
struct  MinimalUnionType
 
struct  NameHash_tag
 
struct  OctetSeq32
 
struct  Optional
 
struct  PlainArrayLElemDefn
 
struct  PlainArraySElemDefn
 
struct  PlainCollectionHeader
 
struct  PlainMapLTypeDefn
 
struct  PlainMapSTypeDefn
 
struct  PlainSequenceLElemDefn
 
struct  PlainSequenceSElemDefn
 
struct  Sequence
 
struct  StringLTypeDefn
 
struct  StringSTypeDefn
 
struct  StronglyConnectedComponentId
 
class  TypeAssignability
 
struct  TypeConsistencyAttributes
 
class  TypeDescriptor
 
class  TypeIdentifier
 
struct  TypeIdentifierPair
 
struct  TypeIdentifierTypeObjectPair
 
struct  TypeIdentifierWithDependencies
 
struct  TypeIdentifierWithSize
 
struct  TypeInformation
 
struct  TypeLookup_Call
 
struct  TypeLookup_getTypeDependencies_In
 
struct  TypeLookup_getTypeDependencies_Out
 
struct  TypeLookup_getTypeDependencies_Result
 
struct  TypeLookup_getTypes_In
 
struct  TypeLookup_getTypes_Out
 
struct  TypeLookup_getTypes_Result
 
struct  TypeLookup_Reply
 
struct  TypeLookup_Request
 
struct  TypeLookup_Return
 
class  TypeLookupService
 
struct  TypeMapBuilder
 
struct  TypeObject
 
struct  TypeObjectHashId
 

Typedefs

typedef DCPS::RcHandle< DynamicTypeMemberDynamicTypeMember_rch
 
typedef std::pair< const DynamicType *, const DynamicType * > DynamicTypePtrPair
 
typedef DCPS::RcHandle< DynamicTypeDynamicType_rch
 
typedef std::pair< const MinimalStructMember *, const MinimalStructMember * > MemberPair
 
typedef DCPS::RcHandle< TypeLookupServiceTypeLookupService_rch
 
typedef ACE_CDR::Octet EquivalenceKind
 
typedef ACE_CDR::Octet TypeKind
 
typedef ACE_CDR::Octet TypeIdentifierKind
 
typedef OPENDDS_STRING MemberName
 
typedef OPENDDS_STRING QualifiedTypeName
 
typedef ACE_CDR::Octet PrimitiveTypeId
 
typedef ACE_CDR::Octet EquivalenceHash[14]
 
typedef ACE_CDR::Octet EquivalenceHash_slice
 
typedef Fake_TAO_Array_Forany_T< EquivalenceHash, EquivalenceHash_slice, EquivalenceHash_tagEquivalenceHash_forany
 
typedef ACE_CDR::Octet NameHash[4]
 
typedef ACE_CDR::Octet NameHash_slice
 
typedef Fake_TAO_Array_Forany_T< NameHash, NameHash_slice, NameHash_tagNameHash_forany
 
typedef ACE_CDR::ULong LBound
 
typedef Sequence< LBoundLBoundSeq
 
typedef ACE_CDR::Octet SBound
 
typedef Sequence< SBoundSBoundSeq
 
typedef ACE_CDR::UShort MemberFlag
 
typedef MemberFlag CollectionElementFlag
 
typedef MemberFlag StructMemberFlag
 
typedef MemberFlag UnionMemberFlag
 
typedef MemberFlag UnionDiscriminatorFlag
 
typedef MemberFlag EnumeratedLiteralFlag
 
typedef MemberFlag AnnotationParameterFlag
 
typedef MemberFlag AliasMemberFlag
 
typedef MemberFlag BitflagFlag
 
typedef MemberFlag BitsetMemberFlag
 
typedef ACE_CDR::UShort TypeFlag
 
typedef TypeFlag StructTypeFlag
 
typedef TypeFlag UnionTypeFlag
 
typedef TypeFlag CollectionTypeFlag
 
typedef TypeFlag AnnotationTypeFlag
 
typedef TypeFlag AliasTypeFlag
 
typedef TypeFlag EnumTypeFlag
 
typedef TypeFlag BitmaskTypeFlag
 
typedef TypeFlag BitsetTypeFlag
 
typedef Sequence< TypeIdentifierTypeIdentifierSeq
 
typedef ACE_CDR::ULong MemberId
 
typedef Sequence< AppliedAnnotationParameterAppliedAnnotationParameterSeq
 
typedef Sequence< AppliedAnnotationAppliedAnnotationSeq
 
typedef Sequence< CompleteStructMemberCompleteStructMemberSeq
 
typedef Sequence< MinimalStructMemberMinimalStructMemberSeq
 
typedef Sequence< ACE_CDR::LongUnionCaseLabelSeq
 
typedef Sequence< CompleteUnionMemberCompleteUnionMemberSeq
 
typedef Sequence< MinimalUnionMemberMinimalUnionMemberSeq
 
typedef Sequence< CompleteAnnotationParameterCompleteAnnotationParameterSeq
 
typedef Sequence< MinimalAnnotationParameterMinimalAnnotationParameterSeq
 
typedef ACE_CDR::UShort BitBound
 
typedef Sequence< CompleteEnumeratedLiteralCompleteEnumeratedLiteralSeq
 
typedef Sequence< MinimalEnumeratedLiteralMinimalEnumeratedLiteralSeq
 
typedef Sequence< CompleteBitflagCompleteBitflagSeq
 
typedef Sequence< MinimalBitflagMinimalBitflagSeq
 
typedef CompleteEnumeratedHeader CompleteBitmaskHeader
 
typedef MinimalEnumeratedHeader MinimalBitmaskHeader
 
typedef Sequence< CompleteBitfieldCompleteBitfieldSeq
 
typedef Sequence< MinimalBitfieldMinimalBitfieldSeq
 
typedef Sequence< TypeObjectTypeObjectSeq
 
typedef TypeObjectSeq StronglyConnectedComponent
 
typedef Sequence< TypeIdentifierTypeObjectPairTypeIdentifierTypeObjectPairSeq
 
typedef Sequence< TypeIdentifierPairTypeIdentifierPairSeq
 
typedef Sequence< TypeIdentifierWithSizeTypeIdentifierWithSizeSeq
 
typedef Sequence< TypeIdentifierWithDependenciesTypeIdentifierWithDependenciesSeq
 

Enumerations

enum  TryConstructKind { USE_DEFAULT, DISCARD, TRIM }
 
enum  ExtensibilityKind { FINAL, APPENDABLE, MUTABLE }
 

Functions

bool print_integral_value (DynamicData &dd, DCPS::String &type_string, DynamicType_rch dt)
 
bool print_dynamic_data (DynamicData &dd, DCPS::String &type_string, DCPS::String &indent)
 
bool operator== (const DynamicType &lhs, const DynamicType &rhs)
 
bool test_equality_i (const DynamicType_rch &lhs, const DynamicType_rch &rhs, DynamicTypePtrPairSeen &dt_ptr_pair)
 
bool test_equality_i (const DynamicTypeMembersByName &lhs, const DynamicTypeMembersByName &rhs, DynamicTypePtrPairSeen &dt_ptr_pair)
 
bool test_equality_i (const DynamicTypeMembersById &lhs, const DynamicTypeMembersById &rhs, DynamicTypePtrPairSeen &dt_ptr_pair)
 
bool test_equality_i (const MemberDescriptor &lhs, const MemberDescriptor &rhs, DynamicTypePtrPairSeen &dt_ptr_pair)
 
typedef OPENDDS_MAP (DCPS::String, DynamicTypeMember_rch) DynamicTypeMembersByName
 
typedef OPENDDS_MAP (MemberId, DynamicTypeMember_rch) DynamicTypeMembersById
 
typedef OPENDDS_VECTOR (DynamicTypeMember_rch) DynamicTypeMembersByIndex
 
typedef OPENDDS_SET (DynamicTypePtrPair) DynamicTypePtrPairSeen
 
bool operator== (const UnionCaseLabelSeq &lhs, const UnionCaseLabelSeq &rhs)
 
typedef OPENDDS_VECTOR (MemberPair) MatchedSet
 
bool test_equality_i (const TypeDescriptor &lhs, const TypeDescriptor &rhs, DynamicTypePtrPairSeen &dt_ptr_pair)
 
bool operator== (const LBoundSeq &lhs, const LBoundSeq &rhs)
 
const Encodingget_typeobject_encoding ()
 
DCPS::String equivalence_hash_to_string (const EquivalenceHash &equivalence_hash)
 
TypeIdentifier makeTypeIdentifier (const TypeObject &type_object, const DCPS::Encoding *encoding_option)
 
ACE_CDR::ULong hash_member_name_to_id (const OPENDDS_STRING &name)
 
void hash_member_name (NameHash &name_hash, const OPENDDS_STRING &name)
 
bool is_fully_descriptive (const TypeIdentifier &ti)
 
bool is_plain_collection (const TypeIdentifier &ti)
 
bool has_type_object (const TypeIdentifier &ti)
 
void compute_dependencies (const TypeMap &type_map, const TypeIdentifier &type_identifier, OPENDDS_SET(TypeIdentifier)&dependencies)
 
bool write_empty_xcdr2_nonfinal (DCPS::Serializer &strm)
 
bool read_empty_xcdr2_nonfinal (DCPS::Serializer &strm)
 
template<typename T >
void serialize_type_info (const TypeInformation &type_info, T &seq, const DCPS::Encoding *encoding_option=0)
 
template<typename T >
bool deserialize_type_info (TypeInformation &type_info, const T &seq)
 
typedef OPENDDS_MAP (TypeIdentifier, TypeObject) TypeMap
 

Variables

const ACE_CDR::ULong TypeLookup_getTypes_HashId = 0x018252d3
 
const ACE_CDR::ULong TypeLookup_getDependencies_HashId = 0x05aafb31
 
const EquivalenceKind EK_MINIMAL = 0xF1
 
const EquivalenceKind EK_COMPLETE = 0xF2
 
const EquivalenceKind EK_BOTH = 0xF3
 
const TypeKind TK_NONE = 0x00
 
const TypeKind TK_BOOLEAN = 0x01
 
const TypeKind TK_BYTE = 0x02
 
const TypeKind TK_INT16 = 0x03
 
const TypeKind TK_INT32 = 0x04
 
const TypeKind TK_INT64 = 0x05
 
const TypeKind TK_UINT16 = 0x06
 
const TypeKind TK_UINT32 = 0x07
 
const TypeKind TK_UINT64 = 0x08
 
const TypeKind TK_FLOAT32 = 0x09
 
const TypeKind TK_FLOAT64 = 0x0A
 
const TypeKind TK_FLOAT128 = 0x0B
 
const TypeKind TK_INT8 = 0x0C
 
const TypeKind TK_UINT8 = 0x0D
 
const TypeKind TK_CHAR8 = 0x10
 
const TypeKind TK_CHAR16 = 0x11
 
const TypeKind TK_STRING8 = 0x20
 
const TypeKind TK_STRING16 = 0x21
 
const TypeKind TK_ALIAS = 0x30
 
const TypeKind TK_ENUM = 0x40
 
const TypeKind TK_BITMASK = 0x41
 
const TypeKind TK_ANNOTATION = 0x50
 
const TypeKind TK_STRUCTURE = 0x51
 
const TypeKind TK_UNION = 0x52
 
const TypeKind TK_BITSET = 0x53
 
const TypeKind TK_SEQUENCE = 0x60
 
const TypeKind TK_ARRAY = 0x61
 
const TypeKind TK_MAP = 0x62
 
const TypeIdentifierKind TI_STRING8_SMALL = 0x70
 
const TypeIdentifierKind TI_STRING8_LARGE = 0x71
 
const TypeIdentifierKind TI_STRING16_SMALL = 0x72
 
const TypeIdentifierKind TI_STRING16_LARGE = 0x73
 
const TypeIdentifierKind TI_PLAIN_SEQUENCE_SMALL = 0x80
 
const TypeIdentifierKind TI_PLAIN_SEQUENCE_LARGE = 0x81
 
const TypeIdentifierKind TI_PLAIN_ARRAY_SMALL = 0x90
 
const TypeIdentifierKind TI_PLAIN_ARRAY_LARGE = 0x91
 
const TypeIdentifierKind TI_PLAIN_MAP_SMALL = 0xA0
 
const TypeIdentifierKind TI_PLAIN_MAP_LARGE = 0xA1
 
const TypeIdentifierKind TI_STRONGLY_CONNECTED_COMPONENT = 0xB0
 
const ACE_CDR::Long MEMBER_NAME_MAX_LENGTH = 256
 
const ACE_CDR::Long TYPE_NAME_MAX_LENGTH = 256
 
const LBound INVALID_LBOUND = 0
 
const SBound INVALID_SBOUND = 0
 
const MemberFlag TRY_CONSTRUCT1 = 1 << 0
 
const MemberFlag TRY_CONSTRUCT2 = 1 << 1
 
const MemberFlag IS_EXTERNAL = 1 << 2
 
const MemberFlag IS_OPTIONAL = 1 << 3
 
const MemberFlag IS_MUST_UNDERSTAND = 1 << 4
 
const MemberFlag IS_KEY = 1 << 5
 
const MemberFlag IS_DEFAULT = 1 << 6
 
const MemberFlag TryConstructDiscardValue = TRY_CONSTRUCT1
 
const MemberFlag TryConstructUseDefaultValue = TRY_CONSTRUCT2
 
const MemberFlag TryConstructTrimValue = TRY_CONSTRUCT1 | TRY_CONSTRUCT2
 
const MemberFlag MemberFlagMinimalMask = 0x003f
 
const TypeFlag IS_FINAL = 1 << 0
 
const TypeFlag IS_APPENDABLE = 1 << 1
 
const TypeFlag IS_MUTABLE = 1 << 2
 
const TypeFlag IS_NESTED = 1 << 3
 
const TypeFlag IS_AUTOID_HASH = 1 << 4
 
const TypeFlag TypeFlagMinimalMask = 0x0007
 
const ACE_CDR::ULong MEMBER_ID_INVALID = ACE_UINT32_MAX
 
const ACE_CDR::ULong DISCRIMINATOR_ID = MEMBER_ID_INVALID - 1
 Implementation specific sentinel for a union discriminator used in DynamicData. More...
 
const ACE_CDR::ULong ANNOTATION_STR_VALUE_MAX_LEN = 128
 
const ACE_CDR::ULong ANNOTATION_OCTETSEC_VALUE_MAX_LEN = 128
 

Typedef Documentation

◆ AliasMemberFlag

Definition at line 303 of file TypeObject.h.

◆ AliasTypeFlag

Definition at line 330 of file TypeObject.h.

◆ AnnotationParameterFlag

Definition at line 302 of file TypeObject.h.

◆ AnnotationTypeFlag

Definition at line 329 of file TypeObject.h.

◆ AppliedAnnotationParameterSeq

Definition at line 1034 of file TypeObject.h.

◆ AppliedAnnotationSeq

Definition at line 1054 of file TypeObject.h.

◆ BitBound

Definition at line 1801 of file TypeObject.h.

◆ BitflagFlag

Definition at line 304 of file TypeObject.h.

◆ BitmaskTypeFlag

Definition at line 332 of file TypeObject.h.

◆ BitsetMemberFlag

Definition at line 305 of file TypeObject.h.

◆ BitsetTypeFlag

Definition at line 333 of file TypeObject.h.

◆ CollectionElementFlag

Definition at line 297 of file TypeObject.h.

◆ CollectionTypeFlag

Definition at line 328 of file TypeObject.h.

◆ CompleteAnnotationParameterSeq

Definition at line 1466 of file TypeObject.h.

◆ CompleteBitfieldSeq

Definition at line 1989 of file TypeObject.h.

◆ CompleteBitflagSeq

Definition at line 1947 of file TypeObject.h.

◆ CompleteBitmaskHeader

Definition at line 1960 of file TypeObject.h.

◆ CompleteEnumeratedLiteralSeq

Definition at line 1839 of file TypeObject.h.

◆ CompleteStructMemberSeq

Definition at line 1163 of file TypeObject.h.

◆ CompleteUnionMemberSeq

Definition at line 1325 of file TypeObject.h.

◆ DynamicType_rch

Definition at line 21 of file MemberDescriptor.h.

◆ DynamicTypeMember_rch

Definition at line 14 of file MemberDescriptor.h.

◆ DynamicTypePtrPair

typedef std::pair< const DynamicType *, const DynamicType * > OpenDDS::XTypes::DynamicTypePtrPair

Definition at line 19 of file MemberDescriptor.h.

◆ EnumeratedLiteralFlag

Definition at line 301 of file TypeObject.h.

◆ EnumTypeFlag

Definition at line 331 of file TypeObject.h.

◆ EquivalenceHash

typedef ACE_CDR::Octet OpenDDS::XTypes::EquivalenceHash[14]

Definition at line 216 of file TypeObject.h.

◆ EquivalenceHash_forany

Definition at line 219 of file TypeObject.h.

◆ EquivalenceHash_slice

Definition at line 218 of file TypeObject.h.

◆ EquivalenceKind

Definition at line 133 of file TypeObject.h.

◆ LBound

Definition at line 231 of file TypeObject.h.

◆ LBoundSeq

Definition at line 232 of file TypeObject.h.

◆ MemberFlag

Definition at line 287 of file TypeObject.h.

◆ MemberId

Definition at line 829 of file TypeObject.h.

◆ MemberName

Definition at line 204 of file TypeObject.h.

◆ MemberPair

Definition at line 24 of file TypeAssignability.h.

◆ MinimalAnnotationParameterSeq

Definition at line 1474 of file TypeObject.h.

◆ MinimalBitfieldSeq

Definition at line 1996 of file TypeObject.h.

◆ MinimalBitflagSeq

Definition at line 1954 of file TypeObject.h.

◆ MinimalBitmaskHeader

Definition at line 1962 of file TypeObject.h.

◆ MinimalEnumeratedLiteralSeq

Definition at line 1860 of file TypeObject.h.

◆ MinimalStructMemberSeq

Definition at line 1184 of file TypeObject.h.

◆ MinimalUnionMemberSeq

Definition at line 1346 of file TypeObject.h.

◆ NameHash

typedef ACE_CDR::Octet OpenDDS::XTypes::NameHash[4]

Definition at line 225 of file TypeObject.h.

◆ NameHash_forany

Definition at line 228 of file TypeObject.h.

◆ NameHash_slice

Definition at line 227 of file TypeObject.h.

◆ PrimitiveTypeId

Definition at line 212 of file TypeObject.h.

◆ QualifiedTypeName

Definition at line 209 of file TypeObject.h.

◆ SBound

Definition at line 236 of file TypeObject.h.

◆ SBoundSeq

Definition at line 237 of file TypeObject.h.

◆ StronglyConnectedComponent

Definition at line 2262 of file TypeObject.h.

◆ StructMemberFlag

Definition at line 298 of file TypeObject.h.

◆ StructTypeFlag

Definition at line 326 of file TypeObject.h.

◆ TypeFlag

Definition at line 318 of file TypeObject.h.

◆ TypeIdentifierKind

Definition at line 183 of file TypeObject.h.

◆ TypeIdentifierPairSeq

Definition at line 2288 of file TypeObject.h.

◆ TypeIdentifierSeq

Definition at line 749 of file TypeObject.h.

◆ TypeIdentifierTypeObjectPairSeq

Definition at line 2275 of file TypeObject.h.

◆ TypeIdentifierWithDependenciesSeq

Definition at line 2316 of file TypeObject.h.

◆ TypeIdentifierWithSizeSeq

Definition at line 2303 of file TypeObject.h.

◆ TypeKind

Definition at line 139 of file TypeObject.h.

◆ TypeLookupService_rch

Definition at line 118 of file TypeLookupService.h.

◆ TypeObjectSeq

Definition at line 2256 of file TypeObject.h.

◆ UnionCaseLabelSeq

Definition at line 1282 of file TypeObject.h.

◆ UnionDiscriminatorFlag

Definition at line 300 of file TypeObject.h.

◆ UnionMemberFlag

Definition at line 299 of file TypeObject.h.

◆ UnionTypeFlag

Definition at line 327 of file TypeObject.h.

Enumeration Type Documentation

◆ ExtensibilityKind

Enumerator
FINAL 
APPENDABLE 
MUTABLE 

Definition at line 23 of file TypeDescriptor.h.

◆ TryConstructKind

Enumerator
USE_DEFAULT 
DISCARD 
TRIM 

Definition at line 23 of file MemberDescriptor.h.

Function Documentation

◆ compute_dependencies()

void OpenDDS::XTypes::compute_dependencies ( const TypeMap &  type_map,
const TypeIdentifier type_identifier,
OPENDDS_SET(TypeIdentifier)&  dependencies 
)

Definition at line 937 of file TypeObject.cpp.

References EK_COMPLETE, EK_MINIMAL, OpenDDS::XTypes::TypeIdentifier::kind(), TI_PLAIN_ARRAY_LARGE, TI_PLAIN_ARRAY_SMALL, TI_PLAIN_MAP_LARGE, TI_PLAIN_MAP_SMALL, TI_PLAIN_SEQUENCE_LARGE, TI_PLAIN_SEQUENCE_SMALL, TI_STRING16_LARGE, TI_STRING16_SMALL, TI_STRING8_LARGE, TI_STRING8_SMALL, and TI_STRONGLY_CONNECTED_COMPONENT.

Referenced by has_type_object(), OpenDDS::XTypes::TypeMapBuilder::operator TypeMap &(), and OpenDDS::DCPS::TypeSupportImpl::populate_dependencies_i().

940 {
941  if (dependencies.count(type_identifier) != 0) {
942  return;
943  }
944 
945  dependencies.insert(type_identifier);
946 
947  switch (type_identifier.kind()) {
948  case TI_STRING8_SMALL:
949  case TI_STRING16_SMALL:
950  compute_dependencies(type_map, type_identifier.string_sdefn(), dependencies);
951  break;
952  case TI_STRING8_LARGE:
953  case TI_STRING16_LARGE:
954  compute_dependencies(type_map, type_identifier.string_ldefn(), dependencies);
955  break;
957  compute_dependencies(type_map, type_identifier.seq_sdefn(), dependencies);
958  break;
960  compute_dependencies(type_map, type_identifier.seq_ldefn(), dependencies);
961  break;
963  compute_dependencies(type_map, type_identifier.array_sdefn(), dependencies);
964  break;
966  compute_dependencies(type_map, type_identifier.array_ldefn(), dependencies);
967  break;
968  case TI_PLAIN_MAP_SMALL:
969  compute_dependencies(type_map, type_identifier.map_sdefn(), dependencies);
970  break;
971  case TI_PLAIN_MAP_LARGE:
972  compute_dependencies(type_map, type_identifier.map_ldefn(), dependencies);
973  break;
975  compute_dependencies(type_map, type_identifier.sc_component_id(), dependencies);
976  break;
977  case EK_COMPLETE:
978  case EK_MINIMAL:
979  {
980  TypeMap::const_iterator pos = type_map.find(type_identifier);
981  if (pos != type_map.end()) {
982  compute_dependencies(type_map, pos->second, dependencies);
983  }
984  break;
985  }
986  }
987 }
const TypeIdentifierKind TI_STRING16_SMALL
Definition: TypeObject.h:186
const TypeIdentifierKind TI_STRING8_LARGE
Definition: TypeObject.h:185
void compute_dependencies(const TypeMap &type_map, const TypeIdentifier &type_identifier, OPENDDS_SET(TypeIdentifier)&dependencies)
Definition: TypeObject.cpp:937
const TypeIdentifierKind TI_PLAIN_MAP_SMALL
Definition: TypeObject.h:195
const EquivalenceKind EK_MINIMAL
Definition: TypeObject.h:134
const TypeIdentifierKind TI_STRING16_LARGE
Definition: TypeObject.h:187
const EquivalenceKind EK_COMPLETE
Definition: TypeObject.h:135
const TypeIdentifierKind TI_PLAIN_ARRAY_SMALL
Definition: TypeObject.h:192
const TypeIdentifierKind TI_PLAIN_MAP_LARGE
Definition: TypeObject.h:196
const TypeIdentifierKind TI_STRONGLY_CONNECTED_COMPONENT
Definition: TypeObject.h:198
const TypeIdentifierKind TI_PLAIN_ARRAY_LARGE
Definition: TypeObject.h:193
const TypeIdentifierKind TI_PLAIN_SEQUENCE_LARGE
Definition: TypeObject.h:190
const TypeIdentifierKind TI_STRING8_SMALL
Definition: TypeObject.h:184
const TypeIdentifierKind TI_PLAIN_SEQUENCE_SMALL
Definition: TypeObject.h:189

◆ deserialize_type_info()

template<typename T >
bool OpenDDS::XTypes::deserialize_type_info ( TypeInformation type_info,
const T &  seq 
)

Definition at line 2346 of file TypeObject.h.

References ACE_ERROR, ACE_TEXT(), get_typeobject_encoding(), has_type_object(), hash_member_name(), hash_member_name_to_id(), is_fully_descriptive(), is_plain_collection(), LM_ERROR, name, OpenDDS_Dcps_Export, OPENDDS_MAP(), and OPENDDS_STRING.

Referenced by OpenDDS::RTPS::Sedp::match_continue().

2347  {
2348  DCPS::MessageBlockHelper<T> helper(seq);
2349  DCPS::Serializer serializer(helper, XTypes::get_typeobject_encoding());
2350  if (!(serializer >> type_info)) {
2351  ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) ERROR: deserialize_type_info ")
2352  ACE_TEXT("deserialization of type information failed.\n")));
2353  return false;
2354  }
2355  return true;
2356  }
#define ACE_ERROR(X)
const Encoding & get_typeobject_encoding()
Definition: TypeObject.cpp:23
ACE_TEXT("TCP_Factory")

◆ equivalence_hash_to_string()

OpenDDS_Dcps_Export DCPS::String OpenDDS::XTypes::equivalence_hash_to_string ( const EquivalenceHash equivalence_hash)

Definition at line 29 of file TypeObject.cpp.

References OpenDDS::DCPS::to_dds_string().

Referenced by OpenDDS::XTypes::TypeLookupService::get_minimal_type_identifier(), OpenDDS::DCPS::TypeSupportImpl::populate_dependencies_i(), and OpenDDS::DCPS::TypeSupportImpl::to_type_info_i().

30 {
31  return DCPS::to_dds_string(&equivalence_hash[0], sizeof equivalence_hash);
32 }
String to_dds_string(unsigned short to_convert)

◆ get_typeobject_encoding()

OpenDDS_Dcps_Export const DCPS::Encoding & OpenDDS::XTypes::get_typeobject_encoding ( )

◆ has_type_object()

OpenDDS_Dcps_Export bool OpenDDS::XTypes::has_type_object ( const TypeIdentifier ti)

Definition at line 343 of file TypeObject.cpp.

References OpenDDS::XTypes::CompleteTypeObject::alias_type, OpenDDS::XTypes::MinimalTypeObject::alias_type, OpenDDS::XTypes::CompleteMemberDetail::ann_custom, OpenDDS::XTypes::CompleteTypeDetail::ann_custom, OpenDDS::XTypes::CompleteDiscriminatorMember::ann_custom, OpenDDS::XTypes::CompleteAliasBody::ann_custom, OpenDDS::XTypes::CompleteElementDetail::ann_custom, OpenDDS::XTypes::CompleteTypeObject::annotation_type, OpenDDS::XTypes::MinimalTypeObject::annotation_type, OpenDDS::XTypes::AppliedAnnotation::annotation_typeid, OpenDDS::XTypes::CompleteTypeObject::array_type, OpenDDS::XTypes::MinimalTypeObject::array_type, OpenDDS::XTypes::CompleteStructHeader::base_type, OpenDDS::XTypes::MinimalStructHeader::base_type, OpenDDS::XTypes::Sequence< T >::begin(), OpenDDS::XTypes::CompleteTypeObject::bitmask_type, OpenDDS::XTypes::MinimalTypeObject::bitmask_type, OpenDDS::XTypes::CompleteTypeObject::bitset_type, OpenDDS::XTypes::MinimalTypeObject::bitset_type, OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL::body(), OpenDDS::XTypes::CompleteAliasType::body, OpenDDS::XTypes::MinimalAliasType::body, OpenDDS::XTypes::CompleteStructMember::common, OpenDDS::XTypes::MinimalStructMember::common, OpenDDS::XTypes::CompleteUnionMember::common, OpenDDS::XTypes::MinimalUnionMember::common, OpenDDS::XTypes::CompleteDiscriminatorMember::common, OpenDDS::XTypes::MinimalDiscriminatorMember::common, OpenDDS::XTypes::CompleteAnnotationParameter::common, OpenDDS::XTypes::MinimalAnnotationParameter::common, OpenDDS::XTypes::CompleteAliasBody::common, OpenDDS::XTypes::MinimalAliasBody::common, OpenDDS::XTypes::CompleteCollectionElement::common, OpenDDS::XTypes::MinimalCollectionElement::common, OpenDDS::XTypes::TypeObject::complete, compute_dependencies(), OpenDDS::XTypes::CompleteStructMember::detail, OpenDDS::XTypes::CompleteStructHeader::detail, OpenDDS::XTypes::CompleteUnionMember::detail, OpenDDS::XTypes::CompleteUnionHeader::detail, OpenDDS::XTypes::CompleteAliasHeader::detail, OpenDDS::XTypes::CompleteCollectionElement::detail, OpenDDS::XTypes::CompleteCollectionHeader::detail, OpenDDS::XTypes::CompleteArrayHeader::detail, OpenDDS::XTypes::CompleteEnumeratedLiteral::detail, OpenDDS::XTypes::CompleteEnumeratedHeader::detail, OpenDDS::XTypes::CompleteBitflag::detail, OpenDDS::XTypes::CompleteBitfield::detail, OpenDDS::XTypes::CompleteBitsetHeader::detail, OpenDDS::XTypes::CompleteUnionType::discriminator, OpenDDS::XTypes::MinimalUnionType::discriminator, EK_COMPLETE, EK_MINIMAL, OpenDDS::XTypes::CompleteSequenceType::element, OpenDDS::XTypes::MinimalSequenceType::element, OpenDDS::XTypes::CompleteArrayType::element, OpenDDS::XTypes::MinimalArrayType::element, OpenDDS::XTypes::CompleteMapType::element, OpenDDS::XTypes::MinimalMapType::element, OpenDDS::XTypes::PlainSequenceSElemDefn::element_identifier, OpenDDS::XTypes::PlainSequenceLElemDefn::element_identifier, OpenDDS::XTypes::PlainArraySElemDefn::element_identifier, OpenDDS::XTypes::PlainArrayLElemDefn::element_identifier, OpenDDS::XTypes::PlainMapSTypeDefn::element_identifier, OpenDDS::XTypes::PlainMapLTypeDefn::element_identifier, OpenDDS::XTypes::Sequence< T >::end(), OpenDDS::XTypes::CompleteTypeObject::enumerated_type, OpenDDS::XTypes::MinimalTypeObject::enumerated_type, OpenDDS::XTypes::CompleteBitsetType::field_seq, OpenDDS::XTypes::CompleteBitmaskType::flag_seq, header, OpenDDS::XTypes::PlainSequenceSElemDefn::header, OpenDDS::XTypes::PlainSequenceLElemDefn::header, OpenDDS::XTypes::PlainArraySElemDefn::header, OpenDDS::XTypes::PlainArrayLElemDefn::header, OpenDDS::XTypes::PlainMapSTypeDefn::header, OpenDDS::XTypes::PlainMapLTypeDefn::header, OpenDDS::XTypes::CompleteStructType::header, OpenDDS::XTypes::MinimalStructType::header, OpenDDS::XTypes::CompleteUnionType::header, OpenDDS::XTypes::CompleteAliasType::header, OpenDDS::XTypes::CompleteSequenceType::header, OpenDDS::XTypes::CompleteArrayType::header, OpenDDS::XTypes::CompleteMapType::header, OpenDDS::XTypes::CompleteEnumeratedType::header, OpenDDS::XTypes::CompleteBitmaskType::header, OpenDDS::XTypes::CompleteBitsetType::header, is_fully_descriptive(), is_plain_collection(), OpenDDS::XTypes::CompleteMapType::key, OpenDDS::XTypes::MinimalMapType::key, OpenDDS::XTypes::PlainMapSTypeDefn::key_identifier, OpenDDS::XTypes::PlainMapLTypeDefn::key_identifier, OpenDDS::XTypes::TypeIdentifier::kind(), OpenDDS::XTypes::CompleteTypeObject::kind, OpenDDS::XTypes::MinimalTypeObject::kind, OpenDDS::XTypes::TypeObject::kind, OpenDDS::XTypes::CompleteEnumeratedType::literal_seq, OpenDDS::XTypes::CompleteTypeObject::map_type, OpenDDS::XTypes::MinimalTypeObject::map_type, OpenDDS::XTypes::CompleteStructType::member_seq, OpenDDS::XTypes::MinimalStructType::member_seq, OpenDDS::XTypes::CompleteUnionType::member_seq, OpenDDS::XTypes::MinimalUnionType::member_seq, OpenDDS::XTypes::CompleteAnnotationType::member_seq, OpenDDS::XTypes::MinimalAnnotationType::member_seq, OpenDDS::XTypes::CommonStructMember::member_type_id, OpenDDS::XTypes::CommonAnnotationParameter::member_type_id, OpenDDS::XTypes::TypeObject::minimal, OPENDDS_SET(), OpenDDS::XTypes::Optional< T >::present, OpenDDS::XTypes::CommonAliasBody::related_type, OpenDDS::XTypes::CompleteTypeObject::sequence_type, OpenDDS::XTypes::MinimalTypeObject::sequence_type, OpenDDS::XTypes::CompleteTypeObject::struct_type, OpenDDS::XTypes::MinimalTypeObject::struct_type, TK_ALIAS, TK_ANNOTATION, TK_ARRAY, TK_BITMASK, TK_BITSET, TK_ENUM, TK_MAP, TK_NONE, TK_SEQUENCE, TK_STRUCTURE, TK_UNION, OpenDDS::XTypes::CommonCollectionElement::type, OpenDDS::XTypes::CommonUnionMember::type_id, OpenDDS::XTypes::CommonDiscriminatorMember::type_id, OpenDDS::XTypes::CompleteTypeObject::union_type, OpenDDS::XTypes::MinimalTypeObject::union_type, and OpenDDS::XTypes::Optional< T >::value.

Referenced by deserialize_type_info(), and OpenDDS::DCPS::TypeSupportImpl::populate_dependencies_i().

344 {
345  return !is_fully_descriptive(ti) && !is_plain_collection(ti) &&
346  ti.kind() != TK_NONE;
347 }
const TypeKind TK_NONE
Definition: TypeObject.h:142
bool is_plain_collection(const TypeIdentifier &ti)
Definition: TypeObject.cpp:329
bool is_fully_descriptive(const TypeIdentifier &ti)
Definition: TypeObject.cpp:290

◆ hash_member_name()

OpenDDS_Dcps_Export void OpenDDS::XTypes::hash_member_name ( NameHash name_hash,
const OPENDDS_STRING name 
)

◆ hash_member_name_to_id()

OpenDDS_Dcps_Export ACE_CDR::ULong OpenDDS::XTypes::hash_member_name_to_id ( const OPENDDS_STRING name)

Definition at line 271 of file TypeObject.cpp.

References OpenDDS::DCPS::MD5Hash(), and OpenDDS::DCPS::Serializer::MEMBER_ID_MASK.

Referenced by deserialize_type_info(), and invalid_option().

272 {
273  ACE_CDR::ULong name_hash;
274 
275  unsigned char result[16];
276  DCPS::MD5Hash(result, name.c_str(), name.size());
277 
278  std::memcpy(&name_hash, result, sizeof name_hash);
279  return name_hash & DCPS::Serializer::MEMBER_ID_MASK;
280 }
ACE_UINT32 ULong
const char *const name
Definition: debug.cpp:51
void MD5Hash(MD5Result &result, const void *input, size_t size)
Definition: Hash.cpp:323

◆ is_fully_descriptive()

OpenDDS_Dcps_Export bool OpenDDS::XTypes::is_fully_descriptive ( const TypeIdentifier ti)

Definition at line 290 of file TypeObject.cpp.

References EK_BOTH, OpenDDS::XTypes::TypeIdentifier::kind(), TI_PLAIN_ARRAY_LARGE, TI_PLAIN_ARRAY_SMALL, TI_PLAIN_MAP_LARGE, TI_PLAIN_MAP_SMALL, TI_PLAIN_SEQUENCE_LARGE, TI_PLAIN_SEQUENCE_SMALL, TI_STRING16_LARGE, TI_STRING16_SMALL, TI_STRING8_LARGE, TI_STRING8_SMALL, TK_BOOLEAN, TK_BYTE, TK_CHAR16, TK_CHAR8, TK_FLOAT128, TK_FLOAT32, TK_FLOAT64, TK_INT16, TK_INT32, TK_INT64, TK_INT8, TK_UINT16, TK_UINT32, TK_UINT64, and TK_UINT8.

Referenced by deserialize_type_info(), typeobject_generator::generate_array_type_identifier(), typeobject_generator::generate_sequence_type_identifier(), OpenDDS::XTypes::TypeLookupService::get_minimal_type_identifier(), and has_type_object().

291 {
292  switch (ti.kind()) {
293  case TK_BOOLEAN:
294  case TK_BYTE:
295  case TK_INT16:
296  case TK_INT32:
297  case TK_INT64:
298  case TK_UINT16:
299  case TK_UINT32:
300  case TK_UINT64:
301  case TK_FLOAT32:
302  case TK_FLOAT64:
303  case TK_FLOAT128:
304  case TK_INT8:
305  case TK_UINT8:
306  case TK_CHAR8:
307  case TK_CHAR16:
308  case TI_STRING8_SMALL:
309  case TI_STRING8_LARGE:
310  case TI_STRING16_SMALL:
311  case TI_STRING16_LARGE:
312  return true;
314  return ti.seq_sdefn().header.equiv_kind == EK_BOTH;
316  return ti.seq_ldefn().header.equiv_kind == EK_BOTH;
318  return ti.array_sdefn().header.equiv_kind == EK_BOTH;
320  return ti.array_ldefn().header.equiv_kind == EK_BOTH;
321  case TI_PLAIN_MAP_SMALL:
322  return ti.map_sdefn().header.equiv_kind == EK_BOTH;
323  case TI_PLAIN_MAP_LARGE:
324  return ti.map_ldefn().header.equiv_kind == EK_BOTH;
325  }
326  return false;
327 }
const TypeKind TK_CHAR8
Definition: TypeObject.h:156
const TypeIdentifierKind TI_STRING16_SMALL
Definition: TypeObject.h:186
const TypeIdentifierKind TI_STRING8_LARGE
Definition: TypeObject.h:185
const TypeKind TK_FLOAT64
Definition: TypeObject.h:152
const EquivalenceKind EK_BOTH
Definition: TypeObject.h:136
const TypeKind TK_INT32
Definition: TypeObject.h:146
const TypeKind TK_INT16
Definition: TypeObject.h:145
const TypeIdentifierKind TI_PLAIN_MAP_SMALL
Definition: TypeObject.h:195
const TypeKind TK_UINT16
Definition: TypeObject.h:148
const TypeKind TK_INT8
Definition: TypeObject.h:154
const TypeIdentifierKind TI_STRING16_LARGE
Definition: TypeObject.h:187
const TypeIdentifierKind TI_PLAIN_ARRAY_SMALL
Definition: TypeObject.h:192
const TypeKind TK_BYTE
Definition: TypeObject.h:144
const TypeKind TK_CHAR16
Definition: TypeObject.h:157
const TypeKind TK_INT64
Definition: TypeObject.h:147
const TypeIdentifierKind TI_PLAIN_MAP_LARGE
Definition: TypeObject.h:196
const TypeKind TK_FLOAT32
Definition: TypeObject.h:151
const TypeIdentifierKind TI_PLAIN_ARRAY_LARGE
Definition: TypeObject.h:193
const TypeKind TK_UINT64
Definition: TypeObject.h:150
const TypeIdentifierKind TI_PLAIN_SEQUENCE_LARGE
Definition: TypeObject.h:190
const TypeKind TK_UINT32
Definition: TypeObject.h:149
const TypeKind TK_FLOAT128
Definition: TypeObject.h:153
const TypeKind TK_UINT8
Definition: TypeObject.h:155
const TypeIdentifierKind TI_STRING8_SMALL
Definition: TypeObject.h:184
const TypeKind TK_BOOLEAN
Definition: TypeObject.h:143
const TypeIdentifierKind TI_PLAIN_SEQUENCE_SMALL
Definition: TypeObject.h:189

◆ is_plain_collection()

OpenDDS_Dcps_Export bool OpenDDS::XTypes::is_plain_collection ( const TypeIdentifier ti)

Definition at line 329 of file TypeObject.cpp.

References OpenDDS::XTypes::TypeIdentifier::kind(), TI_PLAIN_ARRAY_LARGE, TI_PLAIN_ARRAY_SMALL, TI_PLAIN_MAP_LARGE, TI_PLAIN_MAP_SMALL, TI_PLAIN_SEQUENCE_LARGE, and TI_PLAIN_SEQUENCE_SMALL.

Referenced by deserialize_type_info(), OpenDDS::XTypes::TypeLookupService::get_minimal_type_identifier(), and has_type_object().

330 {
331  switch (ti.kind()) {
336  case TI_PLAIN_MAP_SMALL:
337  case TI_PLAIN_MAP_LARGE:
338  return true;
339  }
340  return false;
341 }
const TypeIdentifierKind TI_PLAIN_MAP_SMALL
Definition: TypeObject.h:195
const TypeIdentifierKind TI_PLAIN_ARRAY_SMALL
Definition: TypeObject.h:192
const TypeIdentifierKind TI_PLAIN_MAP_LARGE
Definition: TypeObject.h:196
const TypeIdentifierKind TI_PLAIN_ARRAY_LARGE
Definition: TypeObject.h:193
const TypeIdentifierKind TI_PLAIN_SEQUENCE_LARGE
Definition: TypeObject.h:190
const TypeIdentifierKind TI_PLAIN_SEQUENCE_SMALL
Definition: TypeObject.h:189

◆ makeTypeIdentifier()

OpenDDS_Dcps_Export TypeIdentifier OpenDDS::XTypes::makeTypeIdentifier ( const TypeObject type_object,
const DCPS::Encoding encoding_option 
)

Definition at line 250 of file TypeObject.cpp.

References EK_COMPLETE, EK_MINIMAL, OpenDDS::STUN::encoding(), get_typeobject_encoding(), OpenDDS::XTypes::TypeObject::kind, ACE_Message_Block::length(), OpenDDS::DCPS::MD5Hash(), OPENDDS_ASSERT, ACE_Message_Block::rd_ptr(), and OpenDDS::DCPS::serialized_size().

Referenced by OpenDDS::DCPS::TypeSupportImpl::add_types(), OpenDDS::DCPS::TypeSupportImpl::to_type_info_i(), and typeobject_generator::update_maps().

251 {
252  OPENDDS_ASSERT(type_object.kind == EK_MINIMAL || type_object.kind == EK_COMPLETE);
253 
254  const Encoding& encoding = encoding_option ? *encoding_option : get_typeobject_encoding();
255  size_t size = serialized_size(encoding, type_object);
256  ACE_Message_Block buff(size);
257  DCPS::Serializer ser(&buff, encoding);
258  ser << type_object;
259 
260  unsigned char result[16];
261  DCPS::MD5Hash(result, buff.rd_ptr(), buff.length());
262 
263  // First 14 bytes of MD5 of the serialized TypeObject using XCDR
264  // version 2 with Little Endian encoding
265  TypeIdentifier ti(type_object.kind);
266  std::memcpy(ti.equivalence_hash(), result, sizeof(EquivalenceHash));
267 
268  return ti;
269 }
ACE_CDR::Octet EquivalenceHash[14]
Definition: TypeObject.h:216
#define OPENDDS_ASSERT(C)
Definition: Definitions.h:66
const EquivalenceKind EK_MINIMAL
Definition: TypeObject.h:134
const EquivalenceKind EK_COMPLETE
Definition: TypeObject.h:135
const Encoding & get_typeobject_encoding()
Definition: TypeObject.cpp:23
void serialized_size(const Encoding &encoding, size_t &size, const XTypes::TypeIdentifierPair &stru)
void MD5Hash(MD5Result &result, const void *input, size_t size)
Definition: Hash.cpp:323
const DCPS::Encoding encoding(DCPS::Encoding::KIND_UNALIGNED_CDR, DCPS::ENDIAN_BIG)

◆ OPENDDS_MAP() [1/3]

typedef OpenDDS::XTypes::OPENDDS_MAP ( DCPS::String  ,
DynamicTypeMember_rch   
)

◆ OPENDDS_MAP() [2/3]

typedef OpenDDS::XTypes::OPENDDS_MAP ( MemberId  ,
DynamicTypeMember_rch   
)

◆ OPENDDS_MAP() [3/3]

typedef OpenDDS::XTypes::OPENDDS_MAP ( TypeIdentifier  ,
TypeObject   
)

◆ OPENDDS_SET()

typedef OpenDDS::XTypes::OPENDDS_SET ( DynamicTypePtrPair  )

◆ OPENDDS_VECTOR() [1/2]

typedef OpenDDS::XTypes::OPENDDS_VECTOR ( DynamicTypeMember_rch  )

◆ OPENDDS_VECTOR() [2/2]

typedef OpenDDS::XTypes::OPENDDS_VECTOR ( MemberPair  )

◆ operator==() [1/3]

bool OpenDDS::XTypes::operator== ( const LBoundSeq lhs,
const LBoundSeq rhs 
)
inline

Definition at line 48 of file TypeDescriptor.h.

References OpenDDS::XTypes::Sequence< T >::length(), OPENDDS_END_VERSIONED_NAMESPACE_DECL, and test_equality_i().

49 {
50  if (lhs.length() == rhs.length()) {
51  for (ACE_CDR::ULong i = 0 ; i < lhs.length() ; ++i) {
52  if (lhs[i] != rhs[i]) {
53  return false;
54  }
55  }
56  return true;
57  }
58  return false;
59 }
ACE_UINT32 ULong

◆ operator==() [2/3]

bool OpenDDS::XTypes::operator== ( const UnionCaseLabelSeq lhs,
const UnionCaseLabelSeq rhs 
)
inline

Definition at line 51 of file MemberDescriptor.h.

References OpenDDS::XTypes::Sequence< T >::length(), OPENDDS_END_VERSIONED_NAMESPACE_DECL, and test_equality_i().

52 {
53  if (lhs.length() == rhs.length()) {
54  for (ACE_CDR::ULong i = 0; i < lhs.length(); ++i) {
55  if (lhs[i] != rhs[i]) {
56  return false;
57  }
58  }
59  return true;
60  }
61  return false;
62 }
ACE_UINT32 ULong

◆ operator==() [3/3]

OpenDDS_Dcps_Export bool OpenDDS::XTypes::operator== ( const DynamicType lhs,
const DynamicType rhs 
)

Definition at line 133 of file DynamicType.cpp.

References OpenDDS::XTypes::DynamicType::test_equality_i().

134 {
135  DynamicTypePtrPairSeen dt_ptr_pair;
136  return lhs.test_equality_i(rhs, dt_ptr_pair);
137 }

◆ print_dynamic_data()

OpenDDS_Dcps_Export bool OpenDDS::XTypes::print_dynamic_data ( DynamicData dd,
DCPS::String type_string,
DCPS::String indent 
)

Definition at line 2702 of file DynamicData.cpp.

References ACE_ERROR, OpenDDS::XTypes::DynamicData::get_complex_value(), OpenDDS::XTypes::DynamicData::get_float128_value(), OpenDDS::XTypes::DynamicData::get_float32_value(), OpenDDS::XTypes::DynamicData::get_float64_value(), OpenDDS::XTypes::DynamicData::get_item_count(), OpenDDS::XTypes::DynamicData::get_string_value(), TAO::String_var< charT >::inout(), LM_NOTICE, OpenDDS::DCPS::log_level, OpenDDS::DCPS::LogLevel::Notice, OPENDDS_END_VERSIONED_NAMESPACE_DECL, print_integral_value(), DDS::RETCODE_OK, OpenDDS::DCPS::string_helper(), TK_ARRAY, TK_BITMASK, TK_BITSET, TK_BOOLEAN, TK_BYTE, TK_CHAR16, TK_CHAR8, TK_ENUM, TK_FLOAT128, TK_FLOAT32, TK_FLOAT64, TK_INT16, TK_INT32, TK_INT64, TK_INT8, TK_SEQUENCE, TK_STRING16, TK_STRING8, TK_STRUCTURE, TK_UINT16, TK_UINT32, TK_UINT64, TK_UINT8, TK_UNION, OpenDDS::DCPS::to_dds_string(), and OpenDDS::XTypes::DynamicData::type().

2703 {
2704  DCPS::String member_name;
2705  DCPS::String type_name;
2706  DynamicData temp_dd;
2707  switch (dd.type()->get_kind()) {
2708  case TK_INT8:
2709  case TK_UINT8:
2710  case TK_INT16:
2711  case TK_UINT16:
2712  case TK_ENUM:
2713  case TK_INT32:
2714  case TK_UINT32:
2715  case TK_INT64:
2716  case TK_UINT64:
2717  case TK_BOOLEAN:
2718  case TK_BYTE:
2719  case TK_CHAR8:
2720  case TK_CHAR16:
2721  if (!print_integral_value(dd, type_string, dd.type())) {
2722  return false;
2723  }
2724  break;
2725  case TK_FLOAT32: {
2726  ACE_CDR::Float my_float;
2727  if (dd.get_float32_value(my_float, 0) != DDS::RETCODE_OK) {
2728  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2729  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_dynamic_data: failed to get_float32_value\n"));
2730  }
2731  return false;
2732  }
2733  std::stringstream os;
2734  os << my_float;
2735  type_string += " = " + os.str() + "\n";
2736  break;
2737  }
2738  case TK_FLOAT64: {
2739  ACE_CDR::Double my_double;
2740  if (dd.get_float64_value(my_double, 0) != DDS::RETCODE_OK) {
2741  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2742  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_dynamic_data: failed to get_float64_value\n"));
2743  }
2744  return false;
2745  }
2746  std::stringstream os;
2747  os << my_double;
2748  type_string += " = " + os.str() + "\n";
2749  break;
2750  }
2751  case TK_FLOAT128: {
2752  ACE_CDR::LongDouble my_longdouble;
2753  if (dd.get_float128_value(my_longdouble, 0) != DDS::RETCODE_OK) {
2754  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2755  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_dynamic_data: failed to get_float128_value\n"));
2756  }
2757  return false;
2758  }
2759  std::stringstream os;
2760  os << my_longdouble;
2761  type_string += " = " + os.str() + "\n";
2762  break;
2763  }
2764  case TK_STRING8: {
2765  CORBA::String_var my_string;
2766  if (dd.get_string_value(my_string, 0) != DDS::RETCODE_OK) {
2767  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2768  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_dynamic_data: failed to get_string_value\n"));
2769  }
2770  return false;
2771  }
2772  std::stringstream os;
2773  DCPS::string_helper(os, my_string.inout());
2774  type_string += DCPS::String(" = \"") + os.str() + "\"\n";
2775  break;
2776  }
2777 #ifdef DDS_HAS_WCHAR
2778  case TK_STRING16: {
2779  CORBA::WString_var my_wstring;
2780  if (dd.get_wstring_value(my_wstring, 0) != DDS::RETCODE_OK) {
2781  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2782  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_dynamic_data: failed to get_wstring_value\n"));
2783  }
2784  return false;
2785  }
2786  std::stringstream os;
2787  DCPS::string_helper(os, my_wstring.inout());
2788  type_string += " = L\"" + os.str() + "\"\n";
2789  break;
2790  }
2791 #endif
2792  case TK_BITMASK:
2793  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2794  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_dynamic_data: Bitmask is an unsupported type in OpenDDS\n"));
2795  }
2796  break;
2797  case TK_BITSET:
2798  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2799  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_dynamic_data: Bitset is an unsupported type in OpenDDS\n"));
2800  }
2801  break;
2802  case TK_SEQUENCE: {
2803  DCPS::String temp_indent = indent;
2804  indent += " ";
2805  ACE_CDR::ULong seq_length = dd.get_item_count();
2806  type_string += "[" + DCPS::to_dds_string(seq_length) + "] =\n";
2807  for (ACE_CDR::ULong i = 0; i < seq_length; ++i) {
2808  type_string += indent + "[" + DCPS::to_dds_string(i) + "]";
2809  if (dd.get_complex_value(temp_dd, i) != DDS::RETCODE_OK) {
2810  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2811  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_dynamic_data: failed to get_complex_value\n"));
2812  }
2813  return false;
2814  }
2815  if (!print_dynamic_data(temp_dd, type_string, indent)) {
2816  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2817  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_dynamic_data: failed to read struct member\n"));
2818  }
2819  return false;
2820  }
2821  }
2822  indent = temp_indent;
2823  break;
2824  }
2825  case TK_ARRAY: {
2826  DCPS::String temp_indent = indent;
2827  indent += " ";
2828  LBound bound = dd.type()->get_descriptor().bound[0];
2829  type_string += "[" + DCPS::to_dds_string(bound) + "] =\n";
2830  for (ACE_CDR::ULong i = 0; i < bound; ++i) {
2831  type_string += indent + "[" + DCPS::to_dds_string(i) + "]";
2832  if (dd.get_complex_value(temp_dd, i) != DDS::RETCODE_OK) {
2833  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2834  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_dynamic_data: failed to get_complex_value\n"));
2835  }
2836  return false;
2837  }
2838  if (!print_dynamic_data(temp_dd, type_string, indent)) {
2839  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2840  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_dynamic_data: failed to read struct member\n"));
2841  }
2842  return false;
2843  }
2844  }
2845  indent = temp_indent;
2846  break;
2847  }
2848  case TK_STRUCTURE: {
2849  DCPS::String temp_indent = indent;
2850  indent += " ";
2851  type_string += "struct " + dd.type()->get_name() + "\n";
2852  DynamicTypeMembersById dtmbi;
2853  dd.type()->get_all_members(dtmbi);
2854  for (DynamicTypeMembersById::iterator iter = dtmbi.begin(); iter != dtmbi.end(); ++iter) {
2855  dd.get_complex_value(temp_dd, iter->first);
2856  member_name = iter->second->get_descriptor().name;
2857  DynamicType_rch base_dt = iter->second->get_descriptor().get_type()->get_base_type();
2858  type_name = base_dt->get_descriptor().name;
2859  if ((iter->second->get_descriptor().get_type()->get_kind() == TK_STRUCTURE ||
2860  iter->second->get_descriptor().get_type()->get_kind() == TK_UNION) &&
2861  iter->second->get_parent()->get_descriptor().kind == TK_STRUCTURE) {
2862  type_string += indent;
2863  } else {
2864  type_string += indent + type_name + " " + member_name;
2865  }
2866  if (base_dt->get_descriptor().kind == TK_SEQUENCE ||
2867  base_dt->get_descriptor().kind == TK_ARRAY) {
2868  DCPS::String ele_type_name = base_dt->get_descriptor().element_type->get_descriptor().name;
2869  type_string += " " + ele_type_name;
2870  }
2871  if (!print_dynamic_data(temp_dd, type_string, indent)) {
2872  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2873  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_dynamic_data: failed to read struct member\n"));
2874  }
2875  return false;
2876  }
2877  }
2878  indent = temp_indent;
2879  break;
2880  }
2881  case TK_UNION: {
2882  DCPS::String temp_indent = indent;
2883  indent += " ";
2884  type_string += "union " + dd.type()->get_name() + "\n";
2885  ACE_CDR::ULong item_count = dd.get_item_count();
2886  member_name = dd.type()->get_descriptor().discriminator_type->get_base_type()->get_descriptor().name;
2887  type_string += indent + member_name + " discriminator";
2888  if (!print_integral_value(dd, type_string, dd.type()->get_descriptor().discriminator_type)) {
2889  return false;
2890  }
2891 
2892  if (item_count == 2) {
2893  DynamicTypeMember_rch temp_dtm;
2894  DynamicTypeMembersById dtmbi;
2895  dd.type()->get_all_members(dtmbi);
2896  for (DynamicTypeMembersById::iterator iter = dtmbi.begin(); iter != dtmbi.end(); ++iter) {
2897  dd.type()->get_member(temp_dtm, iter->first);
2898  if (dd.get_complex_value(dd, iter->first) == DDS::RETCODE_OK) {
2899  DynamicType_rch base_dt = iter->second->get_descriptor().get_type()->get_base_type();
2900  type_name = temp_dtm->get_descriptor().get_type()->get_descriptor().name;
2901  member_name = temp_dtm->get_descriptor().name;
2902  if ((iter->second->get_descriptor().get_type()->get_kind() == TK_STRUCTURE ||
2903  iter->second->get_descriptor().get_type()->get_kind() == TK_UNION) &&
2904  iter->second->get_parent()->get_descriptor().kind == TK_UNION) {
2905  type_string += indent;
2906  } else {
2907  type_string += indent + type_name + " " + member_name;
2908  }
2909  if (base_dt->get_descriptor().kind == TK_SEQUENCE ||
2910  base_dt->get_descriptor().kind == TK_ARRAY) {
2911  DCPS::String ele_type_name = base_dt->get_descriptor().element_type->get_descriptor().name;
2912  type_string += " " + ele_type_name;
2913  }
2914  if (!print_dynamic_data(dd, type_string, indent)) {
2915  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2916  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_dynamic_data: failed to read union branch\n"));
2917  }
2918  return false;
2919  }
2920  break;
2921  }
2922  }
2923  }
2924  indent = temp_indent;
2925  break;
2926  }
2927  }
2928  return true;
2929 }
const TypeKind TK_CHAR8
Definition: TypeObject.h:156
#define ACE_ERROR(X)
const TypeKind TK_FLOAT64
Definition: TypeObject.h:152
const TypeKind TK_UNION
Definition: TypeObject.h:173
const TypeKind TK_INT32
Definition: TypeObject.h:146
const TypeKind TK_INT16
Definition: TypeObject.h:145
const TypeKind TK_BITMASK
Definition: TypeObject.h:168
const TypeKind TK_UINT16
Definition: TypeObject.h:148
const TypeKind TK_ENUM
Definition: TypeObject.h:167
const TypeKind TK_INT8
Definition: TypeObject.h:154
DCPS::RcHandle< DynamicTypeMember > DynamicTypeMember_rch
const TypeKind TK_ARRAY
Definition: TypeObject.h:178
ACE_CDR::ULong LBound
Definition: TypeObject.h:231
const TypeKind TK_BYTE
Definition: TypeObject.h:144
const TypeKind TK_STRING8
Definition: TypeObject.h:160
OpenDDS_Dcps_Export LogLevel log_level
const TypeKind TK_STRUCTURE
Definition: TypeObject.h:172
const TypeKind TK_CHAR16
Definition: TypeObject.h:157
const TypeKind TK_INT64
Definition: TypeObject.h:147
const TypeKind TK_BITSET
Definition: TypeObject.h:174
const TypeKind TK_STRING16
Definition: TypeObject.h:161
const TypeKind TK_FLOAT32
Definition: TypeObject.h:151
std::ostream & string_helper(std::ostream &o, const CharType *value)
Definition: ValueHelper.h:108
character_type *& inout(void)
ACE_UINT32 ULong
bool print_dynamic_data(DynamicData &dd, DCPS::String &type_string, DCPS::String &indent)
std::string String
bool print_integral_value(DynamicData &dd, DCPS::String &type_string, DynamicType_rch dt)
const ReturnCode_t RETCODE_OK
const TypeKind TK_UINT64
Definition: TypeObject.h:150
const TypeKind TK_UINT32
Definition: TypeObject.h:149
const TypeKind TK_FLOAT128
Definition: TypeObject.h:153
const TypeKind TK_UINT8
Definition: TypeObject.h:155
DCPS::RcHandle< DynamicType > DynamicType_rch
const TypeKind TK_BOOLEAN
Definition: TypeObject.h:143
const TypeKind TK_SEQUENCE
Definition: TypeObject.h:177
String to_dds_string(unsigned short to_convert)

◆ print_integral_value()

bool OpenDDS::XTypes::print_integral_value ( DynamicData dd,
DCPS::String type_string,
DynamicType_rch  dt 
)

Definition at line 2518 of file DynamicData.cpp.

References ACE_ERROR, DISCRIMINATOR_ID, OpenDDS::XTypes::DynamicData::get_boolean_value(), OpenDDS::XTypes::DynamicData::get_byte_value(), OpenDDS::XTypes::DynamicData::get_char8_value(), OpenDDS::XTypes::DynamicData::get_int16_value(), OpenDDS::XTypes::DynamicData::get_int32_value(), OpenDDS::XTypes::DynamicData::get_int64_value(), OpenDDS::XTypes::DynamicData::get_int8_value(), OpenDDS::XTypes::DynamicData::get_uint16_value(), OpenDDS::XTypes::DynamicData::get_uint32_value(), OpenDDS::XTypes::DynamicData::get_uint64_value(), OpenDDS::XTypes::DynamicData::get_uint8_value(), LM_NOTICE, OpenDDS::DCPS::log_level, OpenDDS::DCPS::LogLevel::Notice, DDS::RETCODE_OK, TK_BOOLEAN, TK_BYTE, TK_CHAR16, TK_CHAR8, TK_ENUM, TK_INT16, TK_INT32, TK_INT64, TK_INT8, TK_UINT16, TK_UINT32, TK_UINT64, TK_UINT8, and OpenDDS::DCPS::to_dds_string().

Referenced by print_dynamic_data().

2519 {
2520  switch (dt->get_descriptor().kind) {
2521  case TK_ENUM: {
2522  ACE_CDR::Long val;
2523  LBound bit_bound = dt->get_descriptor().bound[0];
2524  if (bit_bound <= 8) {
2525  ACE_CDR::Int8 my_int8;
2526  if (dd.get_int8_value(my_int8, DISCRIMINATOR_ID) != DDS::RETCODE_OK) {
2527  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2528  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_integral_value: failed to get_int8_value\n"));
2529  }
2530  return false;
2531  }
2532  val = my_int8;
2533  } else if (bit_bound <= 16) {
2534  ACE_CDR::Short my_short;
2535  if (dd.get_int16_value(my_short, DISCRIMINATOR_ID) != DDS::RETCODE_OK) {
2536  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2537  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_integral_value: failed to get_int16_value\n"));
2538  }
2539  return false;
2540  }
2541  val = my_short;
2542  } else {
2543  ACE_CDR::Long my_long;
2544  if (dd.get_int32_value(my_long, DISCRIMINATOR_ID) != DDS::RETCODE_OK) {
2545  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2546  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_integral_value: failed to get_int32_value\n"));
2547  }
2548  return false;
2549  }
2550  val = my_long;
2551  }
2552  DynamicTypeMember_rch temp_dtm;
2553  dt->get_member_by_index(temp_dtm, val);
2554  type_string += " = " + temp_dtm->get_descriptor().name + "\n";
2555  break;
2556  }
2557  case TK_INT8: {
2558  ACE_CDR::Int8 my_int8;
2559  if (dd.get_int8_value(my_int8, DISCRIMINATOR_ID) != DDS::RETCODE_OK) {
2560  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2561  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_integral_value: failed to get_int8_value\n"));
2562  }
2563  return false;
2564  }
2565  type_string += " = " + DCPS::to_dds_string(my_int8) + "\n";
2566  break;
2567  }
2568  case TK_UINT8: {
2569  ACE_CDR::UInt8 my_uint8;
2570  if (dd.get_uint8_value(my_uint8, DISCRIMINATOR_ID) != DDS::RETCODE_OK) {
2571  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2572  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_integral_value: failed to get_uint8_value\n"));
2573  }
2574  return false;
2575  }
2576  type_string += " = " + DCPS::to_dds_string(my_uint8) + "\n";
2577  break;
2578  }
2579  case TK_INT16: {
2580  ACE_CDR::Short my_short;
2581  if (dd.get_int16_value(my_short, DISCRIMINATOR_ID) != DDS::RETCODE_OK) {
2582  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2583  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_integral_value: failed to get_int16_value\n"));
2584  }
2585  return false;
2586  }
2587  type_string += " = " + DCPS::to_dds_string(my_short) + "\n";
2588  break;
2589  }
2590  case TK_UINT16: {
2591  ACE_CDR::UShort my_ushort;
2592  if (dd.get_uint16_value(my_ushort, DISCRIMINATOR_ID) != DDS::RETCODE_OK) {
2593  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2594  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_integral_value: failed to get_uint16_value\n"));
2595  }
2596  return false;
2597  }
2598  type_string += " = " + DCPS::to_dds_string(my_ushort) + "\n";
2599  break;
2600  }
2601  case TK_INT32: {
2602  ACE_CDR::Long my_long;
2603  if (dd.get_int32_value(my_long, DISCRIMINATOR_ID) != DDS::RETCODE_OK) {
2604  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2605  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_integral_value: failed to get_int32_value\n"));
2606  }
2607  return false;
2608  }
2609  type_string += " = " + DCPS::to_dds_string(my_long) + "\n";
2610  break;
2611  }
2612  case TK_UINT32: {
2613  ACE_CDR::ULong my_ulong;
2614  if (dd.get_uint32_value(my_ulong, DISCRIMINATOR_ID) != DDS::RETCODE_OK) {
2615  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2616  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_integral_value: failed to get_uint32_value\n"));
2617  }
2618  return false;
2619  }
2620  type_string += " = " + DCPS::to_dds_string(my_ulong) + "\n";
2621  break;
2622  }
2623  case TK_INT64: {
2624  ACE_CDR::LongLong my_longlong;
2625  if (dd.get_int64_value(my_longlong, DISCRIMINATOR_ID) != DDS::RETCODE_OK) {
2626  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2627  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_integral_value: failed to get_int64_value\n"));
2628  }
2629  return false;
2630  }
2631  type_string += " = " + DCPS::to_dds_string(my_longlong) + "\n";
2632  break;
2633  }
2634  case TK_UINT64: {
2635  ACE_CDR::ULongLong my_ulonglong;
2636  if (dd.get_uint64_value(my_ulonglong, DISCRIMINATOR_ID) != DDS::RETCODE_OK) {
2637  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2638  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_integral_value: failed to get_uint64_value\n"));
2639  }
2640  return false;
2641  }
2642  type_string += " = " + DCPS::to_dds_string(my_ulonglong) + "\n";
2643  break;
2644  }
2645  case TK_BOOLEAN: {
2646  ACE_CDR::Boolean my_bool;
2647  if (dd.get_boolean_value(my_bool, DISCRIMINATOR_ID) != DDS::RETCODE_OK) {
2648  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2649  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_integral_value: failed to get_boolean_value\n"));
2650  }
2651  return false;
2652  }
2653  DCPS::String bool_string = my_bool ? "true" : "false";
2654  type_string += " = " + bool_string + "\n";
2655  break;
2656  }
2657  case TK_BYTE: {
2658  ACE_CDR::Octet my_byte;
2659  if (dd.get_byte_value(my_byte, DISCRIMINATOR_ID) != DDS::RETCODE_OK) {
2660  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2661  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_integral_value: failed to get_byte_value\n"));
2662  }
2663  return false;
2664  }
2665  std::stringstream os;
2666  os << std::hex << std::setfill('0') << std::setw(2) << int(my_byte);
2667  type_string += " = 0x" + os.str() + "\n";
2668  break;
2669  }
2670  case TK_CHAR8: {
2671  ACE_CDR::Char my_char;
2672  if (dd.get_char8_value(my_char, DISCRIMINATOR_ID) != DDS::RETCODE_OK) {
2673  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2674  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_integral_value: failed to get_char8_value\n"));
2675  }
2676  return false;
2677  }
2678  std::stringstream os;
2679  DCPS::char_helper<ACE_CDR::Char>(os, my_char);
2680  type_string += " = '" + os.str() + "'\n";
2681  break;
2682  }
2683 #ifdef DDS_HAS_WCHAR
2684  case TK_CHAR16: {
2685  ACE_CDR::WChar my_wchar;
2686  if (dd.get_char16_value(my_wchar, DISCRIMINATOR_ID) != DDS::RETCODE_OK) {
2687  if (DCPS::log_level >= DCPS::LogLevel::Notice) {
2688  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: print_integral_value: failed to get_char16_value\n"));
2689  }
2690  return false;
2691  }
2692  std::stringstream os;
2693  DCPS::char_helper<ACE_CDR::WChar>(os, my_wchar);
2694  type_string += " = L'" + os.str() + "'\n";
2695  break;
2696  }
2697 #endif
2698  }
2699  return true;
2700 }
ACE_Byte Octet
const TypeKind TK_CHAR8
Definition: TypeObject.h:156
const ACE_CDR::ULong DISCRIMINATOR_ID
Implementation specific sentinel for a union discriminator used in DynamicData.
Definition: TypeObject.h:832
#define ACE_ERROR(X)
ACE_INT64 LongLong
const TypeKind TK_INT32
Definition: TypeObject.h:146
const TypeKind TK_INT16
Definition: TypeObject.h:145
const TypeKind TK_UINT16
Definition: TypeObject.h:148
ACE_UINT64 ULongLong
const TypeKind TK_ENUM
Definition: TypeObject.h:167
const TypeKind TK_INT8
Definition: TypeObject.h:154
DCPS::RcHandle< DynamicTypeMember > DynamicTypeMember_rch
ACE_CDR::ULong LBound
Definition: TypeObject.h:231
const TypeKind TK_BYTE
Definition: TypeObject.h:144
OpenDDS_Dcps_Export LogLevel log_level
ACE_INT16 Short
const TypeKind TK_CHAR16
Definition: TypeObject.h:157
const TypeKind TK_INT64
Definition: TypeObject.h:147
char Char
ACE_UINT16 UShort
ACE_UINT32 ULong
ACE_INT32 Long
std::string String
const ReturnCode_t RETCODE_OK
const TypeKind TK_UINT64
Definition: TypeObject.h:150
const TypeKind TK_UINT32
Definition: TypeObject.h:149
ACE_INT8 Int8
const TypeKind TK_UINT8
Definition: TypeObject.h:155
ACE_WCHAR_T WChar
bool Boolean
const TypeKind TK_BOOLEAN
Definition: TypeObject.h:143
ACE_UINT8 UInt8
String to_dds_string(unsigned short to_convert)

◆ read_empty_xcdr2_nonfinal()

bool OpenDDS::XTypes::read_empty_xcdr2_nonfinal ( DCPS::Serializer strm)

Definition at line 996 of file TypeObject.cpp.

References OpenDDS::DCPS::Serializer::read_delimiter(), and OpenDDS::DCPS::Serializer::skip().

Referenced by OpenDDS::DCPS::operator>>().

997 {
998  size_t total_size = 0;
999  if (!strm.read_delimiter(total_size)) {
1000  return false;
1001  }
1002  return strm.skip(total_size);
1003 }

◆ serialize_type_info()

template<typename T >
void OpenDDS::XTypes::serialize_type_info ( const TypeInformation type_info,
T &  seq,
const DCPS::Encoding encoding_option = 0 
)

Definition at line 2331 of file TypeObject.h.

References ACE_ERROR, ACE_TEXT(), OpenDDS::STUN::encoding(), get_typeobject_encoding(), LM_ERROR, and OpenDDS::DCPS::serialized_size().

Referenced by OpenDDS::DCPS::InfoRepoDiscovery::add_publication(), OpenDDS::DCPS::InfoRepoDiscovery::add_subscription(), OpenDDS::DCPS::StaticEndpointManager::match_continue(), and OpenDDS::RTPS::Sedp::match_continue().

2333  {
2334  const DCPS::Encoding& encoding = encoding_option ? *encoding_option : get_typeobject_encoding();
2335  const size_t sz = DCPS::serialized_size(encoding, type_info);
2336  seq.length(static_cast<unsigned>(sz));
2337  DCPS::MessageBlockHelper<T> helper(seq);
2338  DCPS::Serializer serializer(helper, encoding);
2339  if (!(serializer << type_info)) {
2340  ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) ERROR: serialize_type_info ")
2341  ACE_TEXT("serialization of type information failed.\n")));
2342  }
2343  }
#define ACE_ERROR(X)
void serialized_size(const Encoding &, size_t &, const XTypes::MinimalTypeDetail &)
Definition: TypeObject.h:2544
const Encoding & get_typeobject_encoding()
Definition: TypeObject.cpp:23
ACE_TEXT("TCP_Factory")
const DCPS::Encoding encoding(DCPS::Encoding::KIND_UNALIGNED_CDR, DCPS::ENDIAN_BIG)

◆ test_equality_i() [1/5]

bool OpenDDS::XTypes::test_equality_i ( const TypeDescriptor lhs,
const TypeDescriptor rhs,
DynamicTypePtrPairSeen &  dt_ptr_pair 
)

Definition at line 26 of file TypeDescriptor.cpp.

References OpenDDS::XTypes::TypeDescriptor::base_type, OpenDDS::XTypes::TypeDescriptor::bound, OpenDDS::XTypes::TypeDescriptor::discriminator_type, OpenDDS::XTypes::TypeDescriptor::element_type, OpenDDS::XTypes::TypeDescriptor::extensibility_kind, OpenDDS::XTypes::TypeDescriptor::is_nested, OpenDDS::XTypes::TypeDescriptor::key_element_type, OpenDDS::XTypes::TypeDescriptor::kind, OpenDDS::XTypes::TypeDescriptor::name, OPENDDS_END_VERSIONED_NAMESPACE_DECL, and test_equality_i().

27 {
28  return
29  lhs.kind == rhs.kind &&
30  lhs.name == rhs.name &&
31  test_equality_i(lhs.base_type, rhs.base_type, dt_ptr_pair) &&
32  test_equality_i(lhs.discriminator_type, rhs.discriminator_type, dt_ptr_pair) &&
33  lhs.bound == rhs.bound &&
34  test_equality_i(lhs.element_type, rhs.element_type, dt_ptr_pair) &&
35  test_equality_i(lhs.key_element_type, rhs.key_element_type, dt_ptr_pair) &&
36  lhs.extensibility_kind == rhs.extensibility_kind &&
37  lhs.is_nested == rhs.is_nested;
38 }
bool test_equality_i(const TypeDescriptor &lhs, const TypeDescriptor &rhs, DynamicTypePtrPairSeen &dt_ptr_pair)

◆ test_equality_i() [2/5]

bool OpenDDS::XTypes::test_equality_i ( const MemberDescriptor lhs,
const MemberDescriptor rhs,
DynamicTypePtrPairSeen &  dt_ptr_pair 
)

Definition at line 40 of file MemberDescriptor.cpp.

References OpenDDS::XTypes::MemberDescriptor::default_value, OpenDDS::XTypes::MemberDescriptor::get_type(), OpenDDS::XTypes::MemberDescriptor::id, OpenDDS::XTypes::MemberDescriptor::index, OpenDDS::XTypes::MemberDescriptor::is_default_label, OpenDDS::XTypes::MemberDescriptor::is_key, OpenDDS::XTypes::MemberDescriptor::is_must_understand, OpenDDS::XTypes::MemberDescriptor::is_optional, OpenDDS::XTypes::MemberDescriptor::is_shared, OpenDDS::XTypes::MemberDescriptor::label, OpenDDS::XTypes::MemberDescriptor::name, OPENDDS_END_VERSIONED_NAMESPACE_DECL, test_equality_i(), and OpenDDS::XTypes::MemberDescriptor::try_construct_kind.

41 {
42  DynamicType_rch lhs_type = lhs.get_type();
43  DynamicType_rch rhs_type = rhs.get_type();
44  return
45  lhs.name == rhs.name &&
46  lhs.id == rhs.id &&
47  test_equality_i(lhs_type, rhs_type, dt_ptr_pair) &&
48  lhs.default_value == rhs.default_value &&
49  lhs.index == rhs.index &&
50  lhs.label == rhs.label &&
51  lhs.try_construct_kind == rhs.try_construct_kind &&
52  lhs.is_key == rhs.is_key &&
53  lhs.is_optional == rhs.is_optional &&
54  lhs.is_must_understand == rhs.is_must_understand &&
55  lhs.is_shared == rhs.is_shared &&
56  lhs.is_default_label == rhs.is_default_label;
57 }
bool test_equality_i(const MemberDescriptor &lhs, const MemberDescriptor &rhs, DynamicTypePtrPairSeen &dt_ptr_pair)
DCPS::RcHandle< DynamicType > DynamicType_rch

◆ test_equality_i() [3/5]

bool OpenDDS::XTypes::test_equality_i ( const DynamicTypeMembersByName &  lhs,
const DynamicTypeMembersByName &  rhs,
DynamicTypePtrPairSeen &  dt_ptr_pair 
)

Definition at line 73 of file DynamicTypeMember.cpp.

References test_equality_i().

74 {
75  if (lhs.size() == rhs.size()) {
76  for (DynamicTypeMembersByName::const_iterator lhs_it = lhs.begin(); lhs_it != lhs.end(); ++lhs_it) {
77  const DynamicTypeMembersByName::const_iterator rhs_it = rhs.find(lhs_it->first);
78  if (rhs_it == rhs.end() ||
79  !test_equality_i(lhs_it->second->get_descriptor(), rhs_it->second->get_descriptor(), dt_ptr_pair)) {
80  return false;
81  }
82  }
83  return true;
84  }
85  return false;
86 }
bool test_equality_i(const DynamicTypeMembersById &lhs, const DynamicTypeMembersById &rhs, DynamicTypePtrPairSeen &dt_ptr_pair)

◆ test_equality_i() [4/5]

bool OpenDDS::XTypes::test_equality_i ( const DynamicTypeMembersById &  lhs,
const DynamicTypeMembersById &  rhs,
DynamicTypePtrPairSeen &  dt_ptr_pair 
)

Definition at line 88 of file DynamicTypeMember.cpp.

References OPENDDS_END_VERSIONED_NAMESPACE_DECL, and test_equality_i().

89 {
90  if (lhs.size() == rhs.size()) {
91  for (DynamicTypeMembersById::const_iterator lhs_it = lhs.begin(); lhs_it != lhs.end(); ++lhs_it) {
92  DynamicTypeMembersById::const_iterator rhs_it = rhs.find(lhs_it->first);
93  if (rhs_it == rhs.end() ||
94  !test_equality_i(lhs_it->second->get_descriptor(), rhs_it->second->get_descriptor(), dt_ptr_pair)) {
95  return false;
96  }
97  }
98  return true;
99  }
100  return false;
101 }
bool test_equality_i(const DynamicTypeMembersById &lhs, const DynamicTypeMembersById &rhs, DynamicTypePtrPairSeen &dt_ptr_pair)

◆ test_equality_i() [5/5]

bool OpenDDS::XTypes::test_equality_i ( const DynamicType_rch lhs,
const DynamicType_rch rhs,
DynamicTypePtrPairSeen &  dt_ptr_pair 
)

Definition at line 139 of file DynamicType.cpp.

References OpenDDS::DCPS::RcHandle< T >::in(), and OPENDDS_END_VERSIONED_NAMESPACE_DECL.

Referenced by OpenDDS::XTypes::DynamicTypeMember::equals(), OpenDDS::XTypes::MemberDescriptor::equals(), OpenDDS::XTypes::TypeDescriptor::equals(), operator==(), OpenDDS::XTypes::DynamicType::test_equality_i(), and test_equality_i().

140 {
141  if (lhs.in() == rhs.in()) {
142  return true;
143  } else if (lhs.in() == 0 || rhs.in() == 0) {
144  return false;
145  } else {
146  return lhs->test_equality_i(*rhs, dt_ptr_pair);
147  }
148 }

◆ write_empty_xcdr2_nonfinal()

bool OpenDDS::XTypes::write_empty_xcdr2_nonfinal ( DCPS::Serializer strm)

Definition at line 989 of file TypeObject.cpp.

References OpenDDS::DCPS::Serializer::encoding(), OpenDDS::DCPS::serialized_size_delimiter(), and OpenDDS::DCPS::Serializer::write_delimiter().

Referenced by OpenDDS::DCPS::operator<<().

990 {
991  size_t size = 0;
992  serialized_size_delimiter(strm.encoding(), size);
993  return strm.write_delimiter(size);
994 }
OpenDDS_Dcps_Export void serialized_size_delimiter(const Encoding &encoding, size_t &size)
Add delimiter to the size of a serialized size if the encoding has them.

Variable Documentation

◆ ANNOTATION_OCTETSEC_VALUE_MAX_LEN

const ACE_CDR::ULong OpenDDS::XTypes::ANNOTATION_OCTETSEC_VALUE_MAX_LEN = 128

Definition at line 834 of file TypeObject.h.

◆ ANNOTATION_STR_VALUE_MAX_LEN

const ACE_CDR::ULong OpenDDS::XTypes::ANNOTATION_STR_VALUE_MAX_LEN = 128

Definition at line 833 of file TypeObject.h.

◆ DISCRIMINATOR_ID

const ACE_CDR::ULong OpenDDS::XTypes::DISCRIMINATOR_ID = MEMBER_ID_INVALID - 1

◆ EK_BOTH

const EquivalenceKind OpenDDS::XTypes::EK_BOTH = 0xF3

◆ EK_COMPLETE

const EquivalenceKind OpenDDS::XTypes::EK_COMPLETE = 0xF2

Definition at line 135 of file TypeObject.h.

Referenced by OpenDDS::XTypes::TypeIdentifier::activate(), OpenDDS::XTypes::TypeAssignability::assignable(), OpenDDS::XTypes::TypeAssignability::assignable_alias(), OpenDDS::XTypes::TypeAssignability::assignable_array(), OpenDDS::XTypes::TypeAssignability::assignable_bitmask(), OpenDDS::XTypes::TypeAssignability::assignable_enum(), OpenDDS::XTypes::TypeAssignability::assignable_map(), OpenDDS::XTypes::TypeAssignability::assignable_plain_array(), OpenDDS::XTypes::TypeAssignability::assignable_plain_map(), OpenDDS::XTypes::TypeAssignability::assignable_plain_sequence(), OpenDDS::XTypes::TypeAssignability::assignable_primitive(), OpenDDS::XTypes::TypeAssignability::assignable_sequence(), OpenDDS::XTypes::TypeAssignability::assignable_string(), OpenDDS::XTypes::TypeAssignability::assignable_struct(), OpenDDS::XTypes::TypeAssignability::assignable_union(), compute_dependencies(), OpenDDS::XTypes::TypeAssignability::equal_type_id(), typeobject_generator::generate_alias_type_identifier(), typeobject_generator::generate_array_type_identifier(), typeobject_generator::generate_enum_type_identifier(), typeobject_generator::generate_sequence_type_identifier(), typeobject_generator::generate_struct_type_identifier(), typeobject_generator::generate_union_type_identifier(), OpenDDS::XTypes::TypeAssignability::get_base_type(), OpenDDS::XTypes::TypeLookupService::get_minimal_type_identifier(), has_type_object(), OpenDDS::XTypes::TypeAssignability::hold_key(), OpenDDS::XTypes::TypeAssignability::is_delimited(), makeTypeIdentifier(), OpenDDS::XTypes::TypeIdentifier::operator<(), OpenDDS::DCPS::operator<<(), OpenDDS::DCPS::operator>>(), OpenDDS::DCPS::TypeSupportImpl::populate_dependencies(), OpenDDS::DCPS::TypeSupportImpl::populate_dependencies_i(), OpenDDS::XTypes::TypeIdentifier::reset(), OpenDDS::DCPS::serialized_size(), typeobject_generator::strong_connect(), and OpenDDS::XTypes::TypeLookupService::type_identifier_to_dynamic().

◆ EK_MINIMAL

const EquivalenceKind OpenDDS::XTypes::EK_MINIMAL = 0xF1

Definition at line 134 of file TypeObject.h.

Referenced by OpenDDS::XTypes::TypeIdentifier::activate(), OpenDDS::XTypes::TypeAssignability::assignable(), OpenDDS::XTypes::TypeAssignability::assignable_alias(), OpenDDS::XTypes::TypeAssignability::assignable_array(), OpenDDS::XTypes::TypeAssignability::assignable_bitmask(), OpenDDS::XTypes::TypeAssignability::assignable_enum(), OpenDDS::XTypes::TypeAssignability::assignable_map(), OpenDDS::XTypes::TypeAssignability::assignable_plain_array(), OpenDDS::XTypes::TypeAssignability::assignable_plain_map(), OpenDDS::XTypes::TypeAssignability::assignable_plain_sequence(), OpenDDS::XTypes::TypeAssignability::assignable_primitive(), OpenDDS::XTypes::TypeAssignability::assignable_sequence(), OpenDDS::XTypes::TypeAssignability::assignable_string(), OpenDDS::XTypes::TypeAssignability::assignable_struct(), OpenDDS::XTypes::TypeAssignability::assignable_union(), OpenDDS::XTypes::TypeLookupService::complete_to_minimal_type_object(), compute_dependencies(), OpenDDS::XTypes::TypeAssignability::equal_type_id(), OpenDDS::XTypes::TypeLookupService::extensibility(), typeobject_generator::generate_alias_type_identifier(), typeobject_generator::generate_array_type_identifier(), typeobject_generator::generate_enum_type_identifier(), typeobject_generator::generate_sequence_type_identifier(), typeobject_generator::generate_struct_type_identifier(), typeobject_generator::generate_union_type_identifier(), OpenDDS::XTypes::TypeAssignability::get_base_type(), OpenDDS::XTypes::TypeAssignability::get_map_bound(), OpenDDS::XTypes::TypeLookupService::get_minimal_type_identifier(), OpenDDS::XTypes::TypeAssignability::get_sequence_bound(), OpenDDS::XTypes::TypeAssignability::get_string_bound(), OpenDDS::XTypes::TypeAssignability::get_struct_member(), OpenDDS::XTypes::TypeAssignability::get_union_member(), has_type_object(), OpenDDS::XTypes::TypeAssignability::hold_key(), OpenDDS::XTypes::TypeAssignability::is_delimited(), OpenDDS::DCPS::kind_to_string(), makeTypeIdentifier(), OpenDDS::XTypes::TypeIdentifier::operator<(), OpenDDS::DCPS::operator<<(), OpenDDS::DCPS::operator>>(), OpenDDS::DCPS::TypeSupportImpl::populate_dependencies(), OpenDDS::DCPS::TypeSupportImpl::populate_dependencies_i(), OpenDDS::XTypes::TypeIdentifier::reset(), OpenDDS::DCPS::serialized_size(), typeobject_generator::strong_connect(), OpenDDS::XTypes::TypeAssignability::struct_rule_enum_key(), and OpenDDS::XTypes::TypeLookupService::type_identifier_to_dynamic().

◆ INVALID_LBOUND

const LBound OpenDDS::XTypes::INVALID_LBOUND = 0

Definition at line 233 of file TypeObject.h.

◆ INVALID_SBOUND

const SBound OpenDDS::XTypes::INVALID_SBOUND = 0

Definition at line 238 of file TypeObject.h.

◆ IS_APPENDABLE

const TypeFlag OpenDDS::XTypes::IS_APPENDABLE = 1 << 1

◆ IS_AUTOID_HASH

const TypeFlag OpenDDS::XTypes::IS_AUTOID_HASH = 1 << 4

◆ IS_DEFAULT

const MemberFlag OpenDDS::XTypes::IS_DEFAULT = 1 << 6

◆ IS_EXTERNAL

const MemberFlag OpenDDS::XTypes::IS_EXTERNAL = 1 << 2

◆ IS_FINAL

const TypeFlag OpenDDS::XTypes::IS_FINAL = 1 << 0

◆ IS_KEY

const MemberFlag OpenDDS::XTypes::IS_KEY = 1 << 5

◆ IS_MUST_UNDERSTAND

const MemberFlag OpenDDS::XTypes::IS_MUST_UNDERSTAND = 1 << 4

◆ IS_MUTABLE

const TypeFlag OpenDDS::XTypes::IS_MUTABLE = 1 << 2

◆ IS_NESTED

const TypeFlag OpenDDS::XTypes::IS_NESTED = 1 << 3

◆ IS_OPTIONAL

const MemberFlag OpenDDS::XTypes::IS_OPTIONAL = 1 << 3

◆ MEMBER_ID_INVALID

const ACE_CDR::ULong OpenDDS::XTypes::MEMBER_ID_INVALID = ACE_UINT32_MAX

◆ MEMBER_NAME_MAX_LENGTH

const ACE_CDR::Long OpenDDS::XTypes::MEMBER_NAME_MAX_LENGTH = 256

Definition at line 203 of file TypeObject.h.

◆ MemberFlagMinimalMask

const MemberFlag OpenDDS::XTypes::MemberFlagMinimalMask = 0x003f

Definition at line 313 of file TypeObject.h.

◆ TI_PLAIN_ARRAY_LARGE

const TypeIdentifierKind OpenDDS::XTypes::TI_PLAIN_ARRAY_LARGE = 0x91

◆ TI_PLAIN_ARRAY_SMALL

const TypeIdentifierKind OpenDDS::XTypes::TI_PLAIN_ARRAY_SMALL = 0x90

◆ TI_PLAIN_MAP_LARGE

const TypeIdentifierKind OpenDDS::XTypes::TI_PLAIN_MAP_LARGE = 0xA1

◆ TI_PLAIN_MAP_SMALL

const TypeIdentifierKind OpenDDS::XTypes::TI_PLAIN_MAP_SMALL = 0xA0

◆ TI_PLAIN_SEQUENCE_LARGE

const TypeIdentifierKind OpenDDS::XTypes::TI_PLAIN_SEQUENCE_LARGE = 0x81

◆ TI_PLAIN_SEQUENCE_SMALL

const TypeIdentifierKind OpenDDS::XTypes::TI_PLAIN_SEQUENCE_SMALL = 0x80

◆ TI_STRING16_LARGE

const TypeIdentifierKind OpenDDS::XTypes::TI_STRING16_LARGE = 0x73

◆ TI_STRING16_SMALL

const TypeIdentifierKind OpenDDS::XTypes::TI_STRING16_SMALL = 0x72

◆ TI_STRING8_LARGE

const TypeIdentifierKind OpenDDS::XTypes::TI_STRING8_LARGE = 0x71

◆ TI_STRING8_SMALL

const TypeIdentifierKind OpenDDS::XTypes::TI_STRING8_SMALL = 0x70

◆ TI_STRONGLY_CONNECTED_COMPONENT

const TypeIdentifierKind OpenDDS::XTypes::TI_STRONGLY_CONNECTED_COMPONENT = 0xB0

◆ TK_ALIAS

const TypeKind OpenDDS::XTypes::TK_ALIAS = 0x30

Definition at line 164 of file TypeObject.h.

Referenced by OpenDDS::XTypes::TypeAssignability::assignable(), OpenDDS::XTypes::TypeAssignability::assignable_alias(), OpenDDS::XTypes::TypeAssignability::assignable_array(), OpenDDS::XTypes::TypeAssignability::assignable_bitmask(), OpenDDS::XTypes::TypeAssignability::assignable_enum(), OpenDDS::XTypes::TypeAssignability::assignable_map(), OpenDDS::XTypes::TypeAssignability::assignable_plain_array(), OpenDDS::XTypes::TypeAssignability::assignable_plain_map(), OpenDDS::XTypes::TypeAssignability::assignable_plain_sequence(), OpenDDS::XTypes::TypeAssignability::assignable_primitive(), OpenDDS::XTypes::TypeAssignability::assignable_sequence(), OpenDDS::XTypes::TypeAssignability::assignable_string(), OpenDDS::XTypes::TypeAssignability::assignable_struct(), OpenDDS::XTypes::TypeAssignability::assignable_union(), OpenDDS::XTypes::TypeLookupService::complete_to_dynamic_i(), OpenDDS::XTypes::TypeLookupService::complete_to_minimal_type_object(), typeobject_generator::generate_alias_type_identifier(), OpenDDS::XTypes::DynamicType::get_base_type(), OpenDDS::XTypes::TypeAssignability::get_base_type(), OpenDDS::XTypes::TypeAssignability::get_map_bound(), OpenDDS::XTypes::TypeAssignability::get_sequence_bound(), OpenDDS::XTypes::TypeAssignability::get_string_bound(), OpenDDS::XTypes::TypeAssignability::get_struct_member(), OpenDDS::XTypes::TypeAssignability::get_union_member(), has_type_object(), OpenDDS::XTypes::TypeAssignability::hold_key(), OpenDDS::XTypes::TypeAssignability::is_delimited(), OpenDDS::DCPS::operator<<(), OpenDDS::DCPS::operator>>(), OpenDDS::DCPS::serialized_size(), OpenDDS::XTypes::TypeAssignability::struct_rule_enum_key(), and OpenDDS::XTypes::DynamicData::typekind_to_string().

◆ TK_ANNOTATION

const TypeKind OpenDDS::XTypes::TK_ANNOTATION = 0x50

◆ TK_ARRAY

const TypeKind OpenDDS::XTypes::TK_ARRAY = 0x61

◆ TK_BITMASK

const TypeKind OpenDDS::XTypes::TK_BITMASK = 0x41

◆ TK_BITSET

const TypeKind OpenDDS::XTypes::TK_BITSET = 0x53

◆ TK_BOOLEAN

const TypeKind OpenDDS::XTypes::TK_BOOLEAN = 0x01

◆ TK_BYTE

const TypeKind OpenDDS::XTypes::TK_BYTE = 0x02

◆ TK_CHAR16

const TypeKind OpenDDS::XTypes::TK_CHAR16 = 0x11

◆ TK_CHAR8

const TypeKind OpenDDS::XTypes::TK_CHAR8 = 0x10

◆ TK_ENUM

const TypeKind OpenDDS::XTypes::TK_ENUM = 0x40

◆ TK_FLOAT128

const TypeKind OpenDDS::XTypes::TK_FLOAT128 = 0x0B

◆ TK_FLOAT32

const TypeKind OpenDDS::XTypes::TK_FLOAT32 = 0x09

◆ TK_FLOAT64

const TypeKind OpenDDS::XTypes::TK_FLOAT64 = 0x0A

◆ TK_INT16

const TypeKind OpenDDS::XTypes::TK_INT16 = 0x03

◆ TK_INT32

const TypeKind OpenDDS::XTypes::TK_INT32 = 0x04

◆ TK_INT64

const TypeKind OpenDDS::XTypes::TK_INT64 = 0x05

◆ TK_INT8

const TypeKind OpenDDS::XTypes::TK_INT8 = 0x0C

◆ TK_MAP

const TypeKind OpenDDS::XTypes::TK_MAP = 0x62

◆ TK_NONE

const TypeKind OpenDDS::XTypes::TK_NONE = 0x00

◆ TK_SEQUENCE

const TypeKind OpenDDS::XTypes::TK_SEQUENCE = 0x60

Definition at line 177 of file TypeObject.h.

Referenced by OpenDDS::XTypes::TypeAssignability::assignable(), OpenDDS::XTypes::TypeAssignability::assignable_alias(), OpenDDS::XTypes::TypeAssignability::assignable_plain_sequence(), OpenDDS::XTypes::TypeAssignability::assignable_sequence(), OpenDDS::XTypes::TypeLookupService::complete_to_dynamic_i(), OpenDDS::XTypes::TypeLookupService::complete_to_minimal_type_object(), typeobject_generator::generate_sequence_type_identifier(), OpenDDS::XTypes::DynamicData::get_boolean_value(), OpenDDS::XTypes::DynamicData::get_char_common(), OpenDDS::XTypes::DynamicData::get_complex_value(), OpenDDS::XTypes::DynamicData::get_from_struct_common_checks(), OpenDDS::XTypes::DynamicData::get_index_from_id(), OpenDDS::XTypes::DynamicData::get_item_count(), OpenDDS::XTypes::DynamicData::get_member_id_at_index(), OpenDDS::XTypes::DynamicData::get_member_id_by_name(), OpenDDS::XTypes::TypeAssignability::get_sequence_bound(), OpenDDS::XTypes::DynamicData::get_sequence_values(), OpenDDS::XTypes::DynamicData::get_single_value(), OpenDDS::XTypes::DynamicData::get_value_from_collection(), OpenDDS::XTypes::DynamicData::get_values_from_array(), OpenDDS::XTypes::DynamicData::get_values_from_map(), OpenDDS::XTypes::DynamicData::get_values_from_sequence(), OpenDDS::XTypes::DynamicData::get_values_from_union(), has_type_object(), OpenDDS::XTypes::TypeAssignability::is_delimited(), OpenDDS::DCPS::operator<<(), OpenDDS::DCPS::operator>>(), print_dynamic_data(), OpenDDS::DCPS::serialized_size(), OpenDDS::XTypes::DynamicData::skip_collection_member(), OpenDDS::XTypes::DynamicData::skip_member(), OpenDDS::XTypes::DynamicData::skip_to_struct_member(), OpenDDS::XTypes::TypeLookupService::type_identifier_to_dynamic(), and OpenDDS::XTypes::DynamicData::typekind_to_string().

◆ TK_STRING16

const TypeKind OpenDDS::XTypes::TK_STRING16 = 0x21

◆ TK_STRING8

const TypeKind OpenDDS::XTypes::TK_STRING8 = 0x20

◆ TK_STRUCTURE

const TypeKind OpenDDS::XTypes::TK_STRUCTURE = 0x51

◆ TK_UINT16

const TypeKind OpenDDS::XTypes::TK_UINT16 = 0x06

◆ TK_UINT32

const TypeKind OpenDDS::XTypes::TK_UINT32 = 0x07

◆ TK_UINT64

const TypeKind OpenDDS::XTypes::TK_UINT64 = 0x08

◆ TK_UINT8

const TypeKind OpenDDS::XTypes::TK_UINT8 = 0x0D

◆ TK_UNION

const TypeKind OpenDDS::XTypes::TK_UNION = 0x52

◆ TRY_CONSTRUCT1

const MemberFlag OpenDDS::XTypes::TRY_CONSTRUCT1 = 1 << 0

◆ TRY_CONSTRUCT2

const MemberFlag OpenDDS::XTypes::TRY_CONSTRUCT2 = 1 << 1

◆ TryConstructDiscardValue

const MemberFlag OpenDDS::XTypes::TryConstructDiscardValue = TRY_CONSTRUCT1

Definition at line 307 of file TypeObject.h.

◆ TryConstructTrimValue

const MemberFlag OpenDDS::XTypes::TryConstructTrimValue = TRY_CONSTRUCT1 | TRY_CONSTRUCT2

Definition at line 309 of file TypeObject.h.

◆ TryConstructUseDefaultValue

const MemberFlag OpenDDS::XTypes::TryConstructUseDefaultValue = TRY_CONSTRUCT2

Definition at line 308 of file TypeObject.h.

◆ TYPE_NAME_MAX_LENGTH

const ACE_CDR::Long OpenDDS::XTypes::TYPE_NAME_MAX_LENGTH = 256

Definition at line 208 of file TypeObject.h.

◆ TypeFlagMinimalMask

const TypeFlag OpenDDS::XTypes::TypeFlagMinimalMask = 0x0007

Definition at line 336 of file TypeObject.h.

◆ TypeLookup_getDependencies_HashId

const ACE_CDR::ULong OpenDDS::XTypes::TypeLookup_getDependencies_HashId = 0x05aafb31

◆ TypeLookup_getTypes_HashId

const ACE_CDR::ULong OpenDDS::XTypes::TypeLookup_getTypes_HashId = 0x018252d3