24 #include <type_traits> 27 #include <fastdds/rtps/common/Types.h> 45 using eprosima::fastrtps::rtps::octet;
199 RETCODE_UNSUPPORTED = 2,
200 RETCODE_BAD_PARAMETER = 3,
201 RETCODE_PRECONDITION_NOT_MET = 4,
202 RETCODE_OUT_OF_RESOURCES = 5,
203 RETCODE_NOT_ENABLED = 6,
204 RETCODE_IMMUTABLE_POLICY = 7,
205 RETCODE_INCONSISTENT_POLICY = 8,
206 RETCODE_ALREADY_DELETED = 9,
207 RETCODE_TIMEOUT = 10,
208 RETCODE_NO_DATA = 11,
209 RETCODE_ILLEGAL_OPERATION = 12,
210 RETCODE_NOT_ALLOWED_BY_SECURITY = 13
227 return value_ == c.value_;
233 return value_ != c.value_;
236 explicit operator bool() =
delete;
238 uint32_t operator ()()
const 243 bool operator !()
const 254 return b.operator ==(
262 return b.operator !=(
270 return b.operator ==(
278 return b.operator !=(
287 #define INDEX_INVALID UINT32_MAX 306 const std::vector<T>& a,
307 const std::vector<T>& b)
309 if (a.size() == b.size())
311 auto aIt = a.begin();
312 auto bIt = b.begin();
313 while (aIt != a.end() && bIt != b.end())
339 std::bitset<16> m_MemberFlag;
349 : m_MemberFlag(x.m_MemberFlag)
355 : m_MemberFlag(std::move(x.m_MemberFlag))
362 m_MemberFlag = x.m_MemberFlag;
369 m_MemberFlag = std::move(x.m_MemberFlag);
376 return m_MemberFlag.test(0);
382 b ? m_MemberFlag.set(0) : m_MemberFlag.reset(0);
388 return m_MemberFlag.test(1);
394 b ? m_MemberFlag.set(1) : m_MemberFlag.reset(1);
401 return m_MemberFlag.test(2);
407 b ? m_MemberFlag.set(2) : m_MemberFlag.reset(2);
413 return m_MemberFlag.test(3);
419 b ? m_MemberFlag.set(3) : m_MemberFlag.reset(3);
425 return m_MemberFlag.test(4);
431 b ? m_MemberFlag.set(4) : m_MemberFlag.reset(4);
437 return m_MemberFlag.test(5);
443 b ? m_MemberFlag.set(5) : m_MemberFlag.reset(5);
449 return m_MemberFlag.test(6);
455 b ? m_MemberFlag.set(6) : m_MemberFlag.reset(6);
461 return m_MemberFlag == other.m_MemberFlag;
466 std::string str_value;
468 str_value = m_MemberFlag.to_string() + str_value;
470 return std::bitset<16>(str_value);
474 const std::bitset<16>&
bitset)
476 std::string str_value {
bitset.to_string()};
477 size_t base_diff {0};
478 size_t last_post {std::string::npos};
481 m_MemberFlag = std::bitset<16>(str_value.substr(str_value.length() - base_diff, last_post));
503 std::bitset<16> m_TypeFlag;
513 : m_TypeFlag(x.m_TypeFlag)
519 : m_TypeFlag(std::move(x.m_TypeFlag))
526 m_TypeFlag = x.m_TypeFlag;
533 m_TypeFlag = std::move(x.m_TypeFlag);
540 return m_TypeFlag.test(0);
546 b ? m_TypeFlag.set(0) : m_TypeFlag.reset(0);
552 return m_TypeFlag.test(1);
558 b ? m_TypeFlag.set(1) : m_TypeFlag.reset(1);
564 return m_TypeFlag.test(2);
570 b ? m_TypeFlag.set(2) : m_TypeFlag.reset(2);
576 return m_TypeFlag.test(3);
582 b ? m_TypeFlag.set(3) : m_TypeFlag.reset(3);
588 return m_TypeFlag.test(4);
594 b ? m_TypeFlag.set(4) : m_TypeFlag.reset(4);
600 return m_TypeFlag == other.m_TypeFlag;
605 std::string str_value;
607 str_value = m_TypeFlag.to_string() + str_value;
609 return std::bitset<16>(str_value);
613 const std::bitset<16>&
bitset)
615 std::string str_value {
bitset.to_string()};
616 size_t base_diff {0};
617 size_t last_post {std::string::npos};
620 m_TypeFlag = std::bitset<16>(str_value.substr(str_value.length() - base_diff, last_post));
647 #endif // TYPES_BASE_H const std::string ANNOTATION_EPKEY_ID
Definition: TypesBase.h:63
void bitset(const std::bitset< 16 > &bitset)
Definition: TypesBase.h:612
void IS_MUST_UNDERSTAND(bool b)
Definition: TypesBase.h:428
const std::string TKNAME_INT32
Definition: TypesBase.h:86
const std::string TKNAME_INT8
Definition: TypesBase.h:92
void IS_DEFAULT(bool b)
Definition: TypesBase.h:452
void IS_APPENDABLE(bool b)
Definition: TypesBase.h:555
MemberFlag AliasMemberFlag
Definition: TypesBase.h:492
const octet TK_UINT16
Definition: TypesBase.h:128
const std::string ANNOTATION_NON_SERIALIZED_ID
Definition: TypesBase.h:72
const std::string TKNAME_MAP
Definition: TypesBase.h:111
void bitset(const std::bitset< 16 > &bitset)
Definition: TypesBase.h:473
const std::string EXTENSIBILITY_FINAL
Definition: TypesBase.h:79
std::vector< SBound > SBoundSeq
Definition: TypesBase.h:300
const std::string ANNOTATION_MUTABLE_ID
Definition: TypesBase.h:68
const std::string CONST_TRUE
Definition: TypesBase.h:59
const octet TK_ALIAS
Definition: TypesBase.h:143
std::bitset< 16 > bitset() const
Definition: TypesBase.h:464
const octet TK_ARRAY
Definition: TypesBase.h:157
bool IS_MUTABLE() const
Definition: TypesBase.h:562
const octet TK_CHAR8
Definition: TypesBase.h:134
const std::string TKNAME_BOOLEAN
Definition: TypesBase.h:83
void IS_AUTOID_HASH(bool b)
Definition: TypesBase.h:591
void IS_FINAL(bool b)
Definition: TypesBase.h:543
bool IS_FINAL() const
Definition: TypesBase.h:538
MemberFlag(const MemberFlag &x)
Definition: TypesBase.h:347
const std::string EXTENSIBILITY_MUTABLE
Definition: TypesBase.h:81
octet SBound
Definition: TypesBase.h:299
const int32_t MAX_ELEMENTS_COUNT
Definition: TypesBase.h:290
const std::string TKNAME_UINT8
Definition: TypesBase.h:93
const std::string ANNOTATION_DEFAULT_LITERAL_ID
Definition: TypesBase.h:75
constexpr uint32_t BOUND_UNLIMITED
A special value indicating an unlimited quantity.
Definition: TypesBase.h:43
const std::string TKNAME_BITMASK
Definition: TypesBase.h:104
TypeFlag AnnotationTypeFlag
Definition: TypesBase.h:628
const int32_t MAX_BITMASK_LENGTH
Definition: TypesBase.h:289
MemberFlag EnumeratedLiteralFlag
Definition: TypesBase.h:490
const octet TK_FLOAT64
Definition: TypesBase.h:132
const SBound INVALID_SBOUND
Definition: TypesBase.h:301
const std::string ANNOTATION_TOPIC_ID
Definition: TypesBase.h:64
const LBound INVALID_LBOUND
Definition: TypesBase.h:296
const octet EK_COMPLETE
Definition: TypesBase.h:116
std::vector< LBound > LBoundSeq
Definition: TypesBase.h:295
void IS_NESTED(bool b)
Definition: TypesBase.h:579
const std::string EXTENSIBILITY_APPENDABLE
Definition: TypesBase.h:80
const std::string ANNOTATION_KEY_ID
Definition: TypesBase.h:62
TypeFlag(const TypeFlag &x)
Definition: TypesBase.h:511
OctetSeq & operator++(OctetSeq &)
const std::string ANNOTATION_NESTED_ID
Definition: TypesBase.h:69
const std::string ANNOTATION_BIT_BOUND_ID
Definition: TypesBase.h:73
Definition: TypesBase.h:335
const std::string TKNAME_UINT16
Definition: TypesBase.h:85
uint32_t MemberId
Definition: TypesBase.h:285
bool operator==(const TypeFlag &other) const
Definition: TypesBase.h:597
const uint32_t ANNOTATION_STR_VALUE_MAX_LEN
Definition: TypesBase.h:640
TypeFlag CollectionTypeFlag
Definition: TypesBase.h:627
const octet TK_STRING16
Definition: TypesBase.h:139
RTPS_DllAPI bool operator==(ReturnCode_t::ReturnCodeValue a, const ReturnCode_t &b)
Definition: TypesBase.h:250
void TRY_CONSTRUCT2(bool b)
Definition: TypesBase.h:391
const octet TK_SEQUENCE
Definition: TypesBase.h:156
const octet TK_INT64
Definition: TypesBase.h:127
TypeFlag AliasTypeFlag
Definition: TypesBase.h:629
const octet TK_CHAR16
Definition: TypesBase.h:135
const std::string TKNAME_SEQUENCE
Definition: TypesBase.h:109
const std::string TKNAME_UINT64
Definition: TypesBase.h:89
const std::string TKNAME_FLOAT64
Definition: TypesBase.h:97
const std::string TKNAME_UINT32
Definition: TypesBase.h:87
const std::string TKNAME_FLOAT128
Definition: TypesBase.h:98
const octet TK_BITSET
Definition: TypesBase.h:153
const std::string ANNOTATION_OPTIONAL_ID
Definition: TypesBase.h:70
MemberFlag StructMemberFlag
Definition: TypesBase.h:487
constexpr uint32_t MEMBER_ID_INVALID
Definition: TypesBase.h:286
TypeFlag EnumTypeFlag
Definition: TypesBase.h:630
const std::string TKNAME_BITSET
Definition: TypesBase.h:108
bool IS_MUST_UNDERSTAND() const
Definition: TypesBase.h:423
const std::string ANNOTATION_FINAL_ID
Definition: TypesBase.h:66
std::string QualifiedTypeName
Definition: TypesBase.h:171
const std::string TKNAME_INT16
Definition: TypesBase.h:84
const octet TK_BYTE
Definition: TypesBase.h:124
const std::string ANNOTATION_POSITION_ID
Definition: TypesBase.h:77
MemberFlag()
Definition: TypesBase.h:343
const octet TK_INT32
Definition: TypesBase.h:126
MemberFlag AnnotationParameterFlag
Definition: TypesBase.h:491
bool compareSequence(const std::vector< T > &a, const std::vector< T > &b)
Definition: TypesBase.h:305
const std::string TKNAME_CHAR16T
Definition: TypesBase.h:95
void IS_MUTABLE(bool b)
Definition: TypesBase.h:567
const std::string ANNOTATION_APPENDABLE_ID
Definition: TypesBase.h:67
MemberFlag UnionDiscriminatorFlag
Definition: TypesBase.h:489
TypeFlag BitmaskTypeFlag
Definition: TypesBase.h:631
eProsima namespace.
Definition: LibrarySettingsAttributes.h:23
TypeFlag(TypeFlag &&x)
Definition: TypesBase.h:517
TypeFlag UnionTypeFlag
Definition: TypesBase.h:626
ReturnCode_t(uint32_t e)
Definition: TypesBase.h:218
const uint16_t MemberFlagMinimalMask
Definition: TypesBase.h:183
bool IS_KEY() const
Definition: TypesBase.h:435
const std::string TKNAME_CHAR16
Definition: TypesBase.h:94
const std::string TKNAME_ARRAY
Definition: TypesBase.h:110
MemberFlag BitflagFlag
Definition: TypesBase.h:493
const octet TK_INT16
Definition: TypesBase.h:125
const octet TK_FLOAT32
Definition: TypesBase.h:131
std::bitset< 16 > bitset() const
Definition: TypesBase.h:603
octet TypeKind
Definition: TypesBase.h:120
void IS_EXTERNAL(bool b)
Definition: TypesBase.h:404
bool TRY_CONSTRUCT2() const
Definition: TypesBase.h:386
void TRY_CONSTRUCT1(bool b)
Definition: TypesBase.h:379
const std::string TKNAME_ANNOTATION
Definition: TypesBase.h:105
TypeFlag BitsetTypeFlag
Definition: TypesBase.h:632
This class represents the enumeration ReturnCode_t.
Definition: TypesBase.h:189
const int32_t MAX_STRING_LENGTH
Definition: TypesBase.h:291
const std::string ANNOTATION_MUST_UNDERSTAND_ID
Definition: TypesBase.h:71
const octet TK_MAP
Definition: TypesBase.h:158
std::vector< octet > OctetSeq
Definition: TypesBase.h:47
const octet TK_BOOLEAN
Definition: TypesBase.h:123
const octet TK_STRING8
Definition: TypesBase.h:138
void IS_OPTIONAL(bool b)
Definition: TypesBase.h:416
const std::string TKNAME_STRING8
Definition: TypesBase.h:100
const octet TK_UINT32
Definition: TypesBase.h:129
TypeFlag StructTypeFlag
Definition: TypesBase.h:625
std::array< uint8_t, 4 > NameHash
Definition: TypesBase.h:179
bool IS_NESTED() const
Definition: TypesBase.h:574
size_t to_size_t(const OctetSeq &)
MemberFlag CollectionElementFlag
Definition: TypesBase.h:486
MemberFlag & operator=(const MemberFlag &x)
Definition: TypesBase.h:359
const octet TK_UINT64
Definition: TypesBase.h:130
const octet EK_BOTH
Definition: TypesBase.h:117
octet PrimitiveTypeId
Definition: TypesBase.h:174
bool IS_OPTIONAL() const
Definition: TypesBase.h:411
uint32_t LBound
Definition: TypesBase.h:294
const int32_t TYPE_NAME_MAX_LENGTH
Definition: TypesBase.h:170
const std::string ANNOTATION_VALUE_ID
Definition: TypesBase.h:76
void IS_KEY(bool b)
Definition: TypesBase.h:440
MemberFlag UnionMemberFlag
Definition: TypesBase.h:488
const uint16_t TypeFlagMinimalMask
Definition: TypesBase.h:635
const std::string TKNAME_BYTE
Definition: TypesBase.h:91
bool IS_EXTERNAL() const
Definition: TypesBase.h:399
octet EquivalenceKind
Definition: TypesBase.h:114
RTPS_DllAPI bool operator!=(ReturnCode_t::ReturnCodeValue a, const ReturnCode_t &b)
Definition: TypesBase.h:258
MemberFlag(MemberFlag &&x)
Definition: TypesBase.h:353
uint32_t DomainId_t
Definition: TypesBase.h:32
bool IS_AUTOID_HASH() const
Definition: TypesBase.h:586
ReturnCodeValue
Definition: TypesBase.h:195
const std::string TKNAME_FLOAT32
Definition: TypesBase.h:96
const std::string TKNAME_STRUCTURE
Definition: TypesBase.h:106
TypeFlag()
Definition: TypesBase.h:507
const std::string ANNOTATION_DEFAULT_ID
Definition: TypesBase.h:74
const int32_t MEMBER_NAME_MAX_LENGTH
Definition: TypesBase.h:165
const std::string TKNAME_ALIAS
Definition: TypesBase.h:102
const octet TK_UNION
Definition: TypesBase.h:152
const std::string TKNAME_INT64
Definition: TypesBase.h:88
bool operator==(const MemberFlag &other) const
Definition: TypesBase.h:458
const std::string TKNAME_ENUM
Definition: TypesBase.h:103
const std::string CONST_FALSE
Definition: TypesBase.h:60
const std::string TKNAME_STRING16
Definition: TypesBase.h:101
const octet TK_BITMASK
Definition: TypesBase.h:147
const octet TK_STRUCTURE
Definition: TypesBase.h:151
std::string MemberName
Definition: TypesBase.h:166
Definition: TypesBase.h:499
bool IS_DEFAULT() const
Definition: TypesBase.h:447
MemberFlag BitsetMemberFlag
Definition: TypesBase.h:494
const octet TK_NONE
Definition: TypesBase.h:122
bool TRY_CONSTRUCT1() const
Definition: TypesBase.h:374
const octet TK_FLOAT128
Definition: TypesBase.h:133
const std::string TKNAME_CHAR8
Definition: TypesBase.h:90
const std::string TKNAME_UNION
Definition: TypesBase.h:107
const octet TK_ENUM
Definition: TypesBase.h:146
const octet EK_MINIMAL
Definition: TypesBase.h:115
const octet TK_ANNOTATION
Definition: TypesBase.h:150
const std::string ANNOTATION_EXTENSIBILITY_ID
Definition: TypesBase.h:65
TypeFlag & operator=(const TypeFlag &x)
Definition: TypesBase.h:523
ReturnCode_t()
Definition: TypesBase.h:213
const uint32_t ANNOTATION_OCTETSEC_VALUE_MAX_LEN
Definition: TypesBase.h:641
bool IS_APPENDABLE() const
Definition: TypesBase.h:550