TypeIdentifierTypes.h 50 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812
  1. // Copyright 2016 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. * @file TypeIdentifierTypes.h
  16. * This header file contains the declaration of the described types in the IDL file.
  17. *
  18. * This file was generated by the tool gen.
  19. */
  20. #ifndef _TYPEIDENTIFIERTYPES_H_
  21. #define _TYPEIDENTIFIERTYPES_H_
  22. #include <fastrtps/types/TypesBase.h>
  23. #include <fastrtps/types/TypeObjectHashId.h>
  24. #include <stdint.h>
  25. #include <array>
  26. #include <string>
  27. #include <vector>
  28. namespace eprosima {
  29. namespace fastcdr {
  30. class Cdr;
  31. }
  32. }
  33. namespace eprosima {
  34. namespace fastdds {
  35. namespace dds {
  36. class TypeConsistencyEnforcementQosPolicy;
  37. }
  38. }
  39. namespace fastrtps {
  40. namespace types {
  41. // Forward declaration
  42. class TypeIdentifier;
  43. class StringLTypeDefn;
  44. /*!
  45. * @brief This class represents the structure StringSTypeDefn defined by the user in the IDL file.
  46. * @ingroup TYPEIDENTIFIERTYPES
  47. */
  48. class StringSTypeDefn final
  49. {
  50. public:
  51. /*!
  52. * @brief Default constructor.
  53. */
  54. RTPS_DllAPI StringSTypeDefn();
  55. /*!
  56. * @brief Default destructor.
  57. */
  58. RTPS_DllAPI ~StringSTypeDefn();
  59. /*!
  60. * @brief Copy constructor.
  61. * @param x Reference to the object StringSTypeDefn that will be copied.
  62. */
  63. RTPS_DllAPI StringSTypeDefn(
  64. const StringSTypeDefn& x);
  65. /*!
  66. * @brief Move constructor.
  67. * @param x Reference to the object StringSTypeDefn that will be copied.
  68. */
  69. RTPS_DllAPI StringSTypeDefn(
  70. StringSTypeDefn&& x);
  71. /*!
  72. * @brief Copy assignment.
  73. * @param x Reference to the object StringSTypeDefn that will be copied.
  74. */
  75. RTPS_DllAPI StringSTypeDefn& operator=(
  76. const StringSTypeDefn& x);
  77. /*!
  78. * @brief Move assignment.
  79. * @param x Reference to the object StringSTypeDefn that will be copied.
  80. */
  81. RTPS_DllAPI StringSTypeDefn& operator=(
  82. StringSTypeDefn&& x);
  83. /*!
  84. * @brief This function sets a value in member bound
  85. * @param _bound New value for member bound
  86. */
  87. RTPS_DllAPI inline void bound(
  88. SBound _bound)
  89. {
  90. m_bound = _bound;
  91. }
  92. /*!
  93. * @brief This function returns the value of member bound
  94. * @return Value of member bound
  95. */
  96. RTPS_DllAPI inline SBound bound() const
  97. {
  98. return m_bound;
  99. }
  100. /*!
  101. * @brief This function returns a reference to member bound
  102. * @return Reference to member bound
  103. */
  104. RTPS_DllAPI inline SBound& bound()
  105. {
  106. return m_bound;
  107. }
  108. /*!
  109. * @brief This function returns the serialized size of a data depending on the buffer alignment.
  110. * @param data Data which is calculated its serialized size.
  111. * @param current_alignment Buffer alignment.
  112. * @return Serialized size.
  113. */
  114. RTPS_DllAPI static size_t getCdrSerializedSize(
  115. const StringSTypeDefn& data,
  116. size_t current_alignment = 0);
  117. /*!
  118. * @brief This function serializes an object using CDR serialization.
  119. * @param cdr CDR serialization object.
  120. */
  121. RTPS_DllAPI void serialize(
  122. eprosima::fastcdr::Cdr& cdr) const;
  123. /*!
  124. * @brief This function deserializes an object using CDR serialization.
  125. * @param cdr CDR serialization object.
  126. */
  127. RTPS_DllAPI void deserialize(
  128. eprosima::fastcdr::Cdr& cdr);
  129. RTPS_DllAPI bool consistent(
  130. const StringSTypeDefn& x,
  131. const fastdds::dds::TypeConsistencyEnforcementQosPolicy& consistency) const;
  132. RTPS_DllAPI bool consistent(
  133. const StringLTypeDefn& x,
  134. const fastdds::dds::TypeConsistencyEnforcementQosPolicy& consistency) const;
  135. private:
  136. SBound m_bound;
  137. };
  138. /*!
  139. * @brief This class represents the structure StringLTypeDefn defined by the user in the IDL file.
  140. * @ingroup TYPEIDENTIFIERTYPES
  141. */
  142. class StringLTypeDefn final
  143. {
  144. public:
  145. /*!
  146. * @brief Default constructor.
  147. */
  148. RTPS_DllAPI StringLTypeDefn();
  149. /*!
  150. * @brief Default destructor.
  151. */
  152. RTPS_DllAPI ~StringLTypeDefn();
  153. /*!
  154. * @brief Copy constructor.
  155. * @param x Reference to the object StringLTypeDefn that will be copied.
  156. */
  157. RTPS_DllAPI StringLTypeDefn(
  158. const StringLTypeDefn& x);
  159. /*!
  160. * @brief Move constructor.
  161. * @param x Reference to the object StringLTypeDefn that will be copied.
  162. */
  163. RTPS_DllAPI StringLTypeDefn(
  164. StringLTypeDefn&& x);
  165. /*!
  166. * @brief Copy assignment.
  167. * @param x Reference to the object StringLTypeDefn that will be copied.
  168. */
  169. RTPS_DllAPI StringLTypeDefn& operator=(
  170. const StringLTypeDefn& x);
  171. /*!
  172. * @brief Move assignment.
  173. * @param x Reference to the object StringLTypeDefn that will be copied.
  174. */
  175. RTPS_DllAPI StringLTypeDefn& operator=(
  176. StringLTypeDefn&& x);
  177. /*!
  178. * @brief This function sets a value in member bound
  179. * @param _bound New value for member bound
  180. */
  181. RTPS_DllAPI inline void bound(
  182. LBound _bound)
  183. {
  184. m_bound = _bound;
  185. }
  186. /*!
  187. * @brief This function returns the value of member bound
  188. * @return Value of member bound
  189. */
  190. RTPS_DllAPI inline LBound bound() const
  191. {
  192. return m_bound;
  193. }
  194. /*!
  195. * @brief This function returns a reference to member bound
  196. * @return Reference to member bound
  197. */
  198. RTPS_DllAPI inline LBound& bound()
  199. {
  200. return m_bound;
  201. }
  202. /*!
  203. * @brief This function returns the serialized size of a data depending on the buffer alignment.
  204. * @param data Data which is calculated its serialized size.
  205. * @param current_alignment Buffer alignment.
  206. * @return Serialized size.
  207. */
  208. RTPS_DllAPI static size_t getCdrSerializedSize(
  209. const StringLTypeDefn& data,
  210. size_t current_alignment = 0);
  211. /*!
  212. * @brief This function serializes an object using CDR serialization.
  213. * @param cdr CDR serialization object.
  214. */
  215. RTPS_DllAPI void serialize(
  216. eprosima::fastcdr::Cdr& cdr) const;
  217. /*!
  218. * @brief This function deserializes an object using CDR serialization.
  219. * @param cdr CDR serialization object.
  220. */
  221. RTPS_DllAPI void deserialize(
  222. eprosima::fastcdr::Cdr& cdr);
  223. RTPS_DllAPI bool consistent(
  224. const StringLTypeDefn& x,
  225. const fastdds::dds::TypeConsistencyEnforcementQosPolicy& consistency) const;
  226. RTPS_DllAPI bool consistent(
  227. const StringSTypeDefn& x,
  228. const fastdds::dds::TypeConsistencyEnforcementQosPolicy& consistency) const;
  229. private:
  230. LBound m_bound;
  231. };
  232. /*!
  233. * @brief This class represents the structure PlainCollectionHeader defined by the user in the IDL file.
  234. * @ingroup TYPEIDENTIFIERTYPES
  235. */
  236. class PlainCollectionHeader final
  237. {
  238. public:
  239. /*!
  240. * @brief Default constructor.
  241. */
  242. RTPS_DllAPI PlainCollectionHeader();
  243. /*!
  244. * @brief Default destructor.
  245. */
  246. RTPS_DllAPI ~PlainCollectionHeader();
  247. /*!
  248. * @brief Copy constructor.
  249. * @param x Reference to the object PlainCollectionHeader that will be copied.
  250. */
  251. RTPS_DllAPI PlainCollectionHeader(
  252. const PlainCollectionHeader& x);
  253. /*!
  254. * @brief Move constructor.
  255. * @param x Reference to the object PlainCollectionHeader that will be copied.
  256. */
  257. RTPS_DllAPI PlainCollectionHeader(
  258. PlainCollectionHeader&& x);
  259. /*!
  260. * @brief Copy assignment.
  261. * @param x Reference to the object PlainCollectionHeader that will be copied.
  262. */
  263. RTPS_DllAPI PlainCollectionHeader& operator=(
  264. const PlainCollectionHeader& x);
  265. /*!
  266. * @brief Move assignment.
  267. * @param x Reference to the object PlainCollectionHeader that will be copied.
  268. */
  269. RTPS_DllAPI PlainCollectionHeader& operator=(
  270. PlainCollectionHeader&& x);
  271. /*!
  272. * @brief This function sets a value in member equiv_kind
  273. * @param _equiv_kind New value for member equiv_kind
  274. */
  275. RTPS_DllAPI inline void equiv_kind(
  276. EquivalenceKind _equiv_kind)
  277. {
  278. m_equiv_kind = _equiv_kind;
  279. }
  280. /*!
  281. * @brief This function returns the value of member equiv_kind
  282. * @return Value of member equiv_kind
  283. */
  284. RTPS_DllAPI inline EquivalenceKind equiv_kind() const
  285. {
  286. return m_equiv_kind;
  287. }
  288. /*!
  289. * @brief This function returns a reference to member equiv_kind
  290. * @return Reference to member equiv_kind
  291. */
  292. RTPS_DllAPI inline EquivalenceKind& equiv_kind()
  293. {
  294. return m_equiv_kind;
  295. }
  296. /*!
  297. * @brief This function sets a value in member element_flags
  298. * @param _element_flags New value for member element_flags
  299. */
  300. RTPS_DllAPI inline void element_flags(
  301. CollectionElementFlag _element_flags)
  302. {
  303. m_element_flags = _element_flags;
  304. }
  305. /*!
  306. * @brief This function returns the value of member element_flags
  307. * @return Value of member element_flags
  308. */
  309. RTPS_DllAPI inline CollectionElementFlag element_flags() const
  310. {
  311. return m_element_flags;
  312. }
  313. /*!
  314. * @brief This function returns a reference to member element_flags
  315. * @return Reference to member element_flags
  316. */
  317. RTPS_DllAPI inline CollectionElementFlag& element_flags()
  318. {
  319. return m_element_flags;
  320. }
  321. /*!
  322. * @brief This function returns the serialized size of a data depending on the buffer alignment.
  323. * @param data Data which is calculated its serialized size.
  324. * @param current_alignment Buffer alignment.
  325. * @return Serialized size.
  326. */
  327. RTPS_DllAPI static size_t getCdrSerializedSize(
  328. const PlainCollectionHeader& data,
  329. size_t current_alignment = 0);
  330. /*!
  331. * @brief This function serializes an object using CDR serialization.
  332. * @param cdr CDR serialization object.
  333. */
  334. RTPS_DllAPI void serialize(
  335. eprosima::fastcdr::Cdr& cdr) const;
  336. /*!
  337. * @brief This function deserializes an object using CDR serialization.
  338. * @param cdr CDR serialization object.
  339. */
  340. RTPS_DllAPI void deserialize(
  341. eprosima::fastcdr::Cdr& cdr);
  342. RTPS_DllAPI bool consistent(
  343. const PlainCollectionHeader& x,
  344. const fastdds::dds::TypeConsistencyEnforcementQosPolicy& consistency) const;
  345. private:
  346. EquivalenceKind m_equiv_kind;
  347. CollectionElementFlag m_element_flags;
  348. };
  349. /*!
  350. * @brief This class represents the structure PlainSequenceSElemDefn defined by the user in the IDL file.
  351. * @ingroup TYPEIDENTIFIERTYPES
  352. */
  353. class PlainSequenceSElemDefn final
  354. {
  355. public:
  356. /*!
  357. * @brief Default constructor.
  358. */
  359. RTPS_DllAPI PlainSequenceSElemDefn();
  360. /*!
  361. * @brief Default destructor.
  362. */
  363. RTPS_DllAPI ~PlainSequenceSElemDefn();
  364. /*!
  365. * @brief Copy constructor.
  366. * @param x Reference to the object PlainSequenceSElemDefn that will be copied.
  367. */
  368. RTPS_DllAPI PlainSequenceSElemDefn(
  369. const PlainSequenceSElemDefn& x);
  370. /*!
  371. * @brief Move constructor.
  372. * @param x Reference to the object PlainSequenceSElemDefn that will be copied.
  373. */
  374. RTPS_DllAPI PlainSequenceSElemDefn(
  375. PlainSequenceSElemDefn&& x);
  376. /*!
  377. * @brief Copy assignment.
  378. * @param x Reference to the object PlainSequenceSElemDefn that will be copied.
  379. */
  380. RTPS_DllAPI PlainSequenceSElemDefn& operator=(
  381. const PlainSequenceSElemDefn& x);
  382. /*!
  383. * @brief Move assignment.
  384. * @param x Reference to the object PlainSequenceSElemDefn that will be copied.
  385. */
  386. RTPS_DllAPI PlainSequenceSElemDefn& operator=(
  387. PlainSequenceSElemDefn&& x);
  388. /*!
  389. * @brief This function copies the value in member header
  390. * @param _header New value to be copied in member header
  391. */
  392. RTPS_DllAPI inline void header(
  393. const PlainCollectionHeader& _header)
  394. {
  395. m_header = _header;
  396. }
  397. /*!
  398. * @brief This function moves the value in member header
  399. * @param _header New value to be moved in member header
  400. */
  401. RTPS_DllAPI inline void header(
  402. PlainCollectionHeader&& _header)
  403. {
  404. m_header = std::move(_header);
  405. }
  406. /*!
  407. * @brief This function returns a constant reference to member header
  408. * @return Constant reference to member header
  409. */
  410. RTPS_DllAPI inline const PlainCollectionHeader& header() const
  411. {
  412. return m_header;
  413. }
  414. /*!
  415. * @brief This function returns a reference to member header
  416. * @return Reference to member header
  417. */
  418. RTPS_DllAPI inline PlainCollectionHeader& header()
  419. {
  420. return m_header;
  421. }
  422. /*!
  423. * @brief This function sets a value in member bound
  424. * @param _bound New value for member bound
  425. */
  426. RTPS_DllAPI inline void bound(
  427. SBound _bound)
  428. {
  429. m_bound = _bound;
  430. }
  431. /*!
  432. * @brief This function returns the value of member bound
  433. * @return Value of member bound
  434. */
  435. RTPS_DllAPI inline SBound bound() const
  436. {
  437. return m_bound;
  438. }
  439. /*!
  440. * @brief This function returns a reference to member bound
  441. * @return Reference to member bound
  442. */
  443. RTPS_DllAPI inline SBound& bound()
  444. {
  445. return m_bound;
  446. }
  447. /*!
  448. * @brief This function sets a value in member element_identifier
  449. * @param _element_identifier New value for member element_identifier
  450. */
  451. RTPS_DllAPI void element_identifier(
  452. const TypeIdentifier* _element_identifier);
  453. /*!
  454. * @brief This function returns the value of member element_identifier
  455. * @return Value of member element_identifier
  456. */
  457. RTPS_DllAPI inline const TypeIdentifier* element_identifier() const
  458. {
  459. return m_element_identifier;
  460. }
  461. /*!
  462. * @brief This function returns a reference to member element_identifier
  463. * @return Reference to member element_identifier
  464. */
  465. RTPS_DllAPI inline TypeIdentifier* element_identifier()
  466. {
  467. return m_element_identifier;
  468. }
  469. /*!
  470. * @brief This function returns the serialized size of a data depending on the buffer alignment.
  471. * @param data Data which is calculated its serialized size.
  472. * @param current_alignment Buffer alignment.
  473. * @return Serialized size.
  474. */
  475. RTPS_DllAPI static size_t getCdrSerializedSize(
  476. const PlainSequenceSElemDefn& data,
  477. size_t current_alignment = 0);
  478. /*!
  479. * @brief This function serializes an object using CDR serialization.
  480. * @param cdr CDR serialization object.
  481. */
  482. RTPS_DllAPI void serialize(
  483. eprosima::fastcdr::Cdr& cdr) const;
  484. /*!
  485. * @brief This function deserializes an object using CDR serialization.
  486. * @param cdr CDR serialization object.
  487. */
  488. RTPS_DllAPI void deserialize(
  489. eprosima::fastcdr::Cdr& cdr);
  490. RTPS_DllAPI bool consistent(
  491. const PlainSequenceSElemDefn& x,
  492. const fastdds::dds::TypeConsistencyEnforcementQosPolicy& consistency) const;
  493. private:
  494. PlainCollectionHeader m_header;
  495. SBound m_bound;
  496. TypeIdentifier* m_element_identifier;
  497. };
  498. /*!
  499. * @brief This class represents the structure PlainSequenceLElemDefn defined by the user in the IDL file.
  500. * @ingroup TYPEIDENTIFIERTYPES
  501. */
  502. class PlainSequenceLElemDefn final
  503. {
  504. public:
  505. /*!
  506. * @brief Default constructor.
  507. */
  508. RTPS_DllAPI PlainSequenceLElemDefn();
  509. /*!
  510. * @brief Default destructor.
  511. */
  512. RTPS_DllAPI ~PlainSequenceLElemDefn();
  513. /*!
  514. * @brief Copy constructor.
  515. * @param x Reference to the object PlainSequenceLElemDefn that will be copied.
  516. */
  517. RTPS_DllAPI PlainSequenceLElemDefn(
  518. const PlainSequenceLElemDefn& x);
  519. /*!
  520. * @brief Move constructor.
  521. * @param x Reference to the object PlainSequenceLElemDefn that will be copied.
  522. */
  523. RTPS_DllAPI PlainSequenceLElemDefn(
  524. PlainSequenceLElemDefn&& x);
  525. /*!
  526. * @brief Copy assignment.
  527. * @param x Reference to the object PlainSequenceLElemDefn that will be copied.
  528. */
  529. RTPS_DllAPI PlainSequenceLElemDefn& operator=(
  530. const PlainSequenceLElemDefn& x);
  531. /*!
  532. * @brief Move assignment.
  533. * @param x Reference to the object PlainSequenceLElemDefn that will be copied.
  534. */
  535. RTPS_DllAPI PlainSequenceLElemDefn& operator=(
  536. PlainSequenceLElemDefn&& x);
  537. /*!
  538. * @brief This function copies the value in member header
  539. * @param _header New value to be copied in member header
  540. */
  541. RTPS_DllAPI inline void header(
  542. const PlainCollectionHeader& _header)
  543. {
  544. m_header = _header;
  545. }
  546. /*!
  547. * @brief This function moves the value in member header
  548. * @param _header New value to be moved in member header
  549. */
  550. RTPS_DllAPI inline void header(
  551. PlainCollectionHeader&& _header)
  552. {
  553. m_header = std::move(_header);
  554. }
  555. /*!
  556. * @brief This function returns a constant reference to member header
  557. * @return Constant reference to member header
  558. */
  559. RTPS_DllAPI inline const PlainCollectionHeader& header() const
  560. {
  561. return m_header;
  562. }
  563. /*!
  564. * @brief This function returns a reference to member header
  565. * @return Reference to member header
  566. */
  567. RTPS_DllAPI inline PlainCollectionHeader& header()
  568. {
  569. return m_header;
  570. }
  571. /*!
  572. * @brief This function sets a value in member bound
  573. * @param _bound New value for member bound
  574. */
  575. RTPS_DllAPI inline void bound(
  576. LBound _bound)
  577. {
  578. m_bound = _bound;
  579. }
  580. /*!
  581. * @brief This function returns the value of member bound
  582. * @return Value of member bound
  583. */
  584. RTPS_DllAPI inline LBound bound() const
  585. {
  586. return m_bound;
  587. }
  588. /*!
  589. * @brief This function returns a reference to member bound
  590. * @return Reference to member bound
  591. */
  592. RTPS_DllAPI inline LBound& bound()
  593. {
  594. return m_bound;
  595. }
  596. /*!
  597. * @brief This function sets a value in member element_identifier
  598. * @param _element_identifier New value for member element_identifier
  599. */
  600. RTPS_DllAPI void element_identifier(
  601. const TypeIdentifier* _element_identifier);
  602. /*!
  603. * @brief This function returns the value of member element_identifier
  604. * @return Value of member element_identifier
  605. */
  606. RTPS_DllAPI inline const TypeIdentifier* element_identifier() const
  607. {
  608. return m_element_identifier;
  609. }
  610. /*!
  611. * @brief This function returns a reference to member element_identifier
  612. * @return Reference to member element_identifier
  613. */
  614. RTPS_DllAPI inline TypeIdentifier* element_identifier()
  615. {
  616. return m_element_identifier;
  617. }
  618. /*!
  619. * @brief This function returns the serialized size of a data depending on the buffer alignment.
  620. * @param data Data which is calculated its serialized size.
  621. * @param current_alignment Buffer alignment.
  622. * @return Serialized size.
  623. */
  624. RTPS_DllAPI static size_t getCdrSerializedSize(
  625. const PlainSequenceLElemDefn& data,
  626. size_t current_alignment = 0);
  627. /*!
  628. * @brief This function serializes an object using CDR serialization.
  629. * @param cdr CDR serialization object.
  630. */
  631. RTPS_DllAPI void serialize(
  632. eprosima::fastcdr::Cdr& cdr) const;
  633. /*!
  634. * @brief This function deserializes an object using CDR serialization.
  635. * @param cdr CDR serialization object.
  636. */
  637. RTPS_DllAPI void deserialize(
  638. eprosima::fastcdr::Cdr& cdr);
  639. RTPS_DllAPI bool consistent(
  640. const PlainSequenceLElemDefn& x,
  641. const fastdds::dds::TypeConsistencyEnforcementQosPolicy& consistency) const;
  642. private:
  643. PlainCollectionHeader m_header;
  644. LBound m_bound;
  645. TypeIdentifier* m_element_identifier;
  646. };
  647. /*!
  648. * @brief This class represents the structure PlainArraySElemDefn defined by the user in the IDL file.
  649. * @ingroup TYPEIDENTIFIERTYPES
  650. */
  651. class PlainArraySElemDefn final
  652. {
  653. public:
  654. /*!
  655. * @brief Default constructor.
  656. */
  657. RTPS_DllAPI PlainArraySElemDefn();
  658. /*!
  659. * @brief Default destructor.
  660. */
  661. RTPS_DllAPI ~PlainArraySElemDefn();
  662. /*!
  663. * @brief Copy constructor.
  664. * @param x Reference to the object PlainArraySElemDefn that will be copied.
  665. */
  666. RTPS_DllAPI PlainArraySElemDefn(
  667. const PlainArraySElemDefn& x);
  668. /*!
  669. * @brief Move constructor.
  670. * @param x Reference to the object PlainArraySElemDefn that will be copied.
  671. */
  672. RTPS_DllAPI PlainArraySElemDefn(
  673. PlainArraySElemDefn&& x);
  674. /*!
  675. * @brief Copy assignment.
  676. * @param x Reference to the object PlainArraySElemDefn that will be copied.
  677. */
  678. RTPS_DllAPI PlainArraySElemDefn& operator=(
  679. const PlainArraySElemDefn& x);
  680. /*!
  681. * @brief Move assignment.
  682. * @param x Reference to the object PlainArraySElemDefn that will be copied.
  683. */
  684. RTPS_DllAPI PlainArraySElemDefn& operator=(
  685. PlainArraySElemDefn&& x);
  686. /*!
  687. * @brief This function copies the value in member header
  688. * @param _header New value to be copied in member header
  689. */
  690. RTPS_DllAPI inline void header(
  691. const PlainCollectionHeader& _header)
  692. {
  693. m_header = _header;
  694. }
  695. /*!
  696. * @brief This function moves the value in member header
  697. * @param _header New value to be moved in member header
  698. */
  699. RTPS_DllAPI inline void header(
  700. PlainCollectionHeader&& _header)
  701. {
  702. m_header = std::move(_header);
  703. }
  704. /*!
  705. * @brief This function returns a constant reference to member header
  706. * @return Constant reference to member header
  707. */
  708. RTPS_DllAPI inline const PlainCollectionHeader& header() const
  709. {
  710. return m_header;
  711. }
  712. /*!
  713. * @brief This function returns a reference to member header
  714. * @return Reference to member header
  715. */
  716. RTPS_DllAPI inline PlainCollectionHeader& header()
  717. {
  718. return m_header;
  719. }
  720. /*!
  721. * @brief This function copies the value in member array_bound_seq
  722. * @param _array_bound_seq New value to be copied in member array_bound_seq
  723. */
  724. RTPS_DllAPI inline void array_bound_seq(
  725. const SBoundSeq& _array_bound_seq)
  726. {
  727. m_array_bound_seq = _array_bound_seq;
  728. }
  729. /*!
  730. * @brief This function moves the value in member array_bound_seq
  731. * @param _array_bound_seq New value to be moved in member array_bound_seq
  732. */
  733. RTPS_DllAPI inline void array_bound_seq(
  734. SBoundSeq&& _array_bound_seq)
  735. {
  736. m_array_bound_seq = std::move(_array_bound_seq);
  737. }
  738. /*!
  739. * @brief This function returns a constant reference to member array_bound_seq
  740. * @return Constant reference to member array_bound_seq
  741. */
  742. RTPS_DllAPI inline const SBoundSeq& array_bound_seq() const
  743. {
  744. return m_array_bound_seq;
  745. }
  746. /*!
  747. * @brief This function returns a reference to member array_bound_seq
  748. * @return Reference to member array_bound_seq
  749. */
  750. RTPS_DllAPI inline SBoundSeq& array_bound_seq()
  751. {
  752. return m_array_bound_seq;
  753. }
  754. /*!
  755. * @brief This function sets a value in member element_identifier
  756. * @param _element_identifier New value for member element_identifier
  757. */
  758. RTPS_DllAPI void element_identifier(
  759. const TypeIdentifier* _element_identifier);
  760. /*!
  761. * @brief This function returns the value of member element_identifier
  762. * @return Value of member element_identifier
  763. */
  764. RTPS_DllAPI inline const TypeIdentifier* element_identifier() const
  765. {
  766. return m_element_identifier;
  767. }
  768. /*!
  769. * @brief This function returns a reference to member element_identifier
  770. * @return Reference to member element_identifier
  771. */
  772. RTPS_DllAPI inline TypeIdentifier* element_identifier()
  773. {
  774. return m_element_identifier;
  775. }
  776. /*!
  777. * @brief This function returns the serialized size of a data depending on the buffer alignment.
  778. * @param data Data which is calculated its serialized size.
  779. * @param current_alignment Buffer alignment.
  780. * @return Serialized size.
  781. */
  782. RTPS_DllAPI static size_t getCdrSerializedSize(
  783. const PlainArraySElemDefn& data,
  784. size_t current_alignment = 0);
  785. /*!
  786. * @brief This function serializes an object using CDR serialization.
  787. * @param cdr CDR serialization object.
  788. */
  789. RTPS_DllAPI void serialize(
  790. eprosima::fastcdr::Cdr& cdr) const;
  791. /*!
  792. * @brief This function deserializes an object using CDR serialization.
  793. * @param cdr CDR serialization object.
  794. */
  795. RTPS_DllAPI void deserialize(
  796. eprosima::fastcdr::Cdr& cdr);
  797. RTPS_DllAPI bool consistent(
  798. const PlainArraySElemDefn& x,
  799. const fastdds::dds::TypeConsistencyEnforcementQosPolicy& consistency) const;
  800. private:
  801. PlainCollectionHeader m_header;
  802. SBoundSeq m_array_bound_seq;
  803. TypeIdentifier* m_element_identifier;
  804. };
  805. /*!
  806. * @brief This class represents the structure PlainArrayLElemDefn defined by the user in the IDL file.
  807. * @ingroup TYPEIDENTIFIERTYPES
  808. */
  809. class PlainArrayLElemDefn final
  810. {
  811. public:
  812. /*!
  813. * @brief Default constructor.
  814. */
  815. RTPS_DllAPI PlainArrayLElemDefn();
  816. /*!
  817. * @brief Default destructor.
  818. */
  819. RTPS_DllAPI ~PlainArrayLElemDefn();
  820. /*!
  821. * @brief Copy constructor.
  822. * @param x Reference to the object PlainArrayLElemDefn that will be copied.
  823. */
  824. RTPS_DllAPI PlainArrayLElemDefn(
  825. const PlainArrayLElemDefn& x);
  826. /*!
  827. * @brief Move constructor.
  828. * @param x Reference to the object PlainArrayLElemDefn that will be copied.
  829. */
  830. RTPS_DllAPI PlainArrayLElemDefn(
  831. PlainArrayLElemDefn&& x);
  832. /*!
  833. * @brief Copy assignment.
  834. * @param x Reference to the object PlainArrayLElemDefn that will be copied.
  835. */
  836. RTPS_DllAPI PlainArrayLElemDefn& operator=(
  837. const PlainArrayLElemDefn& x);
  838. /*!
  839. * @brief Move assignment.
  840. * @param x Reference to the object PlainArrayLElemDefn that will be copied.
  841. */
  842. RTPS_DllAPI PlainArrayLElemDefn& operator=(
  843. PlainArrayLElemDefn&& x);
  844. /*!
  845. * @brief This function copies the value in member header
  846. * @param _header New value to be copied in member header
  847. */
  848. RTPS_DllAPI inline void header(
  849. const PlainCollectionHeader& _header)
  850. {
  851. m_header = _header;
  852. }
  853. /*!
  854. * @brief This function moves the value in member header
  855. * @param _header New value to be moved in member header
  856. */
  857. RTPS_DllAPI inline void header(
  858. PlainCollectionHeader&& _header)
  859. {
  860. m_header = std::move(_header);
  861. }
  862. /*!
  863. * @brief This function returns a constant reference to member header
  864. * @return Constant reference to member header
  865. */
  866. RTPS_DllAPI inline const PlainCollectionHeader& header() const
  867. {
  868. return m_header;
  869. }
  870. /*!
  871. * @brief This function returns a reference to member header
  872. * @return Reference to member header
  873. */
  874. RTPS_DllAPI inline PlainCollectionHeader& header()
  875. {
  876. return m_header;
  877. }
  878. /*!
  879. * @brief This function copies the value in member array_bound_seq
  880. * @param _array_bound_seq New value to be copied in member array_bound_seq
  881. */
  882. RTPS_DllAPI inline void array_bound_seq(
  883. const LBoundSeq& _array_bound_seq)
  884. {
  885. m_array_bound_seq = _array_bound_seq;
  886. }
  887. /*!
  888. * @brief This function moves the value in member array_bound_seq
  889. * @param _array_bound_seq New value to be moved in member array_bound_seq
  890. */
  891. RTPS_DllAPI inline void array_bound_seq(
  892. LBoundSeq&& _array_bound_seq)
  893. {
  894. m_array_bound_seq = std::move(_array_bound_seq);
  895. }
  896. /*!
  897. * @brief This function returns a constant reference to member array_bound_seq
  898. * @return Constant reference to member array_bound_seq
  899. */
  900. RTPS_DllAPI inline const LBoundSeq& array_bound_seq() const
  901. {
  902. return m_array_bound_seq;
  903. }
  904. /*!
  905. * @brief This function returns a reference to member array_bound_seq
  906. * @return Reference to member array_bound_seq
  907. */
  908. RTPS_DllAPI inline LBoundSeq& array_bound_seq()
  909. {
  910. return m_array_bound_seq;
  911. }
  912. /*!
  913. * @brief This function sets a value in member element_identifier
  914. * @param _element_identifier New value for member element_identifier
  915. */
  916. RTPS_DllAPI void element_identifier(
  917. const TypeIdentifier* _element_identifier);
  918. /*!
  919. * @brief This function returns the value of member element_identifier
  920. * @return Value of member element_identifier
  921. */
  922. RTPS_DllAPI inline const TypeIdentifier* element_identifier() const
  923. {
  924. return m_element_identifier;
  925. }
  926. /*!
  927. * @brief This function returns a reference to member element_identifier
  928. * @return Reference to member element_identifier
  929. */
  930. RTPS_DllAPI inline TypeIdentifier* element_identifier()
  931. {
  932. return m_element_identifier;
  933. }
  934. /*!
  935. * @brief This function returns the serialized size of a data depending on the buffer alignment.
  936. * @param data Data which is calculated its serialized size.
  937. * @param current_alignment Buffer alignment.
  938. * @return Serialized size.
  939. */
  940. RTPS_DllAPI static size_t getCdrSerializedSize(
  941. const PlainArrayLElemDefn& data,
  942. size_t current_alignment = 0);
  943. /*!
  944. * @brief This function serializes an object using CDR serialization.
  945. * @param cdr CDR serialization object.
  946. */
  947. RTPS_DllAPI void serialize(
  948. eprosima::fastcdr::Cdr& cdr) const;
  949. /*!
  950. * @brief This function deserializes an object using CDR serialization.
  951. * @param cdr CDR serialization object.
  952. */
  953. RTPS_DllAPI void deserialize(
  954. eprosima::fastcdr::Cdr& cdr);
  955. RTPS_DllAPI bool consistent(
  956. const PlainArrayLElemDefn& x,
  957. const fastdds::dds::TypeConsistencyEnforcementQosPolicy& consistency) const;
  958. private:
  959. PlainCollectionHeader m_header;
  960. LBoundSeq m_array_bound_seq;
  961. TypeIdentifier* m_element_identifier;
  962. };
  963. /*!
  964. * @brief This class represents the structure PlainMapSTypeDefn defined by the user in the IDL file.
  965. * @ingroup TYPEIDENTIFIERTYPES
  966. */
  967. class PlainMapSTypeDefn final
  968. {
  969. public:
  970. /*!
  971. * @brief Default constructor.
  972. */
  973. RTPS_DllAPI PlainMapSTypeDefn();
  974. /*!
  975. * @brief Default destructor.
  976. */
  977. RTPS_DllAPI ~PlainMapSTypeDefn();
  978. /*!
  979. * @brief Copy constructor.
  980. * @param x Reference to the object PlainMapSTypeDefn that will be copied.
  981. */
  982. RTPS_DllAPI PlainMapSTypeDefn(
  983. const PlainMapSTypeDefn& x);
  984. /*!
  985. * @brief Move constructor.
  986. * @param x Reference to the object PlainMapSTypeDefn that will be copied.
  987. */
  988. RTPS_DllAPI PlainMapSTypeDefn(
  989. PlainMapSTypeDefn&& x);
  990. /*!
  991. * @brief Copy assignment.
  992. * @param x Reference to the object PlainMapSTypeDefn that will be copied.
  993. */
  994. RTPS_DllAPI PlainMapSTypeDefn& operator=(
  995. const PlainMapSTypeDefn& x);
  996. /*!
  997. * @brief Move assignment.
  998. * @param x Reference to the object PlainMapSTypeDefn that will be copied.
  999. */
  1000. RTPS_DllAPI PlainMapSTypeDefn& operator=(
  1001. PlainMapSTypeDefn&& x);
  1002. /*!
  1003. * @brief This function copies the value in member header
  1004. * @param _header New value to be copied in member header
  1005. */
  1006. RTPS_DllAPI inline void header(
  1007. const PlainCollectionHeader& _header)
  1008. {
  1009. m_header = _header;
  1010. }
  1011. /*!
  1012. * @brief This function moves the value in member header
  1013. * @param _header New value to be moved in member header
  1014. */
  1015. RTPS_DllAPI inline void header(
  1016. PlainCollectionHeader&& _header)
  1017. {
  1018. m_header = std::move(_header);
  1019. }
  1020. /*!
  1021. * @brief This function returns a constant reference to member header
  1022. * @return Constant reference to member header
  1023. */
  1024. RTPS_DllAPI inline const PlainCollectionHeader& header() const
  1025. {
  1026. return m_header;
  1027. }
  1028. /*!
  1029. * @brief This function returns a reference to member header
  1030. * @return Reference to member header
  1031. */
  1032. RTPS_DllAPI inline PlainCollectionHeader& header()
  1033. {
  1034. return m_header;
  1035. }
  1036. /*!
  1037. * @brief This function sets a value in member bound
  1038. * @param _bound New value for member bound
  1039. */
  1040. RTPS_DllAPI inline void bound(
  1041. SBound _bound)
  1042. {
  1043. m_bound = _bound;
  1044. }
  1045. /*!
  1046. * @brief This function returns the value of member bound
  1047. * @return Value of member bound
  1048. */
  1049. RTPS_DllAPI inline SBound bound() const
  1050. {
  1051. return m_bound;
  1052. }
  1053. /*!
  1054. * @brief This function returns a reference to member bound
  1055. * @return Reference to member bound
  1056. */
  1057. RTPS_DllAPI inline SBound& bound()
  1058. {
  1059. return m_bound;
  1060. }
  1061. /*!
  1062. * @brief This function sets a value in member element_identifier
  1063. * @param _element_identifier New value for member element_identifier
  1064. */
  1065. RTPS_DllAPI void element_identifier(
  1066. const TypeIdentifier* _element_identifier);
  1067. /*!
  1068. * @brief This function returns the value of member element_identifier
  1069. * @return Value of member element_identifier
  1070. */
  1071. RTPS_DllAPI inline const TypeIdentifier* element_identifier() const
  1072. {
  1073. return m_element_identifier;
  1074. }
  1075. /*!
  1076. * @brief This function returns a reference to member element_identifier
  1077. * @return Reference to member element_identifier
  1078. */
  1079. RTPS_DllAPI inline TypeIdentifier* element_identifier()
  1080. {
  1081. return m_element_identifier;
  1082. }
  1083. /*!
  1084. * @brief This function sets a value in member key_flags
  1085. * @param _key_flags New value for member key_flags
  1086. */
  1087. RTPS_DllAPI inline void key_flags(
  1088. CollectionElementFlag _key_flags)
  1089. {
  1090. m_key_flags = _key_flags;
  1091. }
  1092. /*!
  1093. * @brief This function returns the value of member key_flags
  1094. * @return Value of member key_flags
  1095. */
  1096. RTPS_DllAPI inline CollectionElementFlag key_flags() const
  1097. {
  1098. return m_key_flags;
  1099. }
  1100. /*!
  1101. * @brief This function returns a reference to member key_flags
  1102. * @return Reference to member key_flags
  1103. */
  1104. RTPS_DllAPI inline CollectionElementFlag& key_flags()
  1105. {
  1106. return m_key_flags;
  1107. }
  1108. /*!
  1109. * @brief This function sets a value in member key_identifier
  1110. * @param _key_identifier New value for member key_identifier
  1111. */
  1112. RTPS_DllAPI void key_identifier(
  1113. const TypeIdentifier* _key_identifier);
  1114. /*!
  1115. * @brief This function returns the value of member key_identifier
  1116. * @return Value of member key_identifier
  1117. */
  1118. RTPS_DllAPI inline const TypeIdentifier* key_identifier() const
  1119. {
  1120. return m_key_identifier;
  1121. }
  1122. /*!
  1123. * @brief This function returns a reference to member key_identifier
  1124. * @return Reference to member key_identifier
  1125. */
  1126. RTPS_DllAPI inline TypeIdentifier* key_identifier()
  1127. {
  1128. return m_key_identifier;
  1129. }
  1130. /*!
  1131. * @brief This function returns the serialized size of a data depending on the buffer alignment.
  1132. * @param data Data which is calculated its serialized size.
  1133. * @param current_alignment Buffer alignment.
  1134. * @return Serialized size.
  1135. */
  1136. RTPS_DllAPI static size_t getCdrSerializedSize(
  1137. const PlainMapSTypeDefn& data,
  1138. size_t current_alignment = 0);
  1139. /*!
  1140. * @brief This function serializes an object using CDR serialization.
  1141. * @param cdr CDR serialization object.
  1142. */
  1143. RTPS_DllAPI void serialize(
  1144. eprosima::fastcdr::Cdr& cdr) const;
  1145. /*!
  1146. * @brief This function deserializes an object using CDR serialization.
  1147. * @param cdr CDR serialization object.
  1148. */
  1149. RTPS_DllAPI void deserialize(
  1150. eprosima::fastcdr::Cdr& cdr);
  1151. RTPS_DllAPI bool consistent(
  1152. const PlainMapSTypeDefn& x,
  1153. const fastdds::dds::TypeConsistencyEnforcementQosPolicy& consistency) const;
  1154. private:
  1155. PlainCollectionHeader m_header;
  1156. SBound m_bound;
  1157. TypeIdentifier* m_element_identifier;
  1158. CollectionElementFlag m_key_flags;
  1159. TypeIdentifier* m_key_identifier;
  1160. };
  1161. /*!
  1162. * @brief This class represents the structure PlainMapLTypeDefn defined by the user in the IDL file.
  1163. * @ingroup TYPEIDENTIFIERTYPES
  1164. */
  1165. class PlainMapLTypeDefn final
  1166. {
  1167. public:
  1168. /*!
  1169. * @brief Default constructor.
  1170. */
  1171. RTPS_DllAPI PlainMapLTypeDefn();
  1172. /*!
  1173. * @brief Default destructor.
  1174. */
  1175. RTPS_DllAPI ~PlainMapLTypeDefn();
  1176. /*!
  1177. * @brief Copy constructor.
  1178. * @param x Reference to the object PlainMapLTypeDefn that will be copied.
  1179. */
  1180. RTPS_DllAPI PlainMapLTypeDefn(
  1181. const PlainMapLTypeDefn& x);
  1182. /*!
  1183. * @brief Move constructor.
  1184. * @param x Reference to the object PlainMapLTypeDefn that will be copied.
  1185. */
  1186. RTPS_DllAPI PlainMapLTypeDefn(
  1187. PlainMapLTypeDefn&& x);
  1188. /*!
  1189. * @brief Copy assignment.
  1190. * @param x Reference to the object PlainMapLTypeDefn that will be copied.
  1191. */
  1192. RTPS_DllAPI PlainMapLTypeDefn& operator=(
  1193. const PlainMapLTypeDefn& x);
  1194. /*!
  1195. * @brief Move assignment.
  1196. * @param x Reference to the object PlainMapLTypeDefn that will be copied.
  1197. */
  1198. RTPS_DllAPI PlainMapLTypeDefn& operator=(
  1199. PlainMapLTypeDefn&& x);
  1200. /*!
  1201. * @brief This function copies the value in member header
  1202. * @param _header New value to be copied in member header
  1203. */
  1204. RTPS_DllAPI inline void header(
  1205. const PlainCollectionHeader& _header)
  1206. {
  1207. m_header = _header;
  1208. }
  1209. /*!
  1210. * @brief This function moves the value in member header
  1211. * @param _header New value to be moved in member header
  1212. */
  1213. RTPS_DllAPI inline void header(
  1214. PlainCollectionHeader&& _header)
  1215. {
  1216. m_header = std::move(_header);
  1217. }
  1218. /*!
  1219. * @brief This function returns a constant reference to member header
  1220. * @return Constant reference to member header
  1221. */
  1222. RTPS_DllAPI inline const PlainCollectionHeader& header() const
  1223. {
  1224. return m_header;
  1225. }
  1226. /*!
  1227. * @brief This function returns a reference to member header
  1228. * @return Reference to member header
  1229. */
  1230. RTPS_DllAPI inline PlainCollectionHeader& header()
  1231. {
  1232. return m_header;
  1233. }
  1234. /*!
  1235. * @brief This function sets a value in member bound
  1236. * @param _bound New value for member bound
  1237. */
  1238. RTPS_DllAPI inline void bound(
  1239. LBound _bound)
  1240. {
  1241. m_bound = _bound;
  1242. }
  1243. /*!
  1244. * @brief This function returns the value of member bound
  1245. * @return Value of member bound
  1246. */
  1247. RTPS_DllAPI inline LBound bound() const
  1248. {
  1249. return m_bound;
  1250. }
  1251. /*!
  1252. * @brief This function returns a reference to member bound
  1253. * @return Reference to member bound
  1254. */
  1255. RTPS_DllAPI inline LBound& bound()
  1256. {
  1257. return m_bound;
  1258. }
  1259. /*!
  1260. * @brief This function sets a value in member element_identifier
  1261. * @param _element_identifier New value for member element_identifier
  1262. */
  1263. RTPS_DllAPI void element_identifier(
  1264. const TypeIdentifier* _element_identifier);
  1265. /*!
  1266. * @brief This function returns the value of member element_identifier
  1267. * @return Value of member element_identifier
  1268. */
  1269. RTPS_DllAPI inline const TypeIdentifier* element_identifier() const
  1270. {
  1271. return m_element_identifier;
  1272. }
  1273. /*!
  1274. * @brief This function returns a reference to member element_identifier
  1275. * @return Reference to member element_identifier
  1276. */
  1277. RTPS_DllAPI inline TypeIdentifier* element_identifier()
  1278. {
  1279. return m_element_identifier;
  1280. }
  1281. /*!
  1282. * @brief This function sets a value in member key_flags
  1283. * @param _key_flags New value for member key_flags
  1284. */
  1285. RTPS_DllAPI inline void key_flags(
  1286. CollectionElementFlag _key_flags)
  1287. {
  1288. m_key_flags = _key_flags;
  1289. }
  1290. /*!
  1291. * @brief This function returns the value of member key_flags
  1292. * @return Value of member key_flags
  1293. */
  1294. RTPS_DllAPI inline CollectionElementFlag key_flags() const
  1295. {
  1296. return m_key_flags;
  1297. }
  1298. /*!
  1299. * @brief This function returns a reference to member key_flags
  1300. * @return Reference to member key_flags
  1301. */
  1302. RTPS_DllAPI inline CollectionElementFlag& key_flags()
  1303. {
  1304. return m_key_flags;
  1305. }
  1306. /*!
  1307. * @brief This function sets a value in member key_identifier
  1308. * @param _key_identifier New value for member key_identifier
  1309. */
  1310. RTPS_DllAPI void key_identifier(
  1311. const TypeIdentifier* _key_identifier);
  1312. /*!
  1313. * @brief This function returns the value of member key_identifier
  1314. * @return Value of member key_identifier
  1315. */
  1316. RTPS_DllAPI inline const TypeIdentifier* key_identifier() const
  1317. {
  1318. return m_key_identifier;
  1319. }
  1320. /*!
  1321. * @brief This function returns a reference to member key_identifier
  1322. * @return Reference to member key_identifier
  1323. */
  1324. RTPS_DllAPI inline TypeIdentifier* key_identifier()
  1325. {
  1326. return m_key_identifier;
  1327. }
  1328. /*!
  1329. * @brief This function returns the serialized size of a data depending on the buffer alignment.
  1330. * @param data Data which is calculated its serialized size.
  1331. * @param current_alignment Buffer alignment.
  1332. * @return Serialized size.
  1333. */
  1334. RTPS_DllAPI static size_t getCdrSerializedSize(
  1335. const PlainMapLTypeDefn& data,
  1336. size_t current_alignment = 0);
  1337. /*!
  1338. * @brief This function serializes an object using CDR serialization.
  1339. * @param cdr CDR serialization object.
  1340. */
  1341. RTPS_DllAPI void serialize(
  1342. eprosima::fastcdr::Cdr& cdr) const;
  1343. /*!
  1344. * @brief This function deserializes an object using CDR serialization.
  1345. * @param cdr CDR serialization object.
  1346. */
  1347. RTPS_DllAPI void deserialize(
  1348. eprosima::fastcdr::Cdr& cdr);
  1349. RTPS_DllAPI bool consistent(
  1350. const PlainMapLTypeDefn& x,
  1351. const fastdds::dds::TypeConsistencyEnforcementQosPolicy& consistency) const;
  1352. private:
  1353. PlainCollectionHeader m_header;
  1354. LBound m_bound;
  1355. TypeIdentifier* m_element_identifier;
  1356. CollectionElementFlag m_key_flags;
  1357. TypeIdentifier* m_key_identifier;
  1358. };
  1359. /*!
  1360. * @brief This class represents the structure StronglyConnectedComponentId defined by the user in the IDL file.
  1361. * @ingroup TYPEIDENTIFIERTYPES
  1362. */
  1363. class StronglyConnectedComponentId final
  1364. {
  1365. public:
  1366. /*!
  1367. * @brief Default constructor.
  1368. */
  1369. RTPS_DllAPI StronglyConnectedComponentId();
  1370. /*!
  1371. * @brief Default destructor.
  1372. */
  1373. RTPS_DllAPI ~StronglyConnectedComponentId();
  1374. /*!
  1375. * @brief Copy constructor.
  1376. * @param x Reference to the object StronglyConnectedComponentId that will be copied.
  1377. */
  1378. RTPS_DllAPI StronglyConnectedComponentId(
  1379. const StronglyConnectedComponentId& x);
  1380. /*!
  1381. * @brief Move constructor.
  1382. * @param x Reference to the object StronglyConnectedComponentId that will be copied.
  1383. */
  1384. RTPS_DllAPI StronglyConnectedComponentId(
  1385. StronglyConnectedComponentId&& x);
  1386. /*!
  1387. * @brief Copy assignment.
  1388. * @param x Reference to the object StronglyConnectedComponentId that will be copied.
  1389. */
  1390. RTPS_DllAPI StronglyConnectedComponentId& operator=(
  1391. const StronglyConnectedComponentId& x);
  1392. /*!
  1393. * @brief Move assignment.
  1394. * @param x Reference to the object StronglyConnectedComponentId that will be copied.
  1395. */
  1396. RTPS_DllAPI StronglyConnectedComponentId& operator=(
  1397. StronglyConnectedComponentId&& x);
  1398. /*!
  1399. * @brief This function copies the value in member sc_component_id
  1400. * @param _sc_component_id New value to be copied in member sc_component_id
  1401. */
  1402. RTPS_DllAPI inline void sc_component_id(
  1403. const TypeObjectHashId& _sc_component_id)
  1404. {
  1405. m_sc_component_id = _sc_component_id;
  1406. }
  1407. /*!
  1408. * @brief This function moves the value in member sc_component_id
  1409. * @param _sc_component_id New value to be moved in member sc_component_id
  1410. */
  1411. RTPS_DllAPI inline void sc_component_id(
  1412. TypeObjectHashId&& _sc_component_id)
  1413. {
  1414. m_sc_component_id = std::move(_sc_component_id);
  1415. }
  1416. /*!
  1417. * @brief This function returns a constant reference to member sc_component_id
  1418. * @return Constant reference to member sc_component_id
  1419. */
  1420. RTPS_DllAPI inline const TypeObjectHashId& sc_component_id() const
  1421. {
  1422. return m_sc_component_id;
  1423. }
  1424. /*!
  1425. * @brief This function returns a reference to member sc_component_id
  1426. * @return Reference to member sc_component_id
  1427. */
  1428. RTPS_DllAPI inline TypeObjectHashId& sc_component_id()
  1429. {
  1430. return m_sc_component_id;
  1431. }
  1432. /*!
  1433. * @brief This function sets a value in member scc_length
  1434. * @param _scc_length New value for member scc_length
  1435. */
  1436. RTPS_DllAPI inline void scc_length(
  1437. int32_t _scc_length)
  1438. {
  1439. m_scc_length = _scc_length;
  1440. }
  1441. /*!
  1442. * @brief This function returns the value of member scc_length
  1443. * @return Value of member scc_length
  1444. */
  1445. RTPS_DllAPI inline int32_t scc_length() const
  1446. {
  1447. return m_scc_length;
  1448. }
  1449. /*!
  1450. * @brief This function returns a reference to member scc_length
  1451. * @return Reference to member scc_length
  1452. */
  1453. RTPS_DllAPI inline int32_t& scc_length()
  1454. {
  1455. return m_scc_length;
  1456. }
  1457. /*!
  1458. * @brief This function sets a value in member scc_index
  1459. * @param _scc_index New value for member scc_index
  1460. */
  1461. RTPS_DllAPI inline void scc_index(
  1462. int32_t _scc_index)
  1463. {
  1464. m_scc_index = _scc_index;
  1465. }
  1466. /*!
  1467. * @brief This function returns the value of member scc_index
  1468. * @return Value of member scc_index
  1469. */
  1470. RTPS_DllAPI inline int32_t scc_index() const
  1471. {
  1472. return m_scc_index;
  1473. }
  1474. /*!
  1475. * @brief This function returns a reference to member scc_index
  1476. * @return Reference to member scc_index
  1477. */
  1478. RTPS_DllAPI inline int32_t& scc_index()
  1479. {
  1480. return m_scc_index;
  1481. }
  1482. /*!
  1483. * @brief This function returns the serialized size of a data depending on the buffer alignment.
  1484. * @param data Data which is calculated its serialized size.
  1485. * @param current_alignment Buffer alignment.
  1486. * @return Serialized size.
  1487. */
  1488. RTPS_DllAPI static size_t getCdrSerializedSize(
  1489. const StronglyConnectedComponentId& data,
  1490. size_t current_alignment = 0);
  1491. /*!
  1492. * @brief This function serializes an object using CDR serialization.
  1493. * @param cdr CDR serialization object.
  1494. */
  1495. RTPS_DllAPI void serialize(
  1496. eprosima::fastcdr::Cdr& cdr) const;
  1497. /*!
  1498. * @brief This function deserializes an object using CDR serialization.
  1499. * @param cdr CDR serialization object.
  1500. */
  1501. RTPS_DllAPI void deserialize(
  1502. eprosima::fastcdr::Cdr& cdr);
  1503. RTPS_DllAPI bool consistent(
  1504. const StronglyConnectedComponentId& x,
  1505. const fastdds::dds::TypeConsistencyEnforcementQosPolicy& consistency) const;
  1506. private:
  1507. TypeObjectHashId m_sc_component_id;
  1508. int32_t m_scc_length;
  1509. int32_t m_scc_index;
  1510. };
  1511. /*!
  1512. * @brief This class represents the structure ExtendedTypeDefn defined by the user in the IDL file.
  1513. * @ingroup TYPEIDENTIFIERTYPES
  1514. */
  1515. class ExtendedTypeDefn final
  1516. {
  1517. public:
  1518. /*!
  1519. * @brief Default constructor.
  1520. */
  1521. RTPS_DllAPI ExtendedTypeDefn();
  1522. /*!
  1523. * @brief Default destructor.
  1524. */
  1525. RTPS_DllAPI virtual ~ExtendedTypeDefn();
  1526. /*!
  1527. * @brief Copy constructor.
  1528. * @param x Reference to the object ExtendedTypeDefn that will be copied.
  1529. */
  1530. RTPS_DllAPI ExtendedTypeDefn(
  1531. const ExtendedTypeDefn& x);
  1532. /*!
  1533. * @brief Move constructor.
  1534. * @param x Reference to the object ExtendedTypeDefn that will be copied.
  1535. */
  1536. RTPS_DllAPI ExtendedTypeDefn(
  1537. ExtendedTypeDefn&& x);
  1538. /*!
  1539. * @brief Copy assignment.
  1540. * @param x Reference to the object ExtendedTypeDefn that will be copied.
  1541. */
  1542. RTPS_DllAPI virtual ExtendedTypeDefn& operator=(
  1543. const ExtendedTypeDefn& x);
  1544. /*!
  1545. * @brief Move assignment.
  1546. * @param x Reference to the object ExtendedTypeDefn that will be copied.
  1547. */
  1548. RTPS_DllAPI virtual ExtendedTypeDefn& operator=(
  1549. ExtendedTypeDefn&& x);
  1550. /*!
  1551. * @brief This function returns the serialized size of a data depending on the buffer alignment.
  1552. * @param data Data which is calculated its serialized size.
  1553. * @param current_alignment Buffer alignment.
  1554. * @return Serialized size.
  1555. */
  1556. RTPS_DllAPI static size_t getCdrSerializedSize(
  1557. const ExtendedTypeDefn& data,
  1558. size_t current_alignment = 0);
  1559. /*!
  1560. * @brief This function serializes an object using CDR serialization.
  1561. * @param cdr CDR serialization object.
  1562. */
  1563. RTPS_DllAPI virtual void serialize(
  1564. eprosima::fastcdr::Cdr& cdr) const;
  1565. /*!
  1566. * @brief This function deserializes an object using CDR serialization.
  1567. * @param cdr CDR serialization object.
  1568. */
  1569. RTPS_DllAPI virtual void deserialize(
  1570. eprosima::fastcdr::Cdr& cdr);
  1571. RTPS_DllAPI bool consistent(
  1572. const ExtendedTypeDefn& x,
  1573. const fastdds::dds::TypeConsistencyEnforcementQosPolicy& consistency) const;
  1574. };
  1575. } // namespace types
  1576. } // namespace fastrtps
  1577. } // namespace eprosima
  1578. #endif // _TYPEIDENTIFIERTYPES_H_