Fast RTPS  Version 2.1.0
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:
35  DynamicData(const DynamicData* pData);
37 
39 
40  void add_value(
41  TypeKind kind,
42  MemberId id);
43 
45 
46  void create_members(const DynamicData* pData);
47 
48  void clean();
49 
50  void clean_members();
51 
52  void* clone_value(
53  MemberId id,
54  TypeKind kind) const;
55 
57  TypeKind kind,
58  void* left,
59  void* right) const;
60 
62 
64  const DynamicType_ptr pType,
65  eprosima::fastcdr::Cdr& cdr) const;
66 
68 
69  void get_value(
70  std::string& sOutValue,
71  MemberId id = MEMBER_ID_INVALID) const;
72 
73  void set_value(
74  const std::string& sValue,
75  MemberId id = MEMBER_ID_INVALID);
76 
77  void set_type_name(const std::string& name);
78 
80 
82 
83  void sort_member_ids(MemberId startId);
84 
86 
87  // Serializes and deserializes the Dynamic Data.
88  bool deserialize(eprosima::fastcdr::Cdr& cdr);
89 
90  bool deserialize_discriminator(eprosima::fastcdr::Cdr& cdr);
91 
92  static size_t getCdrSerializedSize(
93  const DynamicData* data,
94  size_t current_alignment = 0);
95 
97  const DynamicType* type,
98  size_t current_alignment = 0);
99 
101  const DynamicType_ptr type,
102  size_t current_alignment = 0);
103 
104  static size_t getMaxCdrSerializedSize(
105  const DynamicType_ptr type,
106  size_t current_alignment = 0);
107 
108  void serialize(eprosima::fastcdr::Cdr& cdr) const;
109 
110  void serialize_discriminator(eprosima::fastcdr::Cdr& cdr) const;
111 
112  void serializeKey(eprosima::fastcdr::Cdr& cdr) const;
113 
115  std::map<MemberId, MemberDescriptor*> descriptors_;
116 
117 #ifdef DYNAMIC_TYPES_CHECKING
118  int32_t int32_value_;
119  uint32_t uint32_value_;
120  int16_t int16_value_;
121  uint16_t uint16_value_;
122  int64_t int64_value_;
123  uint64_t uint64_value_;
124  float float32_value_;
125  double float64_value_;
126  long double float128_value_;
127  char char8_value_;
128  wchar_t char16_value_;
129  octet byte_value_;
130  bool bool_value_;
131  std::string string_value_;
132  std::wstring wstring_value_;
133  std::map<MemberId, DynamicData*> complex_values_;
134 #else
135  std::map<MemberId, void*> values_;
136 #endif
137  std::vector<MemberId> loaned_values_;
140  uint64_t union_label_;
144 
145  friend class DynamicDataFactory;
146  friend class DynamicPubSubType;
147  friend class DynamicDataHelper;
148 
149 public:
150 
152  MemberDescriptor& value,
153  MemberId id);
154 
156  MemberId id,
157  const MemberDescriptor* value);
158 
160 
162 
164 
165  RTPS_DllAPI bool equals(const DynamicData* other) const;
166 
167  RTPS_DllAPI TypeKind get_kind() const;
168 
169  RTPS_DllAPI uint32_t get_item_count() const;
170 
171  RTPS_DllAPI std::string get_name();
172 
173  RTPS_DllAPI MemberId get_member_id_by_name(const std::string& name) const;
174 
175  RTPS_DllAPI MemberId get_member_id_at_index(uint32_t index) const;
176 
177  RTPS_DllAPI DynamicData* loan_value(MemberId id);
178 
179  RTPS_DllAPI ReturnCode_t return_loaned_value(const DynamicData* value);
180 
181  RTPS_DllAPI MemberId get_array_index(const std::vector<uint32_t>& position);
182 
184 
186  int32_t value,
187  MemberId& outId);
188 
190  uint32_t value,
191  MemberId& outId);
192 
194  int16_t value,
195  MemberId& outId);
196 
198  uint16_t value,
199  MemberId& outId);
200 
202  int64_t value,
203  MemberId& outId);
204 
206  uint64_t value,
207  MemberId& outId);
208 
210  float value,
211  MemberId& outId);
212 
214  double value,
215  MemberId& outId);
216 
218  long double value,
219  MemberId& outId);
220 
222  char value,
223  MemberId& outId);
224 
226  wchar_t value,
227  MemberId& outId);
228 
230  octet value,
231  MemberId& outId);
232 
234  bool value,
235  MemberId& outId);
236 
238  const std::string& value,
239  MemberId& outId);
240 
242  const std::wstring& value,
243  MemberId& outId);
244 
246  const std::string& value,
247  MemberId& outId);
248 
250  const DynamicData* value,
251  MemberId& outId);
252 
254  DynamicData* value,
255  MemberId& outId);
256 
258  DynamicData_ptr value,
259  MemberId& outId);
260 
262 
263  RTPS_DllAPI ReturnCode_t clear_data();
264 
265  RTPS_DllAPI ReturnCode_t clear_array_data(MemberId indexId);
266 
268  const DynamicData* key,
269  MemberId& outKeyId,
270  MemberId& outValueId);
271 
273  const DynamicData* key,
274  DynamicData* value,
275  MemberId& outKey,
276  MemberId& outValue);
277 
279  const DynamicData* key,
280  const DynamicData* value,
281  MemberId& outKey,
282  MemberId& outValue);
283 
285  const DynamicData* key,
286  DynamicData_ptr value,
287  MemberId& outKey,
288  MemberId& outValue);
289 
291 
293  int32_t& value,
294  MemberId id) const;
295 
297  int32_t value,
298  MemberId id = MEMBER_ID_INVALID);
299 
301  uint32_t& value,
302  MemberId id) const;
303 
305  uint32_t value,
306  MemberId id = MEMBER_ID_INVALID);
307 
309  int16_t& value,
310  MemberId id) const;
311 
313  int16_t value,
314  MemberId id = MEMBER_ID_INVALID);
315 
317  uint16_t& value,
318  MemberId id) const;
319 
321  uint16_t value,
322  MemberId id = MEMBER_ID_INVALID);
323 
325  int64_t& value,
326  MemberId id) const;
327 
329  int64_t value,
330  MemberId id = MEMBER_ID_INVALID);
331 
333  uint64_t& value,
334  MemberId id) const;
335 
337  uint64_t value,
338  MemberId id = MEMBER_ID_INVALID);
339 
341  float& value,
342  MemberId id) const;
343 
345  float value,
346  MemberId id = MEMBER_ID_INVALID);
347 
349  double& value,
350  MemberId id) const;
351 
353  double value,
354  MemberId id = MEMBER_ID_INVALID);
355 
357  long double& value,
358  MemberId id) const;
359 
361  long double value,
362  MemberId id = MEMBER_ID_INVALID);
363 
365  char& value,
366  MemberId id) const;
367 
369  char value,
370  MemberId id = MEMBER_ID_INVALID);
371 
373  wchar_t& value,
374  MemberId id) const;
375 
377  wchar_t value,
378  MemberId id = MEMBER_ID_INVALID);
379 
381  octet& value,
382  MemberId id) const;
383 
385  octet value,
386  MemberId id = MEMBER_ID_INVALID);
387 
389  int8_t& value,
390  MemberId id) const
391  {
392  octet aux;
393  ReturnCode_t result = get_byte_value(aux, id);
394  value = static_cast<int8_t>(aux);
395  return result;
396  }
397 
399  int8_t value,
400  MemberId id = MEMBER_ID_INVALID)
401  {
402  return set_byte_value(static_cast<octet>(value), id);
403  }
404 
406  uint8_t& value,
407  MemberId id) const
408  {
409  octet aux;
410  ReturnCode_t result = get_byte_value(aux, id);
411  value = static_cast<uint8_t>(aux);
412  return result;
413  }
414 
416  uint8_t value,
417  MemberId id = MEMBER_ID_INVALID)
418  {
419  return set_byte_value(static_cast<octet>(value), id);
420  }
421 
423  bool& value,
424  MemberId id) const;
425 
427  bool value,
428  MemberId id = MEMBER_ID_INVALID);
429 
431  bool value,
432  const std::string& name)
433  {
434  MemberId id = get_member_id_by_name(name);
435  if (id != MEMBER_ID_INVALID)
436  {
437  return set_bool_value(value, id);
438  }
440  }
441 
443  std::string& value,
444  MemberId id) const;
445 
447  const std::string& value,
448  MemberId id = MEMBER_ID_INVALID);
449 
451  std::wstring& value,
452  MemberId id) const;
453 
455  const std::wstring& value,
456  MemberId id = MEMBER_ID_INVALID);
457 
459  std::string& value,
460  MemberId id) const;
461 
463  const std::string& value,
464  MemberId id = MEMBER_ID_INVALID);
465 
467  uint32_t& value,
468  MemberId id) const;
469 
471  const uint32_t& value,
472  MemberId id = MEMBER_ID_INVALID);
473 
474  RTPS_DllAPI ReturnCode_t get_bitmask_value(uint64_t& value) const;
475 
476  RTPS_DllAPI uint64_t get_bitmask_value() const
477  {
478  uint64_t value;
480  {
482  }
483  return value;
484  }
485 
486  RTPS_DllAPI ReturnCode_t set_bitmask_value(uint64_t value);
487 
489  DynamicData** value,
490  MemberId id) const;
491 
493  DynamicData* value,
494  MemberId id = MEMBER_ID_INVALID);
495 
496  RTPS_DllAPI ReturnCode_t get_union_label(uint64_t& value) const;
497 
498  // Basic types returns (copy)
499  RTPS_DllAPI int32_t get_int32_value(MemberId id) const
500  {
501  int32_t value;
502  if (get_int32_value(value, id) != ReturnCode_t::RETCODE_OK)
503  {
505  }
506  return value;
507  }
508 
509  RTPS_DllAPI uint32_t get_uint32_value(MemberId id) const
510  {
511  uint32_t value;
512  if (get_uint32_value(value, id) != ReturnCode_t::RETCODE_OK)
513  {
515  }
516  return value;
517  }
518 
519  RTPS_DllAPI int16_t get_int16_value(MemberId id) const
520  {
521  int16_t value;
522  if (get_int16_value(value, id) != ReturnCode_t::RETCODE_OK)
523  {
525  }
526  return value;
527  }
528 
529  RTPS_DllAPI uint16_t get_uint16_value(MemberId id) const
530  {
531  uint16_t value;
532  if (get_uint16_value(value, id) != ReturnCode_t::RETCODE_OK)
533  {
535  }
536  return value;
537  }
538 
539  RTPS_DllAPI int64_t get_int64_value(MemberId id) const
540  {
541  int64_t value;
542  if (get_int64_value(value, id) != ReturnCode_t::RETCODE_OK)
543  {
545  }
546  return value;
547  }
548 
549  RTPS_DllAPI uint64_t get_uint64_value(MemberId id) const
550  {
551  uint64_t value;
552  if (get_uint64_value(value, id) != ReturnCode_t::RETCODE_OK)
553  {
555  }
556  return value;
557  }
558 
559  RTPS_DllAPI float get_float32_value(MemberId id) const
560  {
561  float value;
563  {
565  }
566  return value;
567  }
568 
569  RTPS_DllAPI double get_float64_value(MemberId id) const
570  {
571  double value;
573  {
575  }
576  return value;
577  }
578 
579  RTPS_DllAPI long double get_float128_value(MemberId id) const
580  {
581  long double value;
583  {
585  }
586  return value;
587  }
588 
589  RTPS_DllAPI char get_char8_value(MemberId id) const
590  {
591  char value;
592  if (get_char8_value(value, id) != ReturnCode_t::RETCODE_OK)
593  {
595  }
596  return value;
597  }
598 
599  RTPS_DllAPI wchar_t get_char16_value(MemberId id) const
600  {
601  wchar_t value;
602  if (get_char16_value(value, id) != ReturnCode_t::RETCODE_OK)
603  {
605  }
606  return value;
607  }
608 
609  RTPS_DllAPI octet get_byte_value(MemberId id) const
610  {
611  octet value;
612  if (get_byte_value(value, id) != ReturnCode_t::RETCODE_OK)
613  {
615  }
616  return value;
617  }
618 
619  RTPS_DllAPI int8_t get_int8_value(MemberId id) const
620  {
621  int8_t value;
622  if (get_int8_value(value, id) != ReturnCode_t::RETCODE_OK)
623  {
625  }
626  return value;
627  }
628 
629  RTPS_DllAPI uint8_t get_uint8_value(MemberId id) const
630  {
631  uint8_t value;
632  if (get_uint8_value(value, id) != ReturnCode_t::RETCODE_OK)
633  {
635  }
636  return value;
637  }
638 
639  RTPS_DllAPI bool get_bool_value(MemberId id) const
640  {
641  bool value;
642  if (get_bool_value(value, id) != ReturnCode_t::RETCODE_OK)
643  {
645  }
646  return value;
647  }
648 
649  RTPS_DllAPI bool get_bool_value(const std::string& name) const
650  {
651  MemberId id = get_member_id_by_name(name);
652  bool value;
653  if (get_bool_value(value, id) != ReturnCode_t::RETCODE_OK)
654  {
656  }
657  return value;
658  }
659 
660  RTPS_DllAPI std::string get_string_value(MemberId id) const
661  {
662  std::string value;
663  if (get_string_value(value, id) != ReturnCode_t::RETCODE_OK)
664  {
666  }
667  return value;
668  }
669 
670  RTPS_DllAPI std::wstring get_wstring_value(MemberId id) const
671  {
672  std::wstring value;
674  {
676  }
677  return value;
678  }
679 
680  RTPS_DllAPI std::string get_enum_value(MemberId id) const
681  {
682  std::string value;
683  if (get_enum_value(value, id) != ReturnCode_t::RETCODE_OK)
684  {
686  }
687  return value;
688  }
689 
690  RTPS_DllAPI uint64_t get_union_label() const
691  {
692  uint64_t value;
694  {
696  }
697  return value;
698  }
699 
700  RTPS_DllAPI uint64_t get_discriminator_value() const
701  {
702  return discriminator_value_;
703  }
704 
705  RTPS_DllAPI void get_discriminator_value(uint64_t& outValue) const
706  {
707  outValue = discriminator_value_;
708  }
709 
710  RTPS_DllAPI void set_discriminator_value(uint64_t value)
711  {
712  discriminator_value_ = value;
713  }
714 };
715 
716 
717 } // namespace types
718 } // namespace fastrtps
719 } // namespace eprosima
720 
721 #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:509
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:430
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:680
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:579
RTPS_DllAPI ReturnCode_t get_float128_value(long double &value, MemberId id) const
MemberId union_id_
Definition: DynamicData.h:141
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:639
DynamicData * union_discriminator_
Definition: DynamicData.h:142
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:705
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:388
RTPS_DllAPI ReturnCode_t set_bool_value(bool value, MemberId id=MEMBER_ID_INVALID)
DynamicType_ptr type_
Definition: DynamicData.h:114
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:405
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:115
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:519
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:690
RTPS_DllAPI std::string get_string_value(MemberId id) const
Definition: DynamicData.h:660
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:143
RTPS_DllAPI ReturnCode_t clear_array_data(MemberId indexId)
bool key_element_
Definition: DynamicData.h:138
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:629
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:539
RTPS_DllAPI ReturnCode_t insert_float128_value(long double value, MemberId &outId)
DynamicData * default_array_value_
Definition: DynamicData.h:139
RTPS_DllAPI ReturnCode_t clear_nonkey_values()
RTPS_DllAPI uint64_t get_bitmask_value() const
Definition: DynamicData.h:476
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:619
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:135
RTPS_DllAPI ReturnCode_t set_uint8_value(uint8_t value, MemberId id=MEMBER_ID_INVALID)
Definition: DynamicData.h:415
RTPS_DllAPI ReturnCode_t insert_float64_value(double value, MemberId &outId)
RTPS_DllAPI double get_float64_value(MemberId id) const
Definition: DynamicData.h:569
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:549
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:398
RTPS_DllAPI void set_discriminator_value(uint64_t value)
Definition: DynamicData.h:710
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:649
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:700
uint64_t union_label_
Definition: DynamicData.h:140
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:609
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:529
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:137
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:559
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:499
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:670
RTPS_DllAPI wchar_t get_char16_value(MemberId id) const
Definition: DynamicData.h:599
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:589
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
Definition: TypesBase.h:204
static const ReturnCode_t RETCODE_BAD_PARAMETER
Definition: TypesBase.h:253
static const ReturnCode_t RETCODE_OK
Definition: TypesBase.h:250
uint32_t MemberId
Definition: TypesBase.h:272
octet TypeKind
Definition: TypesBase.h:115
eProsima namespace.
Definition: LibrarySettingsAttributes.h:23