Fast RTPS  Version 2.4.1
Fast RTPS
DynamicData.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_DYNAMIC_DATA_H
16 #define TYPES_DYNAMIC_DATA_H
17 
18 #include <fastrtps/types/TypesBase.h>
19 #include <fastrtps/types/DynamicDataPtr.h>
20 #include <fastrtps/types/DynamicTypePtr.h>
21 
22 //#define DYNAMIC_TYPES_CHECKING
23 
24 namespace eprosima {
25 namespace fastrtps {
26 namespace types {
27 
28 class DynamicType;
29 class MemberDescriptor;
30 
32 {
33 protected:
34 
37  const DynamicData* pData);
39  DynamicType_ptr pType);
40 
42 
43  void add_value(
44  TypeKind kind,
45  MemberId id);
46 
48  DynamicType_ptr pType);
49 
51  const DynamicData* pData);
52 
53  void clean();
54 
55  void clean_members();
56 
57  void* clone_value(
58  MemberId id,
59  TypeKind kind) const;
60 
62  TypeKind kind,
63  void* left,
64  void* right) const;
65 
67  MemberId indexId);
68 
70  const DynamicType_ptr pType,
71  eprosima::fastcdr::Cdr& cdr) const;
72 
74  MemberId id);
75 
76  void get_value(
77  std::string& sOutValue,
78  MemberId id = MEMBER_ID_INVALID) const;
79 
80  void set_value(
81  const std::string& sValue,
82  MemberId id = MEMBER_ID_INVALID);
83 
85  const std::string& name);
86 
88 
90  MemberId id);
91 
93 
95  MemberId startId);
96 
98  DynamicData* pData);
99 
100  // Serializes and deserializes the Dynamic Data.
102  eprosima::fastcdr::Cdr& cdr);
103 
105  eprosima::fastcdr::Cdr& cdr);
106 
107  static size_t getCdrSerializedSize(
108  const DynamicData* data,
109  size_t current_alignment = 0);
110 
112  const DynamicType* type,
113  size_t current_alignment = 0);
114 
116  const DynamicType_ptr type,
117  size_t current_alignment = 0);
118 
119  static size_t getMaxCdrSerializedSize(
120  const DynamicType_ptr type,
121  size_t current_alignment = 0);
122 
123  void serialize(
124  eprosima::fastcdr::Cdr& cdr) const;
125 
127  eprosima::fastcdr::Cdr& cdr) const;
128 
130  eprosima::fastcdr::Cdr& cdr) const;
131 
133  std::map<MemberId, MemberDescriptor*> descriptors_;
134 
135 #ifdef DYNAMIC_TYPES_CHECKING
136  int32_t int32_value_;
137  uint32_t uint32_value_;
138  int16_t int16_value_;
139  uint16_t uint16_value_;
140  int64_t int64_value_;
141  uint64_t uint64_value_;
142  float float32_value_;
143  double float64_value_;
144  long double float128_value_;
145  char char8_value_;
146  wchar_t char16_value_;
147  octet byte_value_;
148  bool bool_value_;
149  std::string string_value_;
150  std::wstring wstring_value_;
151  std::map<MemberId, DynamicData*> complex_values_;
152 #else
153  std::map<MemberId, void*> values_;
154 #endif // ifdef DYNAMIC_TYPES_CHECKING
155  std::vector<MemberId> loaned_values_;
158  uint64_t union_label_;
162 
163  friend class DynamicDataFactory;
164  friend class DynamicPubSubType;
165  friend class DynamicDataHelper;
166 
167 public:
168 
170  MemberDescriptor& value,
171  MemberId id);
172 
174  MemberId id,
175  const MemberDescriptor* value);
176 
178 
180 
182  MemberId id);
183 
184  RTPS_DllAPI bool equals(
185  const DynamicData* other) const;
186 
187  RTPS_DllAPI TypeKind get_kind() const;
188 
189  RTPS_DllAPI uint32_t get_item_count() const;
190 
191  RTPS_DllAPI std::string get_name();
192 
194  const std::string& name) const;
195 
197  uint32_t index) const;
198 
199  RTPS_DllAPI DynamicData* loan_value(
200  MemberId id);
201 
203  const DynamicData* value);
204 
206  const std::vector<uint32_t>& position);
207 
209  MemberId& outId);
210 
212  int32_t value,
213  MemberId& outId);
214 
216  uint32_t value,
217  MemberId& outId);
218 
220  int16_t value,
221  MemberId& outId);
222 
224  uint16_t value,
225  MemberId& outId);
226 
228  int64_t value,
229  MemberId& outId);
230 
232  uint64_t value,
233  MemberId& outId);
234 
236  float value,
237  MemberId& outId);
238 
240  double value,
241  MemberId& outId);
242 
244  long double value,
245  MemberId& outId);
246 
248  char value,
249  MemberId& outId);
250 
252  wchar_t value,
253  MemberId& outId);
254 
256  octet value,
257  MemberId& outId);
258 
260  bool value,
261  MemberId& outId);
262 
264  const std::string& value,
265  MemberId& outId);
266 
268  const std::wstring& value,
269  MemberId& outId);
270 
272  const std::string& value,
273  MemberId& outId);
274 
276  const DynamicData* value,
277  MemberId& outId);
278 
280  DynamicData* value,
281  MemberId& outId);
282 
284  DynamicData_ptr value,
285  MemberId& outId);
286 
288  MemberId id);
289 
290  RTPS_DllAPI ReturnCode_t clear_data();
291 
293  MemberId indexId);
294 
296  const DynamicData* key,
297  MemberId& outKeyId,
298  MemberId& outValueId);
299 
301  const DynamicData* key,
302  DynamicData* value,
303  MemberId& outKey,
304  MemberId& outValue);
305 
307  const DynamicData* key,
308  const DynamicData* value,
309  MemberId& outKey,
310  MemberId& outValue);
311 
313  const DynamicData* key,
314  DynamicData_ptr value,
315  MemberId& outKey,
316  MemberId& outValue);
317 
319  MemberId keyId);
320 
322  int32_t& value,
323  MemberId id) const;
324 
326  int32_t value,
327  MemberId id = MEMBER_ID_INVALID);
328 
330  uint32_t& value,
331  MemberId id) const;
332 
334  uint32_t value,
335  MemberId id = MEMBER_ID_INVALID);
336 
338  int16_t& value,
339  MemberId id) const;
340 
342  int16_t value,
343  MemberId id = MEMBER_ID_INVALID);
344 
346  uint16_t& value,
347  MemberId id) const;
348 
350  uint16_t value,
351  MemberId id = MEMBER_ID_INVALID);
352 
354  int64_t& value,
355  MemberId id) const;
356 
358  int64_t value,
359  MemberId id = MEMBER_ID_INVALID);
360 
362  uint64_t& value,
363  MemberId id) const;
364 
366  uint64_t value,
367  MemberId id = MEMBER_ID_INVALID);
368 
370  float& value,
371  MemberId id) const;
372 
374  float value,
375  MemberId id = MEMBER_ID_INVALID);
376 
378  double& value,
379  MemberId id) const;
380 
382  double value,
383  MemberId id = MEMBER_ID_INVALID);
384 
386  long double& value,
387  MemberId id) const;
388 
390  long double value,
391  MemberId id = MEMBER_ID_INVALID);
392 
394  char& value,
395  MemberId id) const;
396 
398  char value,
399  MemberId id = MEMBER_ID_INVALID);
400 
402  wchar_t& value,
403  MemberId id) const;
404 
406  wchar_t value,
407  MemberId id = MEMBER_ID_INVALID);
408 
410  octet& value,
411  MemberId id) const;
412 
414  octet value,
415  MemberId id = MEMBER_ID_INVALID);
416 
418  int8_t& value,
419  MemberId id) const
420  {
421  octet aux;
422  ReturnCode_t result = get_byte_value(aux, id);
423  value = static_cast<int8_t>(aux);
424  return result;
425  }
426 
428  int8_t value,
429  MemberId id = MEMBER_ID_INVALID)
430  {
431  return set_byte_value(static_cast<octet>(value), id);
432  }
433 
435  uint8_t& value,
436  MemberId id) const
437  {
438  octet aux;
439  ReturnCode_t result = get_byte_value(aux, id);
440  value = static_cast<uint8_t>(aux);
441  return result;
442  }
443 
445  uint8_t value,
446  MemberId id = MEMBER_ID_INVALID)
447  {
448  return set_byte_value(static_cast<octet>(value), id);
449  }
450 
452  bool& value,
453  MemberId id) const;
454 
456  bool value,
457  MemberId id = MEMBER_ID_INVALID);
458 
460  bool value,
461  const std::string& name)
462  {
463  MemberId id = get_member_id_by_name(name);
464  if (id != MEMBER_ID_INVALID)
465  {
466  return set_bool_value(value, id);
467  }
469  }
470 
472  std::string& value,
473  MemberId id) const;
474 
476  const std::string& value,
477  MemberId id = MEMBER_ID_INVALID);
478 
480  std::wstring& value,
481  MemberId id) const;
482 
484  const std::wstring& value,
485  MemberId id = MEMBER_ID_INVALID);
486 
488  std::string& value,
489  MemberId id) const;
490 
492  const std::string& value,
493  MemberId id = MEMBER_ID_INVALID);
494 
496  uint32_t& value,
497  MemberId id) const;
498 
500  const uint32_t& value,
501  MemberId id = MEMBER_ID_INVALID);
502 
504  uint64_t& value) const;
505 
506  RTPS_DllAPI uint64_t get_bitmask_value() const
507  {
508  uint64_t value;
510  {
512  }
513  return value;
514  }
515 
517  uint64_t value);
518 
520  DynamicData** value,
521  MemberId id) const;
522 
524  DynamicData* value,
525  MemberId id = MEMBER_ID_INVALID);
526 
528  uint64_t& value) const;
529 
530  // Basic types returns (copy)
531  RTPS_DllAPI int32_t get_int32_value(
532  MemberId id) const
533  {
534  int32_t value;
535  if (get_int32_value(value, id) != ReturnCode_t::RETCODE_OK)
536  {
538  }
539  return value;
540  }
541 
542  RTPS_DllAPI uint32_t get_uint32_value(
543  MemberId id) const
544  {
545  uint32_t value;
546  if (get_uint32_value(value, id) != ReturnCode_t::RETCODE_OK)
547  {
549  }
550  return value;
551  }
552 
553  RTPS_DllAPI int16_t get_int16_value(
554  MemberId id) const
555  {
556  int16_t value;
557  if (get_int16_value(value, id) != ReturnCode_t::RETCODE_OK)
558  {
560  }
561  return value;
562  }
563 
564  RTPS_DllAPI uint16_t get_uint16_value(
565  MemberId id) const
566  {
567  uint16_t value;
568  if (get_uint16_value(value, id) != ReturnCode_t::RETCODE_OK)
569  {
571  }
572  return value;
573  }
574 
575  RTPS_DllAPI int64_t get_int64_value(
576  MemberId id) const
577  {
578  int64_t value;
579  if (get_int64_value(value, id) != ReturnCode_t::RETCODE_OK)
580  {
582  }
583  return value;
584  }
585 
586  RTPS_DllAPI uint64_t get_uint64_value(
587  MemberId id) const
588  {
589  uint64_t value;
590  if (get_uint64_value(value, id) != ReturnCode_t::RETCODE_OK)
591  {
593  }
594  return value;
595  }
596 
597  RTPS_DllAPI float get_float32_value(
598  MemberId id) const
599  {
600  float value;
602  {
604  }
605  return value;
606  }
607 
608  RTPS_DllAPI double get_float64_value(
609  MemberId id) const
610  {
611  double value;
613  {
615  }
616  return value;
617  }
618 
619  RTPS_DllAPI long double get_float128_value(
620  MemberId id) const
621  {
622  long double value;
624  {
626  }
627  return value;
628  }
629 
630  RTPS_DllAPI char get_char8_value(
631  MemberId id) const
632  {
633  char value;
634  if (get_char8_value(value, id) != ReturnCode_t::RETCODE_OK)
635  {
637  }
638  return value;
639  }
640 
641  RTPS_DllAPI wchar_t get_char16_value(
642  MemberId id) const
643  {
644  wchar_t value;
645  if (get_char16_value(value, id) != ReturnCode_t::RETCODE_OK)
646  {
648  }
649  return value;
650  }
651 
652  RTPS_DllAPI octet get_byte_value(
653  MemberId id) const
654  {
655  octet value;
656  if (get_byte_value(value, id) != ReturnCode_t::RETCODE_OK)
657  {
659  }
660  return value;
661  }
662 
663  RTPS_DllAPI int8_t get_int8_value(
664  MemberId id) const
665  {
666  int8_t value;
667  if (get_int8_value(value, id) != ReturnCode_t::RETCODE_OK)
668  {
670  }
671  return value;
672  }
673 
674  RTPS_DllAPI uint8_t get_uint8_value(
675  MemberId id) const
676  {
677  uint8_t value;
678  if (get_uint8_value(value, id) != ReturnCode_t::RETCODE_OK)
679  {
681  }
682  return value;
683  }
684 
685  RTPS_DllAPI bool get_bool_value(
686  MemberId id) const
687  {
688  bool value;
689  if (get_bool_value(value, id) != ReturnCode_t::RETCODE_OK)
690  {
692  }
693  return value;
694  }
695 
696  RTPS_DllAPI bool get_bool_value(
697  const std::string& name) const
698  {
699  MemberId id = get_member_id_by_name(name);
700  bool value;
701  if (get_bool_value(value, id) != ReturnCode_t::RETCODE_OK)
702  {
704  }
705  return value;
706  }
707 
708  RTPS_DllAPI std::string get_string_value(
709  MemberId id) const
710  {
711  std::string value;
712  if (get_string_value(value, id) != ReturnCode_t::RETCODE_OK)
713  {
715  }
716  return value;
717  }
718 
719  RTPS_DllAPI std::wstring get_wstring_value(
720  MemberId id) const
721  {
722  std::wstring value;
724  {
726  }
727  return value;
728  }
729 
730  RTPS_DllAPI std::string get_enum_value(
731  MemberId id) const
732  {
733  std::string value;
734  if (get_enum_value(value, id) != ReturnCode_t::RETCODE_OK)
735  {
737  }
738  return value;
739  }
740 
741  RTPS_DllAPI uint64_t get_union_label() const
742  {
743  uint64_t value;
745  {
747  }
748  return value;
749  }
750 
751  RTPS_DllAPI uint64_t get_discriminator_value() const
752  {
753  return discriminator_value_;
754  }
755 
756  RTPS_DllAPI void get_discriminator_value(
757  uint64_t& outValue) const
758  {
759  outValue = discriminator_value_;
760  }
761 
762  RTPS_DllAPI void set_discriminator_value(
763  uint64_t value)
764  {
765  discriminator_value_ = value;
766  }
767 
768 };
769 
770 
771 } // namespace types
772 } // namespace fastrtps
773 } // namespace eprosima
774 
775 #endif // TYPES_DYNAMIC_DATA_H
Definition: DynamicDataPtr.h:27
Definition: DynamicDataFactory.h:32
Definition: DynamicDataHelper.hpp:30
Definition: DynamicData.h:32
void add_value(TypeKind kind, MemberId id)
ReturnCode_t insert_array_data(MemberId indexId)
RTPS_DllAPI uint32_t get_uint32_value(MemberId id) const
Definition: DynamicData.h:542
RTPS_DllAPI ReturnCode_t get_complex_value(DynamicData **value, MemberId id) const
RTPS_DllAPI ReturnCode_t insert_map_data(const DynamicData *key, DynamicData *value, MemberId &outKey, MemberId &outValue)
RTPS_DllAPI ReturnCode_t set_bool_value(bool value, const std::string &name)
Definition: DynamicData.h:459
static size_t getEmptyCdrSerializedSize(const DynamicType *type, size_t current_alignment=0)
RTPS_DllAPI ReturnCode_t set_uint64_value(uint64_t value, MemberId id=MEMBER_ID_INVALID)
RTPS_DllAPI std::string get_enum_value(MemberId id) const
Definition: DynamicData.h:730
ReturnCode_t set_union_id(MemberId id)
void set_value(const std::string &sValue, MemberId id=MEMBER_ID_INVALID)
static size_t getCdrSerializedSize(const DynamicData *data, size_t current_alignment=0)
RTPS_DllAPI ReturnCode_t insert_bool_value(bool value, MemberId &outId)
RTPS_DllAPI long double get_float128_value(MemberId id) const
Definition: DynamicData.h:619
RTPS_DllAPI ReturnCode_t get_float128_value(long double &value, MemberId id) const
MemberId union_id_
Definition: DynamicData.h:159
void * clone_value(MemberId id, TypeKind kind) const
RTPS_DllAPI ReturnCode_t insert_uint16_value(uint16_t value, MemberId &outId)
RTPS_DllAPI bool get_bool_value(MemberId id) const
Definition: DynamicData.h:685
DynamicData * union_discriminator_
Definition: DynamicData.h:160
RTPS_DllAPI ReturnCode_t set_bitmask_value(uint64_t value)
RTPS_DllAPI ReturnCode_t set_int64_value(int64_t value, MemberId id=MEMBER_ID_INVALID)
RTPS_DllAPI ReturnCode_t set_complex_value(DynamicData *value, MemberId id=MEMBER_ID_INVALID)
RTPS_DllAPI ReturnCode_t remove_sequence_data(MemberId id)
RTPS_DllAPI ReturnCode_t remove_map_data(MemberId keyId)
RTPS_DllAPI ReturnCode_t clear_value(MemberId id)
RTPS_DllAPI void get_discriminator_value(uint64_t &outValue) const
Definition: DynamicData.h:756
RTPS_DllAPI ReturnCode_t set_descriptor(MemberId id, const MemberDescriptor *value)
RTPS_DllAPI ReturnCode_t return_loaned_value(const DynamicData *value)
RTPS_DllAPI MemberId get_member_id_by_name(const std::string &name) const
bool deserialize_discriminator(eprosima::fastcdr::Cdr &cdr)
RTPS_DllAPI ReturnCode_t set_float64_value(double value, MemberId id=MEMBER_ID_INVALID)
RTPS_DllAPI ReturnCode_t get_int8_value(int8_t &value, MemberId id) const
Definition: DynamicData.h:417
RTPS_DllAPI ReturnCode_t set_bool_value(bool value, MemberId id=MEMBER_ID_INVALID)
DynamicType_ptr type_
Definition: DynamicData.h:132
RTPS_DllAPI ReturnCode_t insert_complex_value(DynamicData *value, MemberId &outId)
void serialize_empty_data(const DynamicType_ptr pType, eprosima::fastcdr::Cdr &cdr) const
RTPS_DllAPI ReturnCode_t get_float32_value(float &value, MemberId id) const
RTPS_DllAPI ReturnCode_t get_uint8_value(uint8_t &value, MemberId id) const
Definition: DynamicData.h:434
RTPS_DllAPI ReturnCode_t get_byte_value(octet &value, MemberId id) const
RTPS_DllAPI ReturnCode_t insert_int32_value(int32_t value, MemberId &outId)
std::map< MemberId, MemberDescriptor * > descriptors_
Definition: DynamicData.h:133
RTPS_DllAPI ReturnCode_t get_float64_value(double &value, MemberId id) const
RTPS_DllAPI ReturnCode_t set_char16_value(wchar_t value, MemberId id=MEMBER_ID_INVALID)
RTPS_DllAPI ReturnCode_t set_uint32_value(uint32_t value, MemberId id=MEMBER_ID_INVALID)
RTPS_DllAPI ReturnCode_t insert_sequence_data(MemberId &outId)
RTPS_DllAPI ReturnCode_t set_byte_value(octet value, MemberId id=MEMBER_ID_INVALID)
RTPS_DllAPI TypeKind get_kind() const
RTPS_DllAPI int16_t get_int16_value(MemberId id) const
Definition: DynamicData.h:553
RTPS_DllAPI ReturnCode_t get_enum_value(std::string &value, MemberId id) const
bool compare_values(TypeKind kind, void *left, void *right) const
RTPS_DllAPI ReturnCode_t set_uint16_value(uint16_t value, MemberId id=MEMBER_ID_INVALID)
RTPS_DllAPI ReturnCode_t insert_int16_value(int16_t value, MemberId &outId)
void set_type_name(const std::string &name)
RTPS_DllAPI ReturnCode_t get_uint64_value(uint64_t &value, MemberId id) const
RTPS_DllAPI ReturnCode_t set_enum_value(const std::string &value, MemberId id=MEMBER_ID_INVALID)
RTPS_DllAPI ReturnCode_t get_bitmask_value(uint64_t &value) const
RTPS_DllAPI uint64_t get_union_label() const
Definition: DynamicData.h:741
RTPS_DllAPI std::string get_string_value(MemberId id) const
Definition: DynamicData.h:708
void create_members(DynamicType_ptr pType)
DynamicData(const DynamicData *pData)
RTPS_DllAPI MemberId get_member_id_at_index(uint32_t index) const
RTPS_DllAPI ReturnCode_t insert_char8_value(char value, MemberId &outId)
RTPS_DllAPI ReturnCode_t get_enum_value(uint32_t &value, MemberId id) const
RTPS_DllAPI ReturnCode_t insert_map_data(const DynamicData *key, MemberId &outKeyId, MemberId &outValueId)
RTPS_DllAPI ReturnCode_t insert_string_value(const std::string &value, MemberId &outId)
uint64_t discriminator_value_
Definition: DynamicData.h:161
RTPS_DllAPI ReturnCode_t clear_array_data(MemberId indexId)
bool key_element_
Definition: DynamicData.h:156
RTPS_DllAPI DynamicData * loan_value(MemberId id)
RTPS_DllAPI ReturnCode_t insert_float32_value(float value, MemberId &outId)
RTPS_DllAPI uint8_t get_uint8_value(MemberId id) const
Definition: DynamicData.h:674
RTPS_DllAPI ReturnCode_t get_wstring_value(std::wstring &value, MemberId id) const
RTPS_DllAPI int64_t get_int64_value(MemberId id) const
Definition: DynamicData.h:575
RTPS_DllAPI ReturnCode_t insert_float128_value(long double value, MemberId &outId)
DynamicData * default_array_value_
Definition: DynamicData.h:157
RTPS_DllAPI ReturnCode_t clear_nonkey_values()
RTPS_DllAPI uint64_t get_bitmask_value() const
Definition: DynamicData.h:506
void sort_member_ids(MemberId startId)
RTPS_DllAPI bool equals(const DynamicData *other) const
static size_t getMaxCdrSerializedSize(const DynamicType_ptr type, size_t current_alignment=0)
void serialize(eprosima::fastcdr::Cdr &cdr) const
RTPS_DllAPI std::string get_name()
RTPS_DllAPI int8_t get_int8_value(MemberId id) const
Definition: DynamicData.h:663
RTPS_DllAPI ReturnCode_t get_int16_value(int16_t &value, MemberId id) const
RTPS_DllAPI ReturnCode_t clear_data()
RTPS_DllAPI ReturnCode_t set_char8_value(char value, MemberId id=MEMBER_ID_INVALID)
std::map< MemberId, void * > values_
Definition: DynamicData.h:153
RTPS_DllAPI ReturnCode_t set_uint8_value(uint8_t value, MemberId id=MEMBER_ID_INVALID)
Definition: DynamicData.h:444
RTPS_DllAPI ReturnCode_t insert_float64_value(double value, MemberId &outId)
RTPS_DllAPI double get_float64_value(MemberId id) const
Definition: DynamicData.h:608
RTPS_DllAPI ReturnCode_t get_int32_value(int32_t &value, MemberId id) const
RTPS_DllAPI ReturnCode_t insert_map_data(const DynamicData *key, const DynamicData *value, MemberId &outKey, MemberId &outValue)
RTPS_DllAPI uint64_t get_uint64_value(MemberId id) const
Definition: DynamicData.h:586
RTPS_DllAPI ReturnCode_t get_uint16_value(uint16_t &value, MemberId id) const
RTPS_DllAPI ReturnCode_t insert_uint32_value(uint32_t value, MemberId &outId)
void serializeKey(eprosima::fastcdr::Cdr &cdr) const
RTPS_DllAPI ReturnCode_t insert_enum_value(const std::string &value, MemberId &outId)
RTPS_DllAPI ReturnCode_t set_int8_value(int8_t value, MemberId id=MEMBER_ID_INVALID)
Definition: DynamicData.h:427
RTPS_DllAPI void set_discriminator_value(uint64_t value)
Definition: DynamicData.h:762
RTPS_DllAPI ReturnCode_t set_enum_value(const uint32_t &value, MemberId id=MEMBER_ID_INVALID)
RTPS_DllAPI ReturnCode_t insert_char16_value(wchar_t value, MemberId &outId)
RTPS_DllAPI ReturnCode_t set_int16_value(int16_t value, MemberId id=MEMBER_ID_INVALID)
RTPS_DllAPI ReturnCode_t get_char8_value(char &value, MemberId id) const
RTPS_DllAPI ReturnCode_t get_uint32_value(uint32_t &value, MemberId id) const
RTPS_DllAPI ReturnCode_t get_string_value(std::string &value, MemberId id) const
RTPS_DllAPI ReturnCode_t clear_all_values()
RTPS_DllAPI bool get_bool_value(const std::string &name) const
Definition: DynamicData.h:696
RTPS_DllAPI ReturnCode_t insert_int64_value(int64_t value, MemberId &outId)
RTPS_DllAPI uint32_t get_item_count() const
DynamicData(DynamicType_ptr pType)
RTPS_DllAPI ReturnCode_t set_int32_value(int32_t value, MemberId id=MEMBER_ID_INVALID)
RTPS_DllAPI uint64_t get_discriminator_value() const
Definition: DynamicData.h:751
uint64_t union_label_
Definition: DynamicData.h:158
RTPS_DllAPI MemberId get_array_index(const std::vector< uint32_t > &position)
RTPS_DllAPI ReturnCode_t set_float32_value(float value, MemberId id=MEMBER_ID_INVALID)
RTPS_DllAPI ReturnCode_t insert_wstring_value(const std::wstring &value, MemberId &outId)
RTPS_DllAPI ReturnCode_t insert_uint64_value(uint64_t value, MemberId &outId)
bool deserialize(eprosima::fastcdr::Cdr &cdr)
RTPS_DllAPI ReturnCode_t set_wstring_value(const std::wstring &value, MemberId id=MEMBER_ID_INVALID)
RTPS_DllAPI octet get_byte_value(MemberId id) const
Definition: DynamicData.h:652
void create_members(const DynamicData *pData)
RTPS_DllAPI ReturnCode_t get_bool_value(bool &value, MemberId id) const
RTPS_DllAPI ReturnCode_t get_descriptor(MemberDescriptor &value, MemberId id)
RTPS_DllAPI ReturnCode_t get_union_label(uint64_t &value) const
RTPS_DllAPI uint16_t get_uint16_value(MemberId id) const
Definition: DynamicData.h:564
void get_value(std::string &sOutValue, MemberId id=MEMBER_ID_INVALID) const
RTPS_DllAPI ReturnCode_t insert_map_data(const DynamicData *key, DynamicData_ptr value, MemberId &outKey, MemberId &outValue)
std::vector< MemberId > loaned_values_
Definition: DynamicData.h:155
RTPS_DllAPI ReturnCode_t insert_complex_value(DynamicData_ptr value, MemberId &outId)
RTPS_DllAPI ReturnCode_t set_float128_value(long double value, MemberId id=MEMBER_ID_INVALID)
RTPS_DllAPI float get_float32_value(MemberId id) const
Definition: DynamicData.h:597
RTPS_DllAPI ReturnCode_t insert_complex_value(const DynamicData *value, MemberId &outId)
static size_t getKeyMaxCdrSerializedSize(const DynamicType_ptr type, size_t current_alignment=0)
void set_union_discriminator(DynamicData *pData)
RTPS_DllAPI int32_t get_int32_value(MemberId id) const
Definition: DynamicData.h:531
RTPS_DllAPI ReturnCode_t get_int64_value(int64_t &value, MemberId id) const
RTPS_DllAPI ReturnCode_t insert_byte_value(octet value, MemberId &outId)
RTPS_DllAPI std::wstring get_wstring_value(MemberId id) const
Definition: DynamicData.h:719
RTPS_DllAPI wchar_t get_char16_value(MemberId id) const
Definition: DynamicData.h:641
RTPS_DllAPI ReturnCode_t get_char16_value(wchar_t &value, MemberId id) const
RTPS_DllAPI char get_char8_value(MemberId id) const
Definition: DynamicData.h:630
void serialize_discriminator(eprosima::fastcdr::Cdr &cdr) const
RTPS_DllAPI ReturnCode_t set_string_value(const std::string &value, MemberId id=MEMBER_ID_INVALID)
Definition: DynamicPubSubType.h:29
Definition: DynamicTypePtr.h:27
Definition: DynamicType.h:38
Definition: MemberDescriptor.h:29
This class represents the enumeration ReturnCode_t.
Definition: TypesBase.h:189
@ RETCODE_OK
Definition: TypesBase.h:196
@ RETCODE_BAD_PARAMETER
Definition: TypesBase.h:199
uint32_t MemberId
Definition: TypesBase.h:272
octet TypeKind
Definition: TypesBase.h:119
eProsima namespace.
Definition: LibrarySettingsAttributes.h:23