18 #include <fastdds/rtps/common/Types.h> 26 #include <type_traits> 44 using eprosima::fastrtps::rtps::octet;
114 const octet EK_MINIMAL = 0xF1;
115 const octet EK_COMPLETE = 0xF2;
116 const octet EK_BOTH = 0xF3;
121 const octet TK_NONE = 0x00;
122 const octet TK_BOOLEAN = 0x01;
123 const octet TK_BYTE = 0x02;
124 const octet TK_INT16 = 0x03;
125 const octet TK_INT32 = 0x04;
126 const octet TK_INT64 = 0x05;
127 const octet TK_UINT16 = 0x06;
128 const octet TK_UINT32 = 0x07;
129 const octet TK_UINT64 = 0x08;
130 const octet TK_FLOAT32 = 0x09;
131 const octet TK_FLOAT64 = 0x0A;
132 const octet TK_FLOAT128 = 0x0B;
133 const octet TK_CHAR8 = 0x10;
134 const octet TK_CHAR16 = 0x11;
137 const octet TK_STRING8 = 0x20;
138 const octet TK_STRING16 = 0x21;
142 const octet TK_ALIAS = 0x30;
145 const octet TK_ENUM = 0x40;
146 const octet TK_BITMASK = 0x41;
149 const octet TK_ANNOTATION = 0x50;
150 const octet TK_STRUCTURE = 0x51;
151 const octet TK_UNION = 0x52;
152 const octet TK_BITSET = 0x53;
155 const octet TK_SEQUENCE = 0x60;
156 const octet TK_ARRAY = 0x61;
157 const octet TK_MAP = 0x62;
164 const int32_t MEMBER_NAME_MAX_LENGTH = 256;
169 const int32_t TYPE_NAME_MAX_LENGTH = 256;
182 const uint16_t MemberFlagMinimalMask = 0x003f;
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 283 const LBound INVALID_LBOUND = 0;
288 const SBound INVALID_SBOUND = 0;
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);
451 static size_t getCdrSerializedSize(
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);
580 static size_t getCdrSerializedSize(
582 size_t current_alignment = 0);
587 return m_TypeFlag == other.m_TypeFlag;
602 const uint16_t TypeFlagMinimalMask = 0x0007;
607 const uint32_t ANNOTATION_STR_VALUE_MAX_LEN = 128;
608 const uint32_t ANNOTATION_OCTETSEC_VALUE_MAX_LEN = 128;
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
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
bool IS_MUTABLE() const
Definition: TypesBase.h:539
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
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
const int32_t MAX_BITMASK_LENGTH
Definition: TypesBase.h:276
const std::string ANNOTATION_TOPIC_ID
Definition: TypesBase.h:63
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
const std::string ANNOTATION_KEY_ID
Definition: TypesBase.h:61
TypeFlag(const TypeFlag &x)
Definition: TypesBase.h:488
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
const std::string TKNAME_UINT16
Definition: TypesBase.h:84
uint32_t MemberId
Definition: TypesBase.h:272
void TRY_CONSTRUCT2(bool b)
Definition: TypesBase.h:378
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 std::string ANNOTATION_OPTIONAL_ID
Definition: TypesBase.h:69
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 std::string ANNOTATION_POSITION_ID
Definition: TypesBase.h:76
MemberFlag()
Definition: TypesBase.h:330
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
eProsima namespace.
Definition: LibrarySettingsAttributes.h:23
TypeFlag(TypeFlag &&x)
Definition: TypesBase.h:494
ReturnCode_t(uint32_t e)
Definition: TypesBase.h:217
bool IS_KEY() const
Definition: TypesBase.h:422
const std::string TKNAME_CHAR16
Definition: TypesBase.h:93
const std::string TKNAME_ARRAY
Definition: TypesBase.h:109
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
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
std::vector< octet > OctetSeq
Definition: TypesBase.h:46
void IS_OPTIONAL(bool b)
Definition: TypesBase.h:403
const std::string TKNAME_STRING8
Definition: TypesBase.h:99
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 &)
octet PrimitiveTypeId
Definition: TypesBase.h:173
bool IS_OPTIONAL() const
Definition: TypesBase.h:398
uint32_t LBound
Definition: TypesBase.h:281
const std::string ANNOTATION_VALUE_ID
Definition: TypesBase.h:75
void IS_KEY(bool b)
Definition: TypesBase.h:427
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
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 std::string TKNAME_ALIAS
Definition: TypesBase.h:101
const std::string TKNAME_INT64
Definition: TypesBase.h:87
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
std::string MemberName
Definition: TypesBase.h:165
Definition: TypesBase.h:476
bool IS_DEFAULT() const
Definition: TypesBase.h:434
bool TRY_CONSTRUCT1() const
Definition: TypesBase.h:361
const std::string TKNAME_CHAR8
Definition: TypesBase.h:89
const std::string TKNAME_UNION
Definition: TypesBase.h:106
const std::string ANNOTATION_EXTENSIBILITY_ID
Definition: TypesBase.h:64
ReturnCode_t()
Definition: TypesBase.h:212
bool IS_APPENDABLE() const
Definition: TypesBase.h:527