Fast RTPS  Version 2.1.0
Fast RTPS
TypesBase.h
1 // Copyright 2018 Proyectos y Sistemas de Mantenimiento SL (eProsima).
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #ifndef TYPES_BASE_H
16 #define TYPES_BASE_H
17 
18 #include <fastdds/rtps/common/Types.h>
19 #include <bitset>
20 #include <string>
21 #include <map>
22 #include <vector>
23 #include <cctype>
24 #include <algorithm>
25 #include <memory>
26 
27 namespace eprosima {
28 namespace fastdds {
29 namespace dds {
30 using DomainId_t = uint32_t;
31 } // dds
32 } // namespace fastdds
33 
34 namespace fastcdr {
35 class Cdr;
36 } // namespace fastcdr
37 namespace fastrtps {
38 namespace types {
39 
40 using eprosima::fastrtps::rtps::octet;
41 
42 using OctetSeq = std::vector<octet>;
43 
45  OctetSeq&);
46 
48  OctetSeq&,
49  int);
50 
51 size_t to_size_t(
52  const OctetSeq&);
53 
54 const std::string CONST_TRUE = "true";
55 const std::string CONST_FALSE = "false";
56 
57 const std::string ANNOTATION_KEY_ID = "key";
58 const std::string ANNOTATION_EPKEY_ID = "Key";
59 const std::string ANNOTATION_TOPIC_ID = "Topic";
60 const std::string ANNOTATION_EXTENSIBILITY_ID = "extensibility";
61 const std::string ANNOTATION_FINAL_ID = "final";
62 const std::string ANNOTATION_APPENDABLE_ID = "appendable";
63 const std::string ANNOTATION_MUTABLE_ID = "mutable";
64 const std::string ANNOTATION_NESTED_ID = "nested";
65 const std::string ANNOTATION_OPTIONAL_ID = "optional";
66 const std::string ANNOTATION_MUST_UNDERSTAND_ID = "must_understand";
67 const std::string ANNOTATION_NON_SERIALIZED_ID = "non_serialized";
68 const std::string ANNOTATION_BIT_BOUND_ID = "bit_bound";
69 const std::string ANNOTATION_DEFAULT_ID = "default";
70 const std::string ANNOTATION_DEFAULT_LITERAL_ID = "default_literal";
71 const std::string ANNOTATION_VALUE_ID = "value";
72 const std::string ANNOTATION_POSITION_ID = "position";
73 
74 const std::string EXTENSIBILITY_FINAL = "FINAL";
75 const std::string EXTENSIBILITY_APPENDABLE = "APPENDABLE";
76 const std::string EXTENSIBILITY_MUTABLE = "MUTABLE";
77 
78 const std::string TKNAME_BOOLEAN = "bool";
79 const std::string TKNAME_INT16 = "int16_t";
80 const std::string TKNAME_UINT16 = "uint16_t";
81 const std::string TKNAME_INT32 = "int32_t";
82 const std::string TKNAME_UINT32 = "uint32_t";
83 const std::string TKNAME_INT64 = "int64_t";
84 const std::string TKNAME_UINT64 = "uint64_t";
85 const std::string TKNAME_CHAR8 = "char";
86 const std::string TKNAME_BYTE = "octet";
87 const std::string TKNAME_INT8 = "int8_t";
88 const std::string TKNAME_UINT8 = "uint8_t";
89 const std::string TKNAME_CHAR16 = "wchar";
90 const std::string TKNAME_CHAR16T = "wchar_t";
91 const std::string TKNAME_FLOAT32 = "float";
92 const std::string TKNAME_FLOAT64 = "double";
93 const std::string TKNAME_FLOAT128 = "longdouble";
94 
95 const std::string TKNAME_STRING8 = "string";
96 const std::string TKNAME_STRING16 = "wstring";
97 const std::string TKNAME_ALIAS = "alias";
98 const std::string TKNAME_ENUM = "enum";
99 const std::string TKNAME_BITMASK = "bitmask";
100 const std::string TKNAME_ANNOTATION = "annotation";
101 const std::string TKNAME_STRUCTURE = "structure";
102 const std::string TKNAME_UNION = "union";
103 const std::string TKNAME_BITSET = "bitset";
104 const std::string TKNAME_SEQUENCE = "sequence";
105 const std::string TKNAME_ARRAY = "array";
106 const std::string TKNAME_MAP = "map";
107 
108 // ---------- Equivalence Kinds ------------------
109 typedef octet EquivalenceKind;
110 const octet EK_MINIMAL = 0xF1; // 0x1111 0001
111 const octet EK_COMPLETE = 0xF2; // 0x1111 0010
112 const octet EK_BOTH = 0xF3; // 0x1111 0011
113 
114 // ---------- TypeKinds (begin) ------------------
115 typedef octet TypeKind; // Primitive TKs
116 
117 const octet TK_NONE = 0x00;
118 const octet TK_BOOLEAN = 0x01;
119 const octet TK_BYTE = 0x02;
120 const octet TK_INT16 = 0x03;
121 const octet TK_INT32 = 0x04;
122 const octet TK_INT64 = 0x05;
123 const octet TK_UINT16 = 0x06;
124 const octet TK_UINT32 = 0x07;
125 const octet TK_UINT64 = 0x08;
126 const octet TK_FLOAT32 = 0x09;
127 const octet TK_FLOAT64 = 0x0A;
128 const octet TK_FLOAT128 = 0x0B;
129 const octet TK_CHAR8 = 0x10;
130 const octet TK_CHAR16 = 0x11;
131 
132 // String TKs
133 const octet TK_STRING8 = 0x20;
134 const octet TK_STRING16 = 0x21;
135 
136 
137 // Constructed/Named types
138 const octet TK_ALIAS = 0x30;
139 
140 // Enumerated TKs
141 const octet TK_ENUM = 0x40;
142 const octet TK_BITMASK = 0x41;
143 
144 // Structured TKs
145 const octet TK_ANNOTATION = 0x50;
146 const octet TK_STRUCTURE = 0x51;
147 const octet TK_UNION = 0x52;
148 const octet TK_BITSET = 0x53;
149 
150 // Collection TKs
151 const octet TK_SEQUENCE = 0x60;
152 const octet TK_ARRAY = 0x61;
153 const octet TK_MAP = 0x62;
154 
155 // ---------- TypeKinds (end) ------------------
156 
157 // The name of some element (e.g. type, type member, module)
158 // Valid characters are alphanumeric plus the "_" cannot start with digit
159 
160 const int32_t MEMBER_NAME_MAX_LENGTH = 256;
161 typedef std::string MemberName;
162 
163 // Qualified type name includes the name of containing modules
164 // using "::" as separator. No leading "::". E.g. "MyModule::MyType"
165 const int32_t TYPE_NAME_MAX_LENGTH = 256;
166 typedef std::string QualifiedTypeName;
167 
168 // Every type has an ID. Those of the primitive types are pre-defined.
169 typedef octet PrimitiveTypeId;
170 
171 // First 4 bytes of MD5 of of a member name converted to bytes
172 // using UTF-8 encoding and without a 'nul' terminator.
173 // Example: the member name "color" has NameHash {0x70, 0xDD, 0xA5, 0xDF}
174 typedef std::array<uint8_t, 4> NameHash;
175 
176 // Mask used to remove the flags that do no affect assignability
177 // Selects T1, T2, O, M, K, D
178 const uint16_t MemberFlagMinimalMask = 0x003f;
179 
183 /*
184  enum ReturnCode_t : uint32_t
185  {
186  RETCODE_OK = 0,
187  RETCODE_ERROR = 1,
188  RETCODE_UNSUPPORTED = 2,
189  RETCODE_BAD_PARAMETER = 3,
190  RETCODE_PRECONDITION_NOT_MET = 4,
191  RETCODE_OUT_OF_RESOURCES = 5,
192  RETCODE_NOT_ENABLED = 6,
193  RETCODE_IMMUTABLE_POLICY = 7,
194  RETCODE_INCONSISTENT_POLICY = 8,
195  RETCODE_ALREADY_DELETED = 9,
196  RETCODE_TIMEOUT = 10,
197  RETCODE_NO_DATA = 11,
198  RETCODE_ILLEGAL_OPERATION = 12
199  };
200  */
201 class ReturnCode_t;
202 
203 class RTPS_DllAPI ReturnCode_t
204 {
205 public:
206 
208  uint32_t value)
209  {
210  value_ = value;
211  }
212 
214  const ReturnCode_t& code)
215  {
216  value_ = code.value_;
217  }
218 
219  explicit operator bool() = delete;
220 
221  bool operator !() const
222  {
223  return value_ != ReturnCode_t::RETCODE_OK.value_;
224  }
225 
226  ReturnCode_t& operator =(
227  const ReturnCode_t& c)
228  {
229  value_ = c.value_;
230  return *this;
231  }
232 
234  const ReturnCode_t& c) const
235  {
236  return value_ == c.value_;
237  }
238 
240  const ReturnCode_t& c) const
241  {
242  return value_ != c.value_;
243  }
244 
245  uint32_t operator ()() const
246  {
247  return value_;
248  }
249 
250  static const ReturnCode_t RETCODE_OK;
263 
264 private:
265 
266  uint32_t value_ = ReturnCode_t::RETCODE_OK.value_;
267 };
268 
269 // TODO Remove this alias when Fast-RTPS reaches version 2
271 
272 typedef uint32_t MemberId;
273 #define MEMBER_ID_INVALID 0X0FFFFFFF
274 #define INDEX_INVALID UINT32_MAX
275 
276 const int32_t MAX_BITMASK_LENGTH = 64;
277 const int32_t MAX_ELEMENTS_COUNT = 100;
278 const int32_t MAX_STRING_LENGTH = 255;
279 
280 // Long Bound of a collection type
281 typedef uint32_t LBound;
282 typedef std::vector<LBound> LBoundSeq;
284 
285 // Short Bound of a collection type
286 typedef octet SBound;
287 typedef std::vector<SBound> SBoundSeq;
289 
290 // Auxiliar function to compare sequences (std::vector)
291 template<class T>
293  const std::vector<T>& a,
294  const std::vector<T>& b)
295 {
296  if (a.size() == b.size())
297  {
298  auto aIt = a.begin();
299  auto bIt = b.begin();
300  while (aIt != a.end() && bIt != b.end())
301  {
302  if (*aIt == *bIt)
303  {
304  ++aIt;
305  ++bIt;
306  }
307  else
308  {
309  return false;
310  }
311  }
312  return true;
313  }
314  return false;
315 }
316 
317 // Flags that apply to struct/union/collection/enum/bitmask/bitset
318 // members/elements and DO affect type assignability
319 // Depending on the flag it may not apply to members of all types
320 
321 // When not all, the applicable member types are listed
323 {
324 private:
325 
326  std::bitset<16> m_MemberFlag;
327 
328 public:
329 
331  {
332  }
333 
335  const MemberFlag& x)
336  : m_MemberFlag(x.m_MemberFlag)
337  {
338  }
339 
341  MemberFlag&& x)
342  : m_MemberFlag(std::move(x.m_MemberFlag))
343  {
344  }
345 
347  const MemberFlag& x)
348  {
349  m_MemberFlag = x.m_MemberFlag;
350  return *this;
351  }
352 
354  MemberFlag&& x)
355  {
356  m_MemberFlag = std::move(x.m_MemberFlag);
357  return *this;
358  }
359 
360  // T1 | 00 = INVALID, 01 = DISCARD
361  bool TRY_CONSTRUCT1() const
362  {
363  return m_MemberFlag.test(0);
364  }
365 
367  bool b)
368  {
369  b ? m_MemberFlag.set(0) : m_MemberFlag.reset(0);
370  }
371 
372  // T2 | 10 = USE_DEFAULT, 11 = TRIM
373  bool TRY_CONSTRUCT2() const
374  {
375  return m_MemberFlag.test(1);
376  }
377 
379  bool b)
380  {
381  b ? m_MemberFlag.set(1) : m_MemberFlag.reset(1);
382  }
383 
384  // X StructMember, UnionMember,
385  // CollectionElement
386  bool IS_EXTERNAL() const
387  {
388  return m_MemberFlag.test(2);
389  }
390 
392  bool b)
393  {
394  b ? m_MemberFlag.set(2) : m_MemberFlag.reset(2);
395  }
396 
397  // O StructMember
398  bool IS_OPTIONAL() const
399  {
400  return m_MemberFlag.test(3);
401  }
402 
404  bool b)
405  {
406  b ? m_MemberFlag.set(3) : m_MemberFlag.reset(3);
407  }
408 
409  // M StructMember
410  bool IS_MUST_UNDERSTAND() const
411  {
412  return m_MemberFlag.test(4);
413  }
414 
416  bool b)
417  {
418  b ? m_MemberFlag.set(4) : m_MemberFlag.reset(4);
419  }
420 
421  // K StructMember, UnionDiscriminator
422  bool IS_KEY() const
423  {
424  return m_MemberFlag.test(5);
425  }
426 
427  void IS_KEY(
428  bool b)
429  {
430  b ? m_MemberFlag.set(5) : m_MemberFlag.reset(5);
431  }
432 
433  // D UnionMember, EnumerationLiteral
434  bool IS_DEFAULT() const
435  {
436  return m_MemberFlag.test(6);
437  }
438 
440  bool b)
441  {
442  b ? m_MemberFlag.set(6) : m_MemberFlag.reset(6);
443  }
444 
445  void serialize(
446  eprosima::fastcdr::Cdr& cdr) const;
447 
449  eprosima::fastcdr::Cdr& cdr);
450 
451  static size_t getCdrSerializedSize(
452  const MemberFlag&,
453  size_t current_alignment = 0);
454 
456  const MemberFlag& other) const
457  {
458  return m_MemberFlag == other.m_MemberFlag;
459  }
460 
461 };
462 
463 typedef MemberFlag CollectionElementFlag; // T1, T2, X
464 typedef MemberFlag StructMemberFlag; // T1, T2, O, M, K, X
465 typedef MemberFlag UnionMemberFlag; // T1, T2, D, X
466 typedef MemberFlag UnionDiscriminatorFlag; // T1, T2, K
468 typedef MemberFlag AnnotationParameterFlag; // Unused. No flags apply
469 typedef MemberFlag AliasMemberFlag; // Unused. No flags apply
470 typedef MemberFlag BitflagFlag; // Unused. No flags apply
471 typedef MemberFlag BitsetMemberFlag; // Unused. No flags apply
472 
473 // Flags that apply to type declarationa and DO affect assignability
474 // Depending on the flag it may not apply to all types
475 // When not all, the applicable types are listed
476 class TypeFlag
477 {
478 private:
479 
480  std::bitset<16> m_TypeFlag;
481 
482 public:
483 
485  {
486  }
487 
489  const TypeFlag& x)
490  : m_TypeFlag(x.m_TypeFlag)
491  {
492  }
493 
495  TypeFlag&& x)
496  : m_TypeFlag(std::move(x.m_TypeFlag))
497  {
498  }
499 
501  const TypeFlag& x)
502  {
503  m_TypeFlag = x.m_TypeFlag;
504  return *this;
505  }
506 
508  TypeFlag&& x)
509  {
510  m_TypeFlag = std::move(x.m_TypeFlag);
511  return *this;
512  }
513 
514  // F |
515  bool IS_FINAL() const
516  {
517  return m_TypeFlag.test(0);
518  }
519 
520  void IS_FINAL(
521  bool b)
522  {
523  b ? m_TypeFlag.set(0) : m_TypeFlag.reset(0);
524  }
525 
526  // A |- Struct, Union
527  bool IS_APPENDABLE() const
528  {
529  return m_TypeFlag.test(1);
530  }
531 
533  bool b)
534  {
535  b ? m_TypeFlag.set(1) : m_TypeFlag.reset(1);
536  }
537 
538  // M | (exactly one flag)
539  bool IS_MUTABLE() const
540  {
541  return m_TypeFlag.test(2);
542  }
543 
545  bool b)
546  {
547  b ? m_TypeFlag.set(2) : m_TypeFlag.reset(2);
548  }
549 
550  // N Struct, Union
551  bool IS_NESTED() const
552  {
553  return m_TypeFlag.test(3);
554  }
555 
556  void IS_NESTED(
557  bool b)
558  {
559  b ? m_TypeFlag.set(3) : m_TypeFlag.reset(3);
560  }
561 
562  // H Struct
563  bool IS_AUTOID_HASH() const
564  {
565  return m_TypeFlag.test(4);
566  }
567 
569  bool b)
570  {
571  b ? m_TypeFlag.set(4) : m_TypeFlag.reset(4);
572  }
573 
574  void serialize(
575  eprosima::fastcdr::Cdr& cdr) const;
576 
578  eprosima::fastcdr::Cdr& cdr);
579 
580  static size_t getCdrSerializedSize(
581  const TypeFlag&,
582  size_t current_alignment = 0);
583 
585  const TypeFlag& other) const
586  {
587  return m_TypeFlag == other.m_TypeFlag;
588  }
589 
590 };
591 
592 typedef TypeFlag StructTypeFlag; // All flags apply
593 typedef TypeFlag UnionTypeFlag; // All flags apply
594 typedef TypeFlag CollectionTypeFlag; // Unused. No flags apply
595 typedef TypeFlag AnnotationTypeFlag; // Unused. No flags apply
596 typedef TypeFlag AliasTypeFlag; // Unused. No flags apply
597 typedef TypeFlag EnumTypeFlag; // Unused. No flags apply
598 typedef TypeFlag BitmaskTypeFlag; // Unused. No flags apply
599 typedef TypeFlag BitsetTypeFlag; // Unused. No flags apply
600 
601 // Mask used to remove the flags that do no affect assignability
602 const uint16_t TypeFlagMinimalMask = 0x0007; // Selects M, A, F
603 
604 // --- Annotation usage: ----------------------------------------------
605 
606 // ID of a type member
607 const uint32_t ANNOTATION_STR_VALUE_MAX_LEN = 128;
609 
610 } // namespace types
611 } // namespace fastrtps
612 } // namespace eprosima
613 
614 #endif // TYPES_BASE_H
Definition: TypesBase.h:323
bool IS_OPTIONAL() const
Definition: TypesBase.h:398
MemberFlag(MemberFlag &&x)
Definition: TypesBase.h:340
void TRY_CONSTRUCT1(bool b)
Definition: TypesBase.h:366
bool IS_MUST_UNDERSTAND() const
Definition: TypesBase.h:410
MemberFlag & operator=(const MemberFlag &x)
Definition: TypesBase.h:346
void IS_OPTIONAL(bool b)
Definition: TypesBase.h:403
bool IS_DEFAULT() const
Definition: TypesBase.h:434
bool TRY_CONSTRUCT2() const
Definition: TypesBase.h:373
void TRY_CONSTRUCT2(bool b)
Definition: TypesBase.h:378
void serialize(eprosima::fastcdr::Cdr &cdr) const
bool IS_KEY() const
Definition: TypesBase.h:422
bool IS_EXTERNAL() const
Definition: TypesBase.h:386
MemberFlag()
Definition: TypesBase.h:330
bool operator==(const MemberFlag &other) const
Definition: TypesBase.h:455
void IS_EXTERNAL(bool b)
Definition: TypesBase.h:391
void IS_DEFAULT(bool b)
Definition: TypesBase.h:439
bool TRY_CONSTRUCT1() const
Definition: TypesBase.h:361
void deserialize(eprosima::fastcdr::Cdr &cdr)
static size_t getCdrSerializedSize(const MemberFlag &, size_t current_alignment=0)
MemberFlag(const MemberFlag &x)
Definition: TypesBase.h:334
void IS_MUST_UNDERSTAND(bool b)
Definition: TypesBase.h:415
void IS_KEY(bool b)
Definition: TypesBase.h:427
Definition: TypesBase.h:204
static const ReturnCode_t RETCODE_TIMEOUT
Definition: TypesBase.h:260
static const ReturnCode_t RETCODE_UNSUPPORTED
Definition: TypesBase.h:252
static const ReturnCode_t RETCODE_BAD_PARAMETER
Definition: TypesBase.h:253
static const ReturnCode_t RETCODE_PRECONDITION_NOT_MET
Definition: TypesBase.h:254
ReturnCode_t(uint32_t value)
Definition: TypesBase.h:207
static const ReturnCode_t RETCODE_INCONSISTENT_POLICY
Definition: TypesBase.h:258
static const ReturnCode_t RETCODE_NO_DATA
Definition: TypesBase.h:261
static const ReturnCode_t RETCODE_NOT_ENABLED
Definition: TypesBase.h:256
static const ReturnCode_t RETCODE_ILLEGAL_OPERATION
Definition: TypesBase.h:262
static const ReturnCode_t RETCODE_ALREADY_DELETED
Definition: TypesBase.h:259
static const ReturnCode_t RETCODE_ERROR
Definition: TypesBase.h:251
static const ReturnCode_t RETCODE_OK
Definition: TypesBase.h:250
ReturnCode_t(const ReturnCode_t &code)
Definition: TypesBase.h:213
static const ReturnCode_t RETCODE_OUT_OF_RESOURCES
Definition: TypesBase.h:255
static const ReturnCode_t RETCODE_IMMUTABLE_POLICY
Definition: TypesBase.h:257
Definition: TypesBase.h:477
void IS_MUTABLE(bool b)
Definition: TypesBase.h:544
bool IS_NESTED() const
Definition: TypesBase.h:551
TypeFlag & operator=(const TypeFlag &x)
Definition: TypesBase.h:500
TypeFlag()
Definition: TypesBase.h:484
void IS_APPENDABLE(bool b)
Definition: TypesBase.h:532
bool IS_APPENDABLE() const
Definition: TypesBase.h:527
TypeFlag(TypeFlag &&x)
Definition: TypesBase.h:494
void IS_FINAL(bool b)
Definition: TypesBase.h:520
bool operator==(const TypeFlag &other) const
Definition: TypesBase.h:584
static size_t getCdrSerializedSize(const TypeFlag &, size_t current_alignment=0)
void IS_NESTED(bool b)
Definition: TypesBase.h:556
bool IS_MUTABLE() const
Definition: TypesBase.h:539
void serialize(eprosima::fastcdr::Cdr &cdr) const
TypeFlag(const TypeFlag &x)
Definition: TypesBase.h:488
void IS_AUTOID_HASH(bool b)
Definition: TypesBase.h:568
void deserialize(eprosima::fastcdr::Cdr &cdr)
bool IS_FINAL() const
Definition: TypesBase.h:515
bool IS_AUTOID_HASH() const
Definition: TypesBase.h:563
uint32_t DomainId_t
Definition: TypesBase.h:30
const octet TK_FLOAT32
Definition: TypesBase.h:126
MemberFlag BitsetMemberFlag
Definition: TypesBase.h:471
uint32_t MemberId
Definition: TypesBase.h:272
TypeFlag BitsetTypeFlag
Definition: TypesBase.h:599
const octet TK_BYTE
Definition: TypesBase.h:119
const std::string ANNOTATION_DEFAULT_LITERAL_ID
Definition: TypesBase.h:70
TypeFlag StructTypeFlag
Definition: TypesBase.h:592
const octet TK_UINT64
Definition: TypesBase.h:125
octet PrimitiveTypeId
Definition: TypesBase.h:169
const std::string TKNAME_MAP
Definition: TypesBase.h:106
const octet TK_BITSET
Definition: TypesBase.h:148
const std::string ANNOTATION_TOPIC_ID
Definition: TypesBase.h:59
octet EquivalenceKind
Definition: TypesBase.h:109
const octet TK_UNION
Definition: TypesBase.h:147
const std::string CONST_FALSE
Definition: TypesBase.h:55
TypeFlag AliasTypeFlag
Definition: TypesBase.h:596
const octet TK_FLOAT64
Definition: TypesBase.h:127
MemberFlag BitflagFlag
Definition: TypesBase.h:470
const std::string ANNOTATION_VALUE_ID
Definition: TypesBase.h:71
const std::string EXTENSIBILITY_MUTABLE
Definition: TypesBase.h:76
const uint16_t MemberFlagMinimalMask
Definition: TypesBase.h:178
MemberFlag StructMemberFlag
Definition: TypesBase.h:464
const octet TK_STRING16
Definition: TypesBase.h:134
const std::string TKNAME_BITMASK
Definition: TypesBase.h:99
octet SBound
Definition: TypesBase.h:286
const std::string TKNAME_STRING8
Definition: TypesBase.h:95
uint32_t LBound
Definition: TypesBase.h:281
TypeFlag CollectionTypeFlag
Definition: TypesBase.h:594
const std::string TKNAME_CHAR16
Definition: TypesBase.h:89
const std::string TKNAME_UINT64
Definition: TypesBase.h:84
const uint16_t TypeFlagMinimalMask
Definition: TypesBase.h:602
const std::string ANNOTATION_MUTABLE_ID
Definition: TypesBase.h:63
const octet TK_INT32
Definition: TypesBase.h:121
const octet TK_ANNOTATION
Definition: TypesBase.h:145
const std::string TKNAME_SEQUENCE
Definition: TypesBase.h:104
const std::string ANNOTATION_APPENDABLE_ID
Definition: TypesBase.h:62
const std::string ANNOTATION_OPTIONAL_ID
Definition: TypesBase.h:65
const std::string TKNAME_FLOAT64
Definition: TypesBase.h:92
const std::string ANNOTATION_POSITION_ID
Definition: TypesBase.h:72
MemberFlag EnumeratedLiteralFlag
Definition: TypesBase.h:467
const octet TK_MAP
Definition: TypesBase.h:153
const std::string ANNOTATION_EPKEY_ID
Definition: TypesBase.h:58
const octet EK_COMPLETE
Definition: TypesBase.h:111
std::vector< SBound > SBoundSeq
Definition: TypesBase.h:287
std::string MemberName
Definition: TypesBase.h:161
const octet TK_UINT16
Definition: TypesBase.h:123
const std::string TKNAME_FLOAT128
Definition: TypesBase.h:93
const std::string TKNAME_STRING16
Definition: TypesBase.h:96
const octet TK_CHAR8
Definition: TypesBase.h:129
const std::string TKNAME_BITSET
Definition: TypesBase.h:103
const std::string TKNAME_UNION
Definition: TypesBase.h:102
TypeFlag AnnotationTypeFlag
Definition: TypesBase.h:595
std::vector< octet > OctetSeq
Definition: TypesBase.h:42
const std::string EXTENSIBILITY_APPENDABLE
Definition: TypesBase.h:75
TypeFlag UnionTypeFlag
Definition: TypesBase.h:593
const std::string TKNAME_UINT32
Definition: TypesBase.h:82
const octet EK_BOTH
Definition: TypesBase.h:112
const std::string TKNAME_INT32
Definition: TypesBase.h:81
const std::string TKNAME_INT8
Definition: TypesBase.h:87
TypeFlag EnumTypeFlag
Definition: TypesBase.h:597
const octet TK_CHAR16
Definition: TypesBase.h:130
const std::string CONST_TRUE
Definition: TypesBase.h:54
const std::string TKNAME_ANNOTATION
Definition: TypesBase.h:100
const int32_t MAX_ELEMENTS_COUNT
Definition: TypesBase.h:277
const octet EK_MINIMAL
Definition: TypesBase.h:110
const octet TK_ALIAS
Definition: TypesBase.h:138
const std::string EXTENSIBILITY_FINAL
Definition: TypesBase.h:74
const octet TK_INT16
Definition: TypesBase.h:120
MemberFlag UnionMemberFlag
Definition: TypesBase.h:465
const octet TK_BOOLEAN
Definition: TypesBase.h:118
const uint32_t ANNOTATION_OCTETSEC_VALUE_MAX_LEN
Definition: TypesBase.h:608
const octet TK_FLOAT128
Definition: TypesBase.h:128
const std::string TKNAME_ALIAS
Definition: TypesBase.h:97
const std::string TKNAME_BOOLEAN
Definition: TypesBase.h:78
std::string QualifiedTypeName
Definition: TypesBase.h:166
const octet TK_BITMASK
Definition: TypesBase.h:142
const std::string TKNAME_FLOAT32
Definition: TypesBase.h:91
bool compareSequence(const std::vector< T > &a, const std::vector< T > &b)
Definition: TypesBase.h:292
const LBound INVALID_LBOUND
Definition: TypesBase.h:283
const SBound INVALID_SBOUND
Definition: TypesBase.h:288
TypeFlag BitmaskTypeFlag
Definition: TypesBase.h:598
size_t to_size_t(const OctetSeq &)
const std::string ANNOTATION_DEFAULT_ID
Definition: TypesBase.h:69
const uint32_t ANNOTATION_STR_VALUE_MAX_LEN
Definition: TypesBase.h:607
const octet TK_ENUM
Definition: TypesBase.h:141
const std::string TKNAME_UINT16
Definition: TypesBase.h:80
OctetSeq & operator++(OctetSeq &)
const std::string TKNAME_UINT8
Definition: TypesBase.h:88
const std::string ANNOTATION_NON_SERIALIZED_ID
Definition: TypesBase.h:67
const std::string TKNAME_INT64
Definition: TypesBase.h:83
const int32_t MAX_BITMASK_LENGTH
Definition: TypesBase.h:276
const octet TK_STRUCTURE
Definition: TypesBase.h:146
std::vector< LBound > LBoundSeq
Definition: TypesBase.h:282
const octet TK_ARRAY
Definition: TypesBase.h:152
const octet TK_SEQUENCE
Definition: TypesBase.h:151
MemberFlag AliasMemberFlag
Definition: TypesBase.h:469
MemberFlag AnnotationParameterFlag
Definition: TypesBase.h:468
MemberFlag UnionDiscriminatorFlag
Definition: TypesBase.h:466
const std::string TKNAME_CHAR16T
Definition: TypesBase.h:90
const octet TK_INT64
Definition: TypesBase.h:122
const std::string TKNAME_CHAR8
Definition: TypesBase.h:85
const octet TK_NONE
Definition: TypesBase.h:117
const std::string ANNOTATION_FINAL_ID
Definition: TypesBase.h:61
const octet TK_STRING8
Definition: TypesBase.h:133
const octet TK_UINT32
Definition: TypesBase.h:124
const std::string TKNAME_ENUM
Definition: TypesBase.h:98
octet TypeKind
Definition: TypesBase.h:115
const std::string TKNAME_ARRAY
Definition: TypesBase.h:105
const std::string TKNAME_STRUCTURE
Definition: TypesBase.h:101
const std::string ANNOTATION_BIT_BOUND_ID
Definition: TypesBase.h:68
const int32_t TYPE_NAME_MAX_LENGTH
Definition: TypesBase.h:165
const int32_t MEMBER_NAME_MAX_LENGTH
Definition: TypesBase.h:160
const int32_t MAX_STRING_LENGTH
Definition: TypesBase.h:278
std::array< uint8_t, 4 > NameHash
Definition: TypesBase.h:174
const std::string ANNOTATION_NESTED_ID
Definition: TypesBase.h:64
MemberFlag CollectionElementFlag
Definition: TypesBase.h:463
const std::string ANNOTATION_EXTENSIBILITY_ID
Definition: TypesBase.h:60
const std::string ANNOTATION_MUST_UNDERSTAND_ID
Definition: TypesBase.h:66
const std::string TKNAME_BYTE
Definition: TypesBase.h:86
const std::string ANNOTATION_KEY_ID
Definition: TypesBase.h:57
const std::string TKNAME_INT16
Definition: TypesBase.h:79
bool operator!=(const TopicAttributes &t1, const TopicAttributes &t2)
Check if two topic attributes are not equal.
Definition: TopicAttributes.h:134
bool operator==(const ResourceLimitedContainerConfig &lhs, const ResourceLimitedContainerConfig &rhs)
Definition: ResourceLimitedContainerConfig.hpp:74
eProsima namespace.
Definition: LibrarySettingsAttributes.h:23