18 #include <fastdds/rtps/common/Types.h> 26 #include <type_traits> 44 using eprosima::fastrtps::rtps::octet;
198 RETCODE_UNSUPPORTED = 2,
199 RETCODE_BAD_PARAMETER = 3,
200 RETCODE_PRECONDITION_NOT_MET = 4,
201 RETCODE_OUT_OF_RESOURCES = 5,
202 RETCODE_NOT_ENABLED = 6,
203 RETCODE_IMMUTABLE_POLICY = 7,
204 RETCODE_INCONSISTENT_POLICY = 8,
205 RETCODE_ALREADY_DELETED = 9,
206 RETCODE_TIMEOUT = 10,
207 RETCODE_NO_DATA = 11,
208 RETCODE_ILLEGAL_OPERATION = 12,
209 RETCODE_NOT_ALLOWED_BY_SECURITY = 13
226 return value_ == c.value_;
232 return value_ != c.value_;
235 explicit operator bool() =
delete;
237 uint32_t operator ()()
const 242 bool operator !()
const 250 typename std::enable_if<std::is_arithmetic<T>::value || std::is_enum<T>::value,
bool>::type
255 return b.operator ==(
260 typename std::enable_if<std::is_arithmetic<T>::value || std::is_enum<T>::value,
bool>::type
265 return b.operator !=(
273 #define MEMBER_ID_INVALID 0X0FFFFFFF 274 #define INDEX_INVALID UINT32_MAX 293 const std::vector<T>& a,
294 const std::vector<T>& b)
296 if (a.size() == b.size())
298 auto aIt = a.begin();
299 auto bIt = b.begin();
300 while (aIt != a.end() && bIt != b.end())
326 std::bitset<16> m_MemberFlag;
336 : m_MemberFlag(x.m_MemberFlag)
342 : m_MemberFlag(std::move(x.m_MemberFlag))
349 m_MemberFlag = x.m_MemberFlag;
356 m_MemberFlag = std::move(x.m_MemberFlag);
363 return m_MemberFlag.test(0);
369 b ? m_MemberFlag.set(0) : m_MemberFlag.reset(0);
375 return m_MemberFlag.test(1);
381 b ? m_MemberFlag.set(1) : m_MemberFlag.reset(1);
388 return m_MemberFlag.test(2);
394 b ? m_MemberFlag.set(2) : m_MemberFlag.reset(2);
400 return m_MemberFlag.test(3);
406 b ? m_MemberFlag.set(3) : m_MemberFlag.reset(3);
412 return m_MemberFlag.test(4);
418 b ? m_MemberFlag.set(4) : m_MemberFlag.reset(4);
424 return m_MemberFlag.test(5);
430 b ? m_MemberFlag.set(5) : m_MemberFlag.reset(5);
436 return m_MemberFlag.test(6);
442 b ? m_MemberFlag.set(6) : m_MemberFlag.reset(6);
446 eprosima::fastcdr::Cdr& cdr)
const;
449 eprosima::fastcdr::Cdr& cdr);
453 size_t current_alignment = 0);
458 return m_MemberFlag == other.m_MemberFlag;
480 std::bitset<16> m_TypeFlag;
490 : m_TypeFlag(x.m_TypeFlag)
496 : m_TypeFlag(std::move(x.m_TypeFlag))
503 m_TypeFlag = x.m_TypeFlag;
510 m_TypeFlag = std::move(x.m_TypeFlag);
517 return m_TypeFlag.test(0);
523 b ? m_TypeFlag.set(0) : m_TypeFlag.reset(0);
529 return m_TypeFlag.test(1);
535 b ? m_TypeFlag.set(1) : m_TypeFlag.reset(1);
541 return m_TypeFlag.test(2);
547 b ? m_TypeFlag.set(2) : m_TypeFlag.reset(2);
553 return m_TypeFlag.test(3);
559 b ? m_TypeFlag.set(3) : m_TypeFlag.reset(3);
565 return m_TypeFlag.test(4);
571 b ? m_TypeFlag.set(4) : m_TypeFlag.reset(4);
575 eprosima::fastcdr::Cdr& cdr)
const;
578 eprosima::fastcdr::Cdr& cdr);
582 size_t current_alignment = 0);
587 return m_TypeFlag == other.m_TypeFlag;
614 #endif // TYPES_BASE_H const std::string ANNOTATION_EPKEY_ID
Definition: TypesBase.h:62
void IS_MUST_UNDERSTAND(bool b)
Definition: TypesBase.h:415
const std::string TKNAME_INT32
Definition: TypesBase.h:85
const std::string TKNAME_INT8
Definition: TypesBase.h:91
void IS_DEFAULT(bool b)
Definition: TypesBase.h:439
void IS_APPENDABLE(bool b)
Definition: TypesBase.h:532
MemberFlag AliasMemberFlag
Definition: TypesBase.h:469
const octet TK_UINT16
Definition: TypesBase.h:127
const std::string ANNOTATION_NON_SERIALIZED_ID
Definition: TypesBase.h:71
const std::string TKNAME_MAP
Definition: TypesBase.h:110
const std::string EXTENSIBILITY_FINAL
Definition: TypesBase.h:78
std::vector< SBound > SBoundSeq
Definition: TypesBase.h:287
const std::string ANNOTATION_MUTABLE_ID
Definition: TypesBase.h:67
const std::string CONST_TRUE
Definition: TypesBase.h:58
const octet TK_ALIAS
Definition: TypesBase.h:142
const octet TK_ARRAY
Definition: TypesBase.h:156
bool IS_MUTABLE() const
Definition: TypesBase.h:539
const octet TK_CHAR8
Definition: TypesBase.h:133
const std::string TKNAME_BOOLEAN
Definition: TypesBase.h:82
void IS_AUTOID_HASH(bool b)
Definition: TypesBase.h:568
void IS_FINAL(bool b)
Definition: TypesBase.h:520
bool IS_FINAL() const
Definition: TypesBase.h:515
static size_t getCdrSerializedSize(const MemberFlag &, size_t current_alignment=0)
MemberFlag(const MemberFlag &x)
Definition: TypesBase.h:334
const std::string EXTENSIBILITY_MUTABLE
Definition: TypesBase.h:80
octet SBound
Definition: TypesBase.h:286
const int32_t MAX_ELEMENTS_COUNT
Definition: TypesBase.h:277
const std::string TKNAME_UINT8
Definition: TypesBase.h:92
const std::string ANNOTATION_DEFAULT_LITERAL_ID
Definition: TypesBase.h:74
constexpr uint32_t BOUND_UNLIMITED
A special value indicating an unlimited quantity.
Definition: TypesBase.h:42
const std::string TKNAME_BITMASK
Definition: TypesBase.h:103
TypeFlag AnnotationTypeFlag
Definition: TypesBase.h:595
const int32_t MAX_BITMASK_LENGTH
Definition: TypesBase.h:276
MemberFlag EnumeratedLiteralFlag
Definition: TypesBase.h:467
const octet TK_FLOAT64
Definition: TypesBase.h:131
const SBound INVALID_SBOUND
Definition: TypesBase.h:288
const std::string ANNOTATION_TOPIC_ID
Definition: TypesBase.h:63
const LBound INVALID_LBOUND
Definition: TypesBase.h:283
const octet EK_COMPLETE
Definition: TypesBase.h:115
std::vector< LBound > LBoundSeq
Definition: TypesBase.h:282
void IS_NESTED(bool b)
Definition: TypesBase.h:556
const std::string EXTENSIBILITY_APPENDABLE
Definition: TypesBase.h:79
void deserialize(eprosima::fastcdr::Cdr &cdr)
const std::string ANNOTATION_KEY_ID
Definition: TypesBase.h:61
TypeFlag(const TypeFlag &x)
Definition: TypesBase.h:488
OctetSeq & operator++(OctetSeq &)
const std::string ANNOTATION_NESTED_ID
Definition: TypesBase.h:68
const std::string ANNOTATION_BIT_BOUND_ID
Definition: TypesBase.h:72
Definition: TypesBase.h:322
std::enable_if< std::is_arithmetic< T >::value||std::is_enum< T >::value, bool >::type operator!=(T a, const ReturnCode_t &b)
Definition: TypesBase.h:261
const std::string TKNAME_UINT16
Definition: TypesBase.h:84
uint32_t MemberId
Definition: TypesBase.h:272
bool operator==(const TypeFlag &other) const
Definition: TypesBase.h:584
const uint32_t ANNOTATION_STR_VALUE_MAX_LEN
Definition: TypesBase.h:607
TypeFlag CollectionTypeFlag
Definition: TypesBase.h:594
const octet TK_STRING16
Definition: TypesBase.h:138
void TRY_CONSTRUCT2(bool b)
Definition: TypesBase.h:378
const octet TK_SEQUENCE
Definition: TypesBase.h:155
const octet TK_INT64
Definition: TypesBase.h:126
TypeFlag AliasTypeFlag
Definition: TypesBase.h:596
const octet TK_CHAR16
Definition: TypesBase.h:134
const std::string TKNAME_SEQUENCE
Definition: TypesBase.h:108
const std::string TKNAME_UINT64
Definition: TypesBase.h:88
const std::string TKNAME_FLOAT64
Definition: TypesBase.h:96
const std::string TKNAME_UINT32
Definition: TypesBase.h:86
const std::string TKNAME_FLOAT128
Definition: TypesBase.h:97
const octet TK_BITSET
Definition: TypesBase.h:152
const std::string ANNOTATION_OPTIONAL_ID
Definition: TypesBase.h:69
void serialize(eprosima::fastcdr::Cdr &cdr) const
MemberFlag StructMemberFlag
Definition: TypesBase.h:464
TypeFlag EnumTypeFlag
Definition: TypesBase.h:597
const std::string TKNAME_BITSET
Definition: TypesBase.h:107
bool IS_MUST_UNDERSTAND() const
Definition: TypesBase.h:410
const std::string ANNOTATION_FINAL_ID
Definition: TypesBase.h:65
std::string QualifiedTypeName
Definition: TypesBase.h:170
const std::string TKNAME_INT16
Definition: TypesBase.h:83
const octet TK_BYTE
Definition: TypesBase.h:123
const std::string ANNOTATION_POSITION_ID
Definition: TypesBase.h:76
MemberFlag()
Definition: TypesBase.h:330
const octet TK_INT32
Definition: TypesBase.h:125
MemberFlag AnnotationParameterFlag
Definition: TypesBase.h:468
bool compareSequence(const std::vector< T > &a, const std::vector< T > &b)
Definition: TypesBase.h:292
const std::string TKNAME_CHAR16T
Definition: TypesBase.h:94
void IS_MUTABLE(bool b)
Definition: TypesBase.h:544
const std::string ANNOTATION_APPENDABLE_ID
Definition: TypesBase.h:66
MemberFlag UnionDiscriminatorFlag
Definition: TypesBase.h:466
TypeFlag BitmaskTypeFlag
Definition: TypesBase.h:598
void deserialize(eprosima::fastcdr::Cdr &cdr)
eProsima namespace.
Definition: LibrarySettingsAttributes.h:23
TypeFlag(TypeFlag &&x)
Definition: TypesBase.h:494
TypeFlag UnionTypeFlag
Definition: TypesBase.h:593
ReturnCode_t(uint32_t e)
Definition: TypesBase.h:217
const uint16_t MemberFlagMinimalMask
Definition: TypesBase.h:182
bool IS_KEY() const
Definition: TypesBase.h:422
void serialize(eprosima::fastcdr::Cdr &cdr) const
const std::string TKNAME_CHAR16
Definition: TypesBase.h:93
const std::string TKNAME_ARRAY
Definition: TypesBase.h:109
MemberFlag BitflagFlag
Definition: TypesBase.h:470
const octet TK_INT16
Definition: TypesBase.h:124
const octet TK_FLOAT32
Definition: TypesBase.h:130
octet TypeKind
Definition: TypesBase.h:119
void IS_EXTERNAL(bool b)
Definition: TypesBase.h:391
bool TRY_CONSTRUCT2() const
Definition: TypesBase.h:373
void TRY_CONSTRUCT1(bool b)
Definition: TypesBase.h:366
const std::string TKNAME_ANNOTATION
Definition: TypesBase.h:104
TypeFlag BitsetTypeFlag
Definition: TypesBase.h:599
This class represents the enumeration ReturnCode_t.
Definition: TypesBase.h:188
const int32_t MAX_STRING_LENGTH
Definition: TypesBase.h:278
const std::string ANNOTATION_MUST_UNDERSTAND_ID
Definition: TypesBase.h:70
const octet TK_MAP
Definition: TypesBase.h:157
std::vector< octet > OctetSeq
Definition: TypesBase.h:46
const octet TK_BOOLEAN
Definition: TypesBase.h:122
const octet TK_STRING8
Definition: TypesBase.h:137
void IS_OPTIONAL(bool b)
Definition: TypesBase.h:403
const std::string TKNAME_STRING8
Definition: TypesBase.h:99
const octet TK_UINT32
Definition: TypesBase.h:128
TypeFlag StructTypeFlag
Definition: TypesBase.h:592
std::array< uint8_t, 4 > NameHash
Definition: TypesBase.h:178
bool IS_NESTED() const
Definition: TypesBase.h:551
size_t to_size_t(const OctetSeq &)
MemberFlag CollectionElementFlag
Definition: TypesBase.h:463
MemberFlag & operator=(const MemberFlag &x)
Definition: TypesBase.h:346
const octet TK_UINT64
Definition: TypesBase.h:129
const octet EK_BOTH
Definition: TypesBase.h:116
octet PrimitiveTypeId
Definition: TypesBase.h:173
bool IS_OPTIONAL() const
Definition: TypesBase.h:398
uint32_t LBound
Definition: TypesBase.h:281
const int32_t TYPE_NAME_MAX_LENGTH
Definition: TypesBase.h:169
const std::string ANNOTATION_VALUE_ID
Definition: TypesBase.h:75
void IS_KEY(bool b)
Definition: TypesBase.h:427
MemberFlag UnionMemberFlag
Definition: TypesBase.h:465
const uint16_t TypeFlagMinimalMask
Definition: TypesBase.h:602
const std::string TKNAME_BYTE
Definition: TypesBase.h:90
bool IS_EXTERNAL() const
Definition: TypesBase.h:386
octet EquivalenceKind
Definition: TypesBase.h:113
MemberFlag(MemberFlag &&x)
Definition: TypesBase.h:340
std::enable_if< std::is_arithmetic< T >::value||std::is_enum< T >::value, bool >::type operator==(T a, const ReturnCode_t &b)
Definition: TypesBase.h:251
uint32_t DomainId_t
Definition: TypesBase.h:31
bool IS_AUTOID_HASH() const
Definition: TypesBase.h:563
ReturnCodeValue
Definition: TypesBase.h:194
const std::string TKNAME_FLOAT32
Definition: TypesBase.h:95
const std::string TKNAME_STRUCTURE
Definition: TypesBase.h:105
TypeFlag()
Definition: TypesBase.h:484
const std::string ANNOTATION_DEFAULT_ID
Definition: TypesBase.h:73
const int32_t MEMBER_NAME_MAX_LENGTH
Definition: TypesBase.h:164
const std::string TKNAME_ALIAS
Definition: TypesBase.h:101
static size_t getCdrSerializedSize(const TypeFlag &, size_t current_alignment=0)
const octet TK_UNION
Definition: TypesBase.h:151
const std::string TKNAME_INT64
Definition: TypesBase.h:87
bool operator==(const MemberFlag &other) const
Definition: TypesBase.h:455
const std::string TKNAME_ENUM
Definition: TypesBase.h:102
const std::string CONST_FALSE
Definition: TypesBase.h:59
const std::string TKNAME_STRING16
Definition: TypesBase.h:100
const octet TK_BITMASK
Definition: TypesBase.h:146
const octet TK_STRUCTURE
Definition: TypesBase.h:150
std::string MemberName
Definition: TypesBase.h:165
Definition: TypesBase.h:476
bool IS_DEFAULT() const
Definition: TypesBase.h:434
MemberFlag BitsetMemberFlag
Definition: TypesBase.h:471
const octet TK_NONE
Definition: TypesBase.h:121
bool TRY_CONSTRUCT1() const
Definition: TypesBase.h:361
const octet TK_FLOAT128
Definition: TypesBase.h:132
const std::string TKNAME_CHAR8
Definition: TypesBase.h:89
const std::string TKNAME_UNION
Definition: TypesBase.h:106
const octet TK_ENUM
Definition: TypesBase.h:145
const octet EK_MINIMAL
Definition: TypesBase.h:114
const octet TK_ANNOTATION
Definition: TypesBase.h:149
const std::string ANNOTATION_EXTENSIBILITY_ID
Definition: TypesBase.h:64
TypeFlag & operator=(const TypeFlag &x)
Definition: TypesBase.h:500
ReturnCode_t()
Definition: TypesBase.h:212
const uint32_t ANNOTATION_OCTETSEC_VALUE_MAX_LEN
Definition: TypesBase.h:608
bool IS_APPENDABLE() const
Definition: TypesBase.h:527