From a9c5f92ba87a7c13c72412fe451fe5b57ee832d0 Mon Sep 17 00:00:00 2001 From: Mario Dominguez Date: Wed, 23 Jul 2025 14:52:19 +0200 Subject: [PATCH 1/3] Refs #23504: Regenerate types with the corresponding Fast DDS Gen branch Signed-off-by: Mario Dominguez --- .../cpp/benchmark/types/BenchmarkCdrAux.hpp | 1 + .../cpp/benchmark/types/BenchmarkCdrAux.ipp | 83 + .../benchmark/types/BenchmarkPubSubTypes.cxx | 20 + .../benchmark/types/BenchmarkPubSubTypes.hpp | 8 +- .../benchmark/types/Benchmark_bigCdrAux.hpp | 1 + .../benchmark/types/Benchmark_bigCdrAux.ipp | 83 + .../types/Benchmark_bigPubSubTypes.cxx | 20 + .../types/Benchmark_bigPubSubTypes.hpp | 8 +- .../types/Benchmark_mediumCdrAux.hpp | 1 + .../types/Benchmark_mediumCdrAux.ipp | 83 + .../types/Benchmark_mediumPubSubTypes.cxx | 20 + .../types/Benchmark_mediumPubSubTypes.hpp | 8 +- .../benchmark/types/Benchmark_smallCdrAux.hpp | 1 + .../benchmark/types/Benchmark_smallCdrAux.ipp | 83 + .../types/Benchmark_smallPubSubTypes.cxx | 20 + .../types/Benchmark_smallPubSubTypes.hpp | 8 +- .../cpp/configuration/ConfigurationCdrAux.hpp | 1 + .../cpp/configuration/ConfigurationCdrAux.ipp | 83 + .../ConfigurationPubSubTypes.cxx | 20 + .../ConfigurationPubSubTypes.hpp | 8 +- .../cpp/content_filter/HelloWorldCdrAux.hpp | 1 + .../cpp/content_filter/HelloWorldCdrAux.ipp | 83 + .../content_filter/HelloWorldPubSubTypes.cxx | 20 + .../content_filter/HelloWorldPubSubTypes.hpp | 8 +- .../custom_payload_pool/HelloWorldCdrAux.hpp | 1 + .../custom_payload_pool/HelloWorldCdrAux.ipp | 83 + .../HelloWorldPubSubTypes.cxx | 20 + .../HelloWorldPubSubTypes.hpp | 8 +- .../DeliveryMechanismsCdrAux.hpp | 33 + .../DeliveryMechanismsCdrAux.ipp | 93 + .../DeliveryMechanismsPubSubTypes.cxx | 19 + .../DeliveryMechanismsPubSubTypes.hpp | 62 +- .../cpp/discovery_server/HelloWorldCdrAux.hpp | 1 + .../cpp/discovery_server/HelloWorldCdrAux.ipp | 83 + .../HelloWorldPubSubTypes.cxx | 20 + .../HelloWorldPubSubTypes.hpp | 8 +- .../cpp/flow_control/FlowControlCdrAux.hpp | 1 + .../cpp/flow_control/FlowControlCdrAux.ipp | 83 + .../flow_control/FlowControlPubSubTypes.cxx | 20 + .../flow_control/FlowControlPubSubTypes.hpp | 8 +- .../cpp/hello_world/WaitsetSubscriberApp.cpp | 12 +- .../cpp/hello_world/WaitsetSubscriberApp.hpp | 4 +- examples/cpp/rpc/types/calculatorCdrAux.ipp | 1 + .../cpp/rpc/types/calculatorPubSubTypes.cxx | 6 + examples/cpp/security/HelloWorldCdrAux.hpp | 1 + examples/cpp/security/HelloWorldCdrAux.ipp | 83 + .../cpp/security/HelloWorldPubSubTypes.cxx | 20 + .../cpp/security/HelloWorldPubSubTypes.hpp | 8 +- .../static_edp_discovery/HelloWorldCdrAux.hpp | 1 + .../static_edp_discovery/HelloWorldCdrAux.ipp | 83 + .../HelloWorldPubSubTypes.cxx | 20 + .../HelloWorldPubSubTypes.hpp | 8 +- .../cpp/topic_instances/ShapeTypeCdrAux.hpp | 1 + .../cpp/topic_instances/ShapeTypeCdrAux.ipp | 83 + .../topic_instances/ShapeTypePubSubTypes.cxx | 20 + .../topic_instances/ShapeTypePubSubTypes.hpp | 8 +- .../detail/dds_xtypes_typeobjectCdrAux.hpp | 289 + .../dds_xtypes_typeobjectPubSubTypes.hpp | 210 - .../detail/TypeLookupTypesCdrAux.hpp | 6 + .../detail/TypeLookupTypesCdrAux.ipp | 597 + .../detail/TypeLookupTypesPubSubTypes.cxx | 213 + .../detail/TypeLookupTypesPubSubTypes.hpp | 48 +- .../detail/rpc_typesCdrAux.hpp | 166 + .../detail/rpc_typesCdrAux.ipp | 543 + .../detail/rpc_typesPubSubTypes.cxx | 29 + .../detail/rpc_typesPubSubTypes.hpp | 175 - .../dds_xtypes_typeobjectCdrAux.ipp | 8197 +++++- .../dds_xtypes_typeobjectPubSubTypes.cxx | 360 + .../types/monitorservice_typesCdrAux.hpp | 8 + .../types/monitorservice_typesCdrAux.ipp | 683 + .../types/monitorservice_typesPubSubTypes.cxx | 139 + .../types/monitorservice_typesPubSubTypes.hpp | 64 +- src/cpp/statistics/types/typesCdrAux.hpp | 14 + src/cpp/statistics/types/typesCdrAux.ipp | 1175 + src/cpp/statistics/types/typesPubSubTypes.cxx | 203 + src/cpp/statistics/types/typesPubSubTypes.hpp | 112 +- test/blackbox/types/Data100kbCdrAux.hpp | 1 + test/blackbox/types/Data100kbCdrAux.ipp | 83 + test/blackbox/types/Data100kbPubSubTypes.cxx | 20 + test/blackbox/types/Data100kbPubSubTypes.hpp | 8 +- test/blackbox/types/Data1mbCdrAux.hpp | 1 + test/blackbox/types/Data1mbCdrAux.ipp | 83 + test/blackbox/types/Data1mbPubSubTypes.cxx | 20 + test/blackbox/types/Data1mbPubSubTypes.hpp | 8 +- test/blackbox/types/Data64kbCdrAux.hpp | 1 + test/blackbox/types/Data64kbCdrAux.ipp | 83 + test/blackbox/types/Data64kbPubSubTypes.cxx | 20 + test/blackbox/types/Data64kbPubSubTypes.hpp | 8 +- test/blackbox/types/FixedSizedCdrAux.hpp | 33 + test/blackbox/types/FixedSizedCdrAux.ipp | 93 + test/blackbox/types/FixedSizedPubSubTypes.cxx | 19 + test/blackbox/types/FixedSizedPubSubTypes.hpp | 62 +- test/blackbox/types/HelloWorldCdrAux.hpp | 1 + test/blackbox/types/HelloWorldCdrAux.ipp | 83 + test/blackbox/types/HelloWorldPubSubTypes.cxx | 20 + test/blackbox/types/HelloWorldPubSubTypes.hpp | 8 +- test/blackbox/types/KeyedData1mbCdrAux.hpp | 1 + test/blackbox/types/KeyedData1mbCdrAux.ipp | 83 + .../types/KeyedData1mbPubSubTypes.cxx | 20 + .../types/KeyedData1mbPubSubTypes.hpp | 8 +- test/blackbox/types/KeyedHelloWorldCdrAux.hpp | 1 + test/blackbox/types/KeyedHelloWorldCdrAux.ipp | 83 + .../types/KeyedHelloWorldPubSubTypes.cxx | 20 + .../types/KeyedHelloWorldPubSubTypes.hpp | 8 +- test/blackbox/types/StringTestCdrAux.hpp | 1 + test/blackbox/types/StringTestCdrAux.ipp | 83 + test/blackbox/types/StringTestPubSubTypes.cxx | 20 + test/blackbox/types/StringTestPubSubTypes.hpp | 8 +- .../TestIncludeRegression3361PubSubTypes.cxx | 6 + .../types/TestRegression3361CdrAux.hpp | 1 + .../types/TestRegression3361CdrAux.ipp | 83 + .../types/TestRegression3361PubSubTypes.cxx | 21 + .../types/TestRegression3361PubSubTypes.hpp | 8 +- .../types/UnboundedHelloWorldCdrAux.hpp | 1 + .../types/UnboundedHelloWorldCdrAux.ipp | 83 + .../types/UnboundedHelloWorldPubSubTypes.cxx | 20 + .../types/UnboundedHelloWorldPubSubTypes.hpp | 8 +- test/blackbox/types/core/core_typesCdrAux.hpp | 22 + test/blackbox/types/core/core_typesCdrAux.ipp | 1831 ++ .../types/core/core_typesPubSubTypes.cxx | 318 + .../types/core/core_typesPubSubTypes.hpp | 176 +- .../statistics/monitorservice_typesCdrAux.hpp | 8 + .../statistics/monitorservice_typesCdrAux.ipp | 683 + .../monitorservice_typesPubSubTypes.cxx | 139 + .../monitorservice_typesPubSubTypes.hpp | 64 +- .../blackbox/types/statistics/typesCdrAux.hpp | 14 + .../blackbox/types/statistics/typesCdrAux.ipp | 1175 + .../types/statistics/typesPubSubTypes.cxx | 203 + .../types/statistics/typesPubSubTypes.hpp | 112 +- test/dds-types-test/aliasesCdrAux.hpp | 27 + test/dds-types-test/aliasesCdrAux.ipp | 2051 ++ test/dds-types-test/aliasesPubSubTypes.cxx | 395 + test/dds-types-test/aliasesPubSubTypes.hpp | 200 +- test/dds-types-test/annotationsCdrAux.hpp | 5 + test/dds-types-test/annotationsCdrAux.ipp | 247 + .../dds-types-test/annotationsPubSubTypes.cxx | 65 + .../dds-types-test/annotationsPubSubTypes.hpp | 24 +- test/dds-types-test/appendableCdrAux.hpp | 21 + test/dds-types-test/appendableCdrAux.ipp | 1559 ++ test/dds-types-test/appendablePubSubTypes.cxx | 288 + test/dds-types-test/appendablePubSubTypes.hpp | 152 +- test/dds-types-test/arrays.hpp | 303 + test/dds-types-test/arraysCdrAux.hpp | 187 + test/dds-types-test/arraysCdrAux.ipp | 8963 +++++++ test/dds-types-test/arraysPubSubTypes.cxx | 1912 +- test/dds-types-test/arraysPubSubTypes.hpp | 994 +- .../arraysTypeObjectSupport.cxx | 224 + .../arraysTypeObjectSupport.hpp | 24 + test/dds-types-test/bitsetsCdrAux.hpp | 2 + test/dds-types-test/bitsetsCdrAux.ipp | 187 + test/dds-types-test/bitsetsPubSubTypes.cxx | 37 + test/dds-types-test/bitsetsPubSubTypes.hpp | 8 +- test/dds-types-test/constantsCdrAux.hpp | 3 + test/dds-types-test/constantsCdrAux.ipp | 247 + test/dds-types-test/constantsPubSubTypes.cxx | 57 + test/dds-types-test/constantsPubSubTypes.hpp | 24 +- test/dds-types-test/declarationsCdrAux.hpp | 6 + test/dds-types-test/declarationsCdrAux.ipp | 545 + .../declarationsPubSubTypes.cxx | 97 + .../declarationsPubSubTypes.hpp | 48 +- .../declarationsTypeObjectSupport.cxx | 1700 ++ .../declarationsTypeObjectSupport.hpp | 282 + test/dds-types-test/enumerationsCdrAux.hpp | 5 + test/dds-types-test/enumerationsCdrAux.ipp | 329 + .../enumerationsPubSubTypes.cxx | 76 + .../enumerationsPubSubTypes.hpp | 32 +- test/dds-types-test/externalCdrAux.hpp | 29 + test/dds-types-test/externalCdrAux.ipp | 2267 ++ test/dds-types-test/externalPubSubTypes.cxx | 391 + test/dds-types-test/externalPubSubTypes.hpp | 208 +- .../externalTypeObjectSupport.cxx | 2180 ++ .../externalTypeObjectSupport.hpp | 393 + test/dds-types-test/finalCdrAux.hpp | 469 + test/dds-types-test/finalCdrAux.ipp | 1715 ++ test/dds-types-test/finalPubSubTypes.cxx | 272 + test/dds-types-test/finalPubSubTypes.hpp | 946 +- .../helpers/basic_inner_types.hpp | 320 + .../helpers/basic_inner_typesCdrAux.hpp | 82 + .../helpers/basic_inner_typesCdrAux.ipp | 579 + .../helpers/basic_inner_typesPubSubTypes.cxx | 415 + .../helpers/basic_inner_typesPubSubTypes.hpp | 156 + .../basic_inner_typesTypeObjectSupport.cxx | 190 + .../basic_inner_typesTypeObjectSupport.hpp | 24 + .../helpers/helpers/basic_inner_types.hpp | 852 + .../helpers/basic_inner_typesCdrAux.hpp | 67 + .../helpers/basic_inner_typesCdrAux.ipp | 696 + .../helpers/basic_inner_typesPubSubTypes.cxx | 61 + .../helpers/basic_inner_typesPubSubTypes.hpp | 50 + .../basic_inner_typesTypeObjectSupport.cxx | 1190 + .../basic_inner_typesTypeObjectSupport.hpp | 240 + test/dds-types-test/inheritanceCdrAux.hpp | 10 + test/dds-types-test/inheritanceCdrAux.ipp | 735 + .../dds-types-test/inheritancePubSubTypes.cxx | 137 + .../dds-types-test/inheritancePubSubTypes.hpp | 64 +- test/dds-types-test/keyCdrAux.hpp | 20 + test/dds-types-test/keyCdrAux.ipp | 1641 ++ test/dds-types-test/keyPubSubTypes.cxx | 286 + test/dds-types-test/keyPubSubTypes.hpp | 160 +- test/dds-types-test/mapsCdrAux.hpp | 264 + test/dds-types-test/mapsCdrAux.ipp | 21559 +++++++++++++++- test/dds-types-test/mapsPubSubTypes.cxx | 3691 +++ test/dds-types-test/mapsPubSubTypes.hpp | 2098 +- test/dds-types-test/member_idCdrAux.hpp | 12 + test/dds-types-test/member_idCdrAux.ipp | 985 + test/dds-types-test/member_idPubSubTypes.cxx | 174 + test/dds-types-test/member_idPubSubTypes.hpp | 96 +- test/dds-types-test/mutableCdrAux.hpp | 21 + test/dds-types-test/mutableCdrAux.ipp | 1559 ++ test/dds-types-test/mutablePubSubTypes.cxx | 288 + test/dds-types-test/mutablePubSubTypes.hpp | 152 +- test/dds-types-test/optionalCdrAux.hpp | 289 +- test/dds-types-test/optionalCdrAux.ipp | 6653 ++++- test/dds-types-test/optionalPubSubTypes.cxx | 1157 + test/dds-types-test/optionalPubSubTypes.hpp | 648 +- test/dds-types-test/primitivesCdrAux.hpp | 21 + test/dds-types-test/primitivesCdrAux.ipp | 1723 ++ test/dds-types-test/primitivesPubSubTypes.cxx | 300 + test/dds-types-test/primitivesPubSubTypes.hpp | 168 +- test/dds-types-test/relative_path_include.hpp | 179 + .../relative_path_includeCdrAux.hpp | 55 + .../relative_path_includeCdrAux.ipp | 223 + .../relative_path_includePubSubTypes.cxx | 247 + .../relative_path_includePubSubTypes.hpp | 121 + ...relative_path_includeTypeObjectSupport.cxx | 97 + ...relative_path_includeTypeObjectSupport.hpp | 57 + test/dds-types-test/sequences.hpp | 133 + test/dds-types-test/sequencesCdrAux.hpp | 131 +- test/dds-types-test/sequencesCdrAux.ipp | 2540 ++ test/dds-types-test/sequencesPubSubTypes.cxx | 628 + test/dds-types-test/sequencesPubSubTypes.hpp | 304 +- .../sequencesTypeObjectSupport.cxx | 95 + .../sequencesTypeObjectSupport.hpp | 12 + test/dds-types-test/stringsCdrAux.hpp | 6 + test/dds-types-test/stringsCdrAux.ipp | 493 + test/dds-types-test/stringsPubSubTypes.cxx | 90 + test/dds-types-test/stringsPubSubTypes.hpp | 48 +- test/dds-types-test/structuresCdrAux.hpp | 36 + test/dds-types-test/structuresCdrAux.ipp | 2789 ++ test/dds-types-test/structuresPubSubTypes.cxx | 498 + test/dds-types-test/structuresPubSubTypes.hpp | 272 +- test/dds-types-test/unionsCdrAux.hpp | 45 + test/dds-types-test/unionsCdrAux.ipp | 4673 +++- test/dds-types-test/unionsPubSubTypes.cxx | 670 + test/dds-types-test/unionsPubSubTypes.hpp | 344 +- .../BaseCasesIDLs/XtypesTestsType1CdrAux.hpp | 1 + .../BaseCasesIDLs/XtypesTestsType1CdrAux.ipp | 83 + .../XtypesTestsType1PubSubTypes.cxx | 20 + .../XtypesTestsType1PubSubTypes.hpp | 8 +- .../BaseCasesIDLs/XtypesTestsType2CdrAux.hpp | 1 + .../BaseCasesIDLs/XtypesTestsType2CdrAux.ipp | 83 + .../XtypesTestsType2PubSubTypes.cxx | 20 + .../XtypesTestsType2PubSubTypes.hpp | 8 +- .../BaseCasesIDLs/XtypesTestsType3CdrAux.hpp | 1 + .../BaseCasesIDLs/XtypesTestsType3CdrAux.ipp | 83 + .../XtypesTestsType3PubSubTypes.cxx | 20 + .../XtypesTestsType3PubSubTypes.hpp | 8 +- .../XtypesTestsTypeBigCdrAux.hpp | 98 + .../XtypesTestsTypeBigCdrAux.ipp | 8037 ++++++ .../XtypesTestsTypeBigPubSubTypes.cxx | 1381 + .../XtypesTestsTypeBigPubSubTypes.hpp | 784 +- .../XtypesTestsTypeDepCdrAux.hpp | 1 + .../XtypesTestsTypeDepCdrAux.ipp | 83 + .../XtypesTestsTypeDepPubSubTypes.cxx | 21 + .../XtypesTestsTypeDepPubSubTypes.hpp | 8 +- .../XtypesTestsTypeNoTypeObjectCdrAux.hpp | 1 + .../XtypesTestsTypeNoTypeObjectCdrAux.ipp | 83 + ...XtypesTestsTypeNoTypeObjectPubSubTypes.cxx | 20 + ...XtypesTestsTypeNoTypeObjectPubSubTypes.hpp | 8 +- ...TestsTypeNoTypeObjectTypeObjectSupport.cxx | 106 + ...TestsTypeNoTypeObjectTypeObjectSupport.hpp | 56 + .../idl_extra_cases/extra_unionsCdrAux.ipp | 27 + .../extra_unionsPubSubTypes.cxx | 6 + .../allocations/AllocTestTypeCdrAux.hpp | 1 + .../allocations/AllocTestTypeCdrAux.ipp | 83 + .../allocations/AllocTestTypePubSubTypes.cxx | 20 + .../allocations/AllocTestTypePubSubTypes.hpp | 8 +- .../ContentFilterTestTypeCdrAux.hpp | 2 + .../ContentFilterTestTypeCdrAux.ipp | 165 + .../ContentFilterTestTypePubSubTypes.cxx | 25 + .../ContentFilterTestTypePubSubTypes.hpp | 8 +- .../alias_struct/gen/alias_structCdrAux.hpp | 1 + .../alias_struct/gen/alias_structCdrAux.ipp | 83 + .../gen/alias_structPubSubTypes.cxx | 25 + .../gen/alias_structPubSubTypes.hpp | 8 +- .../array_struct/gen/array_structCdrAux.hpp | 3 + .../array_struct/gen/array_structCdrAux.ipp | 247 + .../gen/array_structPubSubTypes.cxx | 48 + .../gen/array_structPubSubTypes.hpp | 24 +- .../gen/bitmask_structCdrAux.hpp | 1 + .../gen/bitmask_structCdrAux.ipp | 83 + .../gen/bitmask_structPubSubTypes.cxx | 20 + .../gen/bitmask_structPubSubTypes.hpp | 8 +- .../bitset_struct/gen/bitset_structCdrAux.hpp | 1 + .../bitset_struct/gen/bitset_structCdrAux.ipp | 109 + .../gen/bitset_structPubSubTypes.cxx | 20 + .../gen/bitset_structPubSubTypes.hpp | 8 +- .../enum_struct/gen/enum_structCdrAux.hpp | 1 + .../enum_struct/gen/enum_structCdrAux.ipp | 83 + .../gen/enum_structPubSubTypes.cxx | 21 + .../gen/enum_structPubSubTypes.hpp | 8 +- .../gen/extensibility_structCdrAux.hpp | 36 + .../gen/extensibility_structCdrAux.ipp | 339 + .../gen/extensibility_structPubSubTypes.cxx | 61 + .../gen/extensibility_structPubSubTypes.hpp | 86 +- .../types/key_struct/gen/key_structCdrAux.hpp | 2 + .../types/key_struct/gen/key_structCdrAux.ipp | 165 + .../key_struct/gen/key_structPubSubTypes.cxx | 34 + .../key_struct/gen/key_structPubSubTypes.hpp | 16 +- .../types/map_struct/gen/map_structCdrAux.hpp | 2 + .../types/map_struct/gen/map_structCdrAux.ipp | 165 + .../map_struct/gen/map_structPubSubTypes.cxx | 34 + .../map_struct/gen/map_structPubSubTypes.hpp | 16 +- .../module_struct/module_structCdrAux.hpp | 2 + .../module_struct/module_structCdrAux.ipp | 217 + .../module_structPubSubTypes.cxx | 39 + .../module_structPubSubTypes.hpp | 16 +- .../gen/primitives_structCdrAux.hpp | 1 + .../gen/primitives_structCdrAux.ipp | 83 + .../gen/primitives_structPubSubTypes.cxx | 20 + .../gen/primitives_structPubSubTypes.hpp | 8 +- .../gen/sequence_structCdrAux.hpp | 3 + .../gen/sequence_structCdrAux.ipp | 247 + .../gen/sequence_structPubSubTypes.cxx | 48 + .../gen/sequence_structPubSubTypes.hpp | 24 +- .../string_struct/gen/string_structCdrAux.hpp | 1 + .../string_struct/gen/string_structCdrAux.ipp | 83 + .../gen/string_structPubSubTypes.cxx | 20 + .../gen/string_structPubSubTypes.hpp | 8 +- .../struct_struct/gen/struct_structCdrAux.hpp | 4 + .../struct_struct/gen/struct_structCdrAux.ipp | 329 + .../gen/struct_structPubSubTypes.cxx | 62 + .../gen/struct_structPubSubTypes.hpp | 32 +- .../union_struct/gen/union_structCdrAux.hpp | 1 + .../union_struct/gen/union_structCdrAux.ipp | 135 + .../gen/union_structPubSubTypes.cxx | 20 + .../gen/union_structPubSubTypes.hpp | 8 +- .../gen/ComprehensiveTypeCdrAux.hpp | 3 + .../gen/ComprehensiveTypeCdrAux.ipp | 325 + .../gen/ComprehensiveTypePubSubTypes.cxx | 53 + .../gen/ComprehensiveTypePubSubTypes.hpp | 24 +- 340 files changed, 123113 insertions(+), 7416 deletions(-) create mode 100644 test/dds-types-test/declarationsTypeObjectSupport.cxx create mode 100644 test/dds-types-test/declarationsTypeObjectSupport.hpp create mode 100644 test/dds-types-test/externalTypeObjectSupport.cxx create mode 100644 test/dds-types-test/externalTypeObjectSupport.hpp create mode 100644 test/dds-types-test/helpers/helpers/basic_inner_types.hpp create mode 100644 test/dds-types-test/helpers/helpers/basic_inner_typesCdrAux.hpp create mode 100644 test/dds-types-test/helpers/helpers/basic_inner_typesCdrAux.ipp create mode 100644 test/dds-types-test/helpers/helpers/basic_inner_typesPubSubTypes.cxx create mode 100644 test/dds-types-test/helpers/helpers/basic_inner_typesPubSubTypes.hpp create mode 100644 test/dds-types-test/helpers/helpers/basic_inner_typesTypeObjectSupport.cxx create mode 100644 test/dds-types-test/helpers/helpers/basic_inner_typesTypeObjectSupport.hpp create mode 100644 test/dds-types-test/relative_path_include.hpp create mode 100644 test/dds-types-test/relative_path_includeCdrAux.hpp create mode 100644 test/dds-types-test/relative_path_includeCdrAux.ipp create mode 100644 test/dds-types-test/relative_path_includePubSubTypes.cxx create mode 100644 test/dds-types-test/relative_path_includePubSubTypes.hpp create mode 100644 test/dds-types-test/relative_path_includeTypeObjectSupport.cxx create mode 100644 test/dds-types-test/relative_path_includeTypeObjectSupport.hpp create mode 100644 test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectTypeObjectSupport.cxx create mode 100644 test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectTypeObjectSupport.hpp diff --git a/examples/cpp/benchmark/types/BenchmarkCdrAux.hpp b/examples/cpp/benchmark/types/BenchmarkCdrAux.hpp index fb86c11aed7..27ce315d4ab 100644 --- a/examples/cpp/benchmark/types/BenchmarkCdrAux.hpp +++ b/examples/cpp/benchmark/types/BenchmarkCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const BenchMark& data); + } // namespace fastcdr } // namespace eprosima diff --git a/examples/cpp/benchmark/types/BenchmarkCdrAux.ipp b/examples/cpp/benchmark/types/BenchmarkCdrAux.ipp index 8fafe3dc7bb..01361100d3b 100644 --- a/examples/cpp/benchmark/types/BenchmarkCdrAux.ipp +++ b/examples/cpp/benchmark/types/BenchmarkCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_BenchMark_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const BenchMark* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BenchMark_cdr_plain(data_representation) && + sizeof(BenchMark) == BenchMark_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(BenchMark)); + + scdr.jump((array_size -1) * sizeof(BenchMark)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + BenchMark* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BenchMark_cdr_plain(data_representation) && + sizeof(BenchMark) == BenchMark_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(BenchMark)); + + scdr.jump((array_size - 1) * sizeof(BenchMark)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const BenchMark& data) diff --git a/examples/cpp/benchmark/types/BenchmarkPubSubTypes.cxx b/examples/cpp/benchmark/types/BenchmarkPubSubTypes.cxx index ad20576771a..5ef1053943c 100644 --- a/examples/cpp/benchmark/types/BenchmarkPubSubTypes.cxx +++ b/examples/cpp/benchmark/types/BenchmarkPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_BenchMark_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + BenchMarkPubSubType::BenchMarkPubSubType() { set_name("BenchMark"); @@ -149,6 +158,17 @@ void BenchMarkPubSubType::delete_data( delete(reinterpret_cast<::BenchMark*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool BenchMarkPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool BenchMarkPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/examples/cpp/benchmark/types/BenchmarkPubSubTypes.hpp b/examples/cpp/benchmark/types/BenchmarkPubSubTypes.hpp index 92d3a8c0e3a..39f7a368e0c 100644 --- a/examples/cpp/benchmark/types/BenchmarkPubSubTypes.hpp +++ b/examples/cpp/benchmark/types/BenchmarkPubSubTypes.hpp @@ -93,12 +93,8 @@ class BenchMarkPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/examples/cpp/benchmark/types/Benchmark_bigCdrAux.hpp b/examples/cpp/benchmark/types/Benchmark_bigCdrAux.hpp index bab41f2627f..3db20e60345 100644 --- a/examples/cpp/benchmark/types/Benchmark_bigCdrAux.hpp +++ b/examples/cpp/benchmark/types/Benchmark_bigCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const BenchMarkBig& data); + } // namespace fastcdr } // namespace eprosima diff --git a/examples/cpp/benchmark/types/Benchmark_bigCdrAux.ipp b/examples/cpp/benchmark/types/Benchmark_bigCdrAux.ipp index b7abbb000f7..56bfab4e2c6 100644 --- a/examples/cpp/benchmark/types/Benchmark_bigCdrAux.ipp +++ b/examples/cpp/benchmark/types/Benchmark_bigCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_BenchMarkBig_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -80,6 +89,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const BenchMarkBig* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BenchMarkBig_cdr_plain(data_representation) && + sizeof(BenchMarkBig) == BenchMarkBig_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(BenchMarkBig)); + + scdr.jump((array_size -1) * sizeof(BenchMarkBig)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -109,6 +156,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + BenchMarkBig* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BenchMarkBig_cdr_plain(data_representation) && + sizeof(BenchMarkBig) == BenchMarkBig_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(BenchMarkBig)); + + scdr.jump((array_size - 1) * sizeof(BenchMarkBig)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const BenchMarkBig& data) diff --git a/examples/cpp/benchmark/types/Benchmark_bigPubSubTypes.cxx b/examples/cpp/benchmark/types/Benchmark_bigPubSubTypes.cxx index 79cce330f15..b7ef7c71e13 100644 --- a/examples/cpp/benchmark/types/Benchmark_bigPubSubTypes.cxx +++ b/examples/cpp/benchmark/types/Benchmark_bigPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_BenchMarkBig_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + BenchMarkBigPubSubType::BenchMarkBigPubSubType() { set_name("BenchMarkBig"); @@ -149,6 +158,17 @@ void BenchMarkBigPubSubType::delete_data( delete(reinterpret_cast<::BenchMarkBig*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool BenchMarkBigPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool BenchMarkBigPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/examples/cpp/benchmark/types/Benchmark_bigPubSubTypes.hpp b/examples/cpp/benchmark/types/Benchmark_bigPubSubTypes.hpp index 39ebe8cb92d..773744805b5 100644 --- a/examples/cpp/benchmark/types/Benchmark_bigPubSubTypes.hpp +++ b/examples/cpp/benchmark/types/Benchmark_bigPubSubTypes.hpp @@ -93,12 +93,8 @@ class BenchMarkBigPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/examples/cpp/benchmark/types/Benchmark_mediumCdrAux.hpp b/examples/cpp/benchmark/types/Benchmark_mediumCdrAux.hpp index 7a8a255acd2..cff873596fa 100644 --- a/examples/cpp/benchmark/types/Benchmark_mediumCdrAux.hpp +++ b/examples/cpp/benchmark/types/Benchmark_mediumCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const BenchMarkMedium& data); + } // namespace fastcdr } // namespace eprosima diff --git a/examples/cpp/benchmark/types/Benchmark_mediumCdrAux.ipp b/examples/cpp/benchmark/types/Benchmark_mediumCdrAux.ipp index 8f81373c261..43d8dd4232b 100644 --- a/examples/cpp/benchmark/types/Benchmark_mediumCdrAux.ipp +++ b/examples/cpp/benchmark/types/Benchmark_mediumCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_BenchMarkMedium_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -80,6 +89,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const BenchMarkMedium* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BenchMarkMedium_cdr_plain(data_representation) && + sizeof(BenchMarkMedium) == BenchMarkMedium_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(BenchMarkMedium)); + + scdr.jump((array_size -1) * sizeof(BenchMarkMedium)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -109,6 +156,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + BenchMarkMedium* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BenchMarkMedium_cdr_plain(data_representation) && + sizeof(BenchMarkMedium) == BenchMarkMedium_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(BenchMarkMedium)); + + scdr.jump((array_size - 1) * sizeof(BenchMarkMedium)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const BenchMarkMedium& data) diff --git a/examples/cpp/benchmark/types/Benchmark_mediumPubSubTypes.cxx b/examples/cpp/benchmark/types/Benchmark_mediumPubSubTypes.cxx index 1738794d94c..9246326b330 100644 --- a/examples/cpp/benchmark/types/Benchmark_mediumPubSubTypes.cxx +++ b/examples/cpp/benchmark/types/Benchmark_mediumPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_BenchMarkMedium_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + BenchMarkMediumPubSubType::BenchMarkMediumPubSubType() { set_name("BenchMarkMedium"); @@ -149,6 +158,17 @@ void BenchMarkMediumPubSubType::delete_data( delete(reinterpret_cast<::BenchMarkMedium*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool BenchMarkMediumPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool BenchMarkMediumPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/examples/cpp/benchmark/types/Benchmark_mediumPubSubTypes.hpp b/examples/cpp/benchmark/types/Benchmark_mediumPubSubTypes.hpp index 30eb81e84b0..d91e4310617 100644 --- a/examples/cpp/benchmark/types/Benchmark_mediumPubSubTypes.hpp +++ b/examples/cpp/benchmark/types/Benchmark_mediumPubSubTypes.hpp @@ -93,12 +93,8 @@ class BenchMarkMediumPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/examples/cpp/benchmark/types/Benchmark_smallCdrAux.hpp b/examples/cpp/benchmark/types/Benchmark_smallCdrAux.hpp index 582dc16c716..1a63383faec 100644 --- a/examples/cpp/benchmark/types/Benchmark_smallCdrAux.hpp +++ b/examples/cpp/benchmark/types/Benchmark_smallCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const BenchMarkSmall& data); + } // namespace fastcdr } // namespace eprosima diff --git a/examples/cpp/benchmark/types/Benchmark_smallCdrAux.ipp b/examples/cpp/benchmark/types/Benchmark_smallCdrAux.ipp index bcded3749ba..8c5c85d128b 100644 --- a/examples/cpp/benchmark/types/Benchmark_smallCdrAux.ipp +++ b/examples/cpp/benchmark/types/Benchmark_smallCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_BenchMarkSmall_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -80,6 +89,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const BenchMarkSmall* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BenchMarkSmall_cdr_plain(data_representation) && + sizeof(BenchMarkSmall) == BenchMarkSmall_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(BenchMarkSmall)); + + scdr.jump((array_size -1) * sizeof(BenchMarkSmall)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -109,6 +156,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + BenchMarkSmall* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BenchMarkSmall_cdr_plain(data_representation) && + sizeof(BenchMarkSmall) == BenchMarkSmall_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(BenchMarkSmall)); + + scdr.jump((array_size - 1) * sizeof(BenchMarkSmall)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const BenchMarkSmall& data) diff --git a/examples/cpp/benchmark/types/Benchmark_smallPubSubTypes.cxx b/examples/cpp/benchmark/types/Benchmark_smallPubSubTypes.cxx index 8ff23fb8a05..f3824547f56 100644 --- a/examples/cpp/benchmark/types/Benchmark_smallPubSubTypes.cxx +++ b/examples/cpp/benchmark/types/Benchmark_smallPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_BenchMarkSmall_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + BenchMarkSmallPubSubType::BenchMarkSmallPubSubType() { set_name("BenchMarkSmall"); @@ -149,6 +158,17 @@ void BenchMarkSmallPubSubType::delete_data( delete(reinterpret_cast<::BenchMarkSmall*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool BenchMarkSmallPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool BenchMarkSmallPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/examples/cpp/benchmark/types/Benchmark_smallPubSubTypes.hpp b/examples/cpp/benchmark/types/Benchmark_smallPubSubTypes.hpp index 12e2ef34714..8ad829c5bb1 100644 --- a/examples/cpp/benchmark/types/Benchmark_smallPubSubTypes.hpp +++ b/examples/cpp/benchmark/types/Benchmark_smallPubSubTypes.hpp @@ -93,12 +93,8 @@ class BenchMarkSmallPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/examples/cpp/configuration/ConfigurationCdrAux.hpp b/examples/cpp/configuration/ConfigurationCdrAux.hpp index a5dc01eaf68..3de021aa614 100644 --- a/examples/cpp/configuration/ConfigurationCdrAux.hpp +++ b/examples/cpp/configuration/ConfigurationCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const Configuration& data); + } // namespace fastcdr } // namespace eprosima diff --git a/examples/cpp/configuration/ConfigurationCdrAux.ipp b/examples/cpp/configuration/ConfigurationCdrAux.ipp index 2a4a21e1b58..e18ce8b8f61 100644 --- a/examples/cpp/configuration/ConfigurationCdrAux.ipp +++ b/examples/cpp/configuration/ConfigurationCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_Configuration_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -84,6 +93,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Configuration* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Configuration_cdr_plain(data_representation) && + sizeof(Configuration) == Configuration_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Configuration)); + + scdr.jump((array_size -1) * sizeof(Configuration)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -117,6 +164,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Configuration* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Configuration_cdr_plain(data_representation) && + sizeof(Configuration) == Configuration_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Configuration)); + + scdr.jump((array_size - 1) * sizeof(Configuration)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Configuration& data) diff --git a/examples/cpp/configuration/ConfigurationPubSubTypes.cxx b/examples/cpp/configuration/ConfigurationPubSubTypes.cxx index 2c0f64c2b0e..28979c28701 100644 --- a/examples/cpp/configuration/ConfigurationPubSubTypes.cxx +++ b/examples/cpp/configuration/ConfigurationPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_Configuration_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + ConfigurationPubSubType::ConfigurationPubSubType() { set_name("Configuration"); @@ -149,6 +158,17 @@ void ConfigurationPubSubType::delete_data( delete(reinterpret_cast<::Configuration*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ConfigurationPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ConfigurationPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/examples/cpp/configuration/ConfigurationPubSubTypes.hpp b/examples/cpp/configuration/ConfigurationPubSubTypes.hpp index 684f5e1fdfe..7ce6ccd803b 100644 --- a/examples/cpp/configuration/ConfigurationPubSubTypes.hpp +++ b/examples/cpp/configuration/ConfigurationPubSubTypes.hpp @@ -93,12 +93,8 @@ class ConfigurationPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/examples/cpp/content_filter/HelloWorldCdrAux.hpp b/examples/cpp/content_filter/HelloWorldCdrAux.hpp index 8bd634abf60..ca14a3ee322 100644 --- a/examples/cpp/content_filter/HelloWorldCdrAux.hpp +++ b/examples/cpp/content_filter/HelloWorldCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const HelloWorld& data); + } // namespace fastcdr } // namespace eprosima diff --git a/examples/cpp/content_filter/HelloWorldCdrAux.ipp b/examples/cpp/content_filter/HelloWorldCdrAux.ipp index caf0a04c1dc..0e0a1253b3e 100644 --- a/examples/cpp/content_filter/HelloWorldCdrAux.ipp +++ b/examples/cpp/content_filter/HelloWorldCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_HelloWorld_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -80,6 +89,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const HelloWorld* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_HelloWorld_cdr_plain(data_representation) && + sizeof(HelloWorld) == HelloWorld_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(HelloWorld)); + + scdr.jump((array_size -1) * sizeof(HelloWorld)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -109,6 +156,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + HelloWorld* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_HelloWorld_cdr_plain(data_representation) && + sizeof(HelloWorld) == HelloWorld_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(HelloWorld)); + + scdr.jump((array_size - 1) * sizeof(HelloWorld)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const HelloWorld& data) diff --git a/examples/cpp/content_filter/HelloWorldPubSubTypes.cxx b/examples/cpp/content_filter/HelloWorldPubSubTypes.cxx index b3df484d905..f7bd7c09ba7 100644 --- a/examples/cpp/content_filter/HelloWorldPubSubTypes.cxx +++ b/examples/cpp/content_filter/HelloWorldPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_HelloWorld_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + HelloWorldPubSubType::HelloWorldPubSubType() { set_name("HelloWorld"); @@ -149,6 +158,17 @@ void HelloWorldPubSubType::delete_data( delete(reinterpret_cast<::HelloWorld*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool HelloWorldPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool HelloWorldPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/examples/cpp/content_filter/HelloWorldPubSubTypes.hpp b/examples/cpp/content_filter/HelloWorldPubSubTypes.hpp index 3df09127fb6..1874789cb76 100644 --- a/examples/cpp/content_filter/HelloWorldPubSubTypes.hpp +++ b/examples/cpp/content_filter/HelloWorldPubSubTypes.hpp @@ -93,12 +93,8 @@ class HelloWorldPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/examples/cpp/custom_payload_pool/HelloWorldCdrAux.hpp b/examples/cpp/custom_payload_pool/HelloWorldCdrAux.hpp index 8bd634abf60..ca14a3ee322 100644 --- a/examples/cpp/custom_payload_pool/HelloWorldCdrAux.hpp +++ b/examples/cpp/custom_payload_pool/HelloWorldCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const HelloWorld& data); + } // namespace fastcdr } // namespace eprosima diff --git a/examples/cpp/custom_payload_pool/HelloWorldCdrAux.ipp b/examples/cpp/custom_payload_pool/HelloWorldCdrAux.ipp index caf0a04c1dc..0e0a1253b3e 100644 --- a/examples/cpp/custom_payload_pool/HelloWorldCdrAux.ipp +++ b/examples/cpp/custom_payload_pool/HelloWorldCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_HelloWorld_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -80,6 +89,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const HelloWorld* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_HelloWorld_cdr_plain(data_representation) && + sizeof(HelloWorld) == HelloWorld_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(HelloWorld)); + + scdr.jump((array_size -1) * sizeof(HelloWorld)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -109,6 +156,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + HelloWorld* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_HelloWorld_cdr_plain(data_representation) && + sizeof(HelloWorld) == HelloWorld_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(HelloWorld)); + + scdr.jump((array_size - 1) * sizeof(HelloWorld)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const HelloWorld& data) diff --git a/examples/cpp/custom_payload_pool/HelloWorldPubSubTypes.cxx b/examples/cpp/custom_payload_pool/HelloWorldPubSubTypes.cxx index b3df484d905..f7bd7c09ba7 100644 --- a/examples/cpp/custom_payload_pool/HelloWorldPubSubTypes.cxx +++ b/examples/cpp/custom_payload_pool/HelloWorldPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_HelloWorld_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + HelloWorldPubSubType::HelloWorldPubSubType() { set_name("HelloWorld"); @@ -149,6 +158,17 @@ void HelloWorldPubSubType::delete_data( delete(reinterpret_cast<::HelloWorld*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool HelloWorldPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool HelloWorldPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/examples/cpp/custom_payload_pool/HelloWorldPubSubTypes.hpp b/examples/cpp/custom_payload_pool/HelloWorldPubSubTypes.hpp index 3df09127fb6..1874789cb76 100644 --- a/examples/cpp/custom_payload_pool/HelloWorldPubSubTypes.hpp +++ b/examples/cpp/custom_payload_pool/HelloWorldPubSubTypes.hpp @@ -93,12 +93,8 @@ class HelloWorldPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/examples/cpp/delivery_mechanisms/DeliveryMechanismsCdrAux.hpp b/examples/cpp/delivery_mechanisms/DeliveryMechanismsCdrAux.hpp index 7fa297a9362..f1b6e5c2105 100644 --- a/examples/cpp/delivery_mechanisms/DeliveryMechanismsCdrAux.hpp +++ b/examples/cpp/delivery_mechanisms/DeliveryMechanismsCdrAux.hpp @@ -37,6 +37,39 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const DeliveryMechanisms& data); +#ifndef SWIG +namespace detail { + +template +struct DeliveryMechanisms_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct DeliveryMechanisms_f +{ + typedef std::array DeliveryMechanisms::* type; + friend constexpr type get( + DeliveryMechanisms_f); +}; + +template struct DeliveryMechanisms_rob; + +template +inline std::size_t constexpr DeliveryMechanisms_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + } // namespace fastcdr } // namespace eprosima diff --git a/examples/cpp/delivery_mechanisms/DeliveryMechanismsCdrAux.ipp b/examples/cpp/delivery_mechanisms/DeliveryMechanismsCdrAux.ipp index 4d35e73b7d0..01e9e492b34 100644 --- a/examples/cpp/delivery_mechanisms/DeliveryMechanismsCdrAux.ipp +++ b/examples/cpp/delivery_mechanisms/DeliveryMechanismsCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,24 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_DeliveryMechanisms_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 36ULL == + (detail::DeliveryMechanisms_offset_of() + + sizeof(std::array)); + } + else + { + return 36ULL == + (detail::DeliveryMechanisms_offset_of() + + sizeof(std::array)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -80,6 +99,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const DeliveryMechanisms* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_DeliveryMechanisms_cdr_plain(data_representation) && + sizeof(DeliveryMechanisms) == DeliveryMechanisms_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(DeliveryMechanisms)); + + scdr.jump((array_size -1) * sizeof(DeliveryMechanisms)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -109,6 +166,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + DeliveryMechanisms* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_DeliveryMechanisms_cdr_plain(data_representation) && + sizeof(DeliveryMechanisms) == DeliveryMechanisms_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(DeliveryMechanisms)); + + scdr.jump((array_size - 1) * sizeof(DeliveryMechanisms)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const DeliveryMechanisms& data) diff --git a/examples/cpp/delivery_mechanisms/DeliveryMechanismsPubSubTypes.cxx b/examples/cpp/delivery_mechanisms/DeliveryMechanismsPubSubTypes.cxx index de14d065817..97ec1c955f0 100644 --- a/examples/cpp/delivery_mechanisms/DeliveryMechanismsPubSubTypes.cxx +++ b/examples/cpp/delivery_mechanisms/DeliveryMechanismsPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_DeliveryMechanisms_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + DeliveryMechanismsPubSubType::DeliveryMechanismsPubSubType() { set_name("DeliveryMechanisms"); @@ -149,6 +158,16 @@ void DeliveryMechanismsPubSubType::delete_data( delete(reinterpret_cast<::DeliveryMechanisms*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool DeliveryMechanismsPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_DeliveryMechanisms_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool DeliveryMechanismsPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/examples/cpp/delivery_mechanisms/DeliveryMechanismsPubSubTypes.hpp b/examples/cpp/delivery_mechanisms/DeliveryMechanismsPubSubTypes.hpp index 8f1a5688dfa..305b2df1f0d 100644 --- a/examples/cpp/delivery_mechanisms/DeliveryMechanismsPubSubTypes.hpp +++ b/examples/cpp/delivery_mechanisms/DeliveryMechanismsPubSubTypes.hpp @@ -38,39 +38,6 @@ #endif // FASTDDS_GEN_API_VER -#ifndef SWIG -namespace detail { - -template -struct DeliveryMechanisms_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct DeliveryMechanisms_f -{ - typedef std::array DeliveryMechanisms::* type; - friend constexpr type get( - DeliveryMechanisms_f); -}; - -template struct DeliveryMechanisms_rob; - -template -inline size_t constexpr DeliveryMechanisms_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - /*! * @brief This class represents the TopicDataType of the type DeliveryMechanisms defined by the user in the IDL file. * @ingroup DeliveryMechanisms @@ -126,18 +93,8 @@ class DeliveryMechanismsPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) - { - return is_plain_xcdrv2_impl(); - } - else - { - return is_plain_xcdrv1_impl(); - } - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -156,21 +113,6 @@ class DeliveryMechanismsPubSubType : public eprosima::fastdds::dds::TopicDataTyp eprosima::fastdds::MD5 md5_; unsigned char* key_buffer_; - - static constexpr bool is_plain_xcdrv1_impl() - { - return 36ULL == - (detail::DeliveryMechanisms_offset_of() + - sizeof(std::array)); - } - - static constexpr bool is_plain_xcdrv2_impl() - { - return 36ULL == - (detail::DeliveryMechanisms_offset_of() + - sizeof(std::array)); - } - }; diff --git a/examples/cpp/discovery_server/HelloWorldCdrAux.hpp b/examples/cpp/discovery_server/HelloWorldCdrAux.hpp index 8bd634abf60..ca14a3ee322 100644 --- a/examples/cpp/discovery_server/HelloWorldCdrAux.hpp +++ b/examples/cpp/discovery_server/HelloWorldCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const HelloWorld& data); + } // namespace fastcdr } // namespace eprosima diff --git a/examples/cpp/discovery_server/HelloWorldCdrAux.ipp b/examples/cpp/discovery_server/HelloWorldCdrAux.ipp index caf0a04c1dc..0e0a1253b3e 100644 --- a/examples/cpp/discovery_server/HelloWorldCdrAux.ipp +++ b/examples/cpp/discovery_server/HelloWorldCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_HelloWorld_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -80,6 +89,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const HelloWorld* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_HelloWorld_cdr_plain(data_representation) && + sizeof(HelloWorld) == HelloWorld_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(HelloWorld)); + + scdr.jump((array_size -1) * sizeof(HelloWorld)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -109,6 +156,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + HelloWorld* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_HelloWorld_cdr_plain(data_representation) && + sizeof(HelloWorld) == HelloWorld_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(HelloWorld)); + + scdr.jump((array_size - 1) * sizeof(HelloWorld)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const HelloWorld& data) diff --git a/examples/cpp/discovery_server/HelloWorldPubSubTypes.cxx b/examples/cpp/discovery_server/HelloWorldPubSubTypes.cxx index b3df484d905..f7bd7c09ba7 100644 --- a/examples/cpp/discovery_server/HelloWorldPubSubTypes.cxx +++ b/examples/cpp/discovery_server/HelloWorldPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_HelloWorld_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + HelloWorldPubSubType::HelloWorldPubSubType() { set_name("HelloWorld"); @@ -149,6 +158,17 @@ void HelloWorldPubSubType::delete_data( delete(reinterpret_cast<::HelloWorld*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool HelloWorldPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool HelloWorldPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/examples/cpp/discovery_server/HelloWorldPubSubTypes.hpp b/examples/cpp/discovery_server/HelloWorldPubSubTypes.hpp index 3df09127fb6..1874789cb76 100644 --- a/examples/cpp/discovery_server/HelloWorldPubSubTypes.hpp +++ b/examples/cpp/discovery_server/HelloWorldPubSubTypes.hpp @@ -93,12 +93,8 @@ class HelloWorldPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/examples/cpp/flow_control/FlowControlCdrAux.hpp b/examples/cpp/flow_control/FlowControlCdrAux.hpp index 686d2a33b1e..8cab3093ece 100644 --- a/examples/cpp/flow_control/FlowControlCdrAux.hpp +++ b/examples/cpp/flow_control/FlowControlCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const FlowControl& data); + } // namespace fastcdr } // namespace eprosima diff --git a/examples/cpp/flow_control/FlowControlCdrAux.ipp b/examples/cpp/flow_control/FlowControlCdrAux.ipp index 701dc12ed00..95ae0f9f0f6 100644 --- a/examples/cpp/flow_control/FlowControlCdrAux.ipp +++ b/examples/cpp/flow_control/FlowControlCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_FlowControl_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -80,6 +89,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FlowControl* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FlowControl_cdr_plain(data_representation) && + sizeof(FlowControl) == FlowControl_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FlowControl)); + + scdr.jump((array_size -1) * sizeof(FlowControl)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -109,6 +156,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FlowControl* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FlowControl_cdr_plain(data_representation) && + sizeof(FlowControl) == FlowControl_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FlowControl)); + + scdr.jump((array_size - 1) * sizeof(FlowControl)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FlowControl& data) diff --git a/examples/cpp/flow_control/FlowControlPubSubTypes.cxx b/examples/cpp/flow_control/FlowControlPubSubTypes.cxx index 0a288ef4f43..398a69c3f4b 100644 --- a/examples/cpp/flow_control/FlowControlPubSubTypes.cxx +++ b/examples/cpp/flow_control/FlowControlPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_FlowControl_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + FlowControlPubSubType::FlowControlPubSubType() { set_name("FlowControl"); @@ -149,6 +158,17 @@ void FlowControlPubSubType::delete_data( delete(reinterpret_cast<::FlowControl*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FlowControlPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FlowControlPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/examples/cpp/flow_control/FlowControlPubSubTypes.hpp b/examples/cpp/flow_control/FlowControlPubSubTypes.hpp index 3c8ec111c1b..d640d078742 100644 --- a/examples/cpp/flow_control/FlowControlPubSubTypes.hpp +++ b/examples/cpp/flow_control/FlowControlPubSubTypes.hpp @@ -93,12 +93,8 @@ class FlowControlPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/examples/cpp/hello_world/WaitsetSubscriberApp.cpp b/examples/cpp/hello_world/WaitsetSubscriberApp.cpp index f039365b693..c729ac29274 100644 --- a/examples/cpp/hello_world/WaitsetSubscriberApp.cpp +++ b/examples/cpp/hello_world/WaitsetSubscriberApp.cpp @@ -34,7 +34,7 @@ #include "Application.hpp" #include "CLIParser.hpp" -#include "HelloWorldPubSubTypes.hpp" +#include "LatencySamplePubSubTypes.hpp" using namespace eprosima::fastdds::dds; @@ -50,7 +50,7 @@ WaitsetSubscriberApp::WaitsetSubscriberApp( , subscriber_(nullptr) , topic_(nullptr) , reader_(nullptr) - , type_(new HelloWorldPubSubType()) + , type_(new my_namespace::LatencySample6mPubSubType()) , samples_(config.samples) , received_samples_(0) , stop_(false) @@ -150,21 +150,21 @@ void WaitsetSubscriberApp::run() if (changed_statuses.is_active(StatusMask::data_available())) { SampleInfo info; - while ((!is_stopped()) && + /*while ((!is_stopped()) && (RETCODE_OK == reader_->take_next_sample(&hello_, &info))) { if ((info.instance_state == ALIVE_INSTANCE_STATE) && info.valid_data) { received_samples_++; // Print Hello world message data - std::cout << "Message: '" << hello_.message() << "' with index: '" - << hello_.index() << "' RECEIVED" << std::endl; + //std::cout << "Message: '" << hello_.message() << "' with index: '" + // << hello_.index() << "' RECEIVED" << std::endl; if (samples_ > 0 && (received_samples_ >= samples_)) { stop(); } } - } + }*/ } } } diff --git a/examples/cpp/hello_world/WaitsetSubscriberApp.hpp b/examples/cpp/hello_world/WaitsetSubscriberApp.hpp index 88894a324ae..a951a42dfb7 100644 --- a/examples/cpp/hello_world/WaitsetSubscriberApp.hpp +++ b/examples/cpp/hello_world/WaitsetSubscriberApp.hpp @@ -30,7 +30,7 @@ #include "Application.hpp" #include "CLIParser.hpp" -#include "HelloWorld.hpp" +#include "LatencySample.hpp" using namespace eprosima::fastdds::dds; @@ -60,7 +60,7 @@ class WaitsetSubscriberApp : public Application //! Return the current state of execution bool is_stopped(); - HelloWorld hello_; + my_namespace::LatencySample6m sample_; DomainParticipant* participant_; diff --git a/examples/cpp/rpc/types/calculatorCdrAux.ipp b/examples/cpp/rpc/types/calculatorCdrAux.ipp index 9c0ed5bbf7b..e1ca4570808 100644 --- a/examples/cpp/rpc/types/calculatorCdrAux.ipp +++ b/examples/cpp/rpc/types/calculatorCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; diff --git a/examples/cpp/rpc/types/calculatorPubSubTypes.cxx b/examples/cpp/rpc/types/calculatorPubSubTypes.cxx index 65e6986cf1f..efcfe4b35d0 100644 --- a/examples/cpp/rpc/types/calculatorPubSubTypes.cxx +++ b/examples/cpp/rpc/types/calculatorPubSubTypes.cxx @@ -31,6 +31,12 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +} // namespace fastcdr +} // namespace eprosima + namespace calculator_example { // { Calculator interface diff --git a/examples/cpp/security/HelloWorldCdrAux.hpp b/examples/cpp/security/HelloWorldCdrAux.hpp index 8bd634abf60..ca14a3ee322 100644 --- a/examples/cpp/security/HelloWorldCdrAux.hpp +++ b/examples/cpp/security/HelloWorldCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const HelloWorld& data); + } // namespace fastcdr } // namespace eprosima diff --git a/examples/cpp/security/HelloWorldCdrAux.ipp b/examples/cpp/security/HelloWorldCdrAux.ipp index caf0a04c1dc..0e0a1253b3e 100644 --- a/examples/cpp/security/HelloWorldCdrAux.ipp +++ b/examples/cpp/security/HelloWorldCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_HelloWorld_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -80,6 +89,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const HelloWorld* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_HelloWorld_cdr_plain(data_representation) && + sizeof(HelloWorld) == HelloWorld_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(HelloWorld)); + + scdr.jump((array_size -1) * sizeof(HelloWorld)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -109,6 +156,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + HelloWorld* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_HelloWorld_cdr_plain(data_representation) && + sizeof(HelloWorld) == HelloWorld_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(HelloWorld)); + + scdr.jump((array_size - 1) * sizeof(HelloWorld)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const HelloWorld& data) diff --git a/examples/cpp/security/HelloWorldPubSubTypes.cxx b/examples/cpp/security/HelloWorldPubSubTypes.cxx index b3df484d905..f7bd7c09ba7 100644 --- a/examples/cpp/security/HelloWorldPubSubTypes.cxx +++ b/examples/cpp/security/HelloWorldPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_HelloWorld_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + HelloWorldPubSubType::HelloWorldPubSubType() { set_name("HelloWorld"); @@ -149,6 +158,17 @@ void HelloWorldPubSubType::delete_data( delete(reinterpret_cast<::HelloWorld*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool HelloWorldPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool HelloWorldPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/examples/cpp/security/HelloWorldPubSubTypes.hpp b/examples/cpp/security/HelloWorldPubSubTypes.hpp index 3df09127fb6..1874789cb76 100644 --- a/examples/cpp/security/HelloWorldPubSubTypes.hpp +++ b/examples/cpp/security/HelloWorldPubSubTypes.hpp @@ -93,12 +93,8 @@ class HelloWorldPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/examples/cpp/static_edp_discovery/HelloWorldCdrAux.hpp b/examples/cpp/static_edp_discovery/HelloWorldCdrAux.hpp index 8bd634abf60..ca14a3ee322 100644 --- a/examples/cpp/static_edp_discovery/HelloWorldCdrAux.hpp +++ b/examples/cpp/static_edp_discovery/HelloWorldCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const HelloWorld& data); + } // namespace fastcdr } // namespace eprosima diff --git a/examples/cpp/static_edp_discovery/HelloWorldCdrAux.ipp b/examples/cpp/static_edp_discovery/HelloWorldCdrAux.ipp index caf0a04c1dc..0e0a1253b3e 100644 --- a/examples/cpp/static_edp_discovery/HelloWorldCdrAux.ipp +++ b/examples/cpp/static_edp_discovery/HelloWorldCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_HelloWorld_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -80,6 +89,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const HelloWorld* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_HelloWorld_cdr_plain(data_representation) && + sizeof(HelloWorld) == HelloWorld_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(HelloWorld)); + + scdr.jump((array_size -1) * sizeof(HelloWorld)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -109,6 +156,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + HelloWorld* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_HelloWorld_cdr_plain(data_representation) && + sizeof(HelloWorld) == HelloWorld_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(HelloWorld)); + + scdr.jump((array_size - 1) * sizeof(HelloWorld)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const HelloWorld& data) diff --git a/examples/cpp/static_edp_discovery/HelloWorldPubSubTypes.cxx b/examples/cpp/static_edp_discovery/HelloWorldPubSubTypes.cxx index b3df484d905..f7bd7c09ba7 100644 --- a/examples/cpp/static_edp_discovery/HelloWorldPubSubTypes.cxx +++ b/examples/cpp/static_edp_discovery/HelloWorldPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_HelloWorld_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + HelloWorldPubSubType::HelloWorldPubSubType() { set_name("HelloWorld"); @@ -149,6 +158,17 @@ void HelloWorldPubSubType::delete_data( delete(reinterpret_cast<::HelloWorld*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool HelloWorldPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool HelloWorldPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/examples/cpp/static_edp_discovery/HelloWorldPubSubTypes.hpp b/examples/cpp/static_edp_discovery/HelloWorldPubSubTypes.hpp index 3df09127fb6..1874789cb76 100644 --- a/examples/cpp/static_edp_discovery/HelloWorldPubSubTypes.hpp +++ b/examples/cpp/static_edp_discovery/HelloWorldPubSubTypes.hpp @@ -93,12 +93,8 @@ class HelloWorldPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/examples/cpp/topic_instances/ShapeTypeCdrAux.hpp b/examples/cpp/topic_instances/ShapeTypeCdrAux.hpp index 630ce2335c8..1514001da07 100644 --- a/examples/cpp/topic_instances/ShapeTypeCdrAux.hpp +++ b/examples/cpp/topic_instances/ShapeTypeCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const ShapeType& data); + } // namespace fastcdr } // namespace eprosima diff --git a/examples/cpp/topic_instances/ShapeTypeCdrAux.ipp b/examples/cpp/topic_instances/ShapeTypeCdrAux.ipp index ccb39dd9c24..aca41744f82 100644 --- a/examples/cpp/topic_instances/ShapeTypeCdrAux.ipp +++ b/examples/cpp/topic_instances/ShapeTypeCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_ShapeType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -88,6 +97,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ShapeType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ShapeType_cdr_plain(data_representation) && + sizeof(ShapeType) == ShapeType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ShapeType)); + + scdr.jump((array_size -1) * sizeof(ShapeType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -125,6 +172,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ShapeType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ShapeType_cdr_plain(data_representation) && + sizeof(ShapeType) == ShapeType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ShapeType)); + + scdr.jump((array_size - 1) * sizeof(ShapeType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ShapeType& data) diff --git a/examples/cpp/topic_instances/ShapeTypePubSubTypes.cxx b/examples/cpp/topic_instances/ShapeTypePubSubTypes.cxx index c1a9f2b5323..d4af350329e 100644 --- a/examples/cpp/topic_instances/ShapeTypePubSubTypes.cxx +++ b/examples/cpp/topic_instances/ShapeTypePubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_ShapeType_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + ShapeTypePubSubType::ShapeTypePubSubType() { set_name("ShapeType"); @@ -149,6 +158,17 @@ void ShapeTypePubSubType::delete_data( delete(reinterpret_cast<::ShapeType*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ShapeTypePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ShapeTypePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/examples/cpp/topic_instances/ShapeTypePubSubTypes.hpp b/examples/cpp/topic_instances/ShapeTypePubSubTypes.hpp index a53bd995f44..2f378a6d5a0 100644 --- a/examples/cpp/topic_instances/ShapeTypePubSubTypes.hpp +++ b/examples/cpp/topic_instances/ShapeTypePubSubTypes.hpp @@ -93,12 +93,8 @@ class ShapeTypePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/include/fastdds/dds/xtypes/type_representation/detail/dds_xtypes_typeobjectCdrAux.hpp b/include/fastdds/dds/xtypes/type_representation/detail/dds_xtypes_typeobjectCdrAux.hpp index 0b2dcd1b5a4..bf99b19e603 100644 --- a/include/fastdds/dds/xtypes/type_representation/detail/dds_xtypes_typeobjectCdrAux.hpp +++ b/include/fastdds/dds/xtypes/type_representation/detail/dds_xtypes_typeobjectCdrAux.hpp @@ -388,391 +388,680 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::StringSTypeDefn& data); +#ifndef SWIG +namespace detail { + +template +struct StringSTypeDefn_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct StringSTypeDefn_f +{ + typedef eprosima::fastdds::dds::xtypes::SBound eprosima::fastdds::dds::xtypes::StringSTypeDefn::* type; + friend constexpr type get( + StringSTypeDefn_f); +}; + +template struct StringSTypeDefn_rob; + +template +inline std::size_t constexpr StringSTypeDefn_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::StringLTypeDefn& data); +#ifndef SWIG +namespace detail { + +template +struct StringLTypeDefn_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct StringLTypeDefn_f +{ + typedef eprosima::fastdds::dds::xtypes::LBound eprosima::fastdds::dds::xtypes::StringLTypeDefn::* type; + friend constexpr type get( + StringLTypeDefn_f); +}; + +template struct StringLTypeDefn_rob; + +template +inline std::size_t constexpr StringLTypeDefn_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::PlainCollectionHeader& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::PlainSequenceSElemDefn& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::PlainSequenceLElemDefn& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::PlainArraySElemDefn& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::PlainArrayLElemDefn& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::PlainMapSTypeDefn& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::PlainMapLTypeDefn& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::StronglyConnectedComponentId& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::ExtendedTypeDefn& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::Dummy& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::ExtendedAnnotationParameterValue& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::AppliedAnnotationParameter& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::AppliedAnnotation& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::AppliedVerbatimAnnotation& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::AppliedBuiltinMemberAnnotations& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonStructMember& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteMemberDetail& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalMemberDetail& data); +#ifndef SWIG +namespace detail { + +template +struct MinimalMemberDetail_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct MinimalMemberDetail_f +{ + typedef eprosima::fastdds::dds::xtypes::NameHash eprosima::fastdds::dds::xtypes::MinimalMemberDetail::* type; + friend constexpr type get( + MinimalMemberDetail_f); +}; + +template struct MinimalMemberDetail_rob; + +template +inline std::size_t constexpr MinimalMemberDetail_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteStructMember& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalStructMember& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::AppliedBuiltinTypeAnnotations& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalTypeDetail& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteTypeDetail& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteStructHeader& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalStructHeader& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteStructType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalStructType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonUnionMember& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteUnionMember& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalUnionMember& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonDiscriminatorMember& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteDiscriminatorMember& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalDiscriminatorMember& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteUnionHeader& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalUnionHeader& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteUnionType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalUnionType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonAnnotationParameter& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteAnnotationParameter& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalAnnotationParameter& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteAnnotationHeader& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalAnnotationHeader& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteAnnotationType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalAnnotationType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonAliasBody& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteAliasBody& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalAliasBody& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteAliasHeader& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalAliasHeader& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteAliasType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalAliasType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteElementDetail& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonCollectionElement& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteCollectionElement& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalCollectionElement& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonCollectionHeader& data); +#ifndef SWIG +namespace detail { + +template +struct CommonCollectionHeader_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct CommonCollectionHeader_f +{ + typedef eprosima::fastdds::dds::xtypes::LBound eprosima::fastdds::dds::xtypes::CommonCollectionHeader::* type; + friend constexpr type get( + CommonCollectionHeader_f); +}; + +template struct CommonCollectionHeader_rob; + +template +inline std::size_t constexpr CommonCollectionHeader_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteCollectionHeader& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalCollectionHeader& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteSequenceType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalSequenceType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonArrayHeader& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteArrayHeader& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalArrayHeader& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteArrayType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalArrayType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteMapType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalMapType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonEnumeratedLiteral& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteEnumeratedLiteral& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalEnumeratedLiteral& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonEnumeratedHeader& data); +#ifndef SWIG +namespace detail { + +template +struct CommonEnumeratedHeader_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct CommonEnumeratedHeader_f +{ + typedef eprosima::fastdds::dds::xtypes::BitBound eprosima::fastdds::dds::xtypes::CommonEnumeratedHeader::* type; + friend constexpr type get( + CommonEnumeratedHeader_f); +}; + +template struct CommonEnumeratedHeader_rob; + +template +inline std::size_t constexpr CommonEnumeratedHeader_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteEnumeratedHeader& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalEnumeratedHeader& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteEnumeratedType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalEnumeratedType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonBitflag& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteBitflag& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalBitflag& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonBitmaskHeader& data); +#ifndef SWIG +namespace detail { + +template +struct CommonBitmaskHeader_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct CommonBitmaskHeader_f +{ + typedef eprosima::fastdds::dds::xtypes::BitBound eprosima::fastdds::dds::xtypes::CommonBitmaskHeader::* type; + friend constexpr type get( + CommonBitmaskHeader_f); +}; + +template struct CommonBitmaskHeader_rob; + +template +inline std::size_t constexpr CommonBitmaskHeader_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteBitmaskType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalBitmaskType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonBitfield& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteBitfield& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalBitfield& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteBitsetHeader& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalBitsetHeader& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteBitsetType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalBitsetType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteExtendedType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalExtendedType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::TypeIdentifierTypeObjectPair& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::TypeIdentifierPair& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::TypeIdentfierWithSize& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::TypeIdentifierWithDependencies& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::TypeInformation& data); + } // namespace fastcdr } // namespace eprosima diff --git a/include/fastdds/dds/xtypes/type_representation/detail/dds_xtypes_typeobjectPubSubTypes.hpp b/include/fastdds/dds/xtypes/type_representation/detail/dds_xtypes_typeobjectPubSubTypes.hpp index 0538bed73dd..2cdf3aba151 100644 --- a/include/fastdds/dds/xtypes/type_representation/detail/dds_xtypes_typeobjectPubSubTypes.hpp +++ b/include/fastdds/dds/xtypes/type_representation/detail/dds_xtypes_typeobjectPubSubTypes.hpp @@ -76,115 +76,10 @@ typedef eprosima::fastdds::dds::xtypes::TypeFlag AliasTypeFlag; typedef eprosima::fastdds::dds::xtypes::TypeFlag EnumTypeFlag; typedef eprosima::fastdds::dds::xtypes::TypeFlag BitmaskTypeFlag; typedef eprosima::fastdds::dds::xtypes::TypeFlag BitsetTypeFlag; - -#ifndef SWIG -namespace detail { - -template -struct StringSTypeDefn_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct StringSTypeDefn_f -{ - typedef eprosima::fastdds::dds::xtypes::SBound StringSTypeDefn::* type; - friend constexpr type get( - StringSTypeDefn_f); -}; - -template struct StringSTypeDefn_rob; - -template -inline size_t constexpr StringSTypeDefn_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - - - -#ifndef SWIG -namespace detail { - -template -struct StringLTypeDefn_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct StringLTypeDefn_f -{ - typedef eprosima::fastdds::dds::xtypes::LBound StringLTypeDefn::* type; - friend constexpr type get( - StringLTypeDefn_f); -}; - -template struct StringLTypeDefn_rob; - -template -inline size_t constexpr StringLTypeDefn_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - - typedef std::vector TypeIdentifierSeq; typedef uint32_t MemberId; typedef std::vector AppliedAnnotationParameterSeq; typedef std::vector AppliedAnnotationSeq; - -#ifndef SWIG -namespace detail { - -template -struct MinimalMemberDetail_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct MinimalMemberDetail_f -{ - typedef eprosima::fastdds::dds::xtypes::NameHash MinimalMemberDetail::* type; - friend constexpr type get( - MinimalMemberDetail_f); -}; - -template struct MinimalMemberDetail_rob; - -template -inline size_t constexpr MinimalMemberDetail_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - - typedef std::vector CompleteStructMemberSeq; typedef std::vector MinimalStructMemberSeq; typedef std::vector UnionCaseLabelSeq; @@ -192,116 +87,11 @@ typedef std::vector Complet typedef std::vector MinimalUnionMemberSeq; typedef std::vector CompleteAnnotationParameterSeq; typedef std::vector MinimalAnnotationParameterSeq; - -#ifndef SWIG -namespace detail { - -template -struct CommonCollectionHeader_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct CommonCollectionHeader_f -{ - typedef eprosima::fastdds::dds::xtypes::LBound CommonCollectionHeader::* type; - friend constexpr type get( - CommonCollectionHeader_f); -}; - -template struct CommonCollectionHeader_rob; - -template -inline size_t constexpr CommonCollectionHeader_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - - typedef uint16_t BitBound; typedef std::vector CompleteEnumeratedLiteralSeq; typedef std::vector MinimalEnumeratedLiteralSeq; - -#ifndef SWIG -namespace detail { - -template -struct CommonEnumeratedHeader_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct CommonEnumeratedHeader_f -{ - typedef eprosima::fastdds::dds::xtypes::BitBound CommonEnumeratedHeader::* type; - friend constexpr type get( - CommonEnumeratedHeader_f); -}; - -template struct CommonEnumeratedHeader_rob; - -template -inline size_t constexpr CommonEnumeratedHeader_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - - typedef std::vector CompleteBitflagSeq; typedef std::vector MinimalBitflagSeq; - -#ifndef SWIG -namespace detail { - -template -struct CommonBitmaskHeader_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct CommonBitmaskHeader_f -{ - typedef eprosima::fastdds::dds::xtypes::BitBound CommonBitmaskHeader::* type; - friend constexpr type get( - CommonBitmaskHeader_f); -}; - -template struct CommonBitmaskHeader_rob; - -template -inline size_t constexpr CommonBitmaskHeader_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - - typedef eprosima::fastdds::dds::xtypes::CompleteEnumeratedHeader CompleteBitmaskHeader; typedef eprosima::fastdds::dds::xtypes::MinimalEnumeratedHeader MinimalBitmaskHeader; typedef std::vector CompleteBitfieldSeq; diff --git a/src/cpp/fastdds/builtin/type_lookup_service/detail/TypeLookupTypesCdrAux.hpp b/src/cpp/fastdds/builtin/type_lookup_service/detail/TypeLookupTypesCdrAux.hpp index 6133d02de94..f86bfa6db08 100644 --- a/src/cpp/fastdds/builtin/type_lookup_service/detail/TypeLookupTypesCdrAux.hpp +++ b/src/cpp/fastdds/builtin/type_lookup_service/detail/TypeLookupTypesCdrAux.hpp @@ -175,27 +175,33 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::builtin::TypeLookup_getTypes_In& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::builtin::TypeLookup_getTypes_Out& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_In& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_Out& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::builtin::TypeLookup_Request& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::builtin::TypeLookup_Reply& data); + } // namespace fastcdr } // namespace eprosima diff --git a/src/cpp/fastdds/builtin/type_lookup_service/detail/TypeLookupTypesCdrAux.ipp b/src/cpp/fastdds/builtin/type_lookup_service/detail/TypeLookupTypesCdrAux.ipp index c5577c3da88..3121968c647 100644 --- a/src/cpp/fastdds/builtin/type_lookup_service/detail/TypeLookupTypesCdrAux.ipp +++ b/src/cpp/fastdds/builtin/type_lookup_service/detail/TypeLookupTypesCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_builtin_TypeLookup_getTypes_In_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -80,6 +89,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::builtin::TypeLookup_getTypes_In* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_builtin_TypeLookup_getTypes_In_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypes_In) == eprosima_fastdds_dds_builtin_TypeLookup_getTypes_In_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypes_In)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypes_In)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -107,6 +154,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::builtin::TypeLookup_getTypes_In* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_builtin_TypeLookup_getTypes_In_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypes_In) == eprosima_fastdds_dds_builtin_TypeLookup_getTypes_In_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypes_In)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypes_In)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::builtin::TypeLookup_getTypes_In& data) @@ -120,6 +203,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_builtin_TypeLookup_getTypes_Out_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -170,6 +261,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::builtin::TypeLookup_getTypes_Out* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_builtin_TypeLookup_getTypes_Out_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypes_Out) == eprosima_fastdds_dds_builtin_TypeLookup_getTypes_Out_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypes_Out)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypes_Out)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -201,6 +330,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::builtin::TypeLookup_getTypes_Out* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_builtin_TypeLookup_getTypes_Out_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypes_Out) == eprosima_fastdds_dds_builtin_TypeLookup_getTypes_Out_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypes_Out)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypes_Out)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::builtin::TypeLookup_getTypes_Out& data) @@ -281,6 +446,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::builtin::TypeLookup_getTypes_Result* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -331,6 +509,27 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::builtin::TypeLookup_getTypes_Result* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_builtin_TypeLookup_getTypeDependencies_In_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -381,6 +580,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_In* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_builtin_TypeLookup_getTypeDependencies_In_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_In) == eprosima_fastdds_dds_builtin_TypeLookup_getTypeDependencies_In_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_In)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_In)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -412,6 +649,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_In* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_builtin_TypeLookup_getTypeDependencies_In_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_In) == eprosima_fastdds_dds_builtin_TypeLookup_getTypeDependencies_In_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_In)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_In)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_In& data) @@ -427,6 +700,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_builtin_TypeLookup_getTypeDependencies_Out_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -477,6 +758,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_Out* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_builtin_TypeLookup_getTypeDependencies_Out_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_Out) == eprosima_fastdds_dds_builtin_TypeLookup_getTypeDependencies_Out_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_Out)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_Out)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -508,6 +827,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_Out* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_builtin_TypeLookup_getTypeDependencies_Out_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_Out) == eprosima_fastdds_dds_builtin_TypeLookup_getTypeDependencies_Out_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_Out)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_Out)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_Out& data) @@ -588,6 +943,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_Result* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -638,6 +1006,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_Result* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -712,6 +1093,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::builtin::TypeLookup_Call* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -774,6 +1168,27 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::builtin::TypeLookup_Call* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_builtin_TypeLookup_Request_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -824,6 +1239,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::builtin::TypeLookup_Request* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_builtin_TypeLookup_Request_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::builtin::TypeLookup_Request) == eprosima_fastdds_dds_builtin_TypeLookup_Request_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_Request)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_Request)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -855,6 +1308,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::builtin::TypeLookup_Request* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_builtin_TypeLookup_Request_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::builtin::TypeLookup_Request) == eprosima_fastdds_dds_builtin_TypeLookup_Request_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_Request)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_Request)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::builtin::TypeLookup_Request& data) @@ -949,6 +1438,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::builtin::TypeLookup_Return* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1011,6 +1513,27 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::builtin::TypeLookup_Return* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_builtin_TypeLookup_Reply_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1061,6 +1584,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::builtin::TypeLookup_Reply* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_builtin_TypeLookup_Reply_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::builtin::TypeLookup_Reply) == eprosima_fastdds_dds_builtin_TypeLookup_Reply_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_Reply)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_Reply)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1092,6 +1653,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::builtin::TypeLookup_Reply* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_builtin_TypeLookup_Reply_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::builtin::TypeLookup_Reply) == eprosima_fastdds_dds_builtin_TypeLookup_Reply_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_Reply)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::builtin::TypeLookup_Reply)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::builtin::TypeLookup_Reply& data) diff --git a/src/cpp/fastdds/builtin/type_lookup_service/detail/TypeLookupTypesPubSubTypes.cxx b/src/cpp/fastdds/builtin/type_lookup_service/detail/TypeLookupTypesPubSubTypes.cxx index 47d7b345bd8..dc3d5231838 100644 --- a/src/cpp/fastdds/builtin/type_lookup_service/detail/TypeLookupTypesPubSubTypes.cxx +++ b/src/cpp/fastdds/builtin/type_lookup_service/detail/TypeLookupTypesPubSubTypes.cxx @@ -29,6 +29,153 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_eprosima_fastdds_dds_builtin_TypeLookup_Reply_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + + + + + + + + + + + +bool is_eprosima_fastdds_dds_builtin_TypeLookup_getTypes_In_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +bool is_eprosima_fastdds_dds_builtin_TypeLookup_getTypeDependencies_Out_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + + + + + + +bool is_eprosima_fastdds_dds_builtin_TypeLookup_getTypeDependencies_In_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + + + + +bool is_eprosima_fastdds_dds_builtin_TypeLookup_getTypes_Out_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + + + + + + + + + + +bool is_eprosima_fastdds_dds_builtin_TypeLookup_Request_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} // namespace fastcdr +} // namespace eprosima + namespace eprosima { namespace fastdds { @@ -155,6 +302,17 @@ namespace builtin { delete(reinterpret_cast<::eprosima::fastdds::dds::builtin::TypeLookup_getTypes_In*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool TypeLookup_getTypes_InPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool TypeLookup_getTypes_InPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -338,6 +496,17 @@ namespace builtin { delete(reinterpret_cast<::eprosima::fastdds::dds::builtin::TypeLookup_getTypes_Out*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool TypeLookup_getTypes_OutPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool TypeLookup_getTypes_OutPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -521,6 +690,17 @@ namespace builtin { delete(reinterpret_cast<::eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_In*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool TypeLookup_getTypeDependencies_InPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool TypeLookup_getTypeDependencies_InPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -704,6 +884,17 @@ namespace builtin { delete(reinterpret_cast<::eprosima::fastdds::dds::builtin::TypeLookup_getTypeDependencies_Out*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool TypeLookup_getTypeDependencies_OutPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool TypeLookup_getTypeDependencies_OutPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -887,6 +1078,17 @@ namespace builtin { delete(reinterpret_cast<::eprosima::fastdds::dds::builtin::TypeLookup_Request*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool TypeLookup_RequestPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool TypeLookup_RequestPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1070,6 +1272,17 @@ namespace builtin { delete(reinterpret_cast<::eprosima::fastdds::dds::builtin::TypeLookup_Reply*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool TypeLookup_ReplyPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool TypeLookup_ReplyPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/src/cpp/fastdds/builtin/type_lookup_service/detail/TypeLookupTypesPubSubTypes.hpp b/src/cpp/fastdds/builtin/type_lookup_service/detail/TypeLookupTypesPubSubTypes.hpp index 346941d2775..30d26a70b65 100644 --- a/src/cpp/fastdds/builtin/type_lookup_service/detail/TypeLookupTypesPubSubTypes.hpp +++ b/src/cpp/fastdds/builtin/type_lookup_service/detail/TypeLookupTypesPubSubTypes.hpp @@ -105,12 +105,8 @@ namespace builtin #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -187,12 +183,8 @@ namespace builtin #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -269,12 +261,8 @@ namespace builtin #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -351,12 +339,8 @@ namespace builtin #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -433,12 +417,8 @@ namespace builtin #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -515,12 +495,8 @@ namespace builtin #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/src/cpp/fastdds/builtin/type_lookup_service/detail/rpc_typesCdrAux.hpp b/src/cpp/fastdds/builtin/type_lookup_service/detail/rpc_typesCdrAux.hpp index 25a23a8b2e7..943ee1c735b 100644 --- a/src/cpp/fastdds/builtin/type_lookup_service/detail/rpc_typesCdrAux.hpp +++ b/src/cpp/fastdds/builtin/type_lookup_service/detail/rpc_typesCdrAux.hpp @@ -57,26 +57,192 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::EntityId_t& data); +#ifndef SWIG +namespace detail { + +template +struct EntityId_t_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct EntityId_t_f +{ + typedef uint8_t eprosima::fastdds::dds::EntityId_t::* type; + friend constexpr type get( + EntityId_t_f); +}; + +template struct EntityId_t_rob; + +template +inline std::size_t constexpr EntityId_t_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::GUID_t& data); +#ifndef SWIG +namespace detail { + +template +struct GUID_t_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct GUID_t_f +{ + typedef eprosima::fastdds::dds::EntityId_t eprosima::fastdds::dds::GUID_t::* type; + friend constexpr type get( + GUID_t_f); +}; + +template struct GUID_t_rob; + +template +inline std::size_t constexpr GUID_t_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::SequenceNumber_t& data); +#ifndef SWIG +namespace detail { + +template +struct SequenceNumber_t_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct SequenceNumber_t_f +{ + typedef uint32_t eprosima::fastdds::dds::SequenceNumber_t::* type; + friend constexpr type get( + SequenceNumber_t_f); +}; + +template struct SequenceNumber_t_rob; + +template +inline std::size_t constexpr SequenceNumber_t_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::SampleIdentity& data); +#ifndef SWIG +namespace detail { + +template +struct SampleIdentity_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct SampleIdentity_f +{ + typedef eprosima::fastdds::dds::SequenceNumber_t eprosima::fastdds::dds::SampleIdentity::* type; + friend constexpr type get( + SampleIdentity_f); +}; + +template struct SampleIdentity_rob; + +template +inline std::size_t constexpr SampleIdentity_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::rpc::RequestHeader& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::rpc::ReplyHeader& data); +#ifndef SWIG +namespace detail { + +template +struct ReplyHeader_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct ReplyHeader_f +{ + typedef eprosima::fastdds::dds::rpc::RemoteExceptionCode_t eprosima::fastdds::dds::rpc::ReplyHeader::* type; + friend constexpr type get( + ReplyHeader_f); +}; + +template struct ReplyHeader_rob; + +template +inline std::size_t constexpr ReplyHeader_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + } // namespace fastcdr } // namespace eprosima diff --git a/src/cpp/fastdds/builtin/type_lookup_service/detail/rpc_typesCdrAux.ipp b/src/cpp/fastdds/builtin/type_lookup_service/detail/rpc_typesCdrAux.ipp index 63caf2f9655..fa8de04603e 100644 --- a/src/cpp/fastdds/builtin/type_lookup_service/detail/rpc_typesCdrAux.ipp +++ b/src/cpp/fastdds/builtin/type_lookup_service/detail/rpc_typesCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,24 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_EntityId_t_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 4ULL == + (detail::EntityId_t_offset_of() + + sizeof(uint8_t)); + } + else + { + return 4ULL == + (detail::EntityId_t_offset_of() + + sizeof(uint8_t)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -84,6 +103,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::EntityId_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_EntityId_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::EntityId_t) == eprosima_fastdds_dds_EntityId_t_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::EntityId_t)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::EntityId_t)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -115,6 +172,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::EntityId_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_EntityId_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::EntityId_t) == eprosima_fastdds_dds_EntityId_t_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::EntityId_t)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::EntityId_t)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::EntityId_t& data) @@ -130,6 +223,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_GUID_t_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 16ULL == + (detail::GUID_t_offset_of() + + sizeof(eprosima::fastdds::dds::EntityId_t)); + } + else + { + return 16ULL == + (detail::GUID_t_offset_of() + + sizeof(eprosima::fastdds::dds::EntityId_t)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -180,6 +291,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::GUID_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_GUID_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::GUID_t) == eprosima_fastdds_dds_GUID_t_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::GUID_t)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::GUID_t)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -211,6 +360,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::GUID_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_GUID_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::GUID_t) == eprosima_fastdds_dds_GUID_t_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::GUID_t)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::GUID_t)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::GUID_t& data) @@ -230,6 +415,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_SequenceNumber_t_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 8ULL == + (detail::SequenceNumber_t_offset_of() + + sizeof(uint32_t)); + } + else + { + return 8ULL == + (detail::SequenceNumber_t_offset_of() + + sizeof(uint32_t)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -280,6 +483,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::SequenceNumber_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_SequenceNumber_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::SequenceNumber_t) == eprosima_fastdds_dds_SequenceNumber_t_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::SequenceNumber_t)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::SequenceNumber_t)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -311,6 +552,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::SequenceNumber_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_SequenceNumber_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::SequenceNumber_t) == eprosima_fastdds_dds_SequenceNumber_t_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::SequenceNumber_t)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::SequenceNumber_t)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::SequenceNumber_t& data) @@ -326,6 +603,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_SampleIdentity_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 24ULL == + (detail::SampleIdentity_offset_of() + + sizeof(eprosima::fastdds::dds::SequenceNumber_t)); + } + else + { + return 24ULL == + (detail::SampleIdentity_offset_of() + + sizeof(eprosima::fastdds::dds::SequenceNumber_t)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -376,6 +671,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::SampleIdentity* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_SampleIdentity_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::SampleIdentity) == eprosima_fastdds_dds_SampleIdentity_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::SampleIdentity)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::SampleIdentity)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -407,6 +740,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::SampleIdentity* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_SampleIdentity_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::SampleIdentity) == eprosima_fastdds_dds_SampleIdentity_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::SampleIdentity)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::SampleIdentity)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::SampleIdentity& data) @@ -430,6 +799,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_rpc_RequestHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -480,6 +857,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::rpc::RequestHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_rpc_RequestHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::rpc::RequestHeader) == eprosima_fastdds_dds_rpc_RequestHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::rpc::RequestHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::rpc::RequestHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -511,6 +926,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::rpc::RequestHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_rpc_RequestHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::rpc::RequestHeader) == eprosima_fastdds_dds_rpc_RequestHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::rpc::RequestHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::rpc::RequestHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::rpc::RequestHeader& data) @@ -531,6 +982,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_rpc_ReplyHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 28ULL == + (detail::ReplyHeader_offset_of() + + sizeof(eprosima::fastdds::dds::rpc::RemoteExceptionCode_t)); + } + else + { + return 28ULL == + (detail::ReplyHeader_offset_of() + + sizeof(eprosima::fastdds::dds::rpc::RemoteExceptionCode_t)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -581,6 +1050,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::rpc::ReplyHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_rpc_ReplyHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::rpc::ReplyHeader) == eprosima_fastdds_dds_rpc_ReplyHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::rpc::ReplyHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::rpc::ReplyHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -612,6 +1119,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::rpc::ReplyHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_rpc_ReplyHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::rpc::ReplyHeader) == eprosima_fastdds_dds_rpc_ReplyHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::rpc::ReplyHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::rpc::ReplyHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::rpc::ReplyHeader& data) diff --git a/src/cpp/fastdds/builtin/type_lookup_service/detail/rpc_typesPubSubTypes.cxx b/src/cpp/fastdds/builtin/type_lookup_service/detail/rpc_typesPubSubTypes.cxx index c71d2199e51..e149a202caa 100644 --- a/src/cpp/fastdds/builtin/type_lookup_service/detail/rpc_typesPubSubTypes.cxx +++ b/src/cpp/fastdds/builtin/type_lookup_service/detail/rpc_typesPubSubTypes.cxx @@ -29,6 +29,35 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_eprosima_fastdds_dds_rpc_RequestHeader_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_eprosima_fastdds_dds_EntityId_t_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_GUID_t_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_eprosima_fastdds_dds_rpc_ReplyHeader_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_eprosima_fastdds_dds_SequenceNumber_t_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_SampleIdentity_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + namespace eprosima { namespace fastdds { diff --git a/src/cpp/fastdds/builtin/type_lookup_service/detail/rpc_typesPubSubTypes.hpp b/src/cpp/fastdds/builtin/type_lookup_service/detail/rpc_typesPubSubTypes.hpp index 1844e8aeb68..f69c6d99807 100644 --- a/src/cpp/fastdds/builtin/type_lookup_service/detail/rpc_typesPubSubTypes.hpp +++ b/src/cpp/fastdds/builtin/type_lookup_service/detail/rpc_typesPubSubTypes.hpp @@ -45,187 +45,12 @@ namespace dds { typedef std::array GuidPrefix_t; - -#ifndef SWIG -namespace detail { - -template -struct EntityId_t_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct EntityId_t_f -{ - typedef uint8_t EntityId_t::* type; - friend constexpr type get( - EntityId_t_f); -}; - -template struct EntityId_t_rob; - -template -inline size_t constexpr EntityId_t_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - - - -#ifndef SWIG -namespace detail { - -template -struct GUID_t_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct GUID_t_f -{ - typedef eprosima::fastdds::dds::EntityId_t GUID_t::* type; - friend constexpr type get( - GUID_t_f); -}; - -template struct GUID_t_rob; - -template -inline size_t constexpr GUID_t_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - - - -#ifndef SWIG -namespace detail { - -template -struct SequenceNumber_t_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct SequenceNumber_t_f -{ - typedef uint32_t SequenceNumber_t::* type; - friend constexpr type get( - SequenceNumber_t_f); -}; - -template struct SequenceNumber_t_rob; - -template -inline size_t constexpr SequenceNumber_t_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - - - -#ifndef SWIG -namespace detail { - -template -struct SampleIdentity_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct SampleIdentity_f -{ - typedef eprosima::fastdds::dds::SequenceNumber_t SampleIdentity::* type; - friend constexpr type get( - SampleIdentity_f); -}; - -template struct SampleIdentity_rob; - -template -inline size_t constexpr SampleIdentity_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - - namespace rpc { typedef uint8_t UnknownOperation; typedef uint8_t UnknownException; typedef uint8_t UnusedMember; typedef eprosima::fastcdr::fixed_string<255> InstanceName; - - #ifndef SWIG - namespace detail { - - template - struct ReplyHeader_rob - { - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - - }; - - struct ReplyHeader_f - { - typedef eprosima::fastdds::dds::rpc::RemoteExceptionCode_t ReplyHeader::* type; - friend constexpr type get( - ReplyHeader_f); - }; - - template struct ReplyHeader_rob; - - template - inline size_t constexpr ReplyHeader_offset_of() - { - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); - } - - } // namespace detail - #endif // ifndef SWIG - - - } // namespace rpc } // namespace dds diff --git a/src/cpp/fastdds/xtypes/type_representation/dds_xtypes_typeobjectCdrAux.ipp b/src/cpp/fastdds/xtypes/type_representation/dds_xtypes_typeobjectCdrAux.ipp index abcdbebe16c..06c197535c5 100644 --- a/src/cpp/fastdds/xtypes/type_representation/dds_xtypes_typeobjectCdrAux.ipp +++ b/src/cpp/fastdds/xtypes/type_representation/dds_xtypes_typeobjectCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -101,6 +102,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::TypeObjectHashId* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -153,6 +167,37 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::TypeObjectHashId* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_StringSTypeDefn_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 1ULL == + (detail::StringSTypeDefn_offset_of() + + sizeof(eprosima::fastdds::dds::xtypes::SBound)); + } + else + { + return 1ULL == + (detail::StringSTypeDefn_offset_of() + + sizeof(eprosima::fastdds::dds::xtypes::SBound)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -199,6 +244,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::StringSTypeDefn* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_StringSTypeDefn_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::StringSTypeDefn) == eprosima_fastdds_dds_xtypes_StringSTypeDefn_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::StringSTypeDefn)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::StringSTypeDefn)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -226,6 +309,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::StringSTypeDefn* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_StringSTypeDefn_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::StringSTypeDefn) == eprosima_fastdds_dds_xtypes_StringSTypeDefn_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::StringSTypeDefn)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::StringSTypeDefn)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::StringSTypeDefn& data) @@ -239,6 +358,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_StringLTypeDefn_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 4ULL == + (detail::StringLTypeDefn_offset_of() + + sizeof(eprosima::fastdds::dds::xtypes::LBound)); + } + else + { + return 4ULL == + (detail::StringLTypeDefn_offset_of() + + sizeof(eprosima::fastdds::dds::xtypes::LBound)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -285,6 +422,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::StringLTypeDefn* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_StringLTypeDefn_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::StringLTypeDefn) == eprosima_fastdds_dds_xtypes_StringLTypeDefn_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::StringLTypeDefn)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::StringLTypeDefn)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -312,6 +487,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::StringLTypeDefn* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_StringLTypeDefn_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::StringLTypeDefn) == eprosima_fastdds_dds_xtypes_StringLTypeDefn_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::StringLTypeDefn)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::StringLTypeDefn)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::StringLTypeDefn& data) @@ -325,6 +536,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_PlainCollectionHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -375,6 +594,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::PlainCollectionHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_PlainCollectionHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::PlainCollectionHeader) == eprosima_fastdds_dds_xtypes_PlainCollectionHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::PlainCollectionHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::PlainCollectionHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -406,6 +663,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::PlainCollectionHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_PlainCollectionHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::PlainCollectionHeader) == eprosima_fastdds_dds_xtypes_PlainCollectionHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::PlainCollectionHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::PlainCollectionHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::PlainCollectionHeader& data) @@ -421,6 +714,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_PlainSequenceSElemDefn_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -475,6 +776,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::PlainSequenceSElemDefn* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_PlainSequenceSElemDefn_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::PlainSequenceSElemDefn) == eprosima_fastdds_dds_xtypes_PlainSequenceSElemDefn_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::PlainSequenceSElemDefn)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::PlainSequenceSElemDefn)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -510,6 +849,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::PlainSequenceSElemDefn* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_PlainSequenceSElemDefn_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::PlainSequenceSElemDefn) == eprosima_fastdds_dds_xtypes_PlainSequenceSElemDefn_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::PlainSequenceSElemDefn)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::PlainSequenceSElemDefn)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::PlainSequenceSElemDefn& data) @@ -533,6 +908,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_PlainSequenceLElemDefn_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -587,6 +970,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::PlainSequenceLElemDefn* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_PlainSequenceLElemDefn_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::PlainSequenceLElemDefn) == eprosima_fastdds_dds_xtypes_PlainSequenceLElemDefn_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::PlainSequenceLElemDefn)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::PlainSequenceLElemDefn)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -622,6 +1043,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::PlainSequenceLElemDefn* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_PlainSequenceLElemDefn_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::PlainSequenceLElemDefn) == eprosima_fastdds_dds_xtypes_PlainSequenceLElemDefn_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::PlainSequenceLElemDefn)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::PlainSequenceLElemDefn)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::PlainSequenceLElemDefn& data) @@ -645,6 +1102,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_PlainArraySElemDefn_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -699,6 +1164,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::PlainArraySElemDefn* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_PlainArraySElemDefn_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::PlainArraySElemDefn) == eprosima_fastdds_dds_xtypes_PlainArraySElemDefn_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::PlainArraySElemDefn)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::PlainArraySElemDefn)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -734,6 +1237,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::PlainArraySElemDefn* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_PlainArraySElemDefn_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::PlainArraySElemDefn) == eprosima_fastdds_dds_xtypes_PlainArraySElemDefn_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::PlainArraySElemDefn)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::PlainArraySElemDefn)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::PlainArraySElemDefn& data) @@ -757,6 +1296,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_PlainArrayLElemDefn_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -811,6 +1358,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::PlainArrayLElemDefn* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_PlainArrayLElemDefn_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::PlainArrayLElemDefn) == eprosima_fastdds_dds_xtypes_PlainArrayLElemDefn_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::PlainArrayLElemDefn)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::PlainArrayLElemDefn)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -846,6 +1431,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::PlainArrayLElemDefn* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_PlainArrayLElemDefn_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::PlainArrayLElemDefn) == eprosima_fastdds_dds_xtypes_PlainArrayLElemDefn_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::PlainArrayLElemDefn)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::PlainArrayLElemDefn)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::PlainArrayLElemDefn& data) @@ -869,6 +1490,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_PlainMapSTypeDefn_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -931,6 +1560,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::PlainMapSTypeDefn* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_PlainMapSTypeDefn_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::PlainMapSTypeDefn) == eprosima_fastdds_dds_xtypes_PlainMapSTypeDefn_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::PlainMapSTypeDefn)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::PlainMapSTypeDefn)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -974,6 +1641,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::PlainMapSTypeDefn* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_PlainMapSTypeDefn_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::PlainMapSTypeDefn) == eprosima_fastdds_dds_xtypes_PlainMapSTypeDefn_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::PlainMapSTypeDefn)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::PlainMapSTypeDefn)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::PlainMapSTypeDefn& data) @@ -1003,6 +1706,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_PlainMapLTypeDefn_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1065,6 +1776,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::PlainMapLTypeDefn* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_PlainMapLTypeDefn_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::PlainMapLTypeDefn) == eprosima_fastdds_dds_xtypes_PlainMapLTypeDefn_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::PlainMapLTypeDefn)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::PlainMapLTypeDefn)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1108,6 +1857,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::PlainMapLTypeDefn* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_PlainMapLTypeDefn_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::PlainMapLTypeDefn) == eprosima_fastdds_dds_xtypes_PlainMapLTypeDefn_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::PlainMapLTypeDefn)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::PlainMapLTypeDefn)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::PlainMapLTypeDefn& data) @@ -1137,6 +1922,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_StronglyConnectedComponentId_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1191,6 +1984,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::StronglyConnectedComponentId* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_StronglyConnectedComponentId_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::StronglyConnectedComponentId) == eprosima_fastdds_dds_xtypes_StronglyConnectedComponentId_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::StronglyConnectedComponentId)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::StronglyConnectedComponentId)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1226,6 +2057,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::StronglyConnectedComponentId* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_StronglyConnectedComponentId_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::StronglyConnectedComponentId) == eprosima_fastdds_dds_xtypes_StronglyConnectedComponentId_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::StronglyConnectedComponentId)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::StronglyConnectedComponentId)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::StronglyConnectedComponentId& data) @@ -1243,6 +2110,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_ExtendedTypeDefn_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1285,6 +2160,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::ExtendedTypeDefn* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_ExtendedTypeDefn_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::ExtendedTypeDefn) == eprosima_fastdds_dds_xtypes_ExtendedTypeDefn_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::ExtendedTypeDefn)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::ExtendedTypeDefn)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1304,6 +2217,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::ExtendedTypeDefn* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_ExtendedTypeDefn_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::ExtendedTypeDefn) == eprosima_fastdds_dds_xtypes_ExtendedTypeDefn_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::ExtendedTypeDefn)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::ExtendedTypeDefn)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::ExtendedTypeDefn& data) @@ -1315,6 +2264,20 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_Dummy_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return true; + } + else + { + return true; + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1357,6 +2320,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::Dummy* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_Dummy_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::Dummy) == eprosima_fastdds_dds_xtypes_Dummy_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::Dummy)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::Dummy)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1376,6 +2377,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::Dummy* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_Dummy_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::Dummy) == eprosima_fastdds_dds_xtypes_Dummy_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::Dummy)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::Dummy)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::Dummy& data) @@ -1583,6 +2620,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::TypeIdentifier* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1796,6 +2846,27 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::TypeIdentifier* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_ExtendedAnnotationParameterValue_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1838,10 +2909,48 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, - eprosima::fastdds::dds::xtypes::ExtendedAnnotationParameterValue& data) +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::ExtendedAnnotationParameterValue* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_ExtendedAnnotationParameterValue_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::ExtendedAnnotationParameterValue) == eprosima_fastdds_dds_xtypes_ExtendedAnnotationParameterValue_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::ExtendedAnnotationParameterValue)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::ExtendedAnnotationParameterValue)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, + eprosima::fastdds::dds::xtypes::ExtendedAnnotationParameterValue& data) { using namespace eprosima::fastdds::dds::xtypes; @@ -1857,6 +2966,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::ExtendedAnnotationParameterValue* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_ExtendedAnnotationParameterValue_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::ExtendedAnnotationParameterValue) == eprosima_fastdds_dds_xtypes_ExtendedAnnotationParameterValue_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::ExtendedAnnotationParameterValue)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::ExtendedAnnotationParameterValue)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::ExtendedAnnotationParameterValue& data) @@ -2091,6 +3236,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::AnnotationParameterValue* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2352,6 +3510,27 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::AnnotationParameterValue* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_AppliedAnnotationParameter_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2402,6 +3581,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::AppliedAnnotationParameter* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_AppliedAnnotationParameter_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::AppliedAnnotationParameter) == eprosima_fastdds_dds_xtypes_AppliedAnnotationParameter_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::AppliedAnnotationParameter)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::AppliedAnnotationParameter)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2433,6 +3650,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::AppliedAnnotationParameter* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_AppliedAnnotationParameter_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::AppliedAnnotationParameter) == eprosima_fastdds_dds_xtypes_AppliedAnnotationParameter_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::AppliedAnnotationParameter)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::AppliedAnnotationParameter)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::AppliedAnnotationParameter& data) @@ -2448,6 +3701,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_AppliedAnnotation_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2498,6 +3759,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::AppliedAnnotation* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_AppliedAnnotation_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::AppliedAnnotation) == eprosima_fastdds_dds_xtypes_AppliedAnnotation_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::AppliedAnnotation)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::AppliedAnnotation)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2529,6 +3828,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::AppliedAnnotation* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_AppliedAnnotation_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::AppliedAnnotation) == eprosima_fastdds_dds_xtypes_AppliedAnnotation_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::AppliedAnnotation)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::AppliedAnnotation)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::AppliedAnnotation& data) @@ -2547,6 +3882,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_AppliedVerbatimAnnotation_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2601,6 +3944,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::AppliedVerbatimAnnotation* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_AppliedVerbatimAnnotation_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::AppliedVerbatimAnnotation) == eprosima_fastdds_dds_xtypes_AppliedVerbatimAnnotation_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::AppliedVerbatimAnnotation)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::AppliedVerbatimAnnotation)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2636,6 +4017,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::AppliedVerbatimAnnotation* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_AppliedVerbatimAnnotation_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::AppliedVerbatimAnnotation) == eprosima_fastdds_dds_xtypes_AppliedVerbatimAnnotation_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::AppliedVerbatimAnnotation)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::AppliedVerbatimAnnotation)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::AppliedVerbatimAnnotation& data) @@ -2653,6 +4070,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_AppliedBuiltinMemberAnnotations_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2711,6 +4136,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::AppliedBuiltinMemberAnnotations* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_AppliedBuiltinMemberAnnotations_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::AppliedBuiltinMemberAnnotations) == eprosima_fastdds_dds_xtypes_AppliedBuiltinMemberAnnotations_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::AppliedBuiltinMemberAnnotations)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::AppliedBuiltinMemberAnnotations)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2750,6 +4213,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::AppliedBuiltinMemberAnnotations* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_AppliedBuiltinMemberAnnotations_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::AppliedBuiltinMemberAnnotations) == eprosima_fastdds_dds_xtypes_AppliedBuiltinMemberAnnotations_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::AppliedBuiltinMemberAnnotations)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::AppliedBuiltinMemberAnnotations)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::AppliedBuiltinMemberAnnotations& data) @@ -2781,6 +4280,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CommonStructMember_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2835,6 +4342,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CommonStructMember* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonStructMember_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonStructMember) == eprosima_fastdds_dds_xtypes_CommonStructMember_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonStructMember)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CommonStructMember)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2870,6 +4415,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CommonStructMember* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonStructMember_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonStructMember) == eprosima_fastdds_dds_xtypes_CommonStructMember_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonStructMember)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonStructMember)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonStructMember& data) @@ -2887,6 +4468,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteMemberDetail_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2941,6 +4530,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteMemberDetail* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteMemberDetail_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteMemberDetail) == eprosima_fastdds_dds_xtypes_CompleteMemberDetail_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteMemberDetail)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteMemberDetail)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2976,6 +4603,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteMemberDetail* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteMemberDetail_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteMemberDetail) == eprosima_fastdds_dds_xtypes_CompleteMemberDetail_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteMemberDetail)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteMemberDetail)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteMemberDetail& data) @@ -3004,6 +4667,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalMemberDetail_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 4ULL == + (detail::MinimalMemberDetail_offset_of() + + sizeof(eprosima::fastdds::dds::xtypes::NameHash)); + } + else + { + return 4ULL == + (detail::MinimalMemberDetail_offset_of() + + sizeof(eprosima::fastdds::dds::xtypes::NameHash)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3050,6 +4731,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalMemberDetail* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalMemberDetail_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalMemberDetail) == eprosima_fastdds_dds_xtypes_MinimalMemberDetail_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalMemberDetail)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalMemberDetail)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3077,6 +4796,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalMemberDetail* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalMemberDetail_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalMemberDetail) == eprosima_fastdds_dds_xtypes_MinimalMemberDetail_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalMemberDetail)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalMemberDetail)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalMemberDetail& data) @@ -3090,6 +4845,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteStructMember_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3140,6 +4903,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteStructMember* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteStructMember_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteStructMember) == eprosima_fastdds_dds_xtypes_CompleteStructMember_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteStructMember)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteStructMember)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3171,6 +4972,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteStructMember* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteStructMember_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteStructMember) == eprosima_fastdds_dds_xtypes_CompleteStructMember_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteStructMember)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteStructMember)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteStructMember& data) @@ -3194,6 +5031,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalStructMember_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3244,6 +5089,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalStructMember* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalStructMember_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalStructMember) == eprosima_fastdds_dds_xtypes_MinimalStructMember_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalStructMember)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalStructMember)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3275,6 +5158,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalStructMember* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalStructMember_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalStructMember) == eprosima_fastdds_dds_xtypes_MinimalStructMember_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalStructMember)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalStructMember)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalStructMember& data) @@ -3298,6 +5217,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_AppliedBuiltinTypeAnnotations_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3344,6 +5271,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::AppliedBuiltinTypeAnnotations* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_AppliedBuiltinTypeAnnotations_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::AppliedBuiltinTypeAnnotations) == eprosima_fastdds_dds_xtypes_AppliedBuiltinTypeAnnotations_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::AppliedBuiltinTypeAnnotations)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::AppliedBuiltinTypeAnnotations)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3371,6 +5336,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::AppliedBuiltinTypeAnnotations* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_AppliedBuiltinTypeAnnotations_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::AppliedBuiltinTypeAnnotations) == eprosima_fastdds_dds_xtypes_AppliedBuiltinTypeAnnotations_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::AppliedBuiltinTypeAnnotations)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::AppliedBuiltinTypeAnnotations)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::AppliedBuiltinTypeAnnotations& data) @@ -3391,6 +5392,20 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalTypeDetail_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return true; + } + else + { + return true; + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3433,6 +5448,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalTypeDetail* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalTypeDetail_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalTypeDetail) == eprosima_fastdds_dds_xtypes_MinimalTypeDetail_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalTypeDetail)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalTypeDetail)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3452,6 +5505,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalTypeDetail* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalTypeDetail_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalTypeDetail) == eprosima_fastdds_dds_xtypes_MinimalTypeDetail_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalTypeDetail)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalTypeDetail)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalTypeDetail& data) @@ -3463,6 +5552,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteTypeDetail_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3517,6 +5614,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteTypeDetail* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteTypeDetail_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteTypeDetail) == eprosima_fastdds_dds_xtypes_CompleteTypeDetail_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteTypeDetail)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteTypeDetail)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3552,6 +5687,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteTypeDetail* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteTypeDetail_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteTypeDetail) == eprosima_fastdds_dds_xtypes_CompleteTypeDetail_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteTypeDetail)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteTypeDetail)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteTypeDetail& data) @@ -3581,6 +5752,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteStructHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3631,9 +5810,47 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteStructHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteStructHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteStructHeader) == eprosima_fastdds_dds_xtypes_CompleteStructHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteStructHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteStructHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, eprosima::fastdds::dds::xtypes::CompleteStructHeader& data) { using namespace eprosima::fastdds::dds::xtypes; @@ -3662,6 +5879,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteStructHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteStructHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteStructHeader) == eprosima_fastdds_dds_xtypes_CompleteStructHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteStructHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteStructHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteStructHeader& data) @@ -3681,6 +5934,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalStructHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3731,6 +5992,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalStructHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalStructHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalStructHeader) == eprosima_fastdds_dds_xtypes_MinimalStructHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalStructHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalStructHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3762,6 +6061,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalStructHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalStructHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalStructHeader) == eprosima_fastdds_dds_xtypes_MinimalStructHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalStructHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalStructHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalStructHeader& data) @@ -3781,6 +6116,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteStructType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3835,6 +6178,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteStructType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteStructType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteStructType) == eprosima_fastdds_dds_xtypes_CompleteStructType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteStructType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteStructType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3870,6 +6251,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteStructType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteStructType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteStructType) == eprosima_fastdds_dds_xtypes_CompleteStructType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteStructType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteStructType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteStructType& data) @@ -3892,6 +6309,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalStructType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3946,6 +6371,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalStructType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalStructType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalStructType) == eprosima_fastdds_dds_xtypes_MinimalStructType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalStructType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalStructType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3981,6 +6444,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalStructType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalStructType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalStructType) == eprosima_fastdds_dds_xtypes_MinimalStructType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalStructType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalStructType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalStructType& data) @@ -4003,6 +6502,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CommonUnionMember_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4061,6 +6568,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CommonUnionMember* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonUnionMember_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonUnionMember) == eprosima_fastdds_dds_xtypes_CommonUnionMember_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonUnionMember)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CommonUnionMember)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4100,6 +6645,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CommonUnionMember* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonUnionMember_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonUnionMember) == eprosima_fastdds_dds_xtypes_CommonUnionMember_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonUnionMember)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonUnionMember)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonUnionMember& data) @@ -4119,6 +6700,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteUnionMember_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4169,6 +6758,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteUnionMember* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteUnionMember_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteUnionMember) == eprosima_fastdds_dds_xtypes_CompleteUnionMember_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteUnionMember)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteUnionMember)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4200,6 +6827,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteUnionMember* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteUnionMember_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteUnionMember) == eprosima_fastdds_dds_xtypes_CompleteUnionMember_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteUnionMember)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteUnionMember)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteUnionMember& data) @@ -4223,6 +6886,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalUnionMember_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4273,6 +6944,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalUnionMember* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalUnionMember_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalUnionMember) == eprosima_fastdds_dds_xtypes_MinimalUnionMember_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalUnionMember)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalUnionMember)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4304,6 +7013,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalUnionMember* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalUnionMember_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalUnionMember) == eprosima_fastdds_dds_xtypes_MinimalUnionMember_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalUnionMember)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalUnionMember)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalUnionMember& data) @@ -4327,6 +7072,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CommonDiscriminatorMember_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4377,6 +7130,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CommonDiscriminatorMember* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonDiscriminatorMember_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonDiscriminatorMember) == eprosima_fastdds_dds_xtypes_CommonDiscriminatorMember_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonDiscriminatorMember)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CommonDiscriminatorMember)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4408,6 +7199,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CommonDiscriminatorMember* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonDiscriminatorMember_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonDiscriminatorMember) == eprosima_fastdds_dds_xtypes_CommonDiscriminatorMember_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonDiscriminatorMember)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonDiscriminatorMember)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonDiscriminatorMember& data) @@ -4423,6 +7250,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteDiscriminatorMember_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4477,6 +7312,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteDiscriminatorMember* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteDiscriminatorMember_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteDiscriminatorMember) == eprosima_fastdds_dds_xtypes_CompleteDiscriminatorMember_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteDiscriminatorMember)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteDiscriminatorMember)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4512,6 +7385,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteDiscriminatorMember* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteDiscriminatorMember_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteDiscriminatorMember) == eprosima_fastdds_dds_xtypes_CompleteDiscriminatorMember_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteDiscriminatorMember)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteDiscriminatorMember)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteDiscriminatorMember& data) @@ -4544,6 +7453,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalDiscriminatorMember_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4590,6 +7507,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalDiscriminatorMember* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalDiscriminatorMember_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalDiscriminatorMember) == eprosima_fastdds_dds_xtypes_MinimalDiscriminatorMember_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalDiscriminatorMember)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalDiscriminatorMember)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4617,6 +7572,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalDiscriminatorMember* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalDiscriminatorMember_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalDiscriminatorMember) == eprosima_fastdds_dds_xtypes_MinimalDiscriminatorMember_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalDiscriminatorMember)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalDiscriminatorMember)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalDiscriminatorMember& data) @@ -4634,6 +7625,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteUnionHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4680,6 +7679,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteUnionHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteUnionHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteUnionHeader) == eprosima_fastdds_dds_xtypes_CompleteUnionHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteUnionHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteUnionHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4707,6 +7744,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteUnionHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteUnionHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteUnionHeader) == eprosima_fastdds_dds_xtypes_CompleteUnionHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteUnionHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteUnionHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteUnionHeader& data) @@ -4724,6 +7797,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalUnionHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4770,6 +7851,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalUnionHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalUnionHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalUnionHeader) == eprosima_fastdds_dds_xtypes_MinimalUnionHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalUnionHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalUnionHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4797,6 +7916,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalUnionHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalUnionHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalUnionHeader) == eprosima_fastdds_dds_xtypes_MinimalUnionHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalUnionHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalUnionHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalUnionHeader& data) @@ -4814,6 +7969,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteUnionType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4872,6 +8035,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteUnionType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteUnionType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteUnionType) == eprosima_fastdds_dds_xtypes_CompleteUnionType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteUnionType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteUnionType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4911,6 +8112,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteUnionType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteUnionType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteUnionType) == eprosima_fastdds_dds_xtypes_CompleteUnionType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteUnionType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteUnionType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteUnionType& data) @@ -4939,6 +8176,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalUnionType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4997,6 +8242,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalUnionType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalUnionType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalUnionType) == eprosima_fastdds_dds_xtypes_MinimalUnionType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalUnionType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalUnionType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5036,6 +8319,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalUnionType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalUnionType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalUnionType) == eprosima_fastdds_dds_xtypes_MinimalUnionType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalUnionType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalUnionType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalUnionType& data) @@ -5064,6 +8383,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CommonAnnotationParameter_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5114,9 +8441,47 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CommonAnnotationParameter* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonAnnotationParameter_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonAnnotationParameter) == eprosima_fastdds_dds_xtypes_CommonAnnotationParameter_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonAnnotationParameter)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CommonAnnotationParameter)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, eprosima::fastdds::dds::xtypes::CommonAnnotationParameter& data) { using namespace eprosima::fastdds::dds::xtypes; @@ -5145,6 +8510,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CommonAnnotationParameter* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonAnnotationParameter_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonAnnotationParameter) == eprosima_fastdds_dds_xtypes_CommonAnnotationParameter_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonAnnotationParameter)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonAnnotationParameter)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonAnnotationParameter& data) @@ -5160,6 +8561,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteAnnotationParameter_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5214,6 +8623,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteAnnotationParameter* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteAnnotationParameter_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteAnnotationParameter) == eprosima_fastdds_dds_xtypes_CompleteAnnotationParameter_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAnnotationParameter)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAnnotationParameter)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5249,6 +8696,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteAnnotationParameter* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteAnnotationParameter_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteAnnotationParameter) == eprosima_fastdds_dds_xtypes_CompleteAnnotationParameter_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAnnotationParameter)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAnnotationParameter)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteAnnotationParameter& data) @@ -5272,6 +8755,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalAnnotationParameter_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5326,6 +8817,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalAnnotationParameter* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalAnnotationParameter_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalAnnotationParameter) == eprosima_fastdds_dds_xtypes_MinimalAnnotationParameter_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAnnotationParameter)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAnnotationParameter)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5361,6 +8890,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalAnnotationParameter* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalAnnotationParameter_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalAnnotationParameter) == eprosima_fastdds_dds_xtypes_MinimalAnnotationParameter_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAnnotationParameter)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAnnotationParameter)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalAnnotationParameter& data) @@ -5384,6 +8949,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteAnnotationHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5430,6 +9003,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteAnnotationHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteAnnotationHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteAnnotationHeader) == eprosima_fastdds_dds_xtypes_CompleteAnnotationHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAnnotationHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAnnotationHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5457,6 +9068,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteAnnotationHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteAnnotationHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteAnnotationHeader) == eprosima_fastdds_dds_xtypes_CompleteAnnotationHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAnnotationHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAnnotationHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteAnnotationHeader& data) @@ -5470,6 +9117,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalAnnotationHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5512,6 +9167,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalAnnotationHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalAnnotationHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalAnnotationHeader) == eprosima_fastdds_dds_xtypes_MinimalAnnotationHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAnnotationHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAnnotationHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5531,6 +9224,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalAnnotationHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalAnnotationHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalAnnotationHeader) == eprosima_fastdds_dds_xtypes_MinimalAnnotationHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAnnotationHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAnnotationHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalAnnotationHeader& data) @@ -5542,6 +9271,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteAnnotationType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5596,6 +9333,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteAnnotationType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteAnnotationType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteAnnotationType) == eprosima_fastdds_dds_xtypes_CompleteAnnotationType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAnnotationType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAnnotationType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5631,6 +9406,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteAnnotationType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteAnnotationType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteAnnotationType) == eprosima_fastdds_dds_xtypes_CompleteAnnotationType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAnnotationType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAnnotationType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteAnnotationType& data) @@ -5653,6 +9464,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalAnnotationType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5707,6 +9526,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalAnnotationType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalAnnotationType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalAnnotationType) == eprosima_fastdds_dds_xtypes_MinimalAnnotationType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAnnotationType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAnnotationType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5742,6 +9599,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalAnnotationType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalAnnotationType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalAnnotationType) == eprosima_fastdds_dds_xtypes_MinimalAnnotationType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAnnotationType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAnnotationType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalAnnotationType& data) @@ -5764,6 +9657,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CommonAliasBody_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5814,6 +9715,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CommonAliasBody* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonAliasBody_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonAliasBody) == eprosima_fastdds_dds_xtypes_CommonAliasBody_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonAliasBody)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CommonAliasBody)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5845,6 +9784,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CommonAliasBody* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonAliasBody_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonAliasBody) == eprosima_fastdds_dds_xtypes_CommonAliasBody_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonAliasBody)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonAliasBody)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonAliasBody& data) @@ -5860,6 +9835,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteAliasBody_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5914,6 +9897,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteAliasBody* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteAliasBody_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteAliasBody) == eprosima_fastdds_dds_xtypes_CompleteAliasBody_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAliasBody)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAliasBody)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5949,6 +9970,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteAliasBody* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteAliasBody_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteAliasBody) == eprosima_fastdds_dds_xtypes_CompleteAliasBody_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAliasBody)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAliasBody)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteAliasBody& data) @@ -5981,6 +10038,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalAliasBody_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6027,6 +10092,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalAliasBody* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalAliasBody_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalAliasBody) == eprosima_fastdds_dds_xtypes_MinimalAliasBody_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAliasBody)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAliasBody)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6054,6 +10157,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalAliasBody* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalAliasBody_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalAliasBody) == eprosima_fastdds_dds_xtypes_MinimalAliasBody_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAliasBody)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAliasBody)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalAliasBody& data) @@ -6071,6 +10210,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteAliasHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6117,6 +10264,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteAliasHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteAliasHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteAliasHeader) == eprosima_fastdds_dds_xtypes_CompleteAliasHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAliasHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAliasHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6144,6 +10329,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteAliasHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteAliasHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteAliasHeader) == eprosima_fastdds_dds_xtypes_CompleteAliasHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAliasHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAliasHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteAliasHeader& data) @@ -6161,6 +10382,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalAliasHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6203,6 +10432,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalAliasHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalAliasHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalAliasHeader) == eprosima_fastdds_dds_xtypes_MinimalAliasHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAliasHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAliasHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6222,6 +10489,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalAliasHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalAliasHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalAliasHeader) == eprosima_fastdds_dds_xtypes_MinimalAliasHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAliasHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAliasHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalAliasHeader& data) @@ -6233,6 +10536,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteAliasType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6287,6 +10598,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteAliasType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteAliasType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteAliasType) == eprosima_fastdds_dds_xtypes_CompleteAliasType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAliasType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAliasType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6322,6 +10671,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteAliasType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteAliasType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteAliasType) == eprosima_fastdds_dds_xtypes_CompleteAliasType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAliasType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteAliasType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteAliasType& data) @@ -6347,6 +10732,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalAliasType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6401,6 +10794,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalAliasType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalAliasType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalAliasType) == eprosima_fastdds_dds_xtypes_MinimalAliasType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAliasType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAliasType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6436,6 +10867,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalAliasType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalAliasType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalAliasType) == eprosima_fastdds_dds_xtypes_MinimalAliasType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAliasType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalAliasType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalAliasType& data) @@ -6461,6 +10928,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteElementDetail_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6511,6 +10986,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteElementDetail* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteElementDetail_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteElementDetail) == eprosima_fastdds_dds_xtypes_CompleteElementDetail_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteElementDetail)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteElementDetail)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6542,6 +11055,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteElementDetail* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteElementDetail_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteElementDetail) == eprosima_fastdds_dds_xtypes_CompleteElementDetail_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteElementDetail)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteElementDetail)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteElementDetail& data) @@ -6568,6 +11117,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CommonCollectionElement_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6618,6 +11175,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CommonCollectionElement* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonCollectionElement_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonCollectionElement) == eprosima_fastdds_dds_xtypes_CommonCollectionElement_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonCollectionElement)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CommonCollectionElement)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6649,6 +11244,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CommonCollectionElement* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonCollectionElement_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonCollectionElement) == eprosima_fastdds_dds_xtypes_CommonCollectionElement_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonCollectionElement)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonCollectionElement)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonCollectionElement& data) @@ -6664,6 +11295,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteCollectionElement_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6714,6 +11353,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteCollectionElement* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteCollectionElement_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteCollectionElement) == eprosima_fastdds_dds_xtypes_CompleteCollectionElement_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteCollectionElement)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteCollectionElement)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6745,6 +11422,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteCollectionElement* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteCollectionElement_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteCollectionElement) == eprosima_fastdds_dds_xtypes_CompleteCollectionElement_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteCollectionElement)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteCollectionElement)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteCollectionElement& data) @@ -6768,6 +11481,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalCollectionElement_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6814,6 +11535,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalCollectionElement* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalCollectionElement_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalCollectionElement) == eprosima_fastdds_dds_xtypes_MinimalCollectionElement_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalCollectionElement)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalCollectionElement)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6841,6 +11600,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalCollectionElement* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalCollectionElement_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalCollectionElement) == eprosima_fastdds_dds_xtypes_MinimalCollectionElement_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalCollectionElement)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalCollectionElement)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalCollectionElement& data) @@ -6858,6 +11653,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CommonCollectionHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 4ULL == + (detail::CommonCollectionHeader_offset_of() + + sizeof(eprosima::fastdds::dds::xtypes::LBound)); + } + else + { + return 4ULL == + (detail::CommonCollectionHeader_offset_of() + + sizeof(eprosima::fastdds::dds::xtypes::LBound)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6904,6 +11717,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CommonCollectionHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonCollectionHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonCollectionHeader) == eprosima_fastdds_dds_xtypes_CommonCollectionHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonCollectionHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CommonCollectionHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6931,6 +11782,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CommonCollectionHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonCollectionHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonCollectionHeader) == eprosima_fastdds_dds_xtypes_CommonCollectionHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonCollectionHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonCollectionHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonCollectionHeader& data) @@ -6944,6 +11831,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteCollectionHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6994,6 +11889,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteCollectionHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteCollectionHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteCollectionHeader) == eprosima_fastdds_dds_xtypes_CompleteCollectionHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteCollectionHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteCollectionHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7025,6 +11958,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteCollectionHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteCollectionHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteCollectionHeader) == eprosima_fastdds_dds_xtypes_CompleteCollectionHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteCollectionHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteCollectionHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteCollectionHeader& data) @@ -7051,6 +12020,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalCollectionHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7097,6 +12074,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalCollectionHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalCollectionHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalCollectionHeader) == eprosima_fastdds_dds_xtypes_MinimalCollectionHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalCollectionHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalCollectionHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7124,6 +12139,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalCollectionHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalCollectionHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalCollectionHeader) == eprosima_fastdds_dds_xtypes_MinimalCollectionHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalCollectionHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalCollectionHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalCollectionHeader& data) @@ -7141,6 +12192,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteSequenceType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7195,6 +12254,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteSequenceType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteSequenceType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteSequenceType) == eprosima_fastdds_dds_xtypes_CompleteSequenceType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteSequenceType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteSequenceType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7230,6 +12327,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteSequenceType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteSequenceType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteSequenceType) == eprosima_fastdds_dds_xtypes_CompleteSequenceType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteSequenceType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteSequenceType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteSequenceType& data) @@ -7255,6 +12388,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalSequenceType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7309,6 +12450,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalSequenceType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalSequenceType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalSequenceType) == eprosima_fastdds_dds_xtypes_MinimalSequenceType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalSequenceType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalSequenceType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7344,6 +12523,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalSequenceType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalSequenceType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalSequenceType) == eprosima_fastdds_dds_xtypes_MinimalSequenceType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalSequenceType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalSequenceType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalSequenceType& data) @@ -7369,6 +12584,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CommonArrayHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7415,6 +12638,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CommonArrayHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonArrayHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonArrayHeader) == eprosima_fastdds_dds_xtypes_CommonArrayHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonArrayHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CommonArrayHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7442,6 +12703,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CommonArrayHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonArrayHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonArrayHeader) == eprosima_fastdds_dds_xtypes_CommonArrayHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonArrayHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonArrayHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonArrayHeader& data) @@ -7455,6 +12752,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteArrayHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7505,6 +12810,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteArrayHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteArrayHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteArrayHeader) == eprosima_fastdds_dds_xtypes_CompleteArrayHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteArrayHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteArrayHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7536,6 +12879,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteArrayHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteArrayHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteArrayHeader) == eprosima_fastdds_dds_xtypes_CompleteArrayHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteArrayHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteArrayHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteArrayHeader& data) @@ -7559,6 +12938,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalArrayHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7605,6 +12992,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalArrayHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalArrayHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalArrayHeader) == eprosima_fastdds_dds_xtypes_MinimalArrayHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalArrayHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalArrayHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7632,6 +13057,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalArrayHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalArrayHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalArrayHeader) == eprosima_fastdds_dds_xtypes_MinimalArrayHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalArrayHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalArrayHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalArrayHeader& data) @@ -7649,6 +13110,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteArrayType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7703,6 +13172,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteArrayType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteArrayType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteArrayType) == eprosima_fastdds_dds_xtypes_CompleteArrayType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteArrayType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteArrayType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7738,6 +13245,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteArrayType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteArrayType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteArrayType) == eprosima_fastdds_dds_xtypes_CompleteArrayType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteArrayType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteArrayType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteArrayType& data) @@ -7763,6 +13306,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalArrayType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7817,6 +13368,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalArrayType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalArrayType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalArrayType) == eprosima_fastdds_dds_xtypes_MinimalArrayType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalArrayType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalArrayType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7852,6 +13441,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalArrayType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalArrayType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalArrayType) == eprosima_fastdds_dds_xtypes_MinimalArrayType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalArrayType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalArrayType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalArrayType& data) @@ -7877,6 +13502,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteMapType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7935,6 +13568,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteMapType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteMapType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteMapType) == eprosima_fastdds_dds_xtypes_CompleteMapType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteMapType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteMapType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7974,6 +13645,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteMapType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteMapType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteMapType) == eprosima_fastdds_dds_xtypes_CompleteMapType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteMapType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteMapType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteMapType& data) @@ -8005,6 +13712,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalMapType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8063,6 +13778,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalMapType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalMapType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalMapType) == eprosima_fastdds_dds_xtypes_MinimalMapType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalMapType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalMapType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8102,6 +13855,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalMapType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalMapType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalMapType) == eprosima_fastdds_dds_xtypes_MinimalMapType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalMapType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalMapType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalMapType& data) @@ -8133,6 +13922,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CommonEnumeratedLiteral_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8183,6 +13980,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CommonEnumeratedLiteral* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonEnumeratedLiteral_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonEnumeratedLiteral) == eprosima_fastdds_dds_xtypes_CommonEnumeratedLiteral_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonEnumeratedLiteral)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CommonEnumeratedLiteral)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8214,6 +14049,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CommonEnumeratedLiteral* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonEnumeratedLiteral_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonEnumeratedLiteral) == eprosima_fastdds_dds_xtypes_CommonEnumeratedLiteral_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonEnumeratedLiteral)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonEnumeratedLiteral)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonEnumeratedLiteral& data) @@ -8229,6 +14100,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteEnumeratedLiteral_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8279,6 +14158,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteEnumeratedLiteral* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteEnumeratedLiteral_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteEnumeratedLiteral) == eprosima_fastdds_dds_xtypes_CompleteEnumeratedLiteral_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteEnumeratedLiteral)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteEnumeratedLiteral)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8310,6 +14227,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteEnumeratedLiteral* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteEnumeratedLiteral_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteEnumeratedLiteral) == eprosima_fastdds_dds_xtypes_CompleteEnumeratedLiteral_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteEnumeratedLiteral)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteEnumeratedLiteral)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteEnumeratedLiteral& data) @@ -8333,6 +14286,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalEnumeratedLiteral_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8383,6 +14344,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalEnumeratedLiteral* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalEnumeratedLiteral_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalEnumeratedLiteral) == eprosima_fastdds_dds_xtypes_MinimalEnumeratedLiteral_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalEnumeratedLiteral)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalEnumeratedLiteral)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8414,6 +14413,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalEnumeratedLiteral* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalEnumeratedLiteral_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalEnumeratedLiteral) == eprosima_fastdds_dds_xtypes_MinimalEnumeratedLiteral_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalEnumeratedLiteral)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalEnumeratedLiteral)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalEnumeratedLiteral& data) @@ -8437,6 +14472,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CommonEnumeratedHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 2ULL == + (detail::CommonEnumeratedHeader_offset_of() + + sizeof(eprosima::fastdds::dds::xtypes::BitBound)); + } + else + { + return 2ULL == + (detail::CommonEnumeratedHeader_offset_of() + + sizeof(eprosima::fastdds::dds::xtypes::BitBound)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8483,6 +14536,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CommonEnumeratedHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonEnumeratedHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonEnumeratedHeader) == eprosima_fastdds_dds_xtypes_CommonEnumeratedHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonEnumeratedHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CommonEnumeratedHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8510,6 +14601,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CommonEnumeratedHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonEnumeratedHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonEnumeratedHeader) == eprosima_fastdds_dds_xtypes_CommonEnumeratedHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonEnumeratedHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonEnumeratedHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonEnumeratedHeader& data) @@ -8523,6 +14650,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteEnumeratedHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8573,6 +14708,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteEnumeratedHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteEnumeratedHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteEnumeratedHeader) == eprosima_fastdds_dds_xtypes_CompleteEnumeratedHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteEnumeratedHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteEnumeratedHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8604,6 +14777,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteEnumeratedHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteEnumeratedHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteEnumeratedHeader) == eprosima_fastdds_dds_xtypes_CompleteEnumeratedHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteEnumeratedHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteEnumeratedHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteEnumeratedHeader& data) @@ -8627,6 +14836,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalEnumeratedHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8673,6 +14890,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalEnumeratedHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalEnumeratedHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalEnumeratedHeader) == eprosima_fastdds_dds_xtypes_MinimalEnumeratedHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalEnumeratedHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalEnumeratedHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8700,6 +14955,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalEnumeratedHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalEnumeratedHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalEnumeratedHeader) == eprosima_fastdds_dds_xtypes_MinimalEnumeratedHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalEnumeratedHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalEnumeratedHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalEnumeratedHeader& data) @@ -8717,6 +15008,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteEnumeratedType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8771,6 +15070,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteEnumeratedType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteEnumeratedType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteEnumeratedType) == eprosima_fastdds_dds_xtypes_CompleteEnumeratedType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteEnumeratedType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteEnumeratedType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8806,6 +15143,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteEnumeratedType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteEnumeratedType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteEnumeratedType) == eprosima_fastdds_dds_xtypes_CompleteEnumeratedType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteEnumeratedType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteEnumeratedType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteEnumeratedType& data) @@ -8828,6 +15201,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalEnumeratedType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8882,6 +15263,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalEnumeratedType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalEnumeratedType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalEnumeratedType) == eprosima_fastdds_dds_xtypes_MinimalEnumeratedType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalEnumeratedType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalEnumeratedType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8917,6 +15336,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalEnumeratedType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalEnumeratedType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalEnumeratedType) == eprosima_fastdds_dds_xtypes_MinimalEnumeratedType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalEnumeratedType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalEnumeratedType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalEnumeratedType& data) @@ -8939,6 +15394,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CommonBitflag_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8989,6 +15452,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CommonBitflag* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonBitflag_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonBitflag) == eprosima_fastdds_dds_xtypes_CommonBitflag_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonBitflag)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CommonBitflag)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9020,6 +15521,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CommonBitflag* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonBitflag_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonBitflag) == eprosima_fastdds_dds_xtypes_CommonBitflag_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonBitflag)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonBitflag)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonBitflag& data) @@ -9035,6 +15572,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteBitflag_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9085,6 +15630,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteBitflag* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteBitflag_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteBitflag) == eprosima_fastdds_dds_xtypes_CompleteBitflag_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteBitflag)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteBitflag)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9116,6 +15699,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteBitflag* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteBitflag_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteBitflag) == eprosima_fastdds_dds_xtypes_CompleteBitflag_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteBitflag)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteBitflag)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteBitflag& data) @@ -9139,6 +15758,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalBitflag_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9189,6 +15816,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalBitflag* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalBitflag_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalBitflag) == eprosima_fastdds_dds_xtypes_MinimalBitflag_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalBitflag)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalBitflag)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9220,6 +15885,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalBitflag* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalBitflag_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalBitflag) == eprosima_fastdds_dds_xtypes_MinimalBitflag_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalBitflag)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalBitflag)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalBitflag& data) @@ -9243,6 +15944,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CommonBitmaskHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 2ULL == + (detail::CommonBitmaskHeader_offset_of() + + sizeof(eprosima::fastdds::dds::xtypes::BitBound)); + } + else + { + return 2ULL == + (detail::CommonBitmaskHeader_offset_of() + + sizeof(eprosima::fastdds::dds::xtypes::BitBound)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9289,6 +16008,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CommonBitmaskHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonBitmaskHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonBitmaskHeader) == eprosima_fastdds_dds_xtypes_CommonBitmaskHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonBitmaskHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CommonBitmaskHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9316,6 +16073,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CommonBitmaskHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonBitmaskHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonBitmaskHeader) == eprosima_fastdds_dds_xtypes_CommonBitmaskHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonBitmaskHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonBitmaskHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonBitmaskHeader& data) @@ -9329,6 +16122,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteBitmaskType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9383,6 +16184,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteBitmaskType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteBitmaskType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteBitmaskType) == eprosima_fastdds_dds_xtypes_CompleteBitmaskType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteBitmaskType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteBitmaskType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9418,6 +16257,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteBitmaskType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteBitmaskType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteBitmaskType) == eprosima_fastdds_dds_xtypes_CompleteBitmaskType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteBitmaskType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteBitmaskType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteBitmaskType& data) @@ -9435,6 +16310,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalBitmaskType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9489,6 +16372,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalBitmaskType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalBitmaskType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalBitmaskType) == eprosima_fastdds_dds_xtypes_MinimalBitmaskType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalBitmaskType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalBitmaskType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9524,6 +16445,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalBitmaskType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalBitmaskType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalBitmaskType) == eprosima_fastdds_dds_xtypes_MinimalBitmaskType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalBitmaskType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalBitmaskType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalBitmaskType& data) @@ -9541,6 +16498,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CommonBitfield_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9599,6 +16564,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CommonBitfield* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonBitfield_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonBitfield) == eprosima_fastdds_dds_xtypes_CommonBitfield_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonBitfield)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CommonBitfield)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9638,6 +16641,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CommonBitfield* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CommonBitfield_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CommonBitfield) == eprosima_fastdds_dds_xtypes_CommonBitfield_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonBitfield)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CommonBitfield)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CommonBitfield& data) @@ -9657,6 +16696,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteBitfield_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9707,6 +16754,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteBitfield* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteBitfield_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteBitfield) == eprosima_fastdds_dds_xtypes_CompleteBitfield_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteBitfield)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteBitfield)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9738,6 +16823,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteBitfield* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteBitfield_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteBitfield) == eprosima_fastdds_dds_xtypes_CompleteBitfield_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteBitfield)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteBitfield)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteBitfield& data) @@ -9761,6 +16882,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalBitfield_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9811,6 +16940,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalBitfield* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalBitfield_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalBitfield) == eprosima_fastdds_dds_xtypes_MinimalBitfield_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalBitfield)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalBitfield)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9842,6 +17009,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalBitfield* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalBitfield_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalBitfield) == eprosima_fastdds_dds_xtypes_MinimalBitfield_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalBitfield)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalBitfield)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalBitfield& data) @@ -9862,6 +17065,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteBitsetHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9908,6 +17119,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteBitsetHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteBitsetHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteBitsetHeader) == eprosima_fastdds_dds_xtypes_CompleteBitsetHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteBitsetHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteBitsetHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9935,6 +17184,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteBitsetHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteBitsetHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteBitsetHeader) == eprosima_fastdds_dds_xtypes_CompleteBitsetHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteBitsetHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteBitsetHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteBitsetHeader& data) @@ -9952,6 +17237,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalBitsetHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9994,6 +17287,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalBitsetHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalBitsetHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalBitsetHeader) == eprosima_fastdds_dds_xtypes_MinimalBitsetHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalBitsetHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalBitsetHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -10013,6 +17344,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalBitsetHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalBitsetHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalBitsetHeader) == eprosima_fastdds_dds_xtypes_MinimalBitsetHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalBitsetHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalBitsetHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalBitsetHeader& data) @@ -10024,6 +17391,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteBitsetType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -10078,6 +17453,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteBitsetType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteBitsetType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteBitsetType) == eprosima_fastdds_dds_xtypes_CompleteBitsetType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteBitsetType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteBitsetType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -10113,6 +17526,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteBitsetType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteBitsetType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteBitsetType) == eprosima_fastdds_dds_xtypes_CompleteBitsetType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteBitsetType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteBitsetType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteBitsetType& data) @@ -10135,6 +17584,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalBitsetType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -10189,6 +17646,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalBitsetType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalBitsetType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalBitsetType) == eprosima_fastdds_dds_xtypes_MinimalBitsetType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalBitsetType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalBitsetType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -10224,6 +17719,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalBitsetType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalBitsetType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalBitsetType) == eprosima_fastdds_dds_xtypes_MinimalBitsetType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalBitsetType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalBitsetType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalBitsetType& data) @@ -10246,6 +17777,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_CompleteExtendedType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -10288,6 +17827,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteExtendedType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteExtendedType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteExtendedType) == eprosima_fastdds_dds_xtypes_CompleteExtendedType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteExtendedType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteExtendedType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -10307,6 +17884,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteExtendedType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_CompleteExtendedType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::CompleteExtendedType) == eprosima_fastdds_dds_xtypes_CompleteExtendedType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteExtendedType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::CompleteExtendedType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::CompleteExtendedType& data) @@ -10469,6 +18082,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::CompleteTypeObject* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -10634,6 +18260,27 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::CompleteTypeObject* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_MinimalExtendedType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -10676,6 +18323,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalExtendedType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalExtendedType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalExtendedType) == eprosima_fastdds_dds_xtypes_MinimalExtendedType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalExtendedType)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalExtendedType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -10695,6 +18380,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalExtendedType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_MinimalExtendedType_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::MinimalExtendedType) == eprosima_fastdds_dds_xtypes_MinimalExtendedType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalExtendedType)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::MinimalExtendedType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::MinimalExtendedType& data) @@ -10857,6 +18578,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::MinimalTypeObject* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -11022,6 +18756,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::MinimalTypeObject* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -11096,6 +18843,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::TypeObject* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -11158,6 +18918,27 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::TypeObject* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_TypeIdentifierTypeObjectPair_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -11208,6 +18989,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::TypeIdentifierTypeObjectPair* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_TypeIdentifierTypeObjectPair_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::TypeIdentifierTypeObjectPair) == eprosima_fastdds_dds_xtypes_TypeIdentifierTypeObjectPair_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::TypeIdentifierTypeObjectPair)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::TypeIdentifierTypeObjectPair)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -11239,6 +19058,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::TypeIdentifierTypeObjectPair* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_TypeIdentifierTypeObjectPair_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::TypeIdentifierTypeObjectPair) == eprosima_fastdds_dds_xtypes_TypeIdentifierTypeObjectPair_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::TypeIdentifierTypeObjectPair)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::TypeIdentifierTypeObjectPair)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::TypeIdentifierTypeObjectPair& data) @@ -11254,6 +19109,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_TypeIdentifierPair_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -11304,6 +19167,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::TypeIdentifierPair* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_TypeIdentifierPair_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::TypeIdentifierPair) == eprosima_fastdds_dds_xtypes_TypeIdentifierPair_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::TypeIdentifierPair)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::TypeIdentifierPair)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -11335,6 +19236,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::TypeIdentifierPair* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_TypeIdentifierPair_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::TypeIdentifierPair) == eprosima_fastdds_dds_xtypes_TypeIdentifierPair_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::TypeIdentifierPair)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::TypeIdentifierPair)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::TypeIdentifierPair& data) @@ -11350,6 +19287,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_TypeIdentfierWithSize_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -11400,6 +19345,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::TypeIdentfierWithSize* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_TypeIdentfierWithSize_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::TypeIdentfierWithSize) == eprosima_fastdds_dds_xtypes_TypeIdentfierWithSize_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::TypeIdentfierWithSize)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::TypeIdentfierWithSize)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -11431,6 +19414,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::TypeIdentfierWithSize* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_TypeIdentfierWithSize_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::TypeIdentfierWithSize) == eprosima_fastdds_dds_xtypes_TypeIdentfierWithSize_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::TypeIdentfierWithSize)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::TypeIdentfierWithSize)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::TypeIdentfierWithSize& data) @@ -11446,6 +19465,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_TypeIdentifierWithDependencies_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -11500,6 +19527,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::TypeIdentifierWithDependencies* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_TypeIdentifierWithDependencies_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::TypeIdentifierWithDependencies) == eprosima_fastdds_dds_xtypes_TypeIdentifierWithDependencies_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::TypeIdentifierWithDependencies)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::TypeIdentifierWithDependencies)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -11535,6 +19600,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::TypeIdentifierWithDependencies* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_TypeIdentifierWithDependencies_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::TypeIdentifierWithDependencies) == eprosima_fastdds_dds_xtypes_TypeIdentifierWithDependencies_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::TypeIdentifierWithDependencies)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::TypeIdentifierWithDependencies)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::TypeIdentifierWithDependencies& data) @@ -11558,6 +19659,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_dds_xtypes_TypeInformation_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -11608,6 +19717,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::dds::xtypes::TypeInformation* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_TypeInformation_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::TypeInformation) == eprosima_fastdds_dds_xtypes_TypeInformation_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::TypeInformation)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::dds::xtypes::TypeInformation)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -11639,6 +19786,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::dds::xtypes::TypeInformation* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_dds_xtypes_TypeInformation_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::dds::xtypes::TypeInformation) == eprosima_fastdds_dds_xtypes_TypeInformation_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::TypeInformation)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::dds::xtypes::TypeInformation)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::dds::xtypes::TypeInformation& data) diff --git a/src/cpp/fastdds/xtypes/type_representation/dds_xtypes_typeobjectPubSubTypes.cxx b/src/cpp/fastdds/xtypes/type_representation/dds_xtypes_typeobjectPubSubTypes.cxx index 89eee1079e1..935425039a9 100644 --- a/src/cpp/fastdds/xtypes/type_representation/dds_xtypes_typeobjectPubSubTypes.cxx +++ b/src/cpp/fastdds/xtypes/type_representation/dds_xtypes_typeobjectPubSubTypes.cxx @@ -29,6 +29,366 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_eprosima_fastdds_dds_xtypes_CompleteStructMember_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteBitflag_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_PlainArraySElemDefn_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CommonEnumeratedLiteral_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_eprosima_fastdds_dds_xtypes_MinimalBitsetType_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CommonBitflag_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_eprosima_fastdds_dds_xtypes_MinimalAliasType_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteEnumeratedType_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_eprosima_fastdds_dds_xtypes_CompleteUnionHeader_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_MinimalDiscriminatorMember_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteAliasHeader_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteStructType_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CommonCollectionElement_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_MinimalCollectionElement_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_PlainCollectionHeader_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_ExtendedAnnotationParameterValue_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_MinimalUnionHeader_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_MinimalCollectionHeader_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_eprosima_fastdds_dds_xtypes_MinimalAnnotationType_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_MinimalAliasHeader_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CommonUnionMember_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CommonCollectionHeader_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_MinimalArrayType_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_eprosima_fastdds_dds_xtypes_CompleteBitsetType_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_PlainArrayLElemDefn_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CommonAliasBody_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CommonBitfield_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_eprosima_fastdds_dds_xtypes_MinimalStructHeader_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_eprosima_fastdds_dds_xtypes_MinimalAnnotationParameter_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteExtendedType_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteAnnotationHeader_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_MinimalEnumeratedLiteral_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteAliasType_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CommonBitmaskHeader_cdr_plain( + DataRepresentationId_t data_representation); + + + + + +bool is_eprosima_fastdds_dds_xtypes_MinimalStructMember_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteTypeDetail_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_eprosima_fastdds_dds_xtypes_MinimalBitmaskType_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_eprosima_fastdds_dds_xtypes_CompleteArrayHeader_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_eprosima_fastdds_dds_xtypes_MinimalStructType_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_eprosima_fastdds_dds_xtypes_CompleteMapType_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteEnumeratedHeader_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteBitsetHeader_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_Dummy_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteBitfield_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_TypeIdentifierPair_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_eprosima_fastdds_dds_xtypes_AppliedBuiltinMemberAnnotations_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_MinimalMemberDetail_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_AppliedBuiltinTypeAnnotations_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_eprosima_fastdds_dds_xtypes_CompleteCollectionHeader_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_MinimalMapType_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_eprosima_fastdds_dds_xtypes_TypeInformation_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteEnumeratedLiteral_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteCollectionElement_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_MinimalAnnotationHeader_cdr_plain( + DataRepresentationId_t data_representation); + + + + + +bool is_eprosima_fastdds_dds_xtypes_TypeIdentifierWithDependencies_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_eprosima_fastdds_dds_xtypes_MinimalEnumeratedType_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteArrayType_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_eprosima_fastdds_dds_xtypes_CompleteStructHeader_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteAnnotationType_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_AppliedAnnotationParameter_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_eprosima_fastdds_dds_xtypes_PlainMapSTypeDefn_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_MinimalAliasBody_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_PlainSequenceLElemDefn_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_eprosima_fastdds_dds_xtypes_StringSTypeDefn_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_ExtendedTypeDefn_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteElementDetail_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteAliasBody_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_StringLTypeDefn_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteSequenceType_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_eprosima_fastdds_dds_xtypes_CompleteBitmaskType_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CommonDiscriminatorMember_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_eprosima_fastdds_dds_xtypes_MinimalUnionMember_cdr_plain( + DataRepresentationId_t data_representation); + + + + + +bool is_eprosima_fastdds_dds_xtypes_CommonAnnotationParameter_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_PlainMapLTypeDefn_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_eprosima_fastdds_dds_xtypes_CommonEnumeratedHeader_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_TypeIdentifierTypeObjectPair_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_MinimalSequenceType_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_MinimalBitflag_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_MinimalBitsetHeader_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_eprosima_fastdds_dds_xtypes_CompleteAnnotationParameter_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_eprosima_fastdds_dds_xtypes_AppliedAnnotation_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CommonStructMember_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_eprosima_fastdds_dds_xtypes_CommonArrayHeader_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_MinimalEnumeratedHeader_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_eprosima_fastdds_dds_xtypes_MinimalTypeDetail_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteDiscriminatorMember_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_MinimalUnionType_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_MinimalBitfield_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_MinimalExtendedType_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_StronglyConnectedComponentId_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_TypeIdentfierWithSize_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_MinimalArrayHeader_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_PlainSequenceSElemDefn_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_eprosima_fastdds_dds_xtypes_AppliedVerbatimAnnotation_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteMemberDetail_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteUnionMember_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_dds_xtypes_CompleteUnionType_cdr_plain( + DataRepresentationId_t data_representation); + + +} // namespace fastcdr +} // namespace eprosima + namespace eprosima { namespace fastdds { diff --git a/src/cpp/statistics/types/monitorservice_typesCdrAux.hpp b/src/cpp/statistics/types/monitorservice_typesCdrAux.hpp index 3e6ef92c148..78ca5ec1090 100644 --- a/src/cpp/statistics/types/monitorservice_typesCdrAux.hpp +++ b/src/cpp/statistics/types/monitorservice_typesCdrAux.hpp @@ -79,35 +79,43 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::Connection& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::QosPolicyCount_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::BaseStatus_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::IncompatibleQoSStatus_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::LivelinessChangedStatus_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::DeadlineMissedStatus_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::MonitorServiceStatusData& data); + } // namespace fastcdr } // namespace eprosima diff --git a/src/cpp/statistics/types/monitorservice_typesCdrAux.ipp b/src/cpp/statistics/types/monitorservice_typesCdrAux.ipp index 0d0159c07a1..da12ea52117 100644 --- a/src/cpp/statistics/types/monitorservice_typesCdrAux.ipp +++ b/src/cpp/statistics/types/monitorservice_typesCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_Connection_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -92,6 +101,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::Connection* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_Connection_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::Connection) == eprosima_fastdds_statistics_Connection_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::Connection)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::Connection)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -131,6 +178,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::Connection* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_Connection_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::Connection) == eprosima_fastdds_statistics_Connection_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::Connection)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::Connection)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::Connection& data) @@ -156,6 +239,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_QosPolicyCount_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -206,6 +297,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::QosPolicyCount_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_QosPolicyCount_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::QosPolicyCount_s) == eprosima_fastdds_statistics_QosPolicyCount_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::QosPolicyCount_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::QosPolicyCount_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -237,6 +366,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::QosPolicyCount_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_QosPolicyCount_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::QosPolicyCount_s) == eprosima_fastdds_statistics_QosPolicyCount_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::QosPolicyCount_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::QosPolicyCount_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::QosPolicyCount_s& data) @@ -252,6 +417,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_BaseStatus_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -298,6 +471,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::BaseStatus_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_BaseStatus_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::BaseStatus_s) == eprosima_fastdds_statistics_BaseStatus_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::BaseStatus_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::BaseStatus_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -325,6 +536,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::BaseStatus_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_BaseStatus_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::BaseStatus_s) == eprosima_fastdds_statistics_BaseStatus_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::BaseStatus_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::BaseStatus_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::BaseStatus_s& data) @@ -338,6 +585,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_IncompatibleQoSStatus_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -392,6 +647,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::IncompatibleQoSStatus_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_IncompatibleQoSStatus_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::IncompatibleQoSStatus_s) == eprosima_fastdds_statistics_IncompatibleQoSStatus_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::IncompatibleQoSStatus_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::IncompatibleQoSStatus_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -427,6 +720,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::IncompatibleQoSStatus_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_IncompatibleQoSStatus_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::IncompatibleQoSStatus_s) == eprosima_fastdds_statistics_IncompatibleQoSStatus_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::IncompatibleQoSStatus_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::IncompatibleQoSStatus_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::IncompatibleQoSStatus_s& data) @@ -444,6 +773,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_LivelinessChangedStatus_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -498,6 +835,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::LivelinessChangedStatus_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_LivelinessChangedStatus_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::LivelinessChangedStatus_s) == eprosima_fastdds_statistics_LivelinessChangedStatus_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::LivelinessChangedStatus_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::LivelinessChangedStatus_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -533,6 +908,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::LivelinessChangedStatus_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_LivelinessChangedStatus_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::LivelinessChangedStatus_s) == eprosima_fastdds_statistics_LivelinessChangedStatus_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::LivelinessChangedStatus_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::LivelinessChangedStatus_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::LivelinessChangedStatus_s& data) @@ -550,6 +961,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_DeadlineMissedStatus_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -600,6 +1019,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::DeadlineMissedStatus_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_DeadlineMissedStatus_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::DeadlineMissedStatus_s) == eprosima_fastdds_statistics_DeadlineMissedStatus_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::DeadlineMissedStatus_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::DeadlineMissedStatus_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -631,6 +1088,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::DeadlineMissedStatus_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_DeadlineMissedStatus_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::DeadlineMissedStatus_s) == eprosima_fastdds_statistics_DeadlineMissedStatus_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::DeadlineMissedStatus_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::DeadlineMissedStatus_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::DeadlineMissedStatus_s& data) @@ -646,6 +1139,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_ExtendedIncompatibleQoSStatus_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -696,6 +1197,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_ExtendedIncompatibleQoSStatus_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s) == eprosima_fastdds_statistics_ExtendedIncompatibleQoSStatus_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -727,6 +1266,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_ExtendedIncompatibleQoSStatus_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s) == eprosima_fastdds_statistics_ExtendedIncompatibleQoSStatus_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s& data) @@ -893,6 +1468,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::MonitorServiceData* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1051,6 +1639,27 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::MonitorServiceData* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_MonitorServiceStatusData_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1105,6 +1714,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::MonitorServiceStatusData* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_MonitorServiceStatusData_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::MonitorServiceStatusData) == eprosima_fastdds_statistics_MonitorServiceStatusData_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::MonitorServiceStatusData)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::MonitorServiceStatusData)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1140,6 +1787,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::MonitorServiceStatusData* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_MonitorServiceStatusData_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::MonitorServiceStatusData) == eprosima_fastdds_statistics_MonitorServiceStatusData_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::MonitorServiceStatusData)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::MonitorServiceStatusData)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::MonitorServiceStatusData& data) diff --git a/src/cpp/statistics/types/monitorservice_typesPubSubTypes.cxx b/src/cpp/statistics/types/monitorservice_typesPubSubTypes.cxx index 1cb44bf7907..5544075f232 100644 --- a/src/cpp/statistics/types/monitorservice_typesPubSubTypes.cxx +++ b/src/cpp/statistics/types/monitorservice_typesPubSubTypes.cxx @@ -31,6 +31,57 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_eprosima_fastdds_statistics_BaseStatus_s_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + +bool is_eprosima_fastdds_statistics_ExtendedIncompatibleQoSStatus_s_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_DeadlineMissedStatus_s_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_eprosima_fastdds_statistics_QosPolicyCount_s_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_eprosima_fastdds_statistics_MonitorServiceStatusData_cdr_plain( + DataRepresentationId_t data_representation); + + + + + +bool is_eprosima_fastdds_statistics_Connection_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_eprosima_fastdds_statistics_IncompatibleQoSStatus_s_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + +bool is_eprosima_fastdds_statistics_LivelinessChangedStatus_s_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + namespace eprosima { namespace fastdds { namespace statistics { @@ -152,6 +203,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::Connection*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ConnectionPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ConnectionPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -334,6 +396,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::QosPolicyCount_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool QosPolicyCount_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool QosPolicyCount_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -516,6 +589,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::BaseStatus_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool BaseStatus_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool BaseStatus_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -698,6 +782,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::IncompatibleQoSStatus_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool IncompatibleQoSStatus_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool IncompatibleQoSStatus_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -880,6 +975,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::LivelinessChangedStatus_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool LivelinessChangedStatus_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool LivelinessChangedStatus_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1062,6 +1168,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::DeadlineMissedStatus_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool DeadlineMissedStatus_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool DeadlineMissedStatus_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1244,6 +1361,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ExtendedIncompatibleQoSStatus_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ExtendedIncompatibleQoSStatus_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1429,6 +1557,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::MonitorServiceStatusData*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MonitorServiceStatusDataPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MonitorServiceStatusDataPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/src/cpp/statistics/types/monitorservice_typesPubSubTypes.hpp b/src/cpp/statistics/types/monitorservice_typesPubSubTypes.hpp index 1551ff970ac..59647a31d1f 100644 --- a/src/cpp/statistics/types/monitorservice_typesPubSubTypes.hpp +++ b/src/cpp/statistics/types/monitorservice_typesPubSubTypes.hpp @@ -100,12 +100,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -182,12 +178,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -264,12 +256,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -347,12 +335,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -429,12 +413,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -511,12 +491,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -596,12 +572,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -683,12 +655,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/src/cpp/statistics/types/typesCdrAux.hpp b/src/cpp/statistics/types/typesCdrAux.hpp index 26f3e995be1..9c5470839c4 100644 --- a/src/cpp/statistics/types/typesCdrAux.hpp +++ b/src/cpp/statistics/types/typesCdrAux.hpp @@ -77,59 +77,73 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::EntityId_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::GuidPrefix_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::GUID_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::SequenceNumber_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::SampleIdentity_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::Locator_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::DiscoveryTime& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::EntityCount& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::SampleIdentityCount& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::Entity2LocatorTraffic& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::WriterReaderData& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::Locator2LocatorData& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::EntityData& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::PhysicalData& data); + } // namespace fastcdr } // namespace eprosima diff --git a/src/cpp/statistics/types/typesCdrAux.ipp b/src/cpp/statistics/types/typesCdrAux.ipp index 2152cb10fc5..163ee71a861 100644 --- a/src/cpp/statistics/types/typesCdrAux.ipp +++ b/src/cpp/statistics/types/typesCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_detail_EntityId_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -80,6 +89,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::detail::EntityId_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_EntityId_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::EntityId_s) == eprosima_fastdds_statistics_detail_EntityId_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::EntityId_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::detail::EntityId_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -107,6 +154,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::detail::EntityId_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_EntityId_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::EntityId_s) == eprosima_fastdds_statistics_detail_EntityId_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::EntityId_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::EntityId_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::EntityId_s& data) @@ -120,6 +203,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_detail_GuidPrefix_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -166,6 +257,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::detail::GuidPrefix_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_GuidPrefix_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::GuidPrefix_s) == eprosima_fastdds_statistics_detail_GuidPrefix_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::GuidPrefix_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::detail::GuidPrefix_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -193,6 +322,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::detail::GuidPrefix_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_GuidPrefix_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::GuidPrefix_s) == eprosima_fastdds_statistics_detail_GuidPrefix_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::GuidPrefix_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::GuidPrefix_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::GuidPrefix_s& data) @@ -206,6 +371,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_detail_GUID_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -256,6 +429,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::detail::GUID_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_GUID_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::GUID_s) == eprosima_fastdds_statistics_detail_GUID_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::GUID_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::detail::GUID_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -287,6 +498,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::detail::GUID_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_GUID_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::GUID_s) == eprosima_fastdds_statistics_detail_GUID_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::GUID_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::GUID_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::GUID_s& data) @@ -310,6 +557,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_detail_SequenceNumber_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -360,6 +615,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::detail::SequenceNumber_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_SequenceNumber_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::SequenceNumber_s) == eprosima_fastdds_statistics_detail_SequenceNumber_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::SequenceNumber_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::detail::SequenceNumber_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -391,6 +684,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::detail::SequenceNumber_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_SequenceNumber_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::SequenceNumber_s) == eprosima_fastdds_statistics_detail_SequenceNumber_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::SequenceNumber_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::SequenceNumber_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::SequenceNumber_s& data) @@ -406,6 +735,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_detail_SampleIdentity_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -456,6 +793,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::detail::SampleIdentity_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_SampleIdentity_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::SampleIdentity_s) == eprosima_fastdds_statistics_detail_SampleIdentity_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::SampleIdentity_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::detail::SampleIdentity_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -487,6 +862,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::detail::SampleIdentity_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_SampleIdentity_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::SampleIdentity_s) == eprosima_fastdds_statistics_detail_SampleIdentity_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::SampleIdentity_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::SampleIdentity_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::SampleIdentity_s& data) @@ -510,6 +921,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_detail_Locator_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -564,6 +983,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::detail::Locator_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_Locator_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::Locator_s) == eprosima_fastdds_statistics_detail_Locator_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::Locator_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::detail::Locator_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -599,6 +1056,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::detail::Locator_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_Locator_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::Locator_s) == eprosima_fastdds_statistics_detail_Locator_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::Locator_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::Locator_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::Locator_s& data) @@ -616,6 +1109,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_DiscoveryTime_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -682,6 +1183,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::DiscoveryTime* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_DiscoveryTime_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::DiscoveryTime) == eprosima_fastdds_statistics_DiscoveryTime_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::DiscoveryTime)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::DiscoveryTime)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -729,6 +1268,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::DiscoveryTime* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_DiscoveryTime_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::DiscoveryTime) == eprosima_fastdds_statistics_DiscoveryTime_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::DiscoveryTime)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::DiscoveryTime)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::DiscoveryTime& data) @@ -760,6 +1335,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_EntityCount_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -810,6 +1393,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::EntityCount* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_EntityCount_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::EntityCount) == eprosima_fastdds_statistics_EntityCount_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::EntityCount)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::EntityCount)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -841,6 +1462,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::EntityCount* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_EntityCount_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::EntityCount) == eprosima_fastdds_statistics_EntityCount_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::EntityCount)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::EntityCount)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::EntityCount& data) @@ -860,6 +1517,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_SampleIdentityCount_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -910,6 +1575,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::SampleIdentityCount* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_SampleIdentityCount_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::SampleIdentityCount) == eprosima_fastdds_statistics_SampleIdentityCount_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::SampleIdentityCount)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::SampleIdentityCount)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -941,6 +1644,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::SampleIdentityCount* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_SampleIdentityCount_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::SampleIdentityCount) == eprosima_fastdds_statistics_SampleIdentityCount_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::SampleIdentityCount)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::SampleIdentityCount)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::SampleIdentityCount& data) @@ -960,6 +1699,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_Entity2LocatorTraffic_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1022,6 +1769,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::Entity2LocatorTraffic* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_Entity2LocatorTraffic_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::Entity2LocatorTraffic) == eprosima_fastdds_statistics_Entity2LocatorTraffic_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::Entity2LocatorTraffic)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::Entity2LocatorTraffic)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1065,6 +1850,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::Entity2LocatorTraffic* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_Entity2LocatorTraffic_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::Entity2LocatorTraffic) == eprosima_fastdds_statistics_Entity2LocatorTraffic_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::Entity2LocatorTraffic)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::Entity2LocatorTraffic)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::Entity2LocatorTraffic& data) @@ -1094,6 +1915,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_WriterReaderData_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1148,6 +1977,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::WriterReaderData* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_WriterReaderData_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::WriterReaderData) == eprosima_fastdds_statistics_WriterReaderData_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::WriterReaderData)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::WriterReaderData)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1183,6 +2050,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::WriterReaderData* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_WriterReaderData_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::WriterReaderData) == eprosima_fastdds_statistics_WriterReaderData_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::WriterReaderData)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::WriterReaderData)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::WriterReaderData& data) @@ -1208,6 +2111,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_Locator2LocatorData_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1262,6 +2173,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::Locator2LocatorData* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_Locator2LocatorData_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::Locator2LocatorData) == eprosima_fastdds_statistics_Locator2LocatorData_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::Locator2LocatorData)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::Locator2LocatorData)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1297,6 +2246,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::Locator2LocatorData* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_Locator2LocatorData_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::Locator2LocatorData) == eprosima_fastdds_statistics_Locator2LocatorData_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::Locator2LocatorData)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::Locator2LocatorData)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::Locator2LocatorData& data) @@ -1322,6 +2307,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_EntityData_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1372,6 +2365,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::EntityData* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_EntityData_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::EntityData) == eprosima_fastdds_statistics_EntityData_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::EntityData)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::EntityData)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1403,6 +2434,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::EntityData* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_EntityData_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::EntityData) == eprosima_fastdds_statistics_EntityData_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::EntityData)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::EntityData)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::EntityData& data) @@ -1422,6 +2489,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_PhysicalData_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1480,6 +2555,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::PhysicalData* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_PhysicalData_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::PhysicalData) == eprosima_fastdds_statistics_PhysicalData_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::PhysicalData)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::PhysicalData)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1519,6 +2632,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::PhysicalData* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_PhysicalData_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::PhysicalData) == eprosima_fastdds_statistics_PhysicalData_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::PhysicalData)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::PhysicalData)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::PhysicalData& data) @@ -1688,6 +2837,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::Data* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1840,6 +3002,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::Data* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + } // namespace fastcdr } // namespace eprosima diff --git a/src/cpp/statistics/types/typesPubSubTypes.cxx b/src/cpp/statistics/types/typesPubSubTypes.cxx index eb459179625..27c73d9c573 100644 --- a/src/cpp/statistics/types/typesPubSubTypes.cxx +++ b/src/cpp/statistics/types/typesPubSubTypes.cxx @@ -31,6 +31,55 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_eprosima_fastdds_statistics_DiscoveryTime_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_PhysicalData_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_detail_Locator_s_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_eprosima_fastdds_statistics_detail_GuidPrefix_s_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_detail_SampleIdentity_s_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_EntityData_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_Entity2LocatorTraffic_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_detail_EntityId_s_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_EntityCount_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_WriterReaderData_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_SampleIdentityCount_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_Locator2LocatorData_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_detail_GUID_s_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_detail_SequenceNumber_s_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + namespace eprosima { namespace fastdds { namespace statistics { @@ -153,6 +202,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::detail::EntityId_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool EntityId_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool EntityId_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -335,6 +395,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::detail::GuidPrefix_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool GuidPrefix_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool GuidPrefix_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -517,6 +588,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::detail::GUID_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool GUID_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool GUID_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -699,6 +781,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::detail::SequenceNumber_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceNumber_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceNumber_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -881,6 +974,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::detail::SampleIdentity_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SampleIdentity_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SampleIdentity_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1063,6 +1167,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::detail::Locator_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Locator_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Locator_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1247,6 +1362,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::DiscoveryTime*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool DiscoveryTimePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool DiscoveryTimePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1429,6 +1555,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::EntityCount*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool EntityCountPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool EntityCountPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1611,6 +1748,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::SampleIdentityCount*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SampleIdentityCountPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SampleIdentityCountPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1793,6 +1941,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::Entity2LocatorTraffic*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Entity2LocatorTrafficPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Entity2LocatorTrafficPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1975,6 +2134,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::WriterReaderData*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool WriterReaderDataPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool WriterReaderDataPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2157,6 +2327,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::Locator2LocatorData*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Locator2LocatorDataPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Locator2LocatorDataPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2339,6 +2520,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::EntityData*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool EntityDataPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool EntityDataPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2521,6 +2713,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::PhysicalData*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool PhysicalDataPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool PhysicalDataPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/src/cpp/statistics/types/typesPubSubTypes.hpp b/src/cpp/statistics/types/typesPubSubTypes.hpp index 4783c69a855..7dc944d9a1b 100644 --- a/src/cpp/statistics/types/typesPubSubTypes.hpp +++ b/src/cpp/statistics/types/typesPubSubTypes.hpp @@ -101,12 +101,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -183,12 +179,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -265,12 +257,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -347,12 +335,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -429,12 +413,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -511,12 +491,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -594,12 +570,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -676,12 +648,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -758,12 +726,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -840,12 +804,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -922,12 +882,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1004,12 +960,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1086,12 +1038,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1168,12 +1116,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/blackbox/types/Data100kbCdrAux.hpp b/test/blackbox/types/Data100kbCdrAux.hpp index 54f753b03cd..c27fc22a887 100644 --- a/test/blackbox/types/Data100kbCdrAux.hpp +++ b/test/blackbox/types/Data100kbCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const Data100kb& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/blackbox/types/Data100kbCdrAux.ipp b/test/blackbox/types/Data100kbCdrAux.ipp index 14b9e17430e..2f6856ebac7 100644 --- a/test/blackbox/types/Data100kbCdrAux.ipp +++ b/test/blackbox/types/Data100kbCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_Data100kb_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Data100kb* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Data100kb_cdr_plain(data_representation) && + sizeof(Data100kb) == Data100kb_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Data100kb)); + + scdr.jump((array_size -1) * sizeof(Data100kb)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Data100kb* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Data100kb_cdr_plain(data_representation) && + sizeof(Data100kb) == Data100kb_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Data100kb)); + + scdr.jump((array_size - 1) * sizeof(Data100kb)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Data100kb& data) diff --git a/test/blackbox/types/Data100kbPubSubTypes.cxx b/test/blackbox/types/Data100kbPubSubTypes.cxx index 393450338fc..3a8a61e49d6 100644 --- a/test/blackbox/types/Data100kbPubSubTypes.cxx +++ b/test/blackbox/types/Data100kbPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_Data100kb_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + Data100kbPubSubType::Data100kbPubSubType() { set_name("Data100kb"); @@ -149,6 +158,17 @@ void Data100kbPubSubType::delete_data( delete(reinterpret_cast<::Data100kb*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Data100kbPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Data100kbPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/blackbox/types/Data100kbPubSubTypes.hpp b/test/blackbox/types/Data100kbPubSubTypes.hpp index c0339039888..02d59985b65 100644 --- a/test/blackbox/types/Data100kbPubSubTypes.hpp +++ b/test/blackbox/types/Data100kbPubSubTypes.hpp @@ -93,12 +93,8 @@ class Data100kbPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/blackbox/types/Data1mbCdrAux.hpp b/test/blackbox/types/Data1mbCdrAux.hpp index 9c75fbab0aa..bb74b9b42ac 100644 --- a/test/blackbox/types/Data1mbCdrAux.hpp +++ b/test/blackbox/types/Data1mbCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const Data1mb& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/blackbox/types/Data1mbCdrAux.ipp b/test/blackbox/types/Data1mbCdrAux.ipp index b802c4a230a..b326f647554 100644 --- a/test/blackbox/types/Data1mbCdrAux.ipp +++ b/test/blackbox/types/Data1mbCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_Data1mb_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Data1mb* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Data1mb_cdr_plain(data_representation) && + sizeof(Data1mb) == Data1mb_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Data1mb)); + + scdr.jump((array_size -1) * sizeof(Data1mb)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Data1mb* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Data1mb_cdr_plain(data_representation) && + sizeof(Data1mb) == Data1mb_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Data1mb)); + + scdr.jump((array_size - 1) * sizeof(Data1mb)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Data1mb& data) diff --git a/test/blackbox/types/Data1mbPubSubTypes.cxx b/test/blackbox/types/Data1mbPubSubTypes.cxx index 912e055fc00..ffa5cca6b8c 100644 --- a/test/blackbox/types/Data1mbPubSubTypes.cxx +++ b/test/blackbox/types/Data1mbPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_Data1mb_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + Data1mbPubSubType::Data1mbPubSubType() { set_name("Data1mb"); @@ -149,6 +158,17 @@ void Data1mbPubSubType::delete_data( delete(reinterpret_cast<::Data1mb*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Data1mbPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Data1mbPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/blackbox/types/Data1mbPubSubTypes.hpp b/test/blackbox/types/Data1mbPubSubTypes.hpp index 174ff89c24e..1c3ac462ede 100644 --- a/test/blackbox/types/Data1mbPubSubTypes.hpp +++ b/test/blackbox/types/Data1mbPubSubTypes.hpp @@ -93,12 +93,8 @@ class Data1mbPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/blackbox/types/Data64kbCdrAux.hpp b/test/blackbox/types/Data64kbCdrAux.hpp index 243f48d9b04..9884e855ad0 100644 --- a/test/blackbox/types/Data64kbCdrAux.hpp +++ b/test/blackbox/types/Data64kbCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const Data64kb& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/blackbox/types/Data64kbCdrAux.ipp b/test/blackbox/types/Data64kbCdrAux.ipp index 004b37f0b4c..eb7a1fc1f2e 100644 --- a/test/blackbox/types/Data64kbCdrAux.ipp +++ b/test/blackbox/types/Data64kbCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_Data64kb_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Data64kb* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Data64kb_cdr_plain(data_representation) && + sizeof(Data64kb) == Data64kb_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Data64kb)); + + scdr.jump((array_size -1) * sizeof(Data64kb)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Data64kb* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Data64kb_cdr_plain(data_representation) && + sizeof(Data64kb) == Data64kb_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Data64kb)); + + scdr.jump((array_size - 1) * sizeof(Data64kb)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Data64kb& data) diff --git a/test/blackbox/types/Data64kbPubSubTypes.cxx b/test/blackbox/types/Data64kbPubSubTypes.cxx index 813a8f31123..0341c249f06 100644 --- a/test/blackbox/types/Data64kbPubSubTypes.cxx +++ b/test/blackbox/types/Data64kbPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_Data64kb_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + Data64kbPubSubType::Data64kbPubSubType() { set_name("Data64kb"); @@ -149,6 +158,17 @@ void Data64kbPubSubType::delete_data( delete(reinterpret_cast<::Data64kb*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Data64kbPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Data64kbPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/blackbox/types/Data64kbPubSubTypes.hpp b/test/blackbox/types/Data64kbPubSubTypes.hpp index 54e08b2a257..3dfc83ca006 100644 --- a/test/blackbox/types/Data64kbPubSubTypes.hpp +++ b/test/blackbox/types/Data64kbPubSubTypes.hpp @@ -93,12 +93,8 @@ class Data64kbPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/blackbox/types/FixedSizedCdrAux.hpp b/test/blackbox/types/FixedSizedCdrAux.hpp index f0968be22ca..a4622926416 100644 --- a/test/blackbox/types/FixedSizedCdrAux.hpp +++ b/test/blackbox/types/FixedSizedCdrAux.hpp @@ -37,6 +37,39 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FixedSized& data); +#ifndef SWIG +namespace detail { + +template +struct FixedSized_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct FixedSized_f +{ + typedef uint16_t FixedSized::* type; + friend constexpr type get( + FixedSized_f); +}; + +template struct FixedSized_rob; + +template +inline std::size_t constexpr FixedSized_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + } // namespace fastcdr } // namespace eprosima diff --git a/test/blackbox/types/FixedSizedCdrAux.ipp b/test/blackbox/types/FixedSizedCdrAux.ipp index 3f256dfc981..7c3f0bf51ab 100644 --- a/test/blackbox/types/FixedSizedCdrAux.ipp +++ b/test/blackbox/types/FixedSizedCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,24 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_FixedSized_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 2ULL == + (detail::FixedSized_offset_of() + + sizeof(uint16_t)); + } + else + { + return 2ULL == + (detail::FixedSized_offset_of() + + sizeof(uint16_t)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +95,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FixedSized* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FixedSized_cdr_plain(data_representation) && + sizeof(FixedSized) == FixedSized_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FixedSized)); + + scdr.jump((array_size -1) * sizeof(FixedSized)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +158,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FixedSized* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FixedSized_cdr_plain(data_representation) && + sizeof(FixedSized) == FixedSized_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FixedSized)); + + scdr.jump((array_size - 1) * sizeof(FixedSized)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FixedSized& data) diff --git a/test/blackbox/types/FixedSizedPubSubTypes.cxx b/test/blackbox/types/FixedSizedPubSubTypes.cxx index 19683da773c..1111d8da2c6 100644 --- a/test/blackbox/types/FixedSizedPubSubTypes.cxx +++ b/test/blackbox/types/FixedSizedPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_FixedSized_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + FixedSizedPubSubType::FixedSizedPubSubType() { set_name("FixedSized"); @@ -149,6 +158,16 @@ void FixedSizedPubSubType::delete_data( delete(reinterpret_cast<::FixedSized*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FixedSizedPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_FixedSized_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FixedSizedPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/blackbox/types/FixedSizedPubSubTypes.hpp b/test/blackbox/types/FixedSizedPubSubTypes.hpp index 2aaaa2d7b64..50a782e3c9f 100644 --- a/test/blackbox/types/FixedSizedPubSubTypes.hpp +++ b/test/blackbox/types/FixedSizedPubSubTypes.hpp @@ -38,39 +38,6 @@ #endif // FASTDDS_GEN_API_VER -#ifndef SWIG -namespace detail { - -template -struct FixedSized_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct FixedSized_f -{ - typedef uint16_t FixedSized::* type; - friend constexpr type get( - FixedSized_f); -}; - -template struct FixedSized_rob; - -template -inline size_t constexpr FixedSized_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - /*! * @brief This class represents the TopicDataType of the type FixedSized defined by the user in the IDL file. * @ingroup FixedSized @@ -126,18 +93,8 @@ class FixedSizedPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) - { - return is_plain_xcdrv2_impl(); - } - else - { - return is_plain_xcdrv1_impl(); - } - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -156,21 +113,6 @@ class FixedSizedPubSubType : public eprosima::fastdds::dds::TopicDataType eprosima::fastdds::MD5 md5_; unsigned char* key_buffer_; - - static constexpr bool is_plain_xcdrv1_impl() - { - return 2ULL == - (detail::FixedSized_offset_of() + - sizeof(uint16_t)); - } - - static constexpr bool is_plain_xcdrv2_impl() - { - return 2ULL == - (detail::FixedSized_offset_of() + - sizeof(uint16_t)); - } - }; diff --git a/test/blackbox/types/HelloWorldCdrAux.hpp b/test/blackbox/types/HelloWorldCdrAux.hpp index aec2d913dc2..6db2f74abe8 100644 --- a/test/blackbox/types/HelloWorldCdrAux.hpp +++ b/test/blackbox/types/HelloWorldCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const HelloWorld& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/blackbox/types/HelloWorldCdrAux.ipp b/test/blackbox/types/HelloWorldCdrAux.ipp index 3fe3726ae38..fb66a9d3008 100644 --- a/test/blackbox/types/HelloWorldCdrAux.ipp +++ b/test/blackbox/types/HelloWorldCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_HelloWorld_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -80,6 +89,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const HelloWorld* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_HelloWorld_cdr_plain(data_representation) && + sizeof(HelloWorld) == HelloWorld_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(HelloWorld)); + + scdr.jump((array_size -1) * sizeof(HelloWorld)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -109,6 +156,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + HelloWorld* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_HelloWorld_cdr_plain(data_representation) && + sizeof(HelloWorld) == HelloWorld_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(HelloWorld)); + + scdr.jump((array_size - 1) * sizeof(HelloWorld)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const HelloWorld& data) diff --git a/test/blackbox/types/HelloWorldPubSubTypes.cxx b/test/blackbox/types/HelloWorldPubSubTypes.cxx index f7d1b6a6efa..70ddb0be6b1 100644 --- a/test/blackbox/types/HelloWorldPubSubTypes.cxx +++ b/test/blackbox/types/HelloWorldPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_HelloWorld_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + HelloWorldPubSubType::HelloWorldPubSubType() { set_name("HelloWorld"); @@ -149,6 +158,17 @@ void HelloWorldPubSubType::delete_data( delete(reinterpret_cast<::HelloWorld*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool HelloWorldPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool HelloWorldPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/blackbox/types/HelloWorldPubSubTypes.hpp b/test/blackbox/types/HelloWorldPubSubTypes.hpp index 2ca3dad81dd..b431766e1a9 100644 --- a/test/blackbox/types/HelloWorldPubSubTypes.hpp +++ b/test/blackbox/types/HelloWorldPubSubTypes.hpp @@ -93,12 +93,8 @@ class HelloWorldPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/blackbox/types/KeyedData1mbCdrAux.hpp b/test/blackbox/types/KeyedData1mbCdrAux.hpp index a8f20f3d78c..5c563259f18 100644 --- a/test/blackbox/types/KeyedData1mbCdrAux.hpp +++ b/test/blackbox/types/KeyedData1mbCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const KeyedData1mb& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/blackbox/types/KeyedData1mbCdrAux.ipp b/test/blackbox/types/KeyedData1mbCdrAux.ipp index 1cf566c94de..3a95acd00ad 100644 --- a/test/blackbox/types/KeyedData1mbCdrAux.ipp +++ b/test/blackbox/types/KeyedData1mbCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_KeyedData1mb_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -80,6 +89,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyedData1mb* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedData1mb_cdr_plain(data_representation) && + sizeof(KeyedData1mb) == KeyedData1mb_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyedData1mb)); + + scdr.jump((array_size -1) * sizeof(KeyedData1mb)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -109,6 +156,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyedData1mb* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedData1mb_cdr_plain(data_representation) && + sizeof(KeyedData1mb) == KeyedData1mb_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyedData1mb)); + + scdr.jump((array_size - 1) * sizeof(KeyedData1mb)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedData1mb& data) diff --git a/test/blackbox/types/KeyedData1mbPubSubTypes.cxx b/test/blackbox/types/KeyedData1mbPubSubTypes.cxx index fc9d4e0403d..949b1921abf 100644 --- a/test/blackbox/types/KeyedData1mbPubSubTypes.cxx +++ b/test/blackbox/types/KeyedData1mbPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_KeyedData1mb_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + KeyedData1mbPubSubType::KeyedData1mbPubSubType() { set_name("KeyedData1mb"); @@ -149,6 +158,17 @@ void KeyedData1mbPubSubType::delete_data( delete(reinterpret_cast<::KeyedData1mb*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyedData1mbPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyedData1mbPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/blackbox/types/KeyedData1mbPubSubTypes.hpp b/test/blackbox/types/KeyedData1mbPubSubTypes.hpp index 67c2be871f1..99468c16a98 100644 --- a/test/blackbox/types/KeyedData1mbPubSubTypes.hpp +++ b/test/blackbox/types/KeyedData1mbPubSubTypes.hpp @@ -93,12 +93,8 @@ class KeyedData1mbPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/blackbox/types/KeyedHelloWorldCdrAux.hpp b/test/blackbox/types/KeyedHelloWorldCdrAux.hpp index 3f0eca425e6..684e8317857 100644 --- a/test/blackbox/types/KeyedHelloWorldCdrAux.hpp +++ b/test/blackbox/types/KeyedHelloWorldCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const KeyedHelloWorld& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/blackbox/types/KeyedHelloWorldCdrAux.ipp b/test/blackbox/types/KeyedHelloWorldCdrAux.ipp index 174a2440822..897a603e563 100644 --- a/test/blackbox/types/KeyedHelloWorldCdrAux.ipp +++ b/test/blackbox/types/KeyedHelloWorldCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_KeyedHelloWorld_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -84,6 +93,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyedHelloWorld* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedHelloWorld_cdr_plain(data_representation) && + sizeof(KeyedHelloWorld) == KeyedHelloWorld_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyedHelloWorld)); + + scdr.jump((array_size -1) * sizeof(KeyedHelloWorld)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -117,6 +164,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyedHelloWorld* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedHelloWorld_cdr_plain(data_representation) && + sizeof(KeyedHelloWorld) == KeyedHelloWorld_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyedHelloWorld)); + + scdr.jump((array_size - 1) * sizeof(KeyedHelloWorld)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedHelloWorld& data) diff --git a/test/blackbox/types/KeyedHelloWorldPubSubTypes.cxx b/test/blackbox/types/KeyedHelloWorldPubSubTypes.cxx index 42f85e11f26..4ac8aa1b59d 100644 --- a/test/blackbox/types/KeyedHelloWorldPubSubTypes.cxx +++ b/test/blackbox/types/KeyedHelloWorldPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_KeyedHelloWorld_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + KeyedHelloWorldPubSubType::KeyedHelloWorldPubSubType() { set_name("KeyedHelloWorld"); @@ -149,6 +158,17 @@ void KeyedHelloWorldPubSubType::delete_data( delete(reinterpret_cast<::KeyedHelloWorld*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyedHelloWorldPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyedHelloWorldPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/blackbox/types/KeyedHelloWorldPubSubTypes.hpp b/test/blackbox/types/KeyedHelloWorldPubSubTypes.hpp index e27c87b8499..b207a21135f 100644 --- a/test/blackbox/types/KeyedHelloWorldPubSubTypes.hpp +++ b/test/blackbox/types/KeyedHelloWorldPubSubTypes.hpp @@ -93,12 +93,8 @@ class KeyedHelloWorldPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/blackbox/types/StringTestCdrAux.hpp b/test/blackbox/types/StringTestCdrAux.hpp index ffae0dde552..6934857446e 100644 --- a/test/blackbox/types/StringTestCdrAux.hpp +++ b/test/blackbox/types/StringTestCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const StringTest& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/blackbox/types/StringTestCdrAux.ipp b/test/blackbox/types/StringTestCdrAux.ipp index eb5a57f67a9..95df6f4e972 100644 --- a/test/blackbox/types/StringTestCdrAux.ipp +++ b/test/blackbox/types/StringTestCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_StringTest_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StringTest* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StringTest_cdr_plain(data_representation) && + sizeof(StringTest) == StringTest_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StringTest)); + + scdr.jump((array_size -1) * sizeof(StringTest)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StringTest* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StringTest_cdr_plain(data_representation) && + sizeof(StringTest) == StringTest_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StringTest)); + + scdr.jump((array_size - 1) * sizeof(StringTest)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StringTest& data) diff --git a/test/blackbox/types/StringTestPubSubTypes.cxx b/test/blackbox/types/StringTestPubSubTypes.cxx index dbb2f983614..4964b63be1b 100644 --- a/test/blackbox/types/StringTestPubSubTypes.cxx +++ b/test/blackbox/types/StringTestPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_StringTest_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + StringTestPubSubType::StringTestPubSubType() { set_name("StringTest"); @@ -149,6 +158,17 @@ void StringTestPubSubType::delete_data( delete(reinterpret_cast<::StringTest*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StringTestPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StringTestPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/blackbox/types/StringTestPubSubTypes.hpp b/test/blackbox/types/StringTestPubSubTypes.hpp index db85e96dff3..62c8264b848 100644 --- a/test/blackbox/types/StringTestPubSubTypes.hpp +++ b/test/blackbox/types/StringTestPubSubTypes.hpp @@ -93,12 +93,8 @@ class StringTestPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/blackbox/types/TestIncludeRegression3361PubSubTypes.cxx b/test/blackbox/types/TestIncludeRegression3361PubSubTypes.cxx index fc755b8c31c..14778ba79fc 100644 --- a/test/blackbox/types/TestIncludeRegression3361PubSubTypes.cxx +++ b/test/blackbox/types/TestIncludeRegression3361PubSubTypes.cxx @@ -31,6 +31,12 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +} // namespace fastcdr +} // namespace eprosima + namespace TestModule { } // namespace TestModule diff --git a/test/blackbox/types/TestRegression3361CdrAux.hpp b/test/blackbox/types/TestRegression3361CdrAux.hpp index 5592d79623f..f253ad97d78 100644 --- a/test/blackbox/types/TestRegression3361CdrAux.hpp +++ b/test/blackbox/types/TestRegression3361CdrAux.hpp @@ -39,6 +39,7 @@ eProsima_user_DllExport void serialize_key( const TestRegression3361& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/blackbox/types/TestRegression3361CdrAux.ipp b/test/blackbox/types/TestRegression3361CdrAux.ipp index 9caa6288db2..4eeecbbe200 100644 --- a/test/blackbox/types/TestRegression3361CdrAux.ipp +++ b/test/blackbox/types/TestRegression3361CdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_TestRegression3361_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const TestRegression3361* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_TestRegression3361_cdr_plain(data_representation) && + sizeof(TestRegression3361) == TestRegression3361_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(TestRegression3361)); + + scdr.jump((array_size -1) * sizeof(TestRegression3361)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + TestRegression3361* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_TestRegression3361_cdr_plain(data_representation) && + sizeof(TestRegression3361) == TestRegression3361_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(TestRegression3361)); + + scdr.jump((array_size - 1) * sizeof(TestRegression3361)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const TestRegression3361& data) diff --git a/test/blackbox/types/TestRegression3361PubSubTypes.cxx b/test/blackbox/types/TestRegression3361PubSubTypes.cxx index 0fe0d02dfbf..dc656ac1fe7 100644 --- a/test/blackbox/types/TestRegression3361PubSubTypes.cxx +++ b/test/blackbox/types/TestRegression3361PubSubTypes.cxx @@ -31,6 +31,16 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_TestRegression3361_cdr_plain( + DataRepresentationId_t data_representation); + + +} // namespace fastcdr +} // namespace eprosima + TestRegression3361PubSubType::TestRegression3361PubSubType() { set_name("TestRegression3361"); @@ -149,6 +159,17 @@ void TestRegression3361PubSubType::delete_data( delete(reinterpret_cast<::TestRegression3361*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool TestRegression3361PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool TestRegression3361PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/blackbox/types/TestRegression3361PubSubTypes.hpp b/test/blackbox/types/TestRegression3361PubSubTypes.hpp index 885d0705513..1df621652f8 100644 --- a/test/blackbox/types/TestRegression3361PubSubTypes.hpp +++ b/test/blackbox/types/TestRegression3361PubSubTypes.hpp @@ -94,12 +94,8 @@ class TestRegression3361PubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/blackbox/types/UnboundedHelloWorldCdrAux.hpp b/test/blackbox/types/UnboundedHelloWorldCdrAux.hpp index 209f2ea89be..fa74390bfad 100644 --- a/test/blackbox/types/UnboundedHelloWorldCdrAux.hpp +++ b/test/blackbox/types/UnboundedHelloWorldCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const UnboundedHelloWorld& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/blackbox/types/UnboundedHelloWorldCdrAux.ipp b/test/blackbox/types/UnboundedHelloWorldCdrAux.ipp index 88c467c15a0..1b332407cfc 100644 --- a/test/blackbox/types/UnboundedHelloWorldCdrAux.ipp +++ b/test/blackbox/types/UnboundedHelloWorldCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_UnboundedHelloWorld_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -80,6 +89,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnboundedHelloWorld* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnboundedHelloWorld_cdr_plain(data_representation) && + sizeof(UnboundedHelloWorld) == UnboundedHelloWorld_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnboundedHelloWorld)); + + scdr.jump((array_size -1) * sizeof(UnboundedHelloWorld)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -109,6 +156,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnboundedHelloWorld* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnboundedHelloWorld_cdr_plain(data_representation) && + sizeof(UnboundedHelloWorld) == UnboundedHelloWorld_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnboundedHelloWorld)); + + scdr.jump((array_size - 1) * sizeof(UnboundedHelloWorld)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnboundedHelloWorld& data) diff --git a/test/blackbox/types/UnboundedHelloWorldPubSubTypes.cxx b/test/blackbox/types/UnboundedHelloWorldPubSubTypes.cxx index bb332e9c935..2d875e881ad 100644 --- a/test/blackbox/types/UnboundedHelloWorldPubSubTypes.cxx +++ b/test/blackbox/types/UnboundedHelloWorldPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_UnboundedHelloWorld_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + UnboundedHelloWorldPubSubType::UnboundedHelloWorldPubSubType() { set_name("UnboundedHelloWorld"); @@ -149,6 +158,17 @@ void UnboundedHelloWorldPubSubType::delete_data( delete(reinterpret_cast<::UnboundedHelloWorld*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnboundedHelloWorldPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnboundedHelloWorldPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/blackbox/types/UnboundedHelloWorldPubSubTypes.hpp b/test/blackbox/types/UnboundedHelloWorldPubSubTypes.hpp index fdeeb4c57c3..4a0598edb1a 100644 --- a/test/blackbox/types/UnboundedHelloWorldPubSubTypes.hpp +++ b/test/blackbox/types/UnboundedHelloWorldPubSubTypes.hpp @@ -93,12 +93,8 @@ class UnboundedHelloWorldPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/blackbox/types/core/core_typesCdrAux.hpp b/test/blackbox/types/core/core_typesCdrAux.hpp index 8842dfeaa79..f5eaf8e1d3b 100644 --- a/test/blackbox/types/core/core_typesCdrAux.hpp +++ b/test/blackbox/types/core/core_typesCdrAux.hpp @@ -104,91 +104,113 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::EntityId_t& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::ProtocolVersion_t& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::VendorId_t& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::GuidPrefix_t& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::GUID_t& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::SequenceNumber_t& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::Count_t& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::Time_t& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::SequenceNumberSet& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::Locator_t& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::Duration_t& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::StatusInfo_t& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::KeyHash_t& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::EntityName_t& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::Header& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::SubmessageHeader& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::AckNackSubmessage& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::HeartBeatSubmessage& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::InfoDestinationSubmessage& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::InfoSourceSubmessage& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::InfoTimestampSubmessage& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::RTPSMessage& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/blackbox/types/core/core_typesCdrAux.ipp b/test/blackbox/types/core/core_typesCdrAux.ipp index c1a47697580..01f30ea3bf8 100644 --- a/test/blackbox/types/core/core_typesCdrAux.ipp +++ b/test/blackbox/types/core/core_typesCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_detail_EntityId_t_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -80,6 +89,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::detail::EntityId_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_EntityId_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::EntityId_t) == eprosima_fastdds_rtps_core_detail_EntityId_t_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::EntityId_t)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::detail::EntityId_t)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -107,6 +154,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::detail::EntityId_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_EntityId_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::EntityId_t) == eprosima_fastdds_rtps_core_detail_EntityId_t_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::EntityId_t)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::EntityId_t)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::EntityId_t& data) @@ -120,6 +203,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_detail_ProtocolVersion_t_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -170,6 +261,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::detail::ProtocolVersion_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_ProtocolVersion_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::ProtocolVersion_t) == eprosima_fastdds_rtps_core_detail_ProtocolVersion_t_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::ProtocolVersion_t)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::detail::ProtocolVersion_t)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -201,6 +330,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::detail::ProtocolVersion_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_ProtocolVersion_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::ProtocolVersion_t) == eprosima_fastdds_rtps_core_detail_ProtocolVersion_t_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::ProtocolVersion_t)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::ProtocolVersion_t)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::ProtocolVersion_t& data) @@ -216,6 +381,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_detail_VendorId_t_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -262,6 +435,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::detail::VendorId_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_VendorId_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::VendorId_t) == eprosima_fastdds_rtps_core_detail_VendorId_t_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::VendorId_t)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::detail::VendorId_t)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -289,6 +500,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::detail::VendorId_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_VendorId_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::VendorId_t) == eprosima_fastdds_rtps_core_detail_VendorId_t_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::VendorId_t)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::VendorId_t)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::VendorId_t& data) @@ -302,6 +549,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_detail_GuidPrefix_t_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -348,6 +603,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::detail::GuidPrefix_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_GuidPrefix_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::GuidPrefix_t) == eprosima_fastdds_rtps_core_detail_GuidPrefix_t_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::GuidPrefix_t)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::detail::GuidPrefix_t)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -375,6 +668,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::detail::GuidPrefix_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_GuidPrefix_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::GuidPrefix_t) == eprosima_fastdds_rtps_core_detail_GuidPrefix_t_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::GuidPrefix_t)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::GuidPrefix_t)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::GuidPrefix_t& data) @@ -388,6 +717,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_detail_GUID_t_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -438,6 +775,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::detail::GUID_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_GUID_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::GUID_t) == eprosima_fastdds_rtps_core_detail_GUID_t_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::GUID_t)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::detail::GUID_t)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -469,6 +844,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::detail::GUID_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_GUID_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::GUID_t) == eprosima_fastdds_rtps_core_detail_GUID_t_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::GUID_t)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::GUID_t)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::GUID_t& data) @@ -492,6 +903,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_detail_SequenceNumber_t_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -542,6 +961,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::detail::SequenceNumber_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_SequenceNumber_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::SequenceNumber_t) == eprosima_fastdds_rtps_core_detail_SequenceNumber_t_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::SequenceNumber_t)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::detail::SequenceNumber_t)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -573,6 +1030,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::detail::SequenceNumber_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_SequenceNumber_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::SequenceNumber_t) == eprosima_fastdds_rtps_core_detail_SequenceNumber_t_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::SequenceNumber_t)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::SequenceNumber_t)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::SequenceNumber_t& data) @@ -588,6 +1081,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_detail_Count_t_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -634,6 +1135,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::detail::Count_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_Count_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::Count_t) == eprosima_fastdds_rtps_core_detail_Count_t_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::Count_t)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::detail::Count_t)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -661,6 +1200,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::detail::Count_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_Count_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::Count_t) == eprosima_fastdds_rtps_core_detail_Count_t_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::Count_t)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::Count_t)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::Count_t& data) @@ -674,6 +1249,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_detail_Time_t_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -724,6 +1307,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::detail::Time_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_Time_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::Time_t) == eprosima_fastdds_rtps_core_detail_Time_t_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::Time_t)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::detail::Time_t)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -755,6 +1376,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::detail::Time_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_Time_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::Time_t) == eprosima_fastdds_rtps_core_detail_Time_t_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::Time_t)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::Time_t)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::Time_t& data) @@ -770,6 +1427,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_detail_SequenceNumberSet_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -824,6 +1489,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::detail::SequenceNumberSet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_SequenceNumberSet_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::SequenceNumberSet) == eprosima_fastdds_rtps_core_detail_SequenceNumberSet_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::SequenceNumberSet)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::detail::SequenceNumberSet)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -859,6 +1562,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::detail::SequenceNumberSet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_SequenceNumberSet_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::SequenceNumberSet) == eprosima_fastdds_rtps_core_detail_SequenceNumberSet_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::SequenceNumberSet)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::SequenceNumberSet)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::SequenceNumberSet& data) @@ -882,6 +1621,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_detail_Locator_t_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -936,6 +1683,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::detail::Locator_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_Locator_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::Locator_t) == eprosima_fastdds_rtps_core_detail_Locator_t_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::Locator_t)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::detail::Locator_t)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -971,6 +1756,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::detail::Locator_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_Locator_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::Locator_t) == eprosima_fastdds_rtps_core_detail_Locator_t_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::Locator_t)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::Locator_t)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::Locator_t& data) @@ -988,6 +1809,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_detail_Duration_t_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1038,6 +1867,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::detail::Duration_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_Duration_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::Duration_t) == eprosima_fastdds_rtps_core_detail_Duration_t_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::Duration_t)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::detail::Duration_t)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1069,6 +1936,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::detail::Duration_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_Duration_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::Duration_t) == eprosima_fastdds_rtps_core_detail_Duration_t_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::Duration_t)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::Duration_t)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::Duration_t& data) @@ -1084,6 +1987,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_detail_StatusInfo_t_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1130,6 +2041,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::detail::StatusInfo_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_StatusInfo_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::StatusInfo_t) == eprosima_fastdds_rtps_core_detail_StatusInfo_t_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::StatusInfo_t)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::detail::StatusInfo_t)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1157,6 +2106,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::detail::StatusInfo_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_StatusInfo_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::StatusInfo_t) == eprosima_fastdds_rtps_core_detail_StatusInfo_t_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::StatusInfo_t)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::StatusInfo_t)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::StatusInfo_t& data) @@ -1170,6 +2155,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_detail_KeyHash_t_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1216,6 +2209,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::detail::KeyHash_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_KeyHash_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::KeyHash_t) == eprosima_fastdds_rtps_core_detail_KeyHash_t_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::KeyHash_t)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::detail::KeyHash_t)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1243,6 +2274,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::detail::KeyHash_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_KeyHash_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::KeyHash_t) == eprosima_fastdds_rtps_core_detail_KeyHash_t_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::KeyHash_t)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::KeyHash_t)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::KeyHash_t& data) @@ -1256,6 +2323,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_detail_EntityName_t_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1302,6 +2377,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::detail::EntityName_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_EntityName_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::EntityName_t) == eprosima_fastdds_rtps_core_detail_EntityName_t_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::EntityName_t)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::detail::EntityName_t)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1329,6 +2442,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::detail::EntityName_t* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_detail_EntityName_t_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::detail::EntityName_t) == eprosima_fastdds_rtps_core_detail_EntityName_t_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::EntityName_t)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::detail::EntityName_t)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::detail::EntityName_t& data) @@ -1342,6 +2491,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_Header_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1400,6 +2557,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::Header* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_Header_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::Header) == eprosima_fastdds_rtps_core_Header_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::Header)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::Header)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1439,6 +2634,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::Header* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_Header_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::Header) == eprosima_fastdds_rtps_core_Header_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::Header)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::Header)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::Header& data) @@ -1470,6 +2701,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_SubmessageHeader_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1524,6 +2763,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::SubmessageHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_SubmessageHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::SubmessageHeader) == eprosima_fastdds_rtps_core_SubmessageHeader_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::SubmessageHeader)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::SubmessageHeader)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1559,6 +2836,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::SubmessageHeader* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_SubmessageHeader_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::SubmessageHeader) == eprosima_fastdds_rtps_core_SubmessageHeader_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::SubmessageHeader)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::SubmessageHeader)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::SubmessageHeader& data) @@ -1576,6 +2889,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_AckNackSubmessage_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1638,6 +2959,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::AckNackSubmessage* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_AckNackSubmessage_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::AckNackSubmessage) == eprosima_fastdds_rtps_core_AckNackSubmessage_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::AckNackSubmessage)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::AckNackSubmessage)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1681,6 +3040,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::AckNackSubmessage* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_AckNackSubmessage_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::AckNackSubmessage) == eprosima_fastdds_rtps_core_AckNackSubmessage_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::AckNackSubmessage)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::AckNackSubmessage)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::AckNackSubmessage& data) @@ -1722,6 +3117,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_HeartBeatSubmessage_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1788,6 +3191,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::HeartBeatSubmessage* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_HeartBeatSubmessage_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::HeartBeatSubmessage) == eprosima_fastdds_rtps_core_HeartBeatSubmessage_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::HeartBeatSubmessage)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::HeartBeatSubmessage)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1835,6 +3276,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::HeartBeatSubmessage* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_HeartBeatSubmessage_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::HeartBeatSubmessage) == eprosima_fastdds_rtps_core_HeartBeatSubmessage_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::HeartBeatSubmessage)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::HeartBeatSubmessage)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::HeartBeatSubmessage& data) @@ -1882,6 +3359,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_InfoDestinationSubmessage_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1932,6 +3417,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::InfoDestinationSubmessage* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_InfoDestinationSubmessage_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::InfoDestinationSubmessage) == eprosima_fastdds_rtps_core_InfoDestinationSubmessage_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::InfoDestinationSubmessage)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::InfoDestinationSubmessage)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1963,6 +3486,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::InfoDestinationSubmessage* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_InfoDestinationSubmessage_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::InfoDestinationSubmessage) == eprosima_fastdds_rtps_core_InfoDestinationSubmessage_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::InfoDestinationSubmessage)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::InfoDestinationSubmessage)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::InfoDestinationSubmessage& data) @@ -1986,6 +3545,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_InfoSourceSubmessage_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2048,6 +3615,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::InfoSourceSubmessage* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_InfoSourceSubmessage_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::InfoSourceSubmessage) == eprosima_fastdds_rtps_core_InfoSourceSubmessage_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::InfoSourceSubmessage)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::InfoSourceSubmessage)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2091,6 +3696,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::InfoSourceSubmessage* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_InfoSourceSubmessage_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::InfoSourceSubmessage) == eprosima_fastdds_rtps_core_InfoSourceSubmessage_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::InfoSourceSubmessage)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::InfoSourceSubmessage)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::InfoSourceSubmessage& data) @@ -2129,6 +3770,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_InfoTimestampSubmessage_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2179,6 +3828,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::InfoTimestampSubmessage* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_InfoTimestampSubmessage_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::InfoTimestampSubmessage) == eprosima_fastdds_rtps_core_InfoTimestampSubmessage_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::InfoTimestampSubmessage)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::InfoTimestampSubmessage)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2210,6 +3897,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::InfoTimestampSubmessage* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_InfoTimestampSubmessage_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::InfoTimestampSubmessage) == eprosima_fastdds_rtps_core_InfoTimestampSubmessage_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::InfoTimestampSubmessage)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::InfoTimestampSubmessage)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::InfoTimestampSubmessage& data) @@ -2327,6 +4050,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::Submessage* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2420,6 +4156,27 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::Submessage* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_eprosima_fastdds_rtps_core_RTPSMessage_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2470,6 +4227,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::rtps::core::RTPSMessage* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_RTPSMessage_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::RTPSMessage) == eprosima_fastdds_rtps_core_RTPSMessage_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::RTPSMessage)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::rtps::core::RTPSMessage)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2501,6 +4296,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::rtps::core::RTPSMessage* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_rtps_core_RTPSMessage_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::rtps::core::RTPSMessage) == eprosima_fastdds_rtps_core_RTPSMessage_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::rtps::core::RTPSMessage)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::rtps::core::RTPSMessage)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::rtps::core::RTPSMessage& data) diff --git a/test/blackbox/types/core/core_typesPubSubTypes.cxx b/test/blackbox/types/core/core_typesPubSubTypes.cxx index b8b1c174027..de9702a6a28 100644 --- a/test/blackbox/types/core/core_typesPubSubTypes.cxx +++ b/test/blackbox/types/core/core_typesPubSubTypes.cxx @@ -31,6 +31,82 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_eprosima_fastdds_rtps_core_detail_SequenceNumber_t_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_rtps_core_InfoTimestampSubmessage_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_rtps_core_detail_ProtocolVersion_t_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_rtps_core_detail_GUID_t_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_rtps_core_detail_Time_t_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_rtps_core_detail_EntityId_t_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_rtps_core_Header_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_rtps_core_detail_Duration_t_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_eprosima_fastdds_rtps_core_RTPSMessage_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_rtps_core_detail_SequenceNumberSet_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_eprosima_fastdds_rtps_core_detail_Count_t_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_rtps_core_detail_GuidPrefix_t_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_rtps_core_detail_StatusInfo_t_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_rtps_core_AckNackSubmessage_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_rtps_core_InfoDestinationSubmessage_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_eprosima_fastdds_rtps_core_detail_EntityName_t_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_rtps_core_SubmessageHeader_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_eprosima_fastdds_rtps_core_detail_KeyHash_t_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_rtps_core_detail_VendorId_t_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_rtps_core_detail_Locator_t_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_rtps_core_HeartBeatSubmessage_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_rtps_core_InfoSourceSubmessage_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + namespace eprosima { namespace fastdds { namespace rtps { @@ -154,6 +230,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::detail::EntityId_t*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool EntityId_tPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool EntityId_tPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -336,6 +423,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::detail::ProtocolVersion_t*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ProtocolVersion_tPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ProtocolVersion_tPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -518,6 +616,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::detail::VendorId_t*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool VendorId_tPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool VendorId_tPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -700,6 +809,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::detail::GuidPrefix_t*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool GuidPrefix_tPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool GuidPrefix_tPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -882,6 +1002,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::detail::GUID_t*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool GUID_tPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool GUID_tPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1064,6 +1195,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::detail::SequenceNumber_t*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceNumber_tPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceNumber_tPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1246,6 +1388,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::detail::Count_t*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Count_tPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Count_tPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1428,6 +1581,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::detail::Time_t*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Time_tPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Time_tPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1610,6 +1774,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::detail::SequenceNumberSet*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceNumberSetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceNumberSetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1792,6 +1967,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::detail::Locator_t*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Locator_tPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Locator_tPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1974,6 +2160,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::detail::Duration_t*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Duration_tPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Duration_tPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2156,6 +2353,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::detail::StatusInfo_t*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StatusInfo_tPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StatusInfo_tPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2338,6 +2546,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::detail::KeyHash_t*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyHash_tPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyHash_tPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2520,6 +2739,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::detail::EntityName_t*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool EntityName_tPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool EntityName_tPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2704,6 +2934,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::Header*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool HeaderPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool HeaderPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2886,6 +3127,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::SubmessageHeader*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SubmessageHeaderPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SubmessageHeaderPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3071,6 +3323,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::AckNackSubmessage*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AckNackSubmessagePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AckNackSubmessagePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3253,6 +3516,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::HeartBeatSubmessage*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool HeartBeatSubmessagePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool HeartBeatSubmessagePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3435,6 +3709,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::InfoDestinationSubmessage*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool InfoDestinationSubmessagePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool InfoDestinationSubmessagePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3617,6 +3902,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::InfoSourceSubmessage*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool InfoSourceSubmessagePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool InfoSourceSubmessagePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3799,6 +4095,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::InfoTimestampSubmessage*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool InfoTimestampSubmessagePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool InfoTimestampSubmessagePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3981,6 +4288,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::rtps::core::RTPSMessage*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool RTPSMessagePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool RTPSMessagePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/blackbox/types/core/core_typesPubSubTypes.hpp b/test/blackbox/types/core/core_typesPubSubTypes.hpp index 2ba61cd089b..a4074f3c28a 100644 --- a/test/blackbox/types/core/core_typesPubSubTypes.hpp +++ b/test/blackbox/types/core/core_typesPubSubTypes.hpp @@ -103,12 +103,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -185,12 +181,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -267,12 +259,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -349,12 +337,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -431,12 +415,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -513,12 +493,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -595,12 +571,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -677,12 +649,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -760,12 +728,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -842,12 +806,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -924,12 +884,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1008,12 +964,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1090,12 +1042,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1172,12 +1120,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1255,12 +1199,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1337,12 +1277,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1422,12 +1358,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1504,12 +1436,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1586,12 +1514,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1668,12 +1592,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1750,12 +1670,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1832,12 +1748,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/blackbox/types/statistics/monitorservice_typesCdrAux.hpp b/test/blackbox/types/statistics/monitorservice_typesCdrAux.hpp index 3e6ef92c148..78ca5ec1090 100644 --- a/test/blackbox/types/statistics/monitorservice_typesCdrAux.hpp +++ b/test/blackbox/types/statistics/monitorservice_typesCdrAux.hpp @@ -79,35 +79,43 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::Connection& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::QosPolicyCount_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::BaseStatus_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::IncompatibleQoSStatus_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::LivelinessChangedStatus_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::DeadlineMissedStatus_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::MonitorServiceStatusData& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/blackbox/types/statistics/monitorservice_typesCdrAux.ipp b/test/blackbox/types/statistics/monitorservice_typesCdrAux.ipp index 0d0159c07a1..da12ea52117 100644 --- a/test/blackbox/types/statistics/monitorservice_typesCdrAux.ipp +++ b/test/blackbox/types/statistics/monitorservice_typesCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_Connection_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -92,6 +101,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::Connection* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_Connection_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::Connection) == eprosima_fastdds_statistics_Connection_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::Connection)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::Connection)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -131,6 +178,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::Connection* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_Connection_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::Connection) == eprosima_fastdds_statistics_Connection_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::Connection)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::Connection)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::Connection& data) @@ -156,6 +239,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_QosPolicyCount_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -206,6 +297,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::QosPolicyCount_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_QosPolicyCount_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::QosPolicyCount_s) == eprosima_fastdds_statistics_QosPolicyCount_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::QosPolicyCount_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::QosPolicyCount_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -237,6 +366,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::QosPolicyCount_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_QosPolicyCount_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::QosPolicyCount_s) == eprosima_fastdds_statistics_QosPolicyCount_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::QosPolicyCount_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::QosPolicyCount_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::QosPolicyCount_s& data) @@ -252,6 +417,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_BaseStatus_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -298,6 +471,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::BaseStatus_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_BaseStatus_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::BaseStatus_s) == eprosima_fastdds_statistics_BaseStatus_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::BaseStatus_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::BaseStatus_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -325,6 +536,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::BaseStatus_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_BaseStatus_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::BaseStatus_s) == eprosima_fastdds_statistics_BaseStatus_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::BaseStatus_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::BaseStatus_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::BaseStatus_s& data) @@ -338,6 +585,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_IncompatibleQoSStatus_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -392,6 +647,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::IncompatibleQoSStatus_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_IncompatibleQoSStatus_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::IncompatibleQoSStatus_s) == eprosima_fastdds_statistics_IncompatibleQoSStatus_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::IncompatibleQoSStatus_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::IncompatibleQoSStatus_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -427,6 +720,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::IncompatibleQoSStatus_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_IncompatibleQoSStatus_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::IncompatibleQoSStatus_s) == eprosima_fastdds_statistics_IncompatibleQoSStatus_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::IncompatibleQoSStatus_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::IncompatibleQoSStatus_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::IncompatibleQoSStatus_s& data) @@ -444,6 +773,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_LivelinessChangedStatus_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -498,6 +835,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::LivelinessChangedStatus_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_LivelinessChangedStatus_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::LivelinessChangedStatus_s) == eprosima_fastdds_statistics_LivelinessChangedStatus_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::LivelinessChangedStatus_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::LivelinessChangedStatus_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -533,6 +908,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::LivelinessChangedStatus_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_LivelinessChangedStatus_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::LivelinessChangedStatus_s) == eprosima_fastdds_statistics_LivelinessChangedStatus_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::LivelinessChangedStatus_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::LivelinessChangedStatus_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::LivelinessChangedStatus_s& data) @@ -550,6 +961,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_DeadlineMissedStatus_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -600,6 +1019,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::DeadlineMissedStatus_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_DeadlineMissedStatus_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::DeadlineMissedStatus_s) == eprosima_fastdds_statistics_DeadlineMissedStatus_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::DeadlineMissedStatus_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::DeadlineMissedStatus_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -631,6 +1088,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::DeadlineMissedStatus_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_DeadlineMissedStatus_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::DeadlineMissedStatus_s) == eprosima_fastdds_statistics_DeadlineMissedStatus_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::DeadlineMissedStatus_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::DeadlineMissedStatus_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::DeadlineMissedStatus_s& data) @@ -646,6 +1139,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_ExtendedIncompatibleQoSStatus_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -696,6 +1197,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_ExtendedIncompatibleQoSStatus_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s) == eprosima_fastdds_statistics_ExtendedIncompatibleQoSStatus_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -727,6 +1266,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_ExtendedIncompatibleQoSStatus_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s) == eprosima_fastdds_statistics_ExtendedIncompatibleQoSStatus_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s& data) @@ -893,6 +1468,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::MonitorServiceData* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1051,6 +1639,27 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::MonitorServiceData* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_MonitorServiceStatusData_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1105,6 +1714,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::MonitorServiceStatusData* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_MonitorServiceStatusData_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::MonitorServiceStatusData) == eprosima_fastdds_statistics_MonitorServiceStatusData_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::MonitorServiceStatusData)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::MonitorServiceStatusData)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1140,6 +1787,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::MonitorServiceStatusData* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_MonitorServiceStatusData_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::MonitorServiceStatusData) == eprosima_fastdds_statistics_MonitorServiceStatusData_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::MonitorServiceStatusData)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::MonitorServiceStatusData)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::MonitorServiceStatusData& data) diff --git a/test/blackbox/types/statistics/monitorservice_typesPubSubTypes.cxx b/test/blackbox/types/statistics/monitorservice_typesPubSubTypes.cxx index 1cb44bf7907..5544075f232 100644 --- a/test/blackbox/types/statistics/monitorservice_typesPubSubTypes.cxx +++ b/test/blackbox/types/statistics/monitorservice_typesPubSubTypes.cxx @@ -31,6 +31,57 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_eprosima_fastdds_statistics_BaseStatus_s_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + +bool is_eprosima_fastdds_statistics_ExtendedIncompatibleQoSStatus_s_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_DeadlineMissedStatus_s_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_eprosima_fastdds_statistics_QosPolicyCount_s_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_eprosima_fastdds_statistics_MonitorServiceStatusData_cdr_plain( + DataRepresentationId_t data_representation); + + + + + +bool is_eprosima_fastdds_statistics_Connection_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_eprosima_fastdds_statistics_IncompatibleQoSStatus_s_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + +bool is_eprosima_fastdds_statistics_LivelinessChangedStatus_s_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + namespace eprosima { namespace fastdds { namespace statistics { @@ -152,6 +203,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::Connection*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ConnectionPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ConnectionPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -334,6 +396,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::QosPolicyCount_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool QosPolicyCount_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool QosPolicyCount_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -516,6 +589,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::BaseStatus_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool BaseStatus_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool BaseStatus_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -698,6 +782,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::IncompatibleQoSStatus_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool IncompatibleQoSStatus_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool IncompatibleQoSStatus_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -880,6 +975,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::LivelinessChangedStatus_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool LivelinessChangedStatus_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool LivelinessChangedStatus_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1062,6 +1168,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::DeadlineMissedStatus_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool DeadlineMissedStatus_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool DeadlineMissedStatus_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1244,6 +1361,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::ExtendedIncompatibleQoSStatus_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ExtendedIncompatibleQoSStatus_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ExtendedIncompatibleQoSStatus_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1429,6 +1557,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::MonitorServiceStatusData*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MonitorServiceStatusDataPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MonitorServiceStatusDataPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/blackbox/types/statistics/monitorservice_typesPubSubTypes.hpp b/test/blackbox/types/statistics/monitorservice_typesPubSubTypes.hpp index 1551ff970ac..59647a31d1f 100644 --- a/test/blackbox/types/statistics/monitorservice_typesPubSubTypes.hpp +++ b/test/blackbox/types/statistics/monitorservice_typesPubSubTypes.hpp @@ -100,12 +100,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -182,12 +178,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -264,12 +256,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -347,12 +335,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -429,12 +413,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -511,12 +491,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -596,12 +572,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -683,12 +655,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/blackbox/types/statistics/typesCdrAux.hpp b/test/blackbox/types/statistics/typesCdrAux.hpp index 26f3e995be1..9c5470839c4 100644 --- a/test/blackbox/types/statistics/typesCdrAux.hpp +++ b/test/blackbox/types/statistics/typesCdrAux.hpp @@ -77,59 +77,73 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::EntityId_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::GuidPrefix_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::GUID_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::SequenceNumber_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::SampleIdentity_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::Locator_s& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::DiscoveryTime& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::EntityCount& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::SampleIdentityCount& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::Entity2LocatorTraffic& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::WriterReaderData& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::Locator2LocatorData& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::EntityData& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::PhysicalData& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/blackbox/types/statistics/typesCdrAux.ipp b/test/blackbox/types/statistics/typesCdrAux.ipp index 2152cb10fc5..163ee71a861 100644 --- a/test/blackbox/types/statistics/typesCdrAux.ipp +++ b/test/blackbox/types/statistics/typesCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_detail_EntityId_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -80,6 +89,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::detail::EntityId_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_EntityId_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::EntityId_s) == eprosima_fastdds_statistics_detail_EntityId_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::EntityId_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::detail::EntityId_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -107,6 +154,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::detail::EntityId_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_EntityId_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::EntityId_s) == eprosima_fastdds_statistics_detail_EntityId_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::EntityId_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::EntityId_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::EntityId_s& data) @@ -120,6 +203,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_detail_GuidPrefix_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -166,6 +257,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::detail::GuidPrefix_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_GuidPrefix_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::GuidPrefix_s) == eprosima_fastdds_statistics_detail_GuidPrefix_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::GuidPrefix_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::detail::GuidPrefix_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -193,6 +322,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::detail::GuidPrefix_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_GuidPrefix_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::GuidPrefix_s) == eprosima_fastdds_statistics_detail_GuidPrefix_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::GuidPrefix_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::GuidPrefix_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::GuidPrefix_s& data) @@ -206,6 +371,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_detail_GUID_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -256,6 +429,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::detail::GUID_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_GUID_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::GUID_s) == eprosima_fastdds_statistics_detail_GUID_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::GUID_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::detail::GUID_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -287,6 +498,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::detail::GUID_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_GUID_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::GUID_s) == eprosima_fastdds_statistics_detail_GUID_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::GUID_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::GUID_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::GUID_s& data) @@ -310,6 +557,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_detail_SequenceNumber_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -360,6 +615,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::detail::SequenceNumber_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_SequenceNumber_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::SequenceNumber_s) == eprosima_fastdds_statistics_detail_SequenceNumber_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::SequenceNumber_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::detail::SequenceNumber_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -391,6 +684,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::detail::SequenceNumber_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_SequenceNumber_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::SequenceNumber_s) == eprosima_fastdds_statistics_detail_SequenceNumber_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::SequenceNumber_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::SequenceNumber_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::SequenceNumber_s& data) @@ -406,6 +735,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_detail_SampleIdentity_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -456,6 +793,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::detail::SampleIdentity_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_SampleIdentity_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::SampleIdentity_s) == eprosima_fastdds_statistics_detail_SampleIdentity_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::SampleIdentity_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::detail::SampleIdentity_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -487,6 +862,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::detail::SampleIdentity_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_SampleIdentity_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::SampleIdentity_s) == eprosima_fastdds_statistics_detail_SampleIdentity_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::SampleIdentity_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::SampleIdentity_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::SampleIdentity_s& data) @@ -510,6 +921,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_detail_Locator_s_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -564,6 +983,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::detail::Locator_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_Locator_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::Locator_s) == eprosima_fastdds_statistics_detail_Locator_s_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::Locator_s)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::detail::Locator_s)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -599,6 +1056,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::detail::Locator_s* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_detail_Locator_s_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::detail::Locator_s) == eprosima_fastdds_statistics_detail_Locator_s_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::Locator_s)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::detail::Locator_s)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::detail::Locator_s& data) @@ -616,6 +1109,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_DiscoveryTime_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -682,6 +1183,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::DiscoveryTime* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_DiscoveryTime_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::DiscoveryTime) == eprosima_fastdds_statistics_DiscoveryTime_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::DiscoveryTime)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::DiscoveryTime)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -729,6 +1268,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::DiscoveryTime* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_DiscoveryTime_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::DiscoveryTime) == eprosima_fastdds_statistics_DiscoveryTime_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::DiscoveryTime)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::DiscoveryTime)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::DiscoveryTime& data) @@ -760,6 +1335,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_EntityCount_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -810,6 +1393,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::EntityCount* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_EntityCount_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::EntityCount) == eprosima_fastdds_statistics_EntityCount_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::EntityCount)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::EntityCount)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -841,6 +1462,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::EntityCount* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_EntityCount_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::EntityCount) == eprosima_fastdds_statistics_EntityCount_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::EntityCount)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::EntityCount)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::EntityCount& data) @@ -860,6 +1517,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_SampleIdentityCount_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -910,6 +1575,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::SampleIdentityCount* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_SampleIdentityCount_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::SampleIdentityCount) == eprosima_fastdds_statistics_SampleIdentityCount_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::SampleIdentityCount)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::SampleIdentityCount)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -941,6 +1644,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::SampleIdentityCount* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_SampleIdentityCount_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::SampleIdentityCount) == eprosima_fastdds_statistics_SampleIdentityCount_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::SampleIdentityCount)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::SampleIdentityCount)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::SampleIdentityCount& data) @@ -960,6 +1699,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_Entity2LocatorTraffic_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1022,6 +1769,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::Entity2LocatorTraffic* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_Entity2LocatorTraffic_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::Entity2LocatorTraffic) == eprosima_fastdds_statistics_Entity2LocatorTraffic_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::Entity2LocatorTraffic)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::Entity2LocatorTraffic)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1065,6 +1850,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::Entity2LocatorTraffic* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_Entity2LocatorTraffic_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::Entity2LocatorTraffic) == eprosima_fastdds_statistics_Entity2LocatorTraffic_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::Entity2LocatorTraffic)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::Entity2LocatorTraffic)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::Entity2LocatorTraffic& data) @@ -1094,6 +1915,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_WriterReaderData_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1148,6 +1977,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::WriterReaderData* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_WriterReaderData_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::WriterReaderData) == eprosima_fastdds_statistics_WriterReaderData_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::WriterReaderData)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::WriterReaderData)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1183,6 +2050,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::WriterReaderData* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_WriterReaderData_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::WriterReaderData) == eprosima_fastdds_statistics_WriterReaderData_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::WriterReaderData)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::WriterReaderData)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::WriterReaderData& data) @@ -1208,6 +2111,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_Locator2LocatorData_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1262,6 +2173,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::Locator2LocatorData* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_Locator2LocatorData_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::Locator2LocatorData) == eprosima_fastdds_statistics_Locator2LocatorData_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::Locator2LocatorData)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::Locator2LocatorData)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1297,6 +2246,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::Locator2LocatorData* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_Locator2LocatorData_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::Locator2LocatorData) == eprosima_fastdds_statistics_Locator2LocatorData_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::Locator2LocatorData)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::Locator2LocatorData)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::Locator2LocatorData& data) @@ -1322,6 +2307,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_EntityData_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1372,6 +2365,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::EntityData* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_EntityData_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::EntityData) == eprosima_fastdds_statistics_EntityData_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::EntityData)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::EntityData)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1403,6 +2434,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::EntityData* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_EntityData_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::EntityData) == eprosima_fastdds_statistics_EntityData_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::EntityData)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::EntityData)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::EntityData& data) @@ -1422,6 +2489,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_eprosima_fastdds_statistics_PhysicalData_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1480,6 +2555,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::PhysicalData* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_PhysicalData_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::PhysicalData) == eprosima_fastdds_statistics_PhysicalData_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(eprosima::fastdds::statistics::PhysicalData)); + + scdr.jump((array_size -1) * sizeof(eprosima::fastdds::statistics::PhysicalData)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1519,6 +2632,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::PhysicalData* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_eprosima_fastdds_statistics_PhysicalData_cdr_plain(data_representation) && + sizeof(eprosima::fastdds::statistics::PhysicalData) == eprosima_fastdds_statistics_PhysicalData_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(eprosima::fastdds::statistics::PhysicalData)); + + scdr.jump((array_size - 1) * sizeof(eprosima::fastdds::statistics::PhysicalData)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const eprosima::fastdds::statistics::PhysicalData& data) @@ -1688,6 +2837,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const eprosima::fastdds::statistics::Data* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1840,6 +3002,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + eprosima::fastdds::statistics::Data* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + } // namespace fastcdr } // namespace eprosima diff --git a/test/blackbox/types/statistics/typesPubSubTypes.cxx b/test/blackbox/types/statistics/typesPubSubTypes.cxx index eb459179625..27c73d9c573 100644 --- a/test/blackbox/types/statistics/typesPubSubTypes.cxx +++ b/test/blackbox/types/statistics/typesPubSubTypes.cxx @@ -31,6 +31,55 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_eprosima_fastdds_statistics_DiscoveryTime_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_PhysicalData_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_detail_Locator_s_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_eprosima_fastdds_statistics_detail_GuidPrefix_s_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_detail_SampleIdentity_s_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_EntityData_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_Entity2LocatorTraffic_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_detail_EntityId_s_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_EntityCount_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_WriterReaderData_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_SampleIdentityCount_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_Locator2LocatorData_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_detail_GUID_s_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_eprosima_fastdds_statistics_detail_SequenceNumber_s_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + namespace eprosima { namespace fastdds { namespace statistics { @@ -153,6 +202,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::detail::EntityId_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool EntityId_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool EntityId_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -335,6 +395,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::detail::GuidPrefix_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool GuidPrefix_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool GuidPrefix_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -517,6 +588,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::detail::GUID_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool GUID_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool GUID_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -699,6 +781,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::detail::SequenceNumber_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceNumber_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceNumber_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -881,6 +974,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::detail::SampleIdentity_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SampleIdentity_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SampleIdentity_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1063,6 +1167,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::detail::Locator_s*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Locator_sPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Locator_sPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1247,6 +1362,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::DiscoveryTime*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool DiscoveryTimePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool DiscoveryTimePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1429,6 +1555,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::EntityCount*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool EntityCountPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool EntityCountPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1611,6 +1748,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::SampleIdentityCount*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SampleIdentityCountPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SampleIdentityCountPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1793,6 +1941,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::Entity2LocatorTraffic*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Entity2LocatorTrafficPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Entity2LocatorTrafficPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1975,6 +2134,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::WriterReaderData*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool WriterReaderDataPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool WriterReaderDataPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2157,6 +2327,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::Locator2LocatorData*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Locator2LocatorDataPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Locator2LocatorDataPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2339,6 +2520,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::EntityData*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool EntityDataPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool EntityDataPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2521,6 +2713,17 @@ namespace eprosima { delete(reinterpret_cast<::eprosima::fastdds::statistics::PhysicalData*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool PhysicalDataPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool PhysicalDataPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/blackbox/types/statistics/typesPubSubTypes.hpp b/test/blackbox/types/statistics/typesPubSubTypes.hpp index 4783c69a855..7dc944d9a1b 100644 --- a/test/blackbox/types/statistics/typesPubSubTypes.hpp +++ b/test/blackbox/types/statistics/typesPubSubTypes.hpp @@ -101,12 +101,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -183,12 +179,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -265,12 +257,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -347,12 +335,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -429,12 +413,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -511,12 +491,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -594,12 +570,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -676,12 +648,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -758,12 +726,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -840,12 +804,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -922,12 +882,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1004,12 +960,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1086,12 +1038,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1168,12 +1116,8 @@ namespace eprosima #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds-types-test/aliasesCdrAux.hpp b/test/dds-types-test/aliasesCdrAux.hpp index 322935ab89e..f123c80cedd 100644 --- a/test/dds-types-test/aliasesCdrAux.hpp +++ b/test/dds-types-test/aliasesCdrAux.hpp @@ -74,6 +74,7 @@ constexpr uint32_t AliasString8_max_key_cdr_typesize {0UL}; + constexpr uint32_t AliasStruct_max_cdr_typesize {16UL}; constexpr uint32_t AliasStruct_max_key_cdr_typesize {0UL}; @@ -109,6 +110,7 @@ constexpr uint32_t AliasChar16_max_key_cdr_typesize {0UL}; + constexpr uint32_t AliasChar8_max_cdr_typesize {5UL}; constexpr uint32_t AliasChar8_max_key_cdr_typesize {0UL}; @@ -146,103 +148,128 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasInt16& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasUint16& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasInt32& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasUInt32& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasInt64& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasUInt64& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasFloat32& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasFloat64& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasFloat128& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasBool& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasOctet& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasChar8& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasChar16& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasString8& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasString16& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasEnum& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasBitmask& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasAlias& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasArray& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasMultiArray& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasSequence& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasMap& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasUnion& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasBitset& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/aliasesCdrAux.ipp b/test/dds-types-test/aliasesCdrAux.ipp index ced7a974e83..6f0f80c62c5 100644 --- a/test/dds-types-test/aliasesCdrAux.ipp +++ b/test/dds-types-test/aliasesCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_AliasInt16_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasInt16* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasInt16_cdr_plain(data_representation) && + sizeof(AliasInt16) == AliasInt16_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasInt16)); + + scdr.jump((array_size -1) * sizeof(AliasInt16)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasInt16* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasInt16_cdr_plain(data_representation) && + sizeof(AliasInt16) == AliasInt16_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasInt16)); + + scdr.jump((array_size - 1) * sizeof(AliasInt16)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasInt16& data) @@ -113,6 +196,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasUint16_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -155,6 +246,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasUint16* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasUint16_cdr_plain(data_representation) && + sizeof(AliasUint16) == AliasUint16_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasUint16)); + + scdr.jump((array_size -1) * sizeof(AliasUint16)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -180,6 +309,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasUint16* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasUint16_cdr_plain(data_representation) && + sizeof(AliasUint16) == AliasUint16_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasUint16)); + + scdr.jump((array_size - 1) * sizeof(AliasUint16)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasUint16& data) @@ -192,6 +357,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasInt32_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -234,6 +407,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasInt32* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasInt32_cdr_plain(data_representation) && + sizeof(AliasInt32) == AliasInt32_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasInt32)); + + scdr.jump((array_size -1) * sizeof(AliasInt32)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -259,6 +470,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasInt32* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasInt32_cdr_plain(data_representation) && + sizeof(AliasInt32) == AliasInt32_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasInt32)); + + scdr.jump((array_size - 1) * sizeof(AliasInt32)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasInt32& data) @@ -271,6 +518,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasUInt32_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -313,6 +568,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasUInt32* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasUInt32_cdr_plain(data_representation) && + sizeof(AliasUInt32) == AliasUInt32_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasUInt32)); + + scdr.jump((array_size -1) * sizeof(AliasUInt32)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -338,6 +631,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasUInt32* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasUInt32_cdr_plain(data_representation) && + sizeof(AliasUInt32) == AliasUInt32_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasUInt32)); + + scdr.jump((array_size - 1) * sizeof(AliasUInt32)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasUInt32& data) @@ -350,6 +679,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasInt64_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -392,6 +729,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasInt64* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasInt64_cdr_plain(data_representation) && + sizeof(AliasInt64) == AliasInt64_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasInt64)); + + scdr.jump((array_size -1) * sizeof(AliasInt64)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -417,6 +792,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasInt64* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasInt64_cdr_plain(data_representation) && + sizeof(AliasInt64) == AliasInt64_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasInt64)); + + scdr.jump((array_size - 1) * sizeof(AliasInt64)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasInt64& data) @@ -429,6 +840,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasUInt64_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -471,6 +890,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasUInt64* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasUInt64_cdr_plain(data_representation) && + sizeof(AliasUInt64) == AliasUInt64_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasUInt64)); + + scdr.jump((array_size -1) * sizeof(AliasUInt64)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -496,6 +953,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasUInt64* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasUInt64_cdr_plain(data_representation) && + sizeof(AliasUInt64) == AliasUInt64_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasUInt64)); + + scdr.jump((array_size - 1) * sizeof(AliasUInt64)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasUInt64& data) @@ -508,6 +1001,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasFloat32_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -550,6 +1051,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasFloat32* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasFloat32_cdr_plain(data_representation) && + sizeof(AliasFloat32) == AliasFloat32_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasFloat32)); + + scdr.jump((array_size -1) * sizeof(AliasFloat32)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -575,6 +1114,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasFloat32* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasFloat32_cdr_plain(data_representation) && + sizeof(AliasFloat32) == AliasFloat32_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasFloat32)); + + scdr.jump((array_size - 1) * sizeof(AliasFloat32)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasFloat32& data) @@ -587,6 +1162,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasFloat64_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -629,6 +1212,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasFloat64* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasFloat64_cdr_plain(data_representation) && + sizeof(AliasFloat64) == AliasFloat64_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasFloat64)); + + scdr.jump((array_size -1) * sizeof(AliasFloat64)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -654,6 +1275,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasFloat64* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasFloat64_cdr_plain(data_representation) && + sizeof(AliasFloat64) == AliasFloat64_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasFloat64)); + + scdr.jump((array_size - 1) * sizeof(AliasFloat64)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasFloat64& data) @@ -666,6 +1323,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasFloat128_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -708,6 +1373,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasFloat128* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasFloat128_cdr_plain(data_representation) && + sizeof(AliasFloat128) == AliasFloat128_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasFloat128)); + + scdr.jump((array_size -1) * sizeof(AliasFloat128)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -733,6 +1436,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasFloat128* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasFloat128_cdr_plain(data_representation) && + sizeof(AliasFloat128) == AliasFloat128_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasFloat128)); + + scdr.jump((array_size - 1) * sizeof(AliasFloat128)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasFloat128& data) @@ -745,6 +1484,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasBool_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -787,6 +1534,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasBool* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasBool_cdr_plain(data_representation) && + sizeof(AliasBool) == AliasBool_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasBool)); + + scdr.jump((array_size -1) * sizeof(AliasBool)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -812,6 +1597,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasBool* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasBool_cdr_plain(data_representation) && + sizeof(AliasBool) == AliasBool_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasBool)); + + scdr.jump((array_size - 1) * sizeof(AliasBool)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasBool& data) @@ -824,6 +1645,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasOctet_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -866,6 +1695,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasOctet_cdr_plain(data_representation) && + sizeof(AliasOctet) == AliasOctet_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasOctet)); + + scdr.jump((array_size -1) * sizeof(AliasOctet)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -891,6 +1758,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasOctet_cdr_plain(data_representation) && + sizeof(AliasOctet) == AliasOctet_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasOctet)); + + scdr.jump((array_size - 1) * sizeof(AliasOctet)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasOctet& data) @@ -903,6 +1806,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasChar8_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -945,6 +1856,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasChar8* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasChar8_cdr_plain(data_representation) && + sizeof(AliasChar8) == AliasChar8_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasChar8)); + + scdr.jump((array_size -1) * sizeof(AliasChar8)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -970,6 +1919,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasChar8* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasChar8_cdr_plain(data_representation) && + sizeof(AliasChar8) == AliasChar8_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasChar8)); + + scdr.jump((array_size - 1) * sizeof(AliasChar8)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasChar8& data) @@ -982,6 +1967,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasChar16_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1024,6 +2017,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasChar16* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasChar16_cdr_plain(data_representation) && + sizeof(AliasChar16) == AliasChar16_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasChar16)); + + scdr.jump((array_size -1) * sizeof(AliasChar16)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1049,6 +2080,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasChar16* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasChar16_cdr_plain(data_representation) && + sizeof(AliasChar16) == AliasChar16_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasChar16)); + + scdr.jump((array_size - 1) * sizeof(AliasChar16)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasChar16& data) @@ -1061,6 +2128,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasString8_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1103,6 +2178,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasString8* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasString8_cdr_plain(data_representation) && + sizeof(AliasString8) == AliasString8_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasString8)); + + scdr.jump((array_size -1) * sizeof(AliasString8)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1128,6 +2241,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasString8* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasString8_cdr_plain(data_representation) && + sizeof(AliasString8) == AliasString8_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasString8)); + + scdr.jump((array_size - 1) * sizeof(AliasString8)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasString8& data) @@ -1140,6 +2289,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasString16_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1182,6 +2339,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasString16* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasString16_cdr_plain(data_representation) && + sizeof(AliasString16) == AliasString16_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasString16)); + + scdr.jump((array_size -1) * sizeof(AliasString16)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1207,6 +2402,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasString16* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasString16_cdr_plain(data_representation) && + sizeof(AliasString16) == AliasString16_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasString16)); + + scdr.jump((array_size - 1) * sizeof(AliasString16)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasString16& data) @@ -1219,6 +2450,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasEnum_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1261,6 +2500,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasEnum* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasEnum_cdr_plain(data_representation) && + sizeof(AliasEnum) == AliasEnum_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasEnum)); + + scdr.jump((array_size -1) * sizeof(AliasEnum)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1286,6 +2563,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasEnum* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasEnum_cdr_plain(data_representation) && + sizeof(AliasEnum) == AliasEnum_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasEnum)); + + scdr.jump((array_size - 1) * sizeof(AliasEnum)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasEnum& data) @@ -1298,6 +2611,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasBitmask_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1340,6 +2661,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasBitmask* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasBitmask_cdr_plain(data_representation) && + sizeof(AliasBitmask) == AliasBitmask_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasBitmask)); + + scdr.jump((array_size -1) * sizeof(AliasBitmask)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1365,6 +2724,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasBitmask* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasBitmask_cdr_plain(data_representation) && + sizeof(AliasBitmask) == AliasBitmask_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasBitmask)); + + scdr.jump((array_size - 1) * sizeof(AliasBitmask)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasBitmask& data) @@ -1377,6 +2772,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasAlias_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1419,6 +2822,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasAlias* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasAlias_cdr_plain(data_representation) && + sizeof(AliasAlias) == AliasAlias_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasAlias)); + + scdr.jump((array_size -1) * sizeof(AliasAlias)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1444,6 +2885,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasAlias* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasAlias_cdr_plain(data_representation) && + sizeof(AliasAlias) == AliasAlias_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasAlias)); + + scdr.jump((array_size - 1) * sizeof(AliasAlias)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasAlias& data) @@ -1456,6 +2933,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasArray_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1498,6 +2983,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasArray* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasArray_cdr_plain(data_representation) && + sizeof(AliasArray) == AliasArray_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasArray)); + + scdr.jump((array_size -1) * sizeof(AliasArray)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1523,6 +3046,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasArray* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasArray_cdr_plain(data_representation) && + sizeof(AliasArray) == AliasArray_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasArray)); + + scdr.jump((array_size - 1) * sizeof(AliasArray)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasArray& data) @@ -1535,6 +3094,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasMultiArray_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1577,6 +3144,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasMultiArray* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasMultiArray_cdr_plain(data_representation) && + sizeof(AliasMultiArray) == AliasMultiArray_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasMultiArray)); + + scdr.jump((array_size -1) * sizeof(AliasMultiArray)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1602,6 +3207,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasMultiArray* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasMultiArray_cdr_plain(data_representation) && + sizeof(AliasMultiArray) == AliasMultiArray_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasMultiArray)); + + scdr.jump((array_size - 1) * sizeof(AliasMultiArray)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasMultiArray& data) @@ -1614,6 +3255,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasSequence_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1656,6 +3305,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasSequence* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasSequence_cdr_plain(data_representation) && + sizeof(AliasSequence) == AliasSequence_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasSequence)); + + scdr.jump((array_size -1) * sizeof(AliasSequence)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1681,6 +3368,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasSequence* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasSequence_cdr_plain(data_representation) && + sizeof(AliasSequence) == AliasSequence_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasSequence)); + + scdr.jump((array_size - 1) * sizeof(AliasSequence)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasSequence& data) @@ -1693,6 +3416,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasMap_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1735,6 +3466,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasMap* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasMap_cdr_plain(data_representation) && + sizeof(AliasMap) == AliasMap_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasMap)); + + scdr.jump((array_size -1) * sizeof(AliasMap)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1760,6 +3529,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasMap* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasMap_cdr_plain(data_representation) && + sizeof(AliasMap) == AliasMap_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasMap)); + + scdr.jump((array_size - 1) * sizeof(AliasMap)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasMap& data) @@ -1772,6 +3577,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasUnion_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1814,6 +3627,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasUnion* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasUnion_cdr_plain(data_representation) && + sizeof(AliasUnion) == AliasUnion_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasUnion)); + + scdr.jump((array_size -1) * sizeof(AliasUnion)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1839,6 +3690,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasUnion* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasUnion_cdr_plain(data_representation) && + sizeof(AliasUnion) == AliasUnion_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasUnion)); + + scdr.jump((array_size - 1) * sizeof(AliasUnion)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasUnion& data) @@ -1851,6 +3738,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1893,6 +3788,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasStruct_cdr_plain(data_representation) && + sizeof(AliasStruct) == AliasStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasStruct)); + + scdr.jump((array_size -1) * sizeof(AliasStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1918,6 +3851,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasStruct_cdr_plain(data_representation) && + sizeof(AliasStruct) == AliasStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasStruct)); + + scdr.jump((array_size - 1) * sizeof(AliasStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasStruct& data) @@ -1930,6 +3899,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AliasBitset_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1972,6 +3949,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasBitset* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasBitset_cdr_plain(data_representation) && + sizeof(AliasBitset) == AliasBitset_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasBitset)); + + scdr.jump((array_size -1) * sizeof(AliasBitset)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1997,6 +4012,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasBitset* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasBitset_cdr_plain(data_representation) && + sizeof(AliasBitset) == AliasBitset_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasBitset)); + + scdr.jump((array_size - 1) * sizeof(AliasBitset)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasBitset& data) diff --git a/test/dds-types-test/aliasesPubSubTypes.cxx b/test/dds-types-test/aliasesPubSubTypes.cxx index 567c5a8c337..ea1ab5d6ea6 100644 --- a/test/dds-types-test/aliasesPubSubTypes.cxx +++ b/test/dds-types-test/aliasesPubSubTypes.cxx @@ -31,6 +31,126 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_AliasMap_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_AliasInt64_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_AliasFloat128_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AliasInt16_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_AliasEnum_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_AliasFloat64_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AliasOctet_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AliasAlias_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_AliasArray_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AliasUint16_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AliasString16_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_AliasInt32_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_AliasString8_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_AliasStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + + + +bool is_AliasFloat32_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_AliasBitmask_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AliasUnion_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AliasMultiArray_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AliasUInt32_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AliasChar16_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + +bool is_AliasChar8_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AliasUInt64_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_AliasSequence_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + +bool is_AliasBool_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_AliasBitset_cdr_plain( + DataRepresentationId_t data_representation); + + +} // namespace fastcdr +} // namespace eprosima + AliasInt16PubSubType::AliasInt16PubSubType() { set_name("AliasInt16"); @@ -149,6 +269,17 @@ void AliasInt16PubSubType::delete_data( delete(reinterpret_cast<::AliasInt16*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasInt16PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasInt16PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +462,17 @@ void AliasUint16PubSubType::delete_data( delete(reinterpret_cast<::AliasUint16*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasUint16PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasUint16PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +655,17 @@ void AliasInt32PubSubType::delete_data( delete(reinterpret_cast<::AliasInt32*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasInt32PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasInt32PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -695,6 +848,17 @@ void AliasUInt32PubSubType::delete_data( delete(reinterpret_cast<::AliasUInt32*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasUInt32PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasUInt32PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -877,6 +1041,17 @@ void AliasInt64PubSubType::delete_data( delete(reinterpret_cast<::AliasInt64*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasInt64PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasInt64PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1059,6 +1234,17 @@ void AliasUInt64PubSubType::delete_data( delete(reinterpret_cast<::AliasUInt64*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasUInt64PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasUInt64PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1241,6 +1427,17 @@ void AliasFloat32PubSubType::delete_data( delete(reinterpret_cast<::AliasFloat32*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasFloat32PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasFloat32PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1423,6 +1620,17 @@ void AliasFloat64PubSubType::delete_data( delete(reinterpret_cast<::AliasFloat64*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasFloat64PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasFloat64PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1605,6 +1813,17 @@ void AliasFloat128PubSubType::delete_data( delete(reinterpret_cast<::AliasFloat128*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasFloat128PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasFloat128PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1787,6 +2006,17 @@ void AliasBoolPubSubType::delete_data( delete(reinterpret_cast<::AliasBool*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasBoolPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasBoolPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1969,6 +2199,17 @@ void AliasOctetPubSubType::delete_data( delete(reinterpret_cast<::AliasOctet*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasOctetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasOctetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2151,6 +2392,17 @@ void AliasChar8PubSubType::delete_data( delete(reinterpret_cast<::AliasChar8*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasChar8PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasChar8PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2333,6 +2585,17 @@ void AliasChar16PubSubType::delete_data( delete(reinterpret_cast<::AliasChar16*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasChar16PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasChar16PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2515,6 +2778,17 @@ void AliasString8PubSubType::delete_data( delete(reinterpret_cast<::AliasString8*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasString8PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasString8PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2697,6 +2971,17 @@ void AliasString16PubSubType::delete_data( delete(reinterpret_cast<::AliasString16*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasString16PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasString16PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2879,6 +3164,17 @@ void AliasEnumPubSubType::delete_data( delete(reinterpret_cast<::AliasEnum*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasEnumPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasEnumPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3061,6 +3357,17 @@ void AliasBitmaskPubSubType::delete_data( delete(reinterpret_cast<::AliasBitmask*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasBitmaskPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasBitmaskPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3243,6 +3550,17 @@ void AliasAliasPubSubType::delete_data( delete(reinterpret_cast<::AliasAlias*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasAliasPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasAliasPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3425,6 +3743,17 @@ void AliasArrayPubSubType::delete_data( delete(reinterpret_cast<::AliasArray*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasArrayPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasArrayPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3607,6 +3936,17 @@ void AliasMultiArrayPubSubType::delete_data( delete(reinterpret_cast<::AliasMultiArray*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasMultiArrayPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasMultiArrayPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3789,6 +4129,17 @@ void AliasSequencePubSubType::delete_data( delete(reinterpret_cast<::AliasSequence*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasSequencePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasSequencePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3971,6 +4322,17 @@ void AliasMapPubSubType::delete_data( delete(reinterpret_cast<::AliasMap*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasMapPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasMapPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4153,6 +4515,17 @@ void AliasUnionPubSubType::delete_data( delete(reinterpret_cast<::AliasUnion*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasUnionPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasUnionPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4335,6 +4708,17 @@ void AliasStructPubSubType::delete_data( delete(reinterpret_cast<::AliasStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4517,6 +4901,17 @@ void AliasBitsetPubSubType::delete_data( delete(reinterpret_cast<::AliasBitset*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasBitsetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasBitsetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds-types-test/aliasesPubSubTypes.hpp b/test/dds-types-test/aliasesPubSubTypes.hpp index 9a3a56f3b07..11d18137e21 100644 --- a/test/dds-types-test/aliasesPubSubTypes.hpp +++ b/test/dds-types-test/aliasesPubSubTypes.hpp @@ -119,12 +119,8 @@ class AliasInt16PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -201,12 +197,8 @@ class AliasUint16PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -283,12 +275,8 @@ class AliasInt32PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -365,12 +353,8 @@ class AliasUInt32PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -447,12 +431,8 @@ class AliasInt64PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -529,12 +509,8 @@ class AliasUInt64PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -611,12 +587,8 @@ class AliasFloat32PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -693,12 +665,8 @@ class AliasFloat64PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -775,12 +743,8 @@ class AliasFloat128PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -857,12 +821,8 @@ class AliasBoolPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -939,12 +899,8 @@ class AliasOctetPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1021,12 +977,8 @@ class AliasChar8PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1103,12 +1055,8 @@ class AliasChar16PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1185,12 +1133,8 @@ class AliasString8PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1267,12 +1211,8 @@ class AliasString16PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1349,12 +1289,8 @@ class AliasEnumPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1431,12 +1367,8 @@ class AliasBitmaskPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1513,12 +1445,8 @@ class AliasAliasPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1595,12 +1523,8 @@ class AliasArrayPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1677,12 +1601,8 @@ class AliasMultiArrayPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1759,12 +1679,8 @@ class AliasSequencePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1841,12 +1757,8 @@ class AliasMapPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1923,12 +1835,8 @@ class AliasUnionPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2005,12 +1913,8 @@ class AliasStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2087,12 +1991,8 @@ class AliasBitsetPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds-types-test/annotationsCdrAux.hpp b/test/dds-types-test/annotationsCdrAux.hpp index ab2928a5ce2..c9428f3c893 100644 --- a/test/dds-types-test/annotationsCdrAux.hpp +++ b/test/dds-types-test/annotationsCdrAux.hpp @@ -35,6 +35,8 @@ constexpr uint32_t AnnotatedStruct_max_key_cdr_typesize {0UL}; + + constexpr uint32_t EmptyAnnotatedStruct_max_cdr_typesize {4UL}; constexpr uint32_t EmptyAnnotatedStruct_max_key_cdr_typesize {0UL}; @@ -58,15 +60,18 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AnnotatedStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const EmptyAnnotatedStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const BasicAnnotationsStruct& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/annotationsCdrAux.ipp b/test/dds-types-test/annotationsCdrAux.ipp index 77e3bd12eaa..8ad64bf77f0 100644 --- a/test/dds-types-test/annotationsCdrAux.ipp +++ b/test/dds-types-test/annotationsCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_AnnotatedStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -72,6 +81,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AnnotatedStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AnnotatedStruct_cdr_plain(data_representation) && + sizeof(AnnotatedStruct) == AnnotatedStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AnnotatedStruct)); + + scdr.jump((array_size -1) * sizeof(AnnotatedStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -89,6 +136,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AnnotatedStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AnnotatedStruct_cdr_plain(data_representation) && + sizeof(AnnotatedStruct) == AnnotatedStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AnnotatedStruct)); + + scdr.jump((array_size - 1) * sizeof(AnnotatedStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AnnotatedStruct& data) @@ -99,6 +182,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_EmptyAnnotatedStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -137,6 +228,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const EmptyAnnotatedStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_EmptyAnnotatedStruct_cdr_plain(data_representation) && + sizeof(EmptyAnnotatedStruct) == EmptyAnnotatedStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(EmptyAnnotatedStruct)); + + scdr.jump((array_size -1) * sizeof(EmptyAnnotatedStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -154,6 +283,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + EmptyAnnotatedStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_EmptyAnnotatedStruct_cdr_plain(data_representation) && + sizeof(EmptyAnnotatedStruct) == EmptyAnnotatedStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(EmptyAnnotatedStruct)); + + scdr.jump((array_size - 1) * sizeof(EmptyAnnotatedStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const EmptyAnnotatedStruct& data) @@ -164,6 +329,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_BasicAnnotationsStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -206,6 +379,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const BasicAnnotationsStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BasicAnnotationsStruct_cdr_plain(data_representation) && + sizeof(BasicAnnotationsStruct) == BasicAnnotationsStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(BasicAnnotationsStruct)); + + scdr.jump((array_size -1) * sizeof(BasicAnnotationsStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -231,6 +442,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + BasicAnnotationsStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BasicAnnotationsStruct_cdr_plain(data_representation) && + sizeof(BasicAnnotationsStruct) == BasicAnnotationsStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(BasicAnnotationsStruct)); + + scdr.jump((array_size - 1) * sizeof(BasicAnnotationsStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const BasicAnnotationsStruct& data) diff --git a/test/dds-types-test/annotationsPubSubTypes.cxx b/test/dds-types-test/annotationsPubSubTypes.cxx index 55e151e4536..36502b4d57f 100644 --- a/test/dds-types-test/annotationsPubSubTypes.cxx +++ b/test/dds-types-test/annotationsPubSubTypes.cxx @@ -31,6 +31,38 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_AnnotatedStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + + + + + + +bool is_EmptyAnnotatedStruct_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_BasicAnnotationsStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + +} // namespace fastcdr +} // namespace eprosima + AnnotatedStructPubSubType::AnnotatedStructPubSubType() { set_name("AnnotatedStruct"); @@ -149,6 +181,17 @@ void AnnotatedStructPubSubType::delete_data( delete(reinterpret_cast<::AnnotatedStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AnnotatedStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AnnotatedStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +374,17 @@ void EmptyAnnotatedStructPubSubType::delete_data( delete(reinterpret_cast<::EmptyAnnotatedStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool EmptyAnnotatedStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool EmptyAnnotatedStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +567,17 @@ void BasicAnnotationsStructPubSubType::delete_data( delete(reinterpret_cast<::BasicAnnotationsStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool BasicAnnotationsStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool BasicAnnotationsStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds-types-test/annotationsPubSubTypes.hpp b/test/dds-types-test/annotationsPubSubTypes.hpp index ae9abdc3429..10cd8c6a410 100644 --- a/test/dds-types-test/annotationsPubSubTypes.hpp +++ b/test/dds-types-test/annotationsPubSubTypes.hpp @@ -94,12 +94,8 @@ class AnnotatedStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -176,12 +172,8 @@ class EmptyAnnotatedStructPubSubType : public eprosima::fastdds::dds::TopicDataT #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -258,12 +250,8 @@ class BasicAnnotationsStructPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds-types-test/appendableCdrAux.hpp b/test/dds-types-test/appendableCdrAux.hpp index 3f020fe8b72..b7adaa73095 100644 --- a/test/dds-types-test/appendableCdrAux.hpp +++ b/test/dds-types-test/appendableCdrAux.hpp @@ -49,6 +49,7 @@ constexpr uint32_t AppendableUShortStruct_max_key_cdr_typesize {0UL}; + constexpr uint32_t AppendableUnionStruct_max_cdr_typesize {16UL}; constexpr uint32_t AppendableUnionStruct_max_key_cdr_typesize {0UL}; @@ -77,6 +78,7 @@ constexpr uint32_t AppendableInheritanceEmptyStruct_max_cdr_typesize {6UL}; constexpr uint32_t AppendableInheritanceEmptyStruct_max_key_cdr_typesize {0UL}; + constexpr uint32_t AppendableULongStruct_max_cdr_typesize {8UL}; constexpr uint32_t AppendableULongStruct_max_key_cdr_typesize {0UL}; @@ -105,79 +107,98 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableShortStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableUShortStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableLongStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableULongStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableLongLongStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableULongLongStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableFloatStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableDoubleStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableLongDoubleStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableBooleanStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableOctetStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableCharStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableWCharStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableUnionStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableEmptyStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableEmptyInheritanceStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableInheritanceStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableInheritanceEmptyStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableExtensibilityInheritance& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/appendableCdrAux.ipp b/test/dds-types-test/appendableCdrAux.ipp index ef826e05ade..33ce89db108 100644 --- a/test/dds-types-test/appendableCdrAux.ipp +++ b/test/dds-types-test/appendableCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_AppendableShortStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AppendableShortStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableShortStruct_cdr_plain(data_representation) && + sizeof(AppendableShortStruct) == AppendableShortStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AppendableShortStruct)); + + scdr.jump((array_size -1) * sizeof(AppendableShortStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AppendableShortStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableShortStruct_cdr_plain(data_representation) && + sizeof(AppendableShortStruct) == AppendableShortStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AppendableShortStruct)); + + scdr.jump((array_size - 1) * sizeof(AppendableShortStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableShortStruct& data) @@ -113,6 +196,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AppendableUShortStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -155,6 +246,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AppendableUShortStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableUShortStruct_cdr_plain(data_representation) && + sizeof(AppendableUShortStruct) == AppendableUShortStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AppendableUShortStruct)); + + scdr.jump((array_size -1) * sizeof(AppendableUShortStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -180,6 +309,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AppendableUShortStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableUShortStruct_cdr_plain(data_representation) && + sizeof(AppendableUShortStruct) == AppendableUShortStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AppendableUShortStruct)); + + scdr.jump((array_size - 1) * sizeof(AppendableUShortStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableUShortStruct& data) @@ -192,6 +357,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AppendableLongStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -234,6 +407,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AppendableLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableLongStruct_cdr_plain(data_representation) && + sizeof(AppendableLongStruct) == AppendableLongStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AppendableLongStruct)); + + scdr.jump((array_size -1) * sizeof(AppendableLongStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -259,6 +470,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AppendableLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableLongStruct_cdr_plain(data_representation) && + sizeof(AppendableLongStruct) == AppendableLongStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AppendableLongStruct)); + + scdr.jump((array_size - 1) * sizeof(AppendableLongStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableLongStruct& data) @@ -271,6 +518,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AppendableULongStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -313,6 +568,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AppendableULongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableULongStruct_cdr_plain(data_representation) && + sizeof(AppendableULongStruct) == AppendableULongStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AppendableULongStruct)); + + scdr.jump((array_size -1) * sizeof(AppendableULongStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -338,6 +631,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AppendableULongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableULongStruct_cdr_plain(data_representation) && + sizeof(AppendableULongStruct) == AppendableULongStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AppendableULongStruct)); + + scdr.jump((array_size - 1) * sizeof(AppendableULongStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableULongStruct& data) @@ -350,6 +679,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AppendableLongLongStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -392,6 +729,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AppendableLongLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableLongLongStruct_cdr_plain(data_representation) && + sizeof(AppendableLongLongStruct) == AppendableLongLongStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AppendableLongLongStruct)); + + scdr.jump((array_size -1) * sizeof(AppendableLongLongStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -417,6 +792,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AppendableLongLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableLongLongStruct_cdr_plain(data_representation) && + sizeof(AppendableLongLongStruct) == AppendableLongLongStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AppendableLongLongStruct)); + + scdr.jump((array_size - 1) * sizeof(AppendableLongLongStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableLongLongStruct& data) @@ -429,6 +840,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AppendableULongLongStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -471,6 +890,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AppendableULongLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableULongLongStruct_cdr_plain(data_representation) && + sizeof(AppendableULongLongStruct) == AppendableULongLongStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AppendableULongLongStruct)); + + scdr.jump((array_size -1) * sizeof(AppendableULongLongStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -496,6 +953,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AppendableULongLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableULongLongStruct_cdr_plain(data_representation) && + sizeof(AppendableULongLongStruct) == AppendableULongLongStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AppendableULongLongStruct)); + + scdr.jump((array_size - 1) * sizeof(AppendableULongLongStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableULongLongStruct& data) @@ -508,6 +1001,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AppendableFloatStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -550,6 +1051,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AppendableFloatStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableFloatStruct_cdr_plain(data_representation) && + sizeof(AppendableFloatStruct) == AppendableFloatStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AppendableFloatStruct)); + + scdr.jump((array_size -1) * sizeof(AppendableFloatStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -575,6 +1114,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AppendableFloatStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableFloatStruct_cdr_plain(data_representation) && + sizeof(AppendableFloatStruct) == AppendableFloatStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AppendableFloatStruct)); + + scdr.jump((array_size - 1) * sizeof(AppendableFloatStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableFloatStruct& data) @@ -587,6 +1162,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AppendableDoubleStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -629,6 +1212,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AppendableDoubleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableDoubleStruct_cdr_plain(data_representation) && + sizeof(AppendableDoubleStruct) == AppendableDoubleStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AppendableDoubleStruct)); + + scdr.jump((array_size -1) * sizeof(AppendableDoubleStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -654,6 +1275,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AppendableDoubleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableDoubleStruct_cdr_plain(data_representation) && + sizeof(AppendableDoubleStruct) == AppendableDoubleStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AppendableDoubleStruct)); + + scdr.jump((array_size - 1) * sizeof(AppendableDoubleStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableDoubleStruct& data) @@ -666,6 +1323,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AppendableLongDoubleStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -708,6 +1373,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AppendableLongDoubleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableLongDoubleStruct_cdr_plain(data_representation) && + sizeof(AppendableLongDoubleStruct) == AppendableLongDoubleStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AppendableLongDoubleStruct)); + + scdr.jump((array_size -1) * sizeof(AppendableLongDoubleStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -733,6 +1436,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AppendableLongDoubleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableLongDoubleStruct_cdr_plain(data_representation) && + sizeof(AppendableLongDoubleStruct) == AppendableLongDoubleStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AppendableLongDoubleStruct)); + + scdr.jump((array_size - 1) * sizeof(AppendableLongDoubleStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableLongDoubleStruct& data) @@ -745,6 +1484,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AppendableBooleanStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -787,6 +1534,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AppendableBooleanStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableBooleanStruct_cdr_plain(data_representation) && + sizeof(AppendableBooleanStruct) == AppendableBooleanStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AppendableBooleanStruct)); + + scdr.jump((array_size -1) * sizeof(AppendableBooleanStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -812,6 +1597,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AppendableBooleanStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableBooleanStruct_cdr_plain(data_representation) && + sizeof(AppendableBooleanStruct) == AppendableBooleanStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AppendableBooleanStruct)); + + scdr.jump((array_size - 1) * sizeof(AppendableBooleanStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableBooleanStruct& data) @@ -824,6 +1645,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AppendableOctetStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -866,6 +1695,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AppendableOctetStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableOctetStruct_cdr_plain(data_representation) && + sizeof(AppendableOctetStruct) == AppendableOctetStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AppendableOctetStruct)); + + scdr.jump((array_size -1) * sizeof(AppendableOctetStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -891,6 +1758,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AppendableOctetStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableOctetStruct_cdr_plain(data_representation) && + sizeof(AppendableOctetStruct) == AppendableOctetStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AppendableOctetStruct)); + + scdr.jump((array_size - 1) * sizeof(AppendableOctetStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableOctetStruct& data) @@ -903,6 +1806,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AppendableCharStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -945,6 +1856,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AppendableCharStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableCharStruct_cdr_plain(data_representation) && + sizeof(AppendableCharStruct) == AppendableCharStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AppendableCharStruct)); + + scdr.jump((array_size -1) * sizeof(AppendableCharStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -970,6 +1919,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AppendableCharStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableCharStruct_cdr_plain(data_representation) && + sizeof(AppendableCharStruct) == AppendableCharStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AppendableCharStruct)); + + scdr.jump((array_size - 1) * sizeof(AppendableCharStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableCharStruct& data) @@ -982,6 +1967,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AppendableWCharStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1024,6 +2017,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AppendableWCharStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableWCharStruct_cdr_plain(data_representation) && + sizeof(AppendableWCharStruct) == AppendableWCharStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AppendableWCharStruct)); + + scdr.jump((array_size -1) * sizeof(AppendableWCharStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1049,6 +2080,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AppendableWCharStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableWCharStruct_cdr_plain(data_representation) && + sizeof(AppendableWCharStruct) == AppendableWCharStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AppendableWCharStruct)); + + scdr.jump((array_size - 1) * sizeof(AppendableWCharStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableWCharStruct& data) @@ -1061,6 +2128,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AppendableUnionStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1103,6 +2178,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AppendableUnionStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableUnionStruct_cdr_plain(data_representation) && + sizeof(AppendableUnionStruct) == AppendableUnionStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AppendableUnionStruct)); + + scdr.jump((array_size -1) * sizeof(AppendableUnionStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1128,6 +2241,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AppendableUnionStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableUnionStruct_cdr_plain(data_representation) && + sizeof(AppendableUnionStruct) == AppendableUnionStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AppendableUnionStruct)); + + scdr.jump((array_size - 1) * sizeof(AppendableUnionStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableUnionStruct& data) @@ -1140,6 +2289,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AppendableEmptyStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1178,6 +2335,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AppendableEmptyStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableEmptyStruct_cdr_plain(data_representation) && + sizeof(AppendableEmptyStruct) == AppendableEmptyStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AppendableEmptyStruct)); + + scdr.jump((array_size -1) * sizeof(AppendableEmptyStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1195,6 +2390,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AppendableEmptyStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableEmptyStruct_cdr_plain(data_representation) && + sizeof(AppendableEmptyStruct) == AppendableEmptyStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AppendableEmptyStruct)); + + scdr.jump((array_size - 1) * sizeof(AppendableEmptyStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableEmptyStruct& data) @@ -1205,6 +2436,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AppendableEmptyInheritanceStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1247,6 +2486,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AppendableEmptyInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableEmptyInheritanceStruct_cdr_plain(data_representation) && + sizeof(AppendableEmptyInheritanceStruct) == AppendableEmptyInheritanceStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AppendableEmptyInheritanceStruct)); + + scdr.jump((array_size -1) * sizeof(AppendableEmptyInheritanceStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1272,6 +2549,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AppendableEmptyInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableEmptyInheritanceStruct_cdr_plain(data_representation) && + sizeof(AppendableEmptyInheritanceStruct) == AppendableEmptyInheritanceStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AppendableEmptyInheritanceStruct)); + + scdr.jump((array_size - 1) * sizeof(AppendableEmptyInheritanceStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableEmptyInheritanceStruct& data) @@ -1283,6 +2596,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AppendableInheritanceStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1329,6 +2650,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AppendableInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableInheritanceStruct_cdr_plain(data_representation) && + sizeof(AppendableInheritanceStruct) == AppendableInheritanceStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AppendableInheritanceStruct)); + + scdr.jump((array_size -1) * sizeof(AppendableInheritanceStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1358,6 +2717,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AppendableInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableInheritanceStruct_cdr_plain(data_representation) && + sizeof(AppendableInheritanceStruct) == AppendableInheritanceStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AppendableInheritanceStruct)); + + scdr.jump((array_size - 1) * sizeof(AppendableInheritanceStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableInheritanceStruct& data) @@ -1369,6 +2764,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AppendableInheritanceEmptyStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1411,6 +2814,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AppendableInheritanceEmptyStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableInheritanceEmptyStruct_cdr_plain(data_representation) && + sizeof(AppendableInheritanceEmptyStruct) == AppendableInheritanceEmptyStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AppendableInheritanceEmptyStruct)); + + scdr.jump((array_size -1) * sizeof(AppendableInheritanceEmptyStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1436,6 +2877,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AppendableInheritanceEmptyStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableInheritanceEmptyStruct_cdr_plain(data_representation) && + sizeof(AppendableInheritanceEmptyStruct) == AppendableInheritanceEmptyStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AppendableInheritanceEmptyStruct)); + + scdr.jump((array_size - 1) * sizeof(AppendableInheritanceEmptyStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableInheritanceEmptyStruct& data) @@ -1447,6 +2924,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AppendableExtensibilityInheritance_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1493,6 +2978,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AppendableExtensibilityInheritance* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableExtensibilityInheritance_cdr_plain(data_representation) && + sizeof(AppendableExtensibilityInheritance) == AppendableExtensibilityInheritance_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AppendableExtensibilityInheritance)); + + scdr.jump((array_size -1) * sizeof(AppendableExtensibilityInheritance)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1522,6 +3045,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AppendableExtensibilityInheritance* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableExtensibilityInheritance_cdr_plain(data_representation) && + sizeof(AppendableExtensibilityInheritance) == AppendableExtensibilityInheritance_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AppendableExtensibilityInheritance)); + + scdr.jump((array_size - 1) * sizeof(AppendableExtensibilityInheritance)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableExtensibilityInheritance& data) diff --git a/test/dds-types-test/appendablePubSubTypes.cxx b/test/dds-types-test/appendablePubSubTypes.cxx index 51025d715bc..a2f1e8181de 100644 --- a/test/dds-types-test/appendablePubSubTypes.cxx +++ b/test/dds-types-test/appendablePubSubTypes.cxx @@ -31,6 +31,85 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_AppendableWCharStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AppendableEmptyStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AppendableULongLongStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AppendableLongLongStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AppendableInheritanceStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AppendableLongDoubleStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AppendableDoubleStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AppendableUShortStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_AppendableUnionStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AppendableExtensibilityInheritance_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_AppendableShortStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AppendableBooleanStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AppendableEmptyInheritanceStruct_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_AppendableOctetStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AppendableCharStruct_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_AppendableInheritanceEmptyStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_AppendableULongStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AppendableFloatStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_AppendableLongStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + +} // namespace fastcdr +} // namespace eprosima + AppendableShortStructPubSubType::AppendableShortStructPubSubType() { set_name("AppendableShortStruct"); @@ -149,6 +228,17 @@ void AppendableShortStructPubSubType::delete_data( delete(reinterpret_cast<::AppendableShortStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AppendableShortStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AppendableShortStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +421,17 @@ void AppendableUShortStructPubSubType::delete_data( delete(reinterpret_cast<::AppendableUShortStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AppendableUShortStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AppendableUShortStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +614,17 @@ void AppendableLongStructPubSubType::delete_data( delete(reinterpret_cast<::AppendableLongStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AppendableLongStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AppendableLongStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -695,6 +807,17 @@ void AppendableULongStructPubSubType::delete_data( delete(reinterpret_cast<::AppendableULongStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AppendableULongStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AppendableULongStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -877,6 +1000,17 @@ void AppendableLongLongStructPubSubType::delete_data( delete(reinterpret_cast<::AppendableLongLongStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AppendableLongLongStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AppendableLongLongStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1059,6 +1193,17 @@ void AppendableULongLongStructPubSubType::delete_data( delete(reinterpret_cast<::AppendableULongLongStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AppendableULongLongStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AppendableULongLongStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1241,6 +1386,17 @@ void AppendableFloatStructPubSubType::delete_data( delete(reinterpret_cast<::AppendableFloatStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AppendableFloatStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AppendableFloatStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1423,6 +1579,17 @@ void AppendableDoubleStructPubSubType::delete_data( delete(reinterpret_cast<::AppendableDoubleStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AppendableDoubleStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AppendableDoubleStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1605,6 +1772,17 @@ void AppendableLongDoubleStructPubSubType::delete_data( delete(reinterpret_cast<::AppendableLongDoubleStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AppendableLongDoubleStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AppendableLongDoubleStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1787,6 +1965,17 @@ void AppendableBooleanStructPubSubType::delete_data( delete(reinterpret_cast<::AppendableBooleanStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AppendableBooleanStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AppendableBooleanStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1969,6 +2158,17 @@ void AppendableOctetStructPubSubType::delete_data( delete(reinterpret_cast<::AppendableOctetStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AppendableOctetStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AppendableOctetStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2151,6 +2351,17 @@ void AppendableCharStructPubSubType::delete_data( delete(reinterpret_cast<::AppendableCharStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AppendableCharStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AppendableCharStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2333,6 +2544,17 @@ void AppendableWCharStructPubSubType::delete_data( delete(reinterpret_cast<::AppendableWCharStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AppendableWCharStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AppendableWCharStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2515,6 +2737,17 @@ void AppendableUnionStructPubSubType::delete_data( delete(reinterpret_cast<::AppendableUnionStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AppendableUnionStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AppendableUnionStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2697,6 +2930,17 @@ void AppendableEmptyStructPubSubType::delete_data( delete(reinterpret_cast<::AppendableEmptyStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AppendableEmptyStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AppendableEmptyStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2879,6 +3123,17 @@ void AppendableEmptyInheritanceStructPubSubType::delete_data( delete(reinterpret_cast<::AppendableEmptyInheritanceStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AppendableEmptyInheritanceStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AppendableEmptyInheritanceStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3061,6 +3316,17 @@ void AppendableInheritanceStructPubSubType::delete_data( delete(reinterpret_cast<::AppendableInheritanceStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AppendableInheritanceStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AppendableInheritanceStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3243,6 +3509,17 @@ void AppendableInheritanceEmptyStructPubSubType::delete_data( delete(reinterpret_cast<::AppendableInheritanceEmptyStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AppendableInheritanceEmptyStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AppendableInheritanceEmptyStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3425,6 +3702,17 @@ void AppendableExtensibilityInheritancePubSubType::delete_data( delete(reinterpret_cast<::AppendableExtensibilityInheritance*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AppendableExtensibilityInheritancePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AppendableExtensibilityInheritancePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds-types-test/appendablePubSubTypes.hpp b/test/dds-types-test/appendablePubSubTypes.hpp index e712d979efc..e28bb776ea5 100644 --- a/test/dds-types-test/appendablePubSubTypes.hpp +++ b/test/dds-types-test/appendablePubSubTypes.hpp @@ -94,12 +94,8 @@ class AppendableShortStructPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -176,12 +172,8 @@ class AppendableUShortStructPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -258,12 +250,8 @@ class AppendableLongStructPubSubType : public eprosima::fastdds::dds::TopicDataT #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -340,12 +328,8 @@ class AppendableULongStructPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -422,12 +406,8 @@ class AppendableLongLongStructPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -504,12 +484,8 @@ class AppendableULongLongStructPubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -586,12 +562,8 @@ class AppendableFloatStructPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -668,12 +640,8 @@ class AppendableDoubleStructPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -750,12 +718,8 @@ class AppendableLongDoubleStructPubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -832,12 +796,8 @@ class AppendableBooleanStructPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -914,12 +874,8 @@ class AppendableOctetStructPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -996,12 +952,8 @@ class AppendableCharStructPubSubType : public eprosima::fastdds::dds::TopicDataT #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1078,12 +1030,8 @@ class AppendableWCharStructPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1160,12 +1108,8 @@ class AppendableUnionStructPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1242,12 +1186,8 @@ class AppendableEmptyStructPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1324,12 +1264,8 @@ class AppendableEmptyInheritanceStructPubSubType : public eprosima::fastdds::dds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1406,12 +1342,8 @@ class AppendableInheritanceStructPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1488,12 +1420,8 @@ class AppendableInheritanceEmptyStructPubSubType : public eprosima::fastdds::dds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1570,12 +1498,8 @@ class AppendableExtensibilityInheritancePubSubType : public eprosima::fastdds::d #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds-types-test/arrays.hpp b/test/dds-types-test/arrays.hpp index 87f592b4b8d..a45b06cc478 100644 --- a/test/dds-types-test/arrays.hpp +++ b/test/dds-types-test/arrays.hpp @@ -14022,6 +14022,309 @@ class BoundedBigArrays std::array m_var_array_big{0}; +}; +/*! + * @brief This class represents the structure LargeBasicPlainArray defined by the user in the IDL file. + * @ingroup arrays + */ +class LargeBasicPlainArray +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport LargeBasicPlainArray() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~LargeBasicPlainArray() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object LargeBasicPlainArray that will be copied. + */ + eProsima_user_DllExport LargeBasicPlainArray( + const LargeBasicPlainArray& x) + { + m_field1 = x.m_field1; + + m_var_large_basic_plain_array = x.m_var_large_basic_plain_array; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object LargeBasicPlainArray that will be copied. + */ + eProsima_user_DllExport LargeBasicPlainArray( + LargeBasicPlainArray&& x) noexcept + { + m_field1 = x.m_field1; + m_var_large_basic_plain_array = std::move(x.m_var_large_basic_plain_array); + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object LargeBasicPlainArray that will be copied. + */ + eProsima_user_DllExport LargeBasicPlainArray& operator =( + const LargeBasicPlainArray& x) + { + + m_field1 = x.m_field1; + + m_var_large_basic_plain_array = x.m_var_large_basic_plain_array; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object LargeBasicPlainArray that will be copied. + */ + eProsima_user_DllExport LargeBasicPlainArray& operator =( + LargeBasicPlainArray&& x) noexcept + { + + m_field1 = x.m_field1; + m_var_large_basic_plain_array = std::move(x.m_var_large_basic_plain_array); + return *this; + } + + /*! + * @brief Comparison operator. + * @param x LargeBasicPlainArray object to compare. + */ + eProsima_user_DllExport bool operator ==( + const LargeBasicPlainArray& x) const + { + return (m_field1 == x.m_field1 && + m_var_large_basic_plain_array == x.m_var_large_basic_plain_array); + } + + /*! + * @brief Comparison operator. + * @param x LargeBasicPlainArray object to compare. + */ + eProsima_user_DllExport bool operator !=( + const LargeBasicPlainArray& x) const + { + return !(*this == x); + } + + /*! + * @brief This function sets a value in member field1 + * @param _field1 New value for member field1 + */ + eProsima_user_DllExport void field1( + uint8_t _field1) + { + m_field1 = _field1; + } + + /*! + * @brief This function returns the value of member field1 + * @return Value of member field1 + */ + eProsima_user_DllExport uint8_t field1() const + { + return m_field1; + } + + /*! + * @brief This function returns a reference to member field1 + * @return Reference to member field1 + */ + eProsima_user_DllExport uint8_t& field1() + { + return m_field1; + } + + + /*! + * @brief This function copies the value in member var_large_basic_plain_array + * @param _var_large_basic_plain_array New value to be copied in member var_large_basic_plain_array + */ + eProsima_user_DllExport void var_large_basic_plain_array( + const std::array& _var_large_basic_plain_array) + { + m_var_large_basic_plain_array = _var_large_basic_plain_array; + } + + /*! + * @brief This function moves the value in member var_large_basic_plain_array + * @param _var_large_basic_plain_array New value to be moved in member var_large_basic_plain_array + */ + eProsima_user_DllExport void var_large_basic_plain_array( + std::array&& _var_large_basic_plain_array) + { + m_var_large_basic_plain_array = std::move(_var_large_basic_plain_array); + } + + /*! + * @brief This function returns a constant reference to member var_large_basic_plain_array + * @return Constant reference to member var_large_basic_plain_array + */ + eProsima_user_DllExport const std::array& var_large_basic_plain_array() const + { + return m_var_large_basic_plain_array; + } + + /*! + * @brief This function returns a reference to member var_large_basic_plain_array + * @return Reference to member var_large_basic_plain_array + */ + eProsima_user_DllExport std::array& var_large_basic_plain_array() + { + return m_var_large_basic_plain_array; + } + + + +private: + + uint8_t m_field1{0}; + std::array m_var_large_basic_plain_array; + +}; +/*! + * @brief This class represents the structure LargePlainArray defined by the user in the IDL file. + * @ingroup arrays + */ +class LargePlainArray +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport LargePlainArray() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~LargePlainArray() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object LargePlainArray that will be copied. + */ + eProsima_user_DllExport LargePlainArray( + const LargePlainArray& x) + { + m_var_large_plain_array = x.m_var_large_plain_array; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object LargePlainArray that will be copied. + */ + eProsima_user_DllExport LargePlainArray( + LargePlainArray&& x) noexcept + { + m_var_large_plain_array = std::move(x.m_var_large_plain_array); + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object LargePlainArray that will be copied. + */ + eProsima_user_DllExport LargePlainArray& operator =( + const LargePlainArray& x) + { + + m_var_large_plain_array = x.m_var_large_plain_array; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object LargePlainArray that will be copied. + */ + eProsima_user_DllExport LargePlainArray& operator =( + LargePlainArray&& x) noexcept + { + + m_var_large_plain_array = std::move(x.m_var_large_plain_array); + return *this; + } + + /*! + * @brief Comparison operator. + * @param x LargePlainArray object to compare. + */ + eProsima_user_DllExport bool operator ==( + const LargePlainArray& x) const + { + return (m_var_large_plain_array == x.m_var_large_plain_array); + } + + /*! + * @brief Comparison operator. + * @param x LargePlainArray object to compare. + */ + eProsima_user_DllExport bool operator !=( + const LargePlainArray& x) const + { + return !(*this == x); + } + + /*! + * @brief This function copies the value in member var_large_plain_array + * @param _var_large_plain_array New value to be copied in member var_large_plain_array + */ + eProsima_user_DllExport void var_large_plain_array( + const std::array& _var_large_plain_array) + { + m_var_large_plain_array = _var_large_plain_array; + } + + /*! + * @brief This function moves the value in member var_large_plain_array + * @param _var_large_plain_array New value to be moved in member var_large_plain_array + */ + eProsima_user_DllExport void var_large_plain_array( + std::array&& _var_large_plain_array) + { + m_var_large_plain_array = std::move(_var_large_plain_array); + } + + /*! + * @brief This function returns a constant reference to member var_large_plain_array + * @return Constant reference to member var_large_plain_array + */ + eProsima_user_DllExport const std::array& var_large_plain_array() const + { + return m_var_large_plain_array; + } + + /*! + * @brief This function returns a reference to member var_large_plain_array + * @return Reference to member var_large_plain_array + */ + eProsima_user_DllExport std::array& var_large_plain_array() + { + return m_var_large_plain_array; + } + + + +private: + + std::array m_var_large_plain_array; + }; #endif // _FAST_DDS_GENERATED_ARRAYS_HPP_ diff --git a/test/dds-types-test/arraysCdrAux.hpp b/test/dds-types-test/arraysCdrAux.hpp index 48e8a93bda3..4d0333c968c 100644 --- a/test/dds-types-test/arraysCdrAux.hpp +++ b/test/dds-types-test/arraysCdrAux.hpp @@ -125,6 +125,9 @@ constexpr uint32_t ArrayMultiDimensionString_max_key_cdr_typesize {0UL}; constexpr uint32_t ArrayChar_max_cdr_typesize {14UL}; constexpr uint32_t ArrayChar_max_key_cdr_typesize {0UL}; +constexpr uint32_t LargePlainArray_max_cdr_typesize {75497476UL}; +constexpr uint32_t LargePlainArray_max_key_cdr_typesize {0UL}; + constexpr uint32_t ArraySingleDimensionLiteralsString_max_cdr_typesize {1308UL}; constexpr uint32_t ArraySingleDimensionLiteralsString_max_key_cdr_typesize {0UL}; @@ -219,6 +222,9 @@ constexpr uint32_t ArrayMap_max_key_cdr_typesize {0UL}; constexpr uint32_t ArraySingleDimensionLiteralsShort_max_cdr_typesize {14UL}; constexpr uint32_t ArraySingleDimensionLiteralsShort_max_key_cdr_typesize {0UL}; +constexpr uint32_t LargeBasicPlainArray_max_cdr_typesize {25165832UL}; +constexpr uint32_t LargeBasicPlainArray_max_key_cdr_typesize {0UL}; + constexpr uint32_t BoundedSmallArrays_max_cdr_typesize {6UL}; constexpr uint32_t BoundedSmallArrays_max_key_cdr_typesize {0UL}; @@ -232,6 +238,7 @@ constexpr uint32_t ArrayMultiDimensionLiteralsChar_max_key_cdr_typesize {0UL}; constexpr uint32_t ArrayMultiDimensionLiteralsMap_max_cdr_typesize {1008UL}; constexpr uint32_t ArrayMultiDimensionLiteralsMap_max_key_cdr_typesize {0UL}; + constexpr uint32_t ArrayWChar_max_cdr_typesize {24UL}; constexpr uint32_t ArrayWChar_max_key_cdr_typesize {0UL}; @@ -304,6 +311,7 @@ constexpr uint32_t ArrayMultiDimensionFloat_max_key_cdr_typesize {0UL}; constexpr uint32_t ArrayMultiDimensionLiteralsLongDouble_max_cdr_typesize {4008UL}; constexpr uint32_t ArrayMultiDimensionLiteralsLongDouble_max_key_cdr_typesize {0UL}; + constexpr uint32_t ArrayMultiDimensionLiteralsShort_max_cdr_typesize {204UL}; constexpr uint32_t ArrayMultiDimensionLiteralsShort_max_key_cdr_typesize {0UL}; @@ -363,423 +371,602 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayUShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayULong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayLongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayULongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayFloat& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayLongDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayBoolean& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayOctet& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayUInt8& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayWChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayBoundedString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayBoundedWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayEnum& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayBitMask& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayAlias& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayShortArray& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySequence& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMap& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayUnion& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayStructure& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayBitset& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionUShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionULong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionULongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionFloat& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLongDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionBoolean& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionOctet& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionWChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionBoundedString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionBoundedWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionEnum& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionBitMask& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionAlias& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionSequence& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionMap& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionUnion& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionStructure& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionBitset& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsUnsignedShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsUnsignedLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsLongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsUnsignedLongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsFloat& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsLongDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsBoolean& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsOctet& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsWChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsBoundedString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsBoundedWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsEnum& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsBitMask& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsAlias& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsShortArray& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsSequence& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsMap& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsUnion& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsStructure& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsBitset& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsUShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsULong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsLongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsULongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsFloat& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsLongDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsBoolean& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsOctet& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsWChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsBoundedString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsBoundedWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsEnum& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsBitMask& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsAlias& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsSequence& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsMap& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsUnion& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsStructure& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsBitSet& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const BoundedSmallArrays& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const BoundedBigArrays& data); +eProsima_user_DllExport void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const LargeBasicPlainArray& data); + +#ifndef SWIG +namespace detail { + +template +struct LargeBasicPlainArray_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct LargeBasicPlainArray_f +{ + typedef std::array LargeBasicPlainArray::* type; + friend constexpr type get( + LargeBasicPlainArray_f); +}; + +template struct LargeBasicPlainArray_rob; + +template +inline std::size_t constexpr LargeBasicPlainArray_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + +eProsima_user_DllExport void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const LargePlainArray& data); + +#ifndef SWIG +namespace detail { + +template +struct LargePlainArray_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct LargePlainArray_f +{ + typedef std::array LargePlainArray::* type; + friend constexpr type get( + LargePlainArray_f); +}; + +template struct LargePlainArray_rob; + +template +inline std::size_t constexpr LargePlainArray_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/arraysCdrAux.ipp b/test/dds-types-test/arraysCdrAux.ipp index 9a609bc16f9..318b5e907b3 100644 --- a/test/dds-types-test/arraysCdrAux.ipp +++ b/test/dds-types-test/arraysCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_ArrayShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayShort_cdr_plain(data_representation) && + sizeof(ArrayShort) == ArrayShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayShort)); + + scdr.jump((array_size -1) * sizeof(ArrayShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayShort_cdr_plain(data_representation) && + sizeof(ArrayShort) == ArrayShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayShort)); + + scdr.jump((array_size - 1) * sizeof(ArrayShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayShort& data) @@ -113,6 +196,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayUShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -155,6 +246,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayUShort_cdr_plain(data_representation) && + sizeof(ArrayUShort) == ArrayUShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayUShort)); + + scdr.jump((array_size -1) * sizeof(ArrayUShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -180,6 +309,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayUShort_cdr_plain(data_representation) && + sizeof(ArrayUShort) == ArrayUShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayUShort)); + + scdr.jump((array_size - 1) * sizeof(ArrayUShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayUShort& data) @@ -192,6 +357,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -234,6 +407,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayLong_cdr_plain(data_representation) && + sizeof(ArrayLong) == ArrayLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayLong)); + + scdr.jump((array_size -1) * sizeof(ArrayLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -259,6 +470,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayLong_cdr_plain(data_representation) && + sizeof(ArrayLong) == ArrayLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayLong)); + + scdr.jump((array_size - 1) * sizeof(ArrayLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayLong& data) @@ -271,6 +518,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayULong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -313,6 +568,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayULong_cdr_plain(data_representation) && + sizeof(ArrayULong) == ArrayULong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayULong)); + + scdr.jump((array_size -1) * sizeof(ArrayULong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -338,6 +631,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayULong_cdr_plain(data_representation) && + sizeof(ArrayULong) == ArrayULong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayULong)); + + scdr.jump((array_size - 1) * sizeof(ArrayULong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayULong& data) @@ -350,6 +679,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayLongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -392,6 +729,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayLongLong_cdr_plain(data_representation) && + sizeof(ArrayLongLong) == ArrayLongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayLongLong)); + + scdr.jump((array_size -1) * sizeof(ArrayLongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -417,6 +792,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayLongLong_cdr_plain(data_representation) && + sizeof(ArrayLongLong) == ArrayLongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayLongLong)); + + scdr.jump((array_size - 1) * sizeof(ArrayLongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayLongLong& data) @@ -429,6 +840,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayULongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -471,6 +890,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayULongLong_cdr_plain(data_representation) && + sizeof(ArrayULongLong) == ArrayULongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayULongLong)); + + scdr.jump((array_size -1) * sizeof(ArrayULongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -496,6 +953,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayULongLong_cdr_plain(data_representation) && + sizeof(ArrayULongLong) == ArrayULongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayULongLong)); + + scdr.jump((array_size - 1) * sizeof(ArrayULongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayULongLong& data) @@ -508,6 +1001,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayFloat_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -550,6 +1051,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayFloat_cdr_plain(data_representation) && + sizeof(ArrayFloat) == ArrayFloat_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayFloat)); + + scdr.jump((array_size -1) * sizeof(ArrayFloat)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -575,6 +1114,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayFloat_cdr_plain(data_representation) && + sizeof(ArrayFloat) == ArrayFloat_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayFloat)); + + scdr.jump((array_size - 1) * sizeof(ArrayFloat)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayFloat& data) @@ -587,6 +1162,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -629,6 +1212,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayDouble_cdr_plain(data_representation) && + sizeof(ArrayDouble) == ArrayDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayDouble)); + + scdr.jump((array_size -1) * sizeof(ArrayDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -654,6 +1275,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayDouble_cdr_plain(data_representation) && + sizeof(ArrayDouble) == ArrayDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayDouble)); + + scdr.jump((array_size - 1) * sizeof(ArrayDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayDouble& data) @@ -666,6 +1323,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayLongDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -708,6 +1373,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayLongDouble_cdr_plain(data_representation) && + sizeof(ArrayLongDouble) == ArrayLongDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayLongDouble)); + + scdr.jump((array_size -1) * sizeof(ArrayLongDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -733,6 +1436,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayLongDouble_cdr_plain(data_representation) && + sizeof(ArrayLongDouble) == ArrayLongDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayLongDouble)); + + scdr.jump((array_size - 1) * sizeof(ArrayLongDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayLongDouble& data) @@ -745,6 +1484,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayBoolean_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -787,6 +1534,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayBoolean_cdr_plain(data_representation) && + sizeof(ArrayBoolean) == ArrayBoolean_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayBoolean)); + + scdr.jump((array_size -1) * sizeof(ArrayBoolean)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -812,6 +1597,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayBoolean_cdr_plain(data_representation) && + sizeof(ArrayBoolean) == ArrayBoolean_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayBoolean)); + + scdr.jump((array_size - 1) * sizeof(ArrayBoolean)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayBoolean& data) @@ -824,6 +1645,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayOctet_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -866,6 +1695,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayOctet_cdr_plain(data_representation) && + sizeof(ArrayOctet) == ArrayOctet_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayOctet)); + + scdr.jump((array_size -1) * sizeof(ArrayOctet)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -891,6 +1758,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayOctet_cdr_plain(data_representation) && + sizeof(ArrayOctet) == ArrayOctet_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayOctet)); + + scdr.jump((array_size - 1) * sizeof(ArrayOctet)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayOctet& data) @@ -903,6 +1806,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayUInt8_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -945,6 +1856,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayUInt8* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayUInt8_cdr_plain(data_representation) && + sizeof(ArrayUInt8) == ArrayUInt8_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayUInt8)); + + scdr.jump((array_size -1) * sizeof(ArrayUInt8)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -970,6 +1919,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayUInt8* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayUInt8_cdr_plain(data_representation) && + sizeof(ArrayUInt8) == ArrayUInt8_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayUInt8)); + + scdr.jump((array_size - 1) * sizeof(ArrayUInt8)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayUInt8& data) @@ -982,6 +1967,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1024,6 +2017,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayChar_cdr_plain(data_representation) && + sizeof(ArrayChar) == ArrayChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayChar)); + + scdr.jump((array_size -1) * sizeof(ArrayChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1049,6 +2080,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayChar_cdr_plain(data_representation) && + sizeof(ArrayChar) == ArrayChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayChar)); + + scdr.jump((array_size - 1) * sizeof(ArrayChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayChar& data) @@ -1061,6 +2128,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayWChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1103,6 +2178,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayWChar_cdr_plain(data_representation) && + sizeof(ArrayWChar) == ArrayWChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayWChar)); + + scdr.jump((array_size -1) * sizeof(ArrayWChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1128,6 +2241,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayWChar_cdr_plain(data_representation) && + sizeof(ArrayWChar) == ArrayWChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayWChar)); + + scdr.jump((array_size - 1) * sizeof(ArrayWChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayWChar& data) @@ -1140,6 +2289,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1182,6 +2339,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayString_cdr_plain(data_representation) && + sizeof(ArrayString) == ArrayString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayString)); + + scdr.jump((array_size -1) * sizeof(ArrayString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1207,6 +2402,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayString_cdr_plain(data_representation) && + sizeof(ArrayString) == ArrayString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayString)); + + scdr.jump((array_size - 1) * sizeof(ArrayString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayString& data) @@ -1219,6 +2450,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1261,6 +2500,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayWString_cdr_plain(data_representation) && + sizeof(ArrayWString) == ArrayWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayWString)); + + scdr.jump((array_size -1) * sizeof(ArrayWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1286,6 +2563,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayWString_cdr_plain(data_representation) && + sizeof(ArrayWString) == ArrayWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayWString)); + + scdr.jump((array_size - 1) * sizeof(ArrayWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayWString& data) @@ -1298,6 +2611,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayBoundedString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1340,6 +2661,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayBoundedString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayBoundedString_cdr_plain(data_representation) && + sizeof(ArrayBoundedString) == ArrayBoundedString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayBoundedString)); + + scdr.jump((array_size -1) * sizeof(ArrayBoundedString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1365,6 +2724,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayBoundedString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayBoundedString_cdr_plain(data_representation) && + sizeof(ArrayBoundedString) == ArrayBoundedString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayBoundedString)); + + scdr.jump((array_size - 1) * sizeof(ArrayBoundedString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayBoundedString& data) @@ -1377,6 +2772,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayBoundedWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1419,6 +2822,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayBoundedWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayBoundedWString_cdr_plain(data_representation) && + sizeof(ArrayBoundedWString) == ArrayBoundedWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayBoundedWString)); + + scdr.jump((array_size -1) * sizeof(ArrayBoundedWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1444,6 +2885,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayBoundedWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayBoundedWString_cdr_plain(data_representation) && + sizeof(ArrayBoundedWString) == ArrayBoundedWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayBoundedWString)); + + scdr.jump((array_size - 1) * sizeof(ArrayBoundedWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayBoundedWString& data) @@ -1456,6 +2933,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayEnum_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1498,6 +2983,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayEnum* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayEnum_cdr_plain(data_representation) && + sizeof(ArrayEnum) == ArrayEnum_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayEnum)); + + scdr.jump((array_size -1) * sizeof(ArrayEnum)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1523,6 +3046,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayEnum* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayEnum_cdr_plain(data_representation) && + sizeof(ArrayEnum) == ArrayEnum_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayEnum)); + + scdr.jump((array_size - 1) * sizeof(ArrayEnum)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayEnum& data) @@ -1535,6 +3094,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayBitMask_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1577,6 +3144,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayBitMask* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayBitMask_cdr_plain(data_representation) && + sizeof(ArrayBitMask) == ArrayBitMask_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayBitMask)); + + scdr.jump((array_size -1) * sizeof(ArrayBitMask)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1602,6 +3207,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayBitMask* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayBitMask_cdr_plain(data_representation) && + sizeof(ArrayBitMask) == ArrayBitMask_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayBitMask)); + + scdr.jump((array_size - 1) * sizeof(ArrayBitMask)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayBitMask& data) @@ -1614,6 +3255,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayAlias_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1656,6 +3305,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayAlias* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayAlias_cdr_plain(data_representation) && + sizeof(ArrayAlias) == ArrayAlias_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayAlias)); + + scdr.jump((array_size -1) * sizeof(ArrayAlias)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1681,6 +3368,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayAlias* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayAlias_cdr_plain(data_representation) && + sizeof(ArrayAlias) == ArrayAlias_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayAlias)); + + scdr.jump((array_size - 1) * sizeof(ArrayAlias)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayAlias& data) @@ -1693,6 +3416,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayShortArray_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1735,6 +3466,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayShortArray* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayShortArray_cdr_plain(data_representation) && + sizeof(ArrayShortArray) == ArrayShortArray_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayShortArray)); + + scdr.jump((array_size -1) * sizeof(ArrayShortArray)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1760,6 +3529,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayShortArray* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayShortArray_cdr_plain(data_representation) && + sizeof(ArrayShortArray) == ArrayShortArray_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayShortArray)); + + scdr.jump((array_size - 1) * sizeof(ArrayShortArray)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayShortArray& data) @@ -1772,6 +3577,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySequence_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1814,6 +3627,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySequence* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySequence_cdr_plain(data_representation) && + sizeof(ArraySequence) == ArraySequence_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySequence)); + + scdr.jump((array_size -1) * sizeof(ArraySequence)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1839,6 +3690,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySequence* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySequence_cdr_plain(data_representation) && + sizeof(ArraySequence) == ArraySequence_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySequence)); + + scdr.jump((array_size - 1) * sizeof(ArraySequence)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySequence& data) @@ -1851,6 +3738,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMap_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1893,6 +3788,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMap* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMap_cdr_plain(data_representation) && + sizeof(ArrayMap) == ArrayMap_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMap)); + + scdr.jump((array_size -1) * sizeof(ArrayMap)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1918,6 +3851,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMap* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMap_cdr_plain(data_representation) && + sizeof(ArrayMap) == ArrayMap_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMap)); + + scdr.jump((array_size - 1) * sizeof(ArrayMap)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMap& data) @@ -1930,6 +3899,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayUnion_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1972,6 +3949,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayUnion* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayUnion_cdr_plain(data_representation) && + sizeof(ArrayUnion) == ArrayUnion_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayUnion)); + + scdr.jump((array_size -1) * sizeof(ArrayUnion)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1997,6 +4012,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayUnion* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayUnion_cdr_plain(data_representation) && + sizeof(ArrayUnion) == ArrayUnion_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayUnion)); + + scdr.jump((array_size - 1) * sizeof(ArrayUnion)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayUnion& data) @@ -2009,6 +4060,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayStructure_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2051,6 +4110,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayStructure_cdr_plain(data_representation) && + sizeof(ArrayStructure) == ArrayStructure_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayStructure)); + + scdr.jump((array_size -1) * sizeof(ArrayStructure)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2076,6 +4173,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayStructure_cdr_plain(data_representation) && + sizeof(ArrayStructure) == ArrayStructure_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayStructure)); + + scdr.jump((array_size - 1) * sizeof(ArrayStructure)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayStructure& data) @@ -2088,6 +4221,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayBitset_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2130,6 +4271,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayBitset* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayBitset_cdr_plain(data_representation) && + sizeof(ArrayBitset) == ArrayBitset_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayBitset)); + + scdr.jump((array_size -1) * sizeof(ArrayBitset)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2155,6 +4334,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayBitset* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayBitset_cdr_plain(data_representation) && + sizeof(ArrayBitset) == ArrayBitset_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayBitset)); + + scdr.jump((array_size - 1) * sizeof(ArrayBitset)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayBitset& data) @@ -2167,6 +4382,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2209,6 +4432,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionShort_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionShort) == ArrayMultiDimensionShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionShort)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2234,6 +4495,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionShort_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionShort) == ArrayMultiDimensionShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionShort)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionShort& data) @@ -2246,6 +4543,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionUShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2288,6 +4593,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionUShort_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionUShort) == ArrayMultiDimensionUShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionUShort)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionUShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2313,6 +4656,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionUShort_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionUShort) == ArrayMultiDimensionUShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionUShort)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionUShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionUShort& data) @@ -2325,6 +4704,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2367,6 +4754,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLong_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLong) == ArrayMultiDimensionLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLong)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2392,6 +4817,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLong_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLong) == ArrayMultiDimensionLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLong)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLong& data) @@ -2404,6 +4865,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionULong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2446,6 +4915,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionULong_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionULong) == ArrayMultiDimensionULong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionULong)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionULong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2471,6 +4978,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionULong_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionULong) == ArrayMultiDimensionULong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionULong)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionULong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionULong& data) @@ -2483,6 +5026,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2525,6 +5076,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLongLong_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLongLong) == ArrayMultiDimensionLongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLongLong)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2550,6 +5139,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLongLong_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLongLong) == ArrayMultiDimensionLongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLongLong)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLongLong& data) @@ -2562,6 +5187,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionULongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2604,6 +5237,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionULongLong_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionULongLong) == ArrayMultiDimensionULongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionULongLong)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionULongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2629,6 +5300,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionULongLong_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionULongLong) == ArrayMultiDimensionULongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionULongLong)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionULongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionULongLong& data) @@ -2641,6 +5348,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionFloat_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2683,6 +5398,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionFloat_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionFloat) == ArrayMultiDimensionFloat_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionFloat)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionFloat)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2708,6 +5461,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionFloat_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionFloat) == ArrayMultiDimensionFloat_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionFloat)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionFloat)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionFloat& data) @@ -2720,6 +5509,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2762,6 +5559,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionDouble_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionDouble) == ArrayMultiDimensionDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionDouble)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2787,6 +5622,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionDouble_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionDouble) == ArrayMultiDimensionDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionDouble)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionDouble& data) @@ -2799,6 +5670,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLongDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2841,6 +5720,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLongDouble_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLongDouble) == ArrayMultiDimensionLongDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLongDouble)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLongDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2866,6 +5783,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLongDouble_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLongDouble) == ArrayMultiDimensionLongDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLongDouble)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLongDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLongDouble& data) @@ -2878,6 +5831,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionBoolean_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2920,6 +5881,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionBoolean_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionBoolean) == ArrayMultiDimensionBoolean_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionBoolean)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionBoolean)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2945,6 +5944,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionBoolean_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionBoolean) == ArrayMultiDimensionBoolean_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionBoolean)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionBoolean)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionBoolean& data) @@ -2957,6 +5992,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionOctet_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2999,6 +6042,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionOctet_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionOctet) == ArrayMultiDimensionOctet_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionOctet)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionOctet)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3024,6 +6105,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionOctet_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionOctet) == ArrayMultiDimensionOctet_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionOctet)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionOctet)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionOctet& data) @@ -3036,6 +6153,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3078,6 +6203,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionChar_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionChar) == ArrayMultiDimensionChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionChar)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3103,6 +6266,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionChar_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionChar) == ArrayMultiDimensionChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionChar)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionChar& data) @@ -3115,6 +6314,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionWChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3157,6 +6364,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionWChar_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionWChar) == ArrayMultiDimensionWChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionWChar)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionWChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3182,6 +6427,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionWChar_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionWChar) == ArrayMultiDimensionWChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionWChar)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionWChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionWChar& data) @@ -3194,6 +6475,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3236,6 +6525,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionString_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionString) == ArrayMultiDimensionString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionString)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3261,6 +6588,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionString_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionString) == ArrayMultiDimensionString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionString)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionString& data) @@ -3273,6 +6636,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3315,6 +6686,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionWString_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionWString) == ArrayMultiDimensionWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionWString)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3340,6 +6749,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionWString_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionWString) == ArrayMultiDimensionWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionWString)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionWString& data) @@ -3352,6 +6797,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionBoundedString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3394,6 +6847,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionBoundedString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionBoundedString_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionBoundedString) == ArrayMultiDimensionBoundedString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionBoundedString)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionBoundedString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3419,6 +6910,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionBoundedString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionBoundedString_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionBoundedString) == ArrayMultiDimensionBoundedString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionBoundedString)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionBoundedString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionBoundedString& data) @@ -3431,6 +6958,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionBoundedWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3473,6 +7008,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionBoundedWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionBoundedWString_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionBoundedWString) == ArrayMultiDimensionBoundedWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionBoundedWString)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionBoundedWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3498,6 +7071,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionBoundedWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionBoundedWString_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionBoundedWString) == ArrayMultiDimensionBoundedWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionBoundedWString)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionBoundedWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionBoundedWString& data) @@ -3510,6 +7119,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionEnum_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3552,6 +7169,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionEnum* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionEnum_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionEnum) == ArrayMultiDimensionEnum_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionEnum)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionEnum)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3577,6 +7232,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionEnum* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionEnum_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionEnum) == ArrayMultiDimensionEnum_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionEnum)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionEnum)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionEnum& data) @@ -3589,6 +7280,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionBitMask_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3631,6 +7330,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionBitMask* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionBitMask_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionBitMask) == ArrayMultiDimensionBitMask_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionBitMask)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionBitMask)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3656,6 +7393,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionBitMask* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionBitMask_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionBitMask) == ArrayMultiDimensionBitMask_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionBitMask)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionBitMask)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionBitMask& data) @@ -3668,6 +7441,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionAlias_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3710,6 +7491,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionAlias* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionAlias_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionAlias) == ArrayMultiDimensionAlias_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionAlias)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionAlias)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3735,6 +7554,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionAlias* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionAlias_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionAlias) == ArrayMultiDimensionAlias_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionAlias)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionAlias)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionAlias& data) @@ -3747,6 +7602,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionSequence_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3789,6 +7652,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionSequence* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionSequence_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionSequence) == ArrayMultiDimensionSequence_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionSequence)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionSequence)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3814,6 +7715,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionSequence* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionSequence_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionSequence) == ArrayMultiDimensionSequence_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionSequence)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionSequence)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionSequence& data) @@ -3826,6 +7763,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionMap_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3868,6 +7813,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionMap* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionMap_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionMap) == ArrayMultiDimensionMap_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionMap)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionMap)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3893,6 +7876,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionMap* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionMap_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionMap) == ArrayMultiDimensionMap_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionMap)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionMap)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionMap& data) @@ -3905,6 +7924,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionUnion_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3947,6 +7974,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionUnion* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionUnion_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionUnion) == ArrayMultiDimensionUnion_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionUnion)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionUnion)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3972,6 +8037,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionUnion* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionUnion_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionUnion) == ArrayMultiDimensionUnion_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionUnion)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionUnion)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionUnion& data) @@ -3984,6 +8085,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionStructure_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4026,6 +8135,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionStructure_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionStructure) == ArrayMultiDimensionStructure_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionStructure)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionStructure)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4051,6 +8198,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionStructure_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionStructure) == ArrayMultiDimensionStructure_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionStructure)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionStructure)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionStructure& data) @@ -4063,6 +8246,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionBitset_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4105,6 +8296,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionBitset* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionBitset_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionBitset) == ArrayMultiDimensionBitset_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionBitset)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionBitset)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4130,6 +8359,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionBitset* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionBitset_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionBitset) == ArrayMultiDimensionBitset_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionBitset)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionBitset)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionBitset& data) @@ -4142,6 +8407,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4184,6 +8457,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsShort_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsShort) == ArraySingleDimensionLiteralsShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsShort)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4209,6 +8520,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsShort_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsShort) == ArraySingleDimensionLiteralsShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsShort)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsShort& data) @@ -4221,6 +8568,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsUnsignedShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4263,6 +8618,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsUnsignedShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsUnsignedShort_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsUnsignedShort) == ArraySingleDimensionLiteralsUnsignedShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsUnsignedShort)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsUnsignedShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4288,6 +8681,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsUnsignedShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsUnsignedShort_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsUnsignedShort) == ArraySingleDimensionLiteralsUnsignedShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsUnsignedShort)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsUnsignedShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsUnsignedShort& data) @@ -4300,6 +8729,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4342,6 +8779,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsLong_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsLong) == ArraySingleDimensionLiteralsLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsLong)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4367,6 +8842,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsLong_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsLong) == ArraySingleDimensionLiteralsLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsLong)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsLong& data) @@ -4379,6 +8890,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsUnsignedLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4421,6 +8940,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsUnsignedLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsUnsignedLong_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsUnsignedLong) == ArraySingleDimensionLiteralsUnsignedLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsUnsignedLong)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsUnsignedLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4446,6 +9003,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsUnsignedLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsUnsignedLong_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsUnsignedLong) == ArraySingleDimensionLiteralsUnsignedLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsUnsignedLong)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsUnsignedLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsUnsignedLong& data) @@ -4458,6 +9051,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsLongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4500,6 +9101,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsLongLong_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsLongLong) == ArraySingleDimensionLiteralsLongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsLongLong)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsLongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4525,6 +9164,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsLongLong_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsLongLong) == ArraySingleDimensionLiteralsLongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsLongLong)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsLongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsLongLong& data) @@ -4537,6 +9212,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsUnsignedLongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4579,6 +9262,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsUnsignedLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsUnsignedLongLong_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsUnsignedLongLong) == ArraySingleDimensionLiteralsUnsignedLongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsUnsignedLongLong)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsUnsignedLongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4604,6 +9325,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsUnsignedLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsUnsignedLongLong_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsUnsignedLongLong) == ArraySingleDimensionLiteralsUnsignedLongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsUnsignedLongLong)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsUnsignedLongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsUnsignedLongLong& data) @@ -4616,6 +9373,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsFloat_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4658,6 +9423,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsFloat_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsFloat) == ArraySingleDimensionLiteralsFloat_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsFloat)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsFloat)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4683,6 +9486,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsFloat_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsFloat) == ArraySingleDimensionLiteralsFloat_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsFloat)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsFloat)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsFloat& data) @@ -4695,6 +9534,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4737,6 +9584,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsDouble_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsDouble) == ArraySingleDimensionLiteralsDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsDouble)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4762,6 +9647,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsDouble_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsDouble) == ArraySingleDimensionLiteralsDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsDouble)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsDouble& data) @@ -4774,6 +9695,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsLongDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4816,6 +9745,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsLongDouble_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsLongDouble) == ArraySingleDimensionLiteralsLongDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsLongDouble)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsLongDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4841,6 +9808,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsLongDouble_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsLongDouble) == ArraySingleDimensionLiteralsLongDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsLongDouble)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsLongDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsLongDouble& data) @@ -4853,6 +9856,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsBoolean_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4895,6 +9906,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsBoolean_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsBoolean) == ArraySingleDimensionLiteralsBoolean_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsBoolean)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsBoolean)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4920,6 +9969,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsBoolean_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsBoolean) == ArraySingleDimensionLiteralsBoolean_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsBoolean)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsBoolean)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsBoolean& data) @@ -4932,6 +10017,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsOctet_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4974,6 +10067,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsOctet_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsOctet) == ArraySingleDimensionLiteralsOctet_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsOctet)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsOctet)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4999,6 +10130,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsOctet_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsOctet) == ArraySingleDimensionLiteralsOctet_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsOctet)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsOctet)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsOctet& data) @@ -5011,6 +10178,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5053,6 +10228,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsChar_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsChar) == ArraySingleDimensionLiteralsChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsChar)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5078,6 +10291,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsChar_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsChar) == ArraySingleDimensionLiteralsChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsChar)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsChar& data) @@ -5090,6 +10339,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsWChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5132,6 +10389,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsWChar_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsWChar) == ArraySingleDimensionLiteralsWChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsWChar)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsWChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5157,6 +10452,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsWChar_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsWChar) == ArraySingleDimensionLiteralsWChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsWChar)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsWChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsWChar& data) @@ -5169,6 +10500,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5211,6 +10550,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsString_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsString) == ArraySingleDimensionLiteralsString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsString)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5236,6 +10613,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsString_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsString) == ArraySingleDimensionLiteralsString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsString)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsString& data) @@ -5248,6 +10661,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5290,6 +10711,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsWString_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsWString) == ArraySingleDimensionLiteralsWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsWString)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5315,6 +10774,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsWString_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsWString) == ArraySingleDimensionLiteralsWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsWString)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsWString& data) @@ -5327,6 +10822,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsBoundedString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5369,6 +10872,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsBoundedString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsBoundedString_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsBoundedString) == ArraySingleDimensionLiteralsBoundedString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsBoundedString)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsBoundedString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5394,6 +10935,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsBoundedString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsBoundedString_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsBoundedString) == ArraySingleDimensionLiteralsBoundedString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsBoundedString)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsBoundedString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsBoundedString& data) @@ -5406,6 +10983,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsBoundedWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5448,6 +11033,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsBoundedWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsBoundedWString_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsBoundedWString) == ArraySingleDimensionLiteralsBoundedWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsBoundedWString)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsBoundedWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5473,6 +11096,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsBoundedWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsBoundedWString_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsBoundedWString) == ArraySingleDimensionLiteralsBoundedWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsBoundedWString)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsBoundedWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsBoundedWString& data) @@ -5485,6 +11144,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsEnum_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5527,6 +11194,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsEnum* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsEnum_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsEnum) == ArraySingleDimensionLiteralsEnum_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsEnum)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsEnum)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5552,6 +11257,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsEnum* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsEnum_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsEnum) == ArraySingleDimensionLiteralsEnum_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsEnum)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsEnum)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsEnum& data) @@ -5564,6 +11305,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsBitMask_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5606,6 +11355,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsBitMask* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsBitMask_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsBitMask) == ArraySingleDimensionLiteralsBitMask_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsBitMask)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsBitMask)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5631,6 +11418,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsBitMask* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsBitMask_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsBitMask) == ArraySingleDimensionLiteralsBitMask_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsBitMask)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsBitMask)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsBitMask& data) @@ -5643,6 +11466,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsAlias_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5685,6 +11516,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsAlias* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsAlias_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsAlias) == ArraySingleDimensionLiteralsAlias_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsAlias)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsAlias)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5710,6 +11579,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsAlias* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsAlias_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsAlias) == ArraySingleDimensionLiteralsAlias_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsAlias)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsAlias)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsAlias& data) @@ -5722,6 +11627,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsShortArray_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5764,6 +11677,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsShortArray* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsShortArray_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsShortArray) == ArraySingleDimensionLiteralsShortArray_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsShortArray)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsShortArray)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5789,6 +11740,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsShortArray* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsShortArray_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsShortArray) == ArraySingleDimensionLiteralsShortArray_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsShortArray)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsShortArray)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsShortArray& data) @@ -5801,6 +11788,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsSequence_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5843,6 +11838,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsSequence* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsSequence_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsSequence) == ArraySingleDimensionLiteralsSequence_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsSequence)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsSequence)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5868,6 +11901,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsSequence* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsSequence_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsSequence) == ArraySingleDimensionLiteralsSequence_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsSequence)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsSequence)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsSequence& data) @@ -5880,6 +11949,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsMap_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5922,6 +11999,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsMap* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsMap_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsMap) == ArraySingleDimensionLiteralsMap_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsMap)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsMap)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5947,6 +12062,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsMap* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsMap_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsMap) == ArraySingleDimensionLiteralsMap_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsMap)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsMap)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsMap& data) @@ -5959,6 +12110,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsUnion_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6001,6 +12160,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsUnion* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsUnion_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsUnion) == ArraySingleDimensionLiteralsUnion_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsUnion)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsUnion)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6026,6 +12223,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsUnion* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsUnion_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsUnion) == ArraySingleDimensionLiteralsUnion_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsUnion)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsUnion)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsUnion& data) @@ -6038,6 +12271,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsStructure_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6080,6 +12321,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsStructure_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsStructure) == ArraySingleDimensionLiteralsStructure_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsStructure)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsStructure)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6105,6 +12384,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsStructure_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsStructure) == ArraySingleDimensionLiteralsStructure_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsStructure)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsStructure)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsStructure& data) @@ -6117,6 +12432,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArraySingleDimensionLiteralsBitset_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6159,6 +12482,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArraySingleDimensionLiteralsBitset* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsBitset_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsBitset) == ArraySingleDimensionLiteralsBitset_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsBitset)); + + scdr.jump((array_size -1) * sizeof(ArraySingleDimensionLiteralsBitset)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6184,6 +12545,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArraySingleDimensionLiteralsBitset* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArraySingleDimensionLiteralsBitset_cdr_plain(data_representation) && + sizeof(ArraySingleDimensionLiteralsBitset) == ArraySingleDimensionLiteralsBitset_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArraySingleDimensionLiteralsBitset)); + + scdr.jump((array_size - 1) * sizeof(ArraySingleDimensionLiteralsBitset)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArraySingleDimensionLiteralsBitset& data) @@ -6196,6 +12593,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6238,6 +12643,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsShort_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsShort) == ArrayMultiDimensionLiteralsShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsShort)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6263,6 +12706,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsShort_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsShort) == ArrayMultiDimensionLiteralsShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsShort)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsShort& data) @@ -6275,6 +12754,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsUShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6317,6 +12804,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsUShort_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsUShort) == ArrayMultiDimensionLiteralsUShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsUShort)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsUShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6342,6 +12867,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsUShort_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsUShort) == ArrayMultiDimensionLiteralsUShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsUShort)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsUShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsUShort& data) @@ -6354,6 +12915,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6396,6 +12965,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsLong_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsLong) == ArrayMultiDimensionLiteralsLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsLong)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6421,6 +13028,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsLong_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsLong) == ArrayMultiDimensionLiteralsLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsLong)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsLong& data) @@ -6433,6 +13076,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsULong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6475,6 +13126,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsULong_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsULong) == ArrayMultiDimensionLiteralsULong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsULong)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsULong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6500,6 +13189,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsULong_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsULong) == ArrayMultiDimensionLiteralsULong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsULong)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsULong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsULong& data) @@ -6512,6 +13237,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsLongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6554,6 +13287,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsLongLong_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsLongLong) == ArrayMultiDimensionLiteralsLongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsLongLong)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsLongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6579,6 +13350,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsLongLong_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsLongLong) == ArrayMultiDimensionLiteralsLongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsLongLong)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsLongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsLongLong& data) @@ -6591,6 +13398,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsULongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6633,6 +13448,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsULongLong_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsULongLong) == ArrayMultiDimensionLiteralsULongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsULongLong)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsULongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6658,6 +13511,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsULongLong_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsULongLong) == ArrayMultiDimensionLiteralsULongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsULongLong)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsULongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsULongLong& data) @@ -6670,6 +13559,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsFloat_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6712,6 +13609,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsFloat_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsFloat) == ArrayMultiDimensionLiteralsFloat_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsFloat)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsFloat)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6737,6 +13672,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsFloat_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsFloat) == ArrayMultiDimensionLiteralsFloat_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsFloat)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsFloat)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsFloat& data) @@ -6749,6 +13720,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6791,6 +13770,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsDouble_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsDouble) == ArrayMultiDimensionLiteralsDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsDouble)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6816,6 +13833,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsDouble_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsDouble) == ArrayMultiDimensionLiteralsDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsDouble)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsDouble& data) @@ -6828,6 +13881,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsLongDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6870,6 +13931,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsLongDouble_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsLongDouble) == ArrayMultiDimensionLiteralsLongDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsLongDouble)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsLongDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6895,6 +13994,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsLongDouble_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsLongDouble) == ArrayMultiDimensionLiteralsLongDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsLongDouble)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsLongDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsLongDouble& data) @@ -6907,6 +14042,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsBoolean_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6949,6 +14092,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsBoolean_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsBoolean) == ArrayMultiDimensionLiteralsBoolean_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsBoolean)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsBoolean)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6974,6 +14155,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsBoolean_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsBoolean) == ArrayMultiDimensionLiteralsBoolean_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsBoolean)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsBoolean)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsBoolean& data) @@ -6986,6 +14203,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsOctet_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7028,6 +14253,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsOctet_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsOctet) == ArrayMultiDimensionLiteralsOctet_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsOctet)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsOctet)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7053,6 +14316,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsOctet_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsOctet) == ArrayMultiDimensionLiteralsOctet_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsOctet)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsOctet)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsOctet& data) @@ -7065,6 +14364,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7107,6 +14414,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsChar_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsChar) == ArrayMultiDimensionLiteralsChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsChar)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7132,6 +14477,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsChar_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsChar) == ArrayMultiDimensionLiteralsChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsChar)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsChar& data) @@ -7144,6 +14525,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsWChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7186,6 +14575,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsWChar_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsWChar) == ArrayMultiDimensionLiteralsWChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsWChar)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsWChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7211,6 +14638,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsWChar_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsWChar) == ArrayMultiDimensionLiteralsWChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsWChar)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsWChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsWChar& data) @@ -7223,6 +14686,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7265,6 +14736,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsString_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsString) == ArrayMultiDimensionLiteralsString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsString)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7290,6 +14799,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsString_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsString) == ArrayMultiDimensionLiteralsString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsString)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsString& data) @@ -7302,6 +14847,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7344,6 +14897,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsWString_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsWString) == ArrayMultiDimensionLiteralsWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsWString)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7369,6 +14960,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsWString_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsWString) == ArrayMultiDimensionLiteralsWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsWString)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsWString& data) @@ -7381,6 +15008,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsBoundedString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7423,6 +15058,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsBoundedString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsBoundedString_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsBoundedString) == ArrayMultiDimensionLiteralsBoundedString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsBoundedString)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsBoundedString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7448,6 +15121,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsBoundedString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsBoundedString_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsBoundedString) == ArrayMultiDimensionLiteralsBoundedString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsBoundedString)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsBoundedString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsBoundedString& data) @@ -7460,6 +15169,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsBoundedWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7502,6 +15219,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsBoundedWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsBoundedWString_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsBoundedWString) == ArrayMultiDimensionLiteralsBoundedWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsBoundedWString)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsBoundedWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7527,6 +15282,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsBoundedWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsBoundedWString_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsBoundedWString) == ArrayMultiDimensionLiteralsBoundedWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsBoundedWString)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsBoundedWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsBoundedWString& data) @@ -7539,6 +15330,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsEnum_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7581,6 +15380,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsEnum* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsEnum_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsEnum) == ArrayMultiDimensionLiteralsEnum_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsEnum)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsEnum)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7606,6 +15443,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsEnum* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsEnum_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsEnum) == ArrayMultiDimensionLiteralsEnum_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsEnum)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsEnum)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsEnum& data) @@ -7618,6 +15491,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsBitMask_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7660,6 +15541,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsBitMask* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsBitMask_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsBitMask) == ArrayMultiDimensionLiteralsBitMask_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsBitMask)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsBitMask)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7685,6 +15604,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsBitMask* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsBitMask_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsBitMask) == ArrayMultiDimensionLiteralsBitMask_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsBitMask)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsBitMask)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsBitMask& data) @@ -7697,6 +15652,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsAlias_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7739,6 +15702,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsAlias* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsAlias_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsAlias) == ArrayMultiDimensionLiteralsAlias_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsAlias)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsAlias)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7764,6 +15765,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsAlias* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsAlias_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsAlias) == ArrayMultiDimensionLiteralsAlias_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsAlias)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsAlias)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsAlias& data) @@ -7776,6 +15813,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsSequence_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7818,6 +15863,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsSequence* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsSequence_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsSequence) == ArrayMultiDimensionLiteralsSequence_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsSequence)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsSequence)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7843,6 +15926,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsSequence* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsSequence_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsSequence) == ArrayMultiDimensionLiteralsSequence_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsSequence)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsSequence)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsSequence& data) @@ -7855,6 +15974,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsMap_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7897,6 +16024,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsMap* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsMap_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsMap) == ArrayMultiDimensionLiteralsMap_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsMap)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsMap)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7922,6 +16087,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsMap* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsMap_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsMap) == ArrayMultiDimensionLiteralsMap_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsMap)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsMap)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsMap& data) @@ -7934,6 +16135,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsUnion_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7976,6 +16185,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsUnion* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsUnion_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsUnion) == ArrayMultiDimensionLiteralsUnion_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsUnion)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsUnion)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8001,6 +16248,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsUnion* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsUnion_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsUnion) == ArrayMultiDimensionLiteralsUnion_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsUnion)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsUnion)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsUnion& data) @@ -8013,6 +16296,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsStructure_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8055,6 +16346,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsStructure_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsStructure) == ArrayMultiDimensionLiteralsStructure_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsStructure)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsStructure)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8080,6 +16409,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsStructure_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsStructure) == ArrayMultiDimensionLiteralsStructure_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsStructure)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsStructure)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsStructure& data) @@ -8092,6 +16457,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayMultiDimensionLiteralsBitSet_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8134,6 +16507,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayMultiDimensionLiteralsBitSet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsBitSet_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsBitSet) == ArrayMultiDimensionLiteralsBitSet_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsBitSet)); + + scdr.jump((array_size -1) * sizeof(ArrayMultiDimensionLiteralsBitSet)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8159,6 +16570,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayMultiDimensionLiteralsBitSet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayMultiDimensionLiteralsBitSet_cdr_plain(data_representation) && + sizeof(ArrayMultiDimensionLiteralsBitSet) == ArrayMultiDimensionLiteralsBitSet_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayMultiDimensionLiteralsBitSet)); + + scdr.jump((array_size - 1) * sizeof(ArrayMultiDimensionLiteralsBitSet)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayMultiDimensionLiteralsBitSet& data) @@ -8171,6 +16618,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_BoundedSmallArrays_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8213,6 +16668,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const BoundedSmallArrays* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BoundedSmallArrays_cdr_plain(data_representation) && + sizeof(BoundedSmallArrays) == BoundedSmallArrays_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(BoundedSmallArrays)); + + scdr.jump((array_size -1) * sizeof(BoundedSmallArrays)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8238,6 +16731,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + BoundedSmallArrays* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BoundedSmallArrays_cdr_plain(data_representation) && + sizeof(BoundedSmallArrays) == BoundedSmallArrays_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(BoundedSmallArrays)); + + scdr.jump((array_size - 1) * sizeof(BoundedSmallArrays)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const BoundedSmallArrays& data) @@ -8250,6 +16779,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_BoundedBigArrays_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8292,6 +16829,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const BoundedBigArrays* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BoundedBigArrays_cdr_plain(data_representation) && + sizeof(BoundedBigArrays) == BoundedBigArrays_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(BoundedBigArrays)); + + scdr.jump((array_size -1) * sizeof(BoundedBigArrays)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8317,6 +16892,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + BoundedBigArrays* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BoundedBigArrays_cdr_plain(data_representation) && + sizeof(BoundedBigArrays) == BoundedBigArrays_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(BoundedBigArrays)); + + scdr.jump((array_size - 1) * sizeof(BoundedBigArrays)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const BoundedBigArrays& data) @@ -8330,6 +16941,358 @@ void serialize_key( +eProsima_user_DllExport bool is_LargeBasicPlainArray_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 25165828ULL == + (detail::LargeBasicPlainArray_offset_of() + + sizeof(std::array)); + } + else + { + return 25165828ULL == + (detail::LargeBasicPlainArray_offset_of() + + sizeof(std::array)); + } +} + +template<> +eProsima_user_DllExport size_t calculate_serialized_size( + eprosima::fastcdr::CdrSizeCalculator& calculator, + const LargeBasicPlainArray& data, + size_t& current_alignment) +{ + static_cast(data); + + eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); + size_t calculated_size {calculator.begin_calculate_type_serialized_size( + eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + current_alignment)}; + + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0), + data.field1(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(1), + data.var_large_basic_plain_array(), current_alignment); + + + calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); + + return calculated_size; +} + +template<> +eProsima_user_DllExport void serialize( + eprosima::fastcdr::Cdr& scdr, + const LargeBasicPlainArray& data) +{ + eprosima::fastcdr::Cdr::state current_state(scdr); + scdr.begin_serialize_type(current_state, + eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); + + scdr + << eprosima::fastcdr::MemberId(0) << data.field1() + << eprosima::fastcdr::MemberId(1) << data.var_large_basic_plain_array() +; + scdr.end_serialize_type(current_state); +} + +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const LargeBasicPlainArray* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_LargeBasicPlainArray_cdr_plain(data_representation) && + sizeof(LargeBasicPlainArray) == LargeBasicPlainArray_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(LargeBasicPlainArray)); + + scdr.jump((array_size -1) * sizeof(LargeBasicPlainArray)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, + LargeBasicPlainArray& data) +{ + cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool + { + bool ret_value = true; + switch (mid.id) + { + case 0: + dcdr >> data.field1(); + break; + + case 1: + dcdr >> data.var_large_basic_plain_array(); + break; + + default: + ret_value = false; + break; + } + return ret_value; + }); +} + +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + LargeBasicPlainArray* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_LargeBasicPlainArray_cdr_plain(data_representation) && + sizeof(LargeBasicPlainArray) == LargeBasicPlainArray_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(LargeBasicPlainArray)); + + scdr.jump((array_size - 1) * sizeof(LargeBasicPlainArray)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const LargeBasicPlainArray& data) +{ + + static_cast(scdr); + static_cast(data); + scdr << data.field1(); + + scdr << data.var_large_basic_plain_array(); + +} + + + +eProsima_user_DllExport bool is_LargePlainArray_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 75497472ULL == + (detail::LargePlainArray_offset_of() + + sizeof(std::array)); + } + else + { + return 75497472ULL == + (detail::LargePlainArray_offset_of() + + sizeof(std::array)); + } +} + +template<> +eProsima_user_DllExport size_t calculate_serialized_size( + eprosima::fastcdr::CdrSizeCalculator& calculator, + const LargePlainArray& data, + size_t& current_alignment) +{ + static_cast(data); + + eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); + size_t calculated_size {calculator.begin_calculate_type_serialized_size( + eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + current_alignment)}; + + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0), + data.var_large_plain_array(), current_alignment); + + + calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); + + return calculated_size; +} + +template<> +eProsima_user_DllExport void serialize( + eprosima::fastcdr::Cdr& scdr, + const LargePlainArray& data) +{ + eprosima::fastcdr::Cdr::state current_state(scdr); + scdr.begin_serialize_type(current_state, + eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); + + scdr + << eprosima::fastcdr::MemberId(0) << data.var_large_plain_array() +; + scdr.end_serialize_type(current_state); +} + +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const LargePlainArray* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_LargePlainArray_cdr_plain(data_representation) && + sizeof(LargePlainArray) == LargePlainArray_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(LargePlainArray)); + + scdr.jump((array_size -1) * sizeof(LargePlainArray)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, + LargePlainArray& data) +{ + cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool + { + bool ret_value = true; + switch (mid.id) + { + case 0: + dcdr >> data.var_large_plain_array(); + break; + + default: + ret_value = false; + break; + } + return ret_value; + }); +} + +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + LargePlainArray* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_LargePlainArray_cdr_plain(data_representation) && + sizeof(LargePlainArray) == LargePlainArray_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(LargePlainArray)); + + scdr.jump((array_size - 1) * sizeof(LargePlainArray)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const LargePlainArray& data) +{ + + static_cast(scdr); + static_cast(data); + scdr << data.var_large_plain_array(); + +} + + + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/arraysPubSubTypes.cxx b/test/dds-types-test/arraysPubSubTypes.cxx index 9bd47a0fd55..c81c55eab64 100644 --- a/test/dds-types-test/arraysPubSubTypes.cxx +++ b/test/dds-types-test/arraysPubSubTypes.cxx @@ -31,6 +31,349 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_ArrayMultiDimensionULongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsBitMask_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsEnum_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsStructure_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayStructure_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionSequence_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionBoolean_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionBitset_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsAlias_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsWChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsBitSet_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionUnion_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsUnsignedLongLong_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_ArrayMultiDimensionLiteralsBoolean_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsStructure_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayLong_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_ArraySingleDimensionLiteralsLongDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsSequence_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayBitMask_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionWString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayULong_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_ArrayString_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_ArraySingleDimensionLiteralsUnion_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsBoundedWString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsBoundedString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsSequence_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_LargePlainArray_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_ArraySingleDimensionLiteralsString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsShortArray_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayUInt8_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_ArrayMultiDimensionLiteralsUShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsUnion_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayBoundedString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsEnum_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLongLong_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_ArrayMultiDimensionDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayAlias_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayULongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionBitMask_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_ArraySingleDimensionLiteralsMap_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsLongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsBoolean_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayFloat_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionAlias_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionWChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayUShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayWString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionMap_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsAlias_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsBitset_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_BoundedBigArrays_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsWString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayEnum_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMap_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_LargeBasicPlainArray_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_BoundedSmallArrays_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_ArrayMultiDimensionBoundedString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsMap_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_ArrayWChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionBoundedWString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayOctet_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySequence_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayBoolean_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsULongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsBitMask_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsBoundedWString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsFloat_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayBoundedWString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayBitset_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionOctet_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionEnum_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsOctet_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsUnsignedLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionUShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLongDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsULong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsOctet_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionULong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionFloat_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsLongDouble_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_ArrayMultiDimensionLiteralsShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsLongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsWChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayLongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionStructure_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsBoundedString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayShortArray_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayUnion_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayLongDouble_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_ArrayMultiDimensionShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsUnsignedShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArraySingleDimensionLiteralsFloat_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayMultiDimensionLiteralsWString_cdr_plain( + DataRepresentationId_t data_representation); + + +} // namespace fastcdr +} // namespace eprosima + ArrayShortPubSubType::ArrayShortPubSubType() { set_name("ArrayShort"); @@ -149,6 +492,17 @@ void ArrayShortPubSubType::delete_data( delete(reinterpret_cast<::ArrayShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +685,17 @@ void ArrayUShortPubSubType::delete_data( delete(reinterpret_cast<::ArrayUShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayUShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayUShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +878,17 @@ void ArrayLongPubSubType::delete_data( delete(reinterpret_cast<::ArrayLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -695,6 +1071,17 @@ void ArrayULongPubSubType::delete_data( delete(reinterpret_cast<::ArrayULong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayULongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayULongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -877,6 +1264,17 @@ void ArrayLongLongPubSubType::delete_data( delete(reinterpret_cast<::ArrayLongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayLongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayLongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1059,6 +1457,17 @@ void ArrayULongLongPubSubType::delete_data( delete(reinterpret_cast<::ArrayULongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayULongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayULongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1241,6 +1650,17 @@ void ArrayFloatPubSubType::delete_data( delete(reinterpret_cast<::ArrayFloat*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayFloatPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayFloatPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1423,6 +1843,17 @@ void ArrayDoublePubSubType::delete_data( delete(reinterpret_cast<::ArrayDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1605,6 +2036,17 @@ void ArrayLongDoublePubSubType::delete_data( delete(reinterpret_cast<::ArrayLongDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayLongDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayLongDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1787,6 +2229,17 @@ void ArrayBooleanPubSubType::delete_data( delete(reinterpret_cast<::ArrayBoolean*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayBooleanPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayBooleanPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1969,6 +2422,17 @@ void ArrayOctetPubSubType::delete_data( delete(reinterpret_cast<::ArrayOctet*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayOctetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayOctetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2151,6 +2615,17 @@ void ArrayUInt8PubSubType::delete_data( delete(reinterpret_cast<::ArrayUInt8*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayUInt8PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayUInt8PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2333,6 +2808,17 @@ void ArrayCharPubSubType::delete_data( delete(reinterpret_cast<::ArrayChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2515,6 +3001,17 @@ void ArrayWCharPubSubType::delete_data( delete(reinterpret_cast<::ArrayWChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayWCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayWCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2697,6 +3194,17 @@ void ArrayStringPubSubType::delete_data( delete(reinterpret_cast<::ArrayString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2879,6 +3387,17 @@ void ArrayWStringPubSubType::delete_data( delete(reinterpret_cast<::ArrayWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3061,6 +3580,17 @@ void ArrayBoundedStringPubSubType::delete_data( delete(reinterpret_cast<::ArrayBoundedString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayBoundedStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayBoundedStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3243,6 +3773,17 @@ void ArrayBoundedWStringPubSubType::delete_data( delete(reinterpret_cast<::ArrayBoundedWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayBoundedWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayBoundedWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3425,6 +3966,17 @@ void ArrayEnumPubSubType::delete_data( delete(reinterpret_cast<::ArrayEnum*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayEnumPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayEnumPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3607,6 +4159,17 @@ void ArrayBitMaskPubSubType::delete_data( delete(reinterpret_cast<::ArrayBitMask*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayBitMaskPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayBitMaskPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3789,6 +4352,17 @@ void ArrayAliasPubSubType::delete_data( delete(reinterpret_cast<::ArrayAlias*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayAliasPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayAliasPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3971,11 +4545,22 @@ void ArrayShortArrayPubSubType::delete_data( delete(reinterpret_cast<::ArrayShortArray*>(data)); } -bool ArrayShortArrayPubSubType::compute_key( - SerializedPayload_t& payload, - InstanceHandle_t& handle, - bool force_md5) -{ +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayShortArrayPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + +bool ArrayShortArrayPubSubType::compute_key( + SerializedPayload_t& payload, + InstanceHandle_t& handle, + bool force_md5) +{ if (!is_compute_key_provided) { return false; @@ -4153,6 +4738,17 @@ void ArraySequencePubSubType::delete_data( delete(reinterpret_cast<::ArraySequence*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySequencePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySequencePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4335,6 +4931,17 @@ void ArrayMapPubSubType::delete_data( delete(reinterpret_cast<::ArrayMap*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMapPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMapPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4517,6 +5124,17 @@ void ArrayUnionPubSubType::delete_data( delete(reinterpret_cast<::ArrayUnion*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayUnionPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayUnionPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4699,6 +5317,17 @@ void ArrayStructurePubSubType::delete_data( delete(reinterpret_cast<::ArrayStructure*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayStructurePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayStructurePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4881,6 +5510,17 @@ void ArrayBitsetPubSubType::delete_data( delete(reinterpret_cast<::ArrayBitset*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayBitsetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayBitsetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5063,6 +5703,17 @@ void ArrayMultiDimensionShortPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5245,6 +5896,17 @@ void ArrayMultiDimensionUShortPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionUShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionUShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionUShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5427,6 +6089,17 @@ void ArrayMultiDimensionLongPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5609,6 +6282,17 @@ void ArrayMultiDimensionULongPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionULong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionULongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionULongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5791,6 +6475,17 @@ void ArrayMultiDimensionLongLongPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5973,6 +6668,17 @@ void ArrayMultiDimensionULongLongPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionULongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionULongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionULongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6155,6 +6861,17 @@ void ArrayMultiDimensionFloatPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionFloat*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionFloatPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionFloatPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6337,6 +7054,17 @@ void ArrayMultiDimensionDoublePubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6519,6 +7247,17 @@ void ArrayMultiDimensionLongDoublePubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLongDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLongDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLongDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6701,6 +7440,17 @@ void ArrayMultiDimensionBooleanPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionBoolean*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionBooleanPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionBooleanPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6883,6 +7633,17 @@ void ArrayMultiDimensionOctetPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionOctet*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionOctetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionOctetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7065,6 +7826,17 @@ void ArrayMultiDimensionCharPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7247,6 +8019,17 @@ void ArrayMultiDimensionWCharPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionWChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionWCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionWCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7429,6 +8212,17 @@ void ArrayMultiDimensionStringPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7611,6 +8405,17 @@ void ArrayMultiDimensionWStringPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7793,6 +8598,17 @@ void ArrayMultiDimensionBoundedStringPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionBoundedString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionBoundedStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionBoundedStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7975,6 +8791,17 @@ void ArrayMultiDimensionBoundedWStringPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionBoundedWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionBoundedWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionBoundedWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -8157,6 +8984,17 @@ void ArrayMultiDimensionEnumPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionEnum*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionEnumPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionEnumPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -8339,6 +9177,17 @@ void ArrayMultiDimensionBitMaskPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionBitMask*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionBitMaskPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionBitMaskPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -8521,6 +9370,17 @@ void ArrayMultiDimensionAliasPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionAlias*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionAliasPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionAliasPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -8703,6 +9563,17 @@ void ArrayMultiDimensionSequencePubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionSequence*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionSequencePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionSequencePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -8885,6 +9756,17 @@ void ArrayMultiDimensionMapPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionMap*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionMapPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionMapPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9067,6 +9949,17 @@ void ArrayMultiDimensionUnionPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionUnion*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionUnionPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionUnionPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9249,6 +10142,17 @@ void ArrayMultiDimensionStructurePubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionStructure*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionStructurePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionStructurePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9431,6 +10335,17 @@ void ArrayMultiDimensionBitsetPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionBitset*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionBitsetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionBitsetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9613,6 +10528,17 @@ void ArraySingleDimensionLiteralsShortPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9795,6 +10721,17 @@ void ArraySingleDimensionLiteralsUnsignedShortPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsUnsignedShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsUnsignedShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsUnsignedShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9977,6 +10914,17 @@ void ArraySingleDimensionLiteralsLongPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -10159,6 +11107,17 @@ void ArraySingleDimensionLiteralsUnsignedLongPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsUnsignedLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsUnsignedLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsUnsignedLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -10341,6 +11300,17 @@ void ArraySingleDimensionLiteralsLongLongPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsLongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsLongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsLongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -10523,6 +11493,17 @@ void ArraySingleDimensionLiteralsUnsignedLongLongPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsUnsignedLongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsUnsignedLongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsUnsignedLongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -10705,6 +11686,17 @@ void ArraySingleDimensionLiteralsFloatPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsFloat*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsFloatPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsFloatPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -10887,6 +11879,17 @@ void ArraySingleDimensionLiteralsDoublePubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11069,6 +12072,17 @@ void ArraySingleDimensionLiteralsLongDoublePubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsLongDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsLongDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsLongDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11251,6 +12265,17 @@ void ArraySingleDimensionLiteralsBooleanPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsBoolean*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsBooleanPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsBooleanPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11433,11 +12458,22 @@ void ArraySingleDimensionLiteralsOctetPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsOctet*>(data)); } -bool ArraySingleDimensionLiteralsOctetPubSubType::compute_key( - SerializedPayload_t& payload, - InstanceHandle_t& handle, - bool force_md5) -{ +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsOctetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + +bool ArraySingleDimensionLiteralsOctetPubSubType::compute_key( + SerializedPayload_t& payload, + InstanceHandle_t& handle, + bool force_md5) +{ if (!is_compute_key_provided) { return false; @@ -11615,6 +12651,17 @@ void ArraySingleDimensionLiteralsCharPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11797,6 +12844,17 @@ void ArraySingleDimensionLiteralsWCharPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsWChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsWCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsWCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11979,6 +13037,17 @@ void ArraySingleDimensionLiteralsStringPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -12161,6 +13230,17 @@ void ArraySingleDimensionLiteralsWStringPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -12343,6 +13423,17 @@ void ArraySingleDimensionLiteralsBoundedStringPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsBoundedString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsBoundedStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsBoundedStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -12525,6 +13616,17 @@ void ArraySingleDimensionLiteralsBoundedWStringPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsBoundedWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsBoundedWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsBoundedWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -12707,6 +13809,17 @@ void ArraySingleDimensionLiteralsEnumPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsEnum*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsEnumPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsEnumPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -12889,6 +14002,17 @@ void ArraySingleDimensionLiteralsBitMaskPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsBitMask*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsBitMaskPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsBitMaskPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13071,6 +14195,17 @@ void ArraySingleDimensionLiteralsAliasPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsAlias*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsAliasPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsAliasPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13253,6 +14388,17 @@ void ArraySingleDimensionLiteralsShortArrayPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsShortArray*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsShortArrayPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsShortArrayPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13435,6 +14581,17 @@ void ArraySingleDimensionLiteralsSequencePubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsSequence*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsSequencePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsSequencePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13617,6 +14774,17 @@ void ArraySingleDimensionLiteralsMapPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsMap*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsMapPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsMapPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13799,6 +14967,17 @@ void ArraySingleDimensionLiteralsUnionPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsUnion*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsUnionPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsUnionPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13981,6 +15160,17 @@ void ArraySingleDimensionLiteralsStructurePubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsStructure*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsStructurePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsStructurePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -14163,6 +15353,17 @@ void ArraySingleDimensionLiteralsBitsetPubSubType::delete_data( delete(reinterpret_cast<::ArraySingleDimensionLiteralsBitset*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArraySingleDimensionLiteralsBitsetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArraySingleDimensionLiteralsBitsetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -14345,6 +15546,17 @@ void ArrayMultiDimensionLiteralsShortPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -14527,6 +15739,17 @@ void ArrayMultiDimensionLiteralsUShortPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsUShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsUShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsUShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -14709,6 +15932,17 @@ void ArrayMultiDimensionLiteralsLongPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -14891,6 +16125,17 @@ void ArrayMultiDimensionLiteralsULongPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsULong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsULongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsULongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -15073,6 +16318,17 @@ void ArrayMultiDimensionLiteralsLongLongPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsLongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsLongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsLongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -15255,6 +16511,17 @@ void ArrayMultiDimensionLiteralsULongLongPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsULongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsULongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsULongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -15437,6 +16704,17 @@ void ArrayMultiDimensionLiteralsFloatPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsFloat*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsFloatPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsFloatPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -15619,6 +16897,17 @@ void ArrayMultiDimensionLiteralsDoublePubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -15801,6 +17090,17 @@ void ArrayMultiDimensionLiteralsLongDoublePubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsLongDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsLongDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsLongDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -15983,6 +17283,17 @@ void ArrayMultiDimensionLiteralsBooleanPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsBoolean*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsBooleanPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsBooleanPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -16165,6 +17476,17 @@ void ArrayMultiDimensionLiteralsOctetPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsOctet*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsOctetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsOctetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -16347,6 +17669,17 @@ void ArrayMultiDimensionLiteralsCharPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -16529,6 +17862,17 @@ void ArrayMultiDimensionLiteralsWCharPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsWChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsWCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsWCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -16711,6 +18055,17 @@ void ArrayMultiDimensionLiteralsStringPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -16893,6 +18248,17 @@ void ArrayMultiDimensionLiteralsWStringPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -17075,6 +18441,17 @@ void ArrayMultiDimensionLiteralsBoundedStringPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsBoundedString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsBoundedStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsBoundedStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -17257,6 +18634,17 @@ void ArrayMultiDimensionLiteralsBoundedWStringPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsBoundedWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsBoundedWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsBoundedWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -17439,6 +18827,17 @@ void ArrayMultiDimensionLiteralsEnumPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsEnum*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsEnumPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsEnumPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -17621,6 +19020,17 @@ void ArrayMultiDimensionLiteralsBitMaskPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsBitMask*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsBitMaskPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsBitMaskPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -17803,6 +19213,17 @@ void ArrayMultiDimensionLiteralsAliasPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsAlias*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsAliasPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsAliasPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -17985,6 +19406,17 @@ void ArrayMultiDimensionLiteralsSequencePubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsSequence*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsSequencePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsSequencePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -18167,6 +19599,17 @@ void ArrayMultiDimensionLiteralsMapPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsMap*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsMapPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsMapPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -18349,6 +19792,17 @@ void ArrayMultiDimensionLiteralsUnionPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsUnion*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsUnionPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsUnionPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -18531,6 +19985,17 @@ void ArrayMultiDimensionLiteralsStructurePubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsStructure*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsStructurePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsStructurePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -18713,6 +20178,17 @@ void ArrayMultiDimensionLiteralsBitSetPubSubType::delete_data( delete(reinterpret_cast<::ArrayMultiDimensionLiteralsBitSet*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayMultiDimensionLiteralsBitSetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayMultiDimensionLiteralsBitSetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -18895,11 +20371,22 @@ void BoundedSmallArraysPubSubType::delete_data( delete(reinterpret_cast<::BoundedSmallArrays*>(data)); } -bool BoundedSmallArraysPubSubType::compute_key( - SerializedPayload_t& payload, - InstanceHandle_t& handle, - bool force_md5) -{ +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool BoundedSmallArraysPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + +bool BoundedSmallArraysPubSubType::compute_key( + SerializedPayload_t& payload, + InstanceHandle_t& handle, + bool force_md5) +{ if (!is_compute_key_provided) { return false; @@ -19077,6 +20564,17 @@ void BoundedBigArraysPubSubType::delete_data( delete(reinterpret_cast<::BoundedBigArrays*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool BoundedBigArraysPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool BoundedBigArraysPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -19141,6 +20639,390 @@ void BoundedBigArraysPubSubType::register_type_object_representation() register_BoundedBigArrays_type_identifier(type_identifiers_); } +LargeBasicPlainArrayPubSubType::LargeBasicPlainArrayPubSubType() +{ + set_name("LargeBasicPlainArray"); + uint32_t type_size = LargeBasicPlainArray_max_cdr_typesize; + type_size += static_cast(eprosima::fastcdr::Cdr::alignment(type_size, 4)); /* possible submessage alignment */ + max_serialized_type_size = type_size + 4; /*encapsulation*/ + is_compute_key_provided = false; + uint32_t key_length = LargeBasicPlainArray_max_key_cdr_typesize > 16 ? LargeBasicPlainArray_max_key_cdr_typesize : 16; + key_buffer_ = reinterpret_cast(malloc(key_length)); + memset(key_buffer_, 0, key_length); +} + +LargeBasicPlainArrayPubSubType::~LargeBasicPlainArrayPubSubType() +{ + if (key_buffer_ != nullptr) + { + free(key_buffer_); + } +} + +bool LargeBasicPlainArrayPubSubType::serialize( + const void* const data, + SerializedPayload_t& payload, + DataRepresentationId_t data_representation) +{ + const ::LargeBasicPlainArray* p_type = static_cast(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.max_size); + // Object that serializes the data. + eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN, + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::CdrVersion::XCDRv1 : eprosima::fastcdr::CdrVersion::XCDRv2); + payload.encapsulation = ser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE; + ser.set_encoding_flag( + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2); + + try + { + // Serialize encapsulation + ser.serialize_encapsulation(); + // Serialize the object. + ser << *p_type; + ser.set_dds_cdr_options({0,0}); + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return false; + } + + // Get the serialized length + payload.length = static_cast(ser.get_serialized_data_length()); + return true; +} + +bool LargeBasicPlainArrayPubSubType::deserialize( + SerializedPayload_t& payload, + void* data) +{ + try + { + // Convert DATA to pointer of your type + ::LargeBasicPlainArray* p_type = static_cast<::LargeBasicPlainArray*>(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.length); + + // Object that deserializes the data. + eprosima::fastcdr::Cdr deser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN); + + // Deserialize encapsulation. + deser.read_encapsulation(); + payload.encapsulation = deser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE; + + // Deserialize the object. + deser >> *p_type; + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return false; + } + + return true; +} + +uint32_t LargeBasicPlainArrayPubSubType::calculate_serialized_size( + const void* const data, + DataRepresentationId_t data_representation) +{ + try + { + eprosima::fastcdr::CdrSizeCalculator calculator( + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::CdrVersion::XCDRv1 :eprosima::fastcdr::CdrVersion::XCDRv2); + size_t current_alignment {0}; + return static_cast(calculator.calculate_serialized_size( + *static_cast(data), current_alignment)) + + 4u /*encapsulation*/; + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return 0; + } +} + +void* LargeBasicPlainArrayPubSubType::create_data() +{ + return reinterpret_cast(new ::LargeBasicPlainArray()); +} + +void LargeBasicPlainArrayPubSubType::delete_data( + void* data) +{ + delete(reinterpret_cast<::LargeBasicPlainArray*>(data)); +} + +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool LargeBasicPlainArrayPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_LargeBasicPlainArray_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + +bool LargeBasicPlainArrayPubSubType::compute_key( + SerializedPayload_t& payload, + InstanceHandle_t& handle, + bool force_md5) +{ + if (!is_compute_key_provided) + { + return false; + } + + ::LargeBasicPlainArray data; + if (deserialize(payload, static_cast(&data))) + { + return compute_key(static_cast(&data), handle, force_md5); + } + + return false; +} + +bool LargeBasicPlainArrayPubSubType::compute_key( + const void* const data, + InstanceHandle_t& handle, + bool force_md5) +{ + if (!is_compute_key_provided) + { + return false; + } + + const ::LargeBasicPlainArray* p_type = static_cast(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(key_buffer_), + LargeBasicPlainArray_max_key_cdr_typesize); + + // Object that serializes the data. + eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS, eprosima::fastcdr::CdrVersion::XCDRv2); + ser.set_encoding_flag(eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2); + eprosima::fastcdr::serialize_key(ser, *p_type); + if (force_md5 || LargeBasicPlainArray_max_key_cdr_typesize > 16) + { + md5_.init(); + md5_.update(key_buffer_, static_cast(ser.get_serialized_data_length())); + md5_.finalize(); + for (uint8_t i = 0; i < 16; ++i) + { + handle.value[i] = md5_.digest[i]; + } + } + else + { + for (uint8_t i = 0; i < 16; ++i) + { + handle.value[i] = key_buffer_[i]; + } + } + return true; +} + +void LargeBasicPlainArrayPubSubType::register_type_object_representation() +{ + register_LargeBasicPlainArray_type_identifier(type_identifiers_); +} + +LargePlainArrayPubSubType::LargePlainArrayPubSubType() +{ + set_name("LargePlainArray"); + uint32_t type_size = LargePlainArray_max_cdr_typesize; + type_size += static_cast(eprosima::fastcdr::Cdr::alignment(type_size, 4)); /* possible submessage alignment */ + max_serialized_type_size = type_size + 4; /*encapsulation*/ + is_compute_key_provided = false; + uint32_t key_length = LargePlainArray_max_key_cdr_typesize > 16 ? LargePlainArray_max_key_cdr_typesize : 16; + key_buffer_ = reinterpret_cast(malloc(key_length)); + memset(key_buffer_, 0, key_length); +} + +LargePlainArrayPubSubType::~LargePlainArrayPubSubType() +{ + if (key_buffer_ != nullptr) + { + free(key_buffer_); + } +} + +bool LargePlainArrayPubSubType::serialize( + const void* const data, + SerializedPayload_t& payload, + DataRepresentationId_t data_representation) +{ + const ::LargePlainArray* p_type = static_cast(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.max_size); + // Object that serializes the data. + eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN, + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::CdrVersion::XCDRv1 : eprosima::fastcdr::CdrVersion::XCDRv2); + payload.encapsulation = ser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE; + ser.set_encoding_flag( + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2); + + try + { + // Serialize encapsulation + ser.serialize_encapsulation(); + // Serialize the object. + ser << *p_type; + ser.set_dds_cdr_options({0,0}); + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return false; + } + + // Get the serialized length + payload.length = static_cast(ser.get_serialized_data_length()); + return true; +} + +bool LargePlainArrayPubSubType::deserialize( + SerializedPayload_t& payload, + void* data) +{ + try + { + // Convert DATA to pointer of your type + ::LargePlainArray* p_type = static_cast<::LargePlainArray*>(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.length); + + // Object that deserializes the data. + eprosima::fastcdr::Cdr deser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN); + + // Deserialize encapsulation. + deser.read_encapsulation(); + payload.encapsulation = deser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE; + + // Deserialize the object. + deser >> *p_type; + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return false; + } + + return true; +} + +uint32_t LargePlainArrayPubSubType::calculate_serialized_size( + const void* const data, + DataRepresentationId_t data_representation) +{ + try + { + eprosima::fastcdr::CdrSizeCalculator calculator( + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::CdrVersion::XCDRv1 :eprosima::fastcdr::CdrVersion::XCDRv2); + size_t current_alignment {0}; + return static_cast(calculator.calculate_serialized_size( + *static_cast(data), current_alignment)) + + 4u /*encapsulation*/; + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return 0; + } +} + +void* LargePlainArrayPubSubType::create_data() +{ + return reinterpret_cast(new ::LargePlainArray()); +} + +void LargePlainArrayPubSubType::delete_data( + void* data) +{ + delete(reinterpret_cast<::LargePlainArray*>(data)); +} + +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool LargePlainArrayPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_LargePlainArray_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + +bool LargePlainArrayPubSubType::compute_key( + SerializedPayload_t& payload, + InstanceHandle_t& handle, + bool force_md5) +{ + if (!is_compute_key_provided) + { + return false; + } + + ::LargePlainArray data; + if (deserialize(payload, static_cast(&data))) + { + return compute_key(static_cast(&data), handle, force_md5); + } + + return false; +} + +bool LargePlainArrayPubSubType::compute_key( + const void* const data, + InstanceHandle_t& handle, + bool force_md5) +{ + if (!is_compute_key_provided) + { + return false; + } + + const ::LargePlainArray* p_type = static_cast(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(key_buffer_), + LargePlainArray_max_key_cdr_typesize); + + // Object that serializes the data. + eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS, eprosima::fastcdr::CdrVersion::XCDRv2); + ser.set_encoding_flag(eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2); + eprosima::fastcdr::serialize_key(ser, *p_type); + if (force_md5 || LargePlainArray_max_key_cdr_typesize > 16) + { + md5_.init(); + md5_.update(key_buffer_, static_cast(ser.get_serialized_data_length())); + md5_.finalize(); + for (uint8_t i = 0; i < 16; ++i) + { + handle.value[i] = md5_.digest[i]; + } + } + else + { + for (uint8_t i = 0; i < 16; ++i) + { + handle.value[i] = key_buffer_[i]; + } + } + return true; +} + +void LargePlainArrayPubSubType::register_type_object_representation() +{ + register_LargePlainArray_type_identifier(type_identifiers_); +} + // Include auxiliary functions like for serializing/deserializing. #include "arraysCdrAux.ipp" diff --git a/test/dds-types-test/arraysPubSubTypes.hpp b/test/dds-types-test/arraysPubSubTypes.hpp index 6aaafada776..2c882b999ea 100644 --- a/test/dds-types-test/arraysPubSubTypes.hpp +++ b/test/dds-types-test/arraysPubSubTypes.hpp @@ -94,12 +94,8 @@ class ArrayShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -176,12 +172,8 @@ class ArrayUShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -258,12 +250,8 @@ class ArrayLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -340,12 +328,8 @@ class ArrayULongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -422,12 +406,8 @@ class ArrayLongLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -504,12 +484,8 @@ class ArrayULongLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -586,12 +562,8 @@ class ArrayFloatPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -668,12 +640,8 @@ class ArrayDoublePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -750,12 +718,8 @@ class ArrayLongDoublePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -832,12 +796,8 @@ class ArrayBooleanPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -914,12 +874,8 @@ class ArrayOctetPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -996,12 +952,8 @@ class ArrayUInt8PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1078,12 +1030,8 @@ class ArrayCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1160,12 +1108,8 @@ class ArrayWCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1242,12 +1186,8 @@ class ArrayStringPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1324,12 +1264,8 @@ class ArrayWStringPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1406,12 +1342,8 @@ class ArrayBoundedStringPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1488,12 +1420,8 @@ class ArrayBoundedWStringPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1570,12 +1498,8 @@ class ArrayEnumPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1652,12 +1576,8 @@ class ArrayBitMaskPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1734,12 +1654,8 @@ class ArrayAliasPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1816,12 +1732,8 @@ class ArrayShortArrayPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1898,12 +1810,8 @@ class ArraySequencePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1980,12 +1888,8 @@ class ArrayMapPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2062,12 +1966,8 @@ class ArrayUnionPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2144,12 +2044,8 @@ class ArrayStructurePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2226,12 +2122,8 @@ class ArrayBitsetPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2308,12 +2200,8 @@ class ArrayMultiDimensionShortPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2390,12 +2278,8 @@ class ArrayMultiDimensionUShortPubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2472,12 +2356,8 @@ class ArrayMultiDimensionLongPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2554,12 +2434,8 @@ class ArrayMultiDimensionULongPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2636,12 +2512,8 @@ class ArrayMultiDimensionLongLongPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2718,12 +2590,8 @@ class ArrayMultiDimensionULongLongPubSubType : public eprosima::fastdds::dds::To #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2800,12 +2668,8 @@ class ArrayMultiDimensionFloatPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2882,12 +2746,8 @@ class ArrayMultiDimensionDoublePubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2964,12 +2824,8 @@ class ArrayMultiDimensionLongDoublePubSubType : public eprosima::fastdds::dds::T #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3046,12 +2902,8 @@ class ArrayMultiDimensionBooleanPubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3128,12 +2980,8 @@ class ArrayMultiDimensionOctetPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3210,12 +3058,8 @@ class ArrayMultiDimensionCharPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3292,12 +3136,8 @@ class ArrayMultiDimensionWCharPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3374,12 +3214,8 @@ class ArrayMultiDimensionStringPubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3456,12 +3292,8 @@ class ArrayMultiDimensionWStringPubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3538,12 +3370,8 @@ class ArrayMultiDimensionBoundedStringPubSubType : public eprosima::fastdds::dds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3620,12 +3448,8 @@ class ArrayMultiDimensionBoundedWStringPubSubType : public eprosima::fastdds::dd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3702,12 +3526,8 @@ class ArrayMultiDimensionEnumPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3784,12 +3604,8 @@ class ArrayMultiDimensionBitMaskPubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3866,12 +3682,8 @@ class ArrayMultiDimensionAliasPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3948,12 +3760,8 @@ class ArrayMultiDimensionSequencePubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4030,12 +3838,8 @@ class ArrayMultiDimensionMapPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4112,12 +3916,8 @@ class ArrayMultiDimensionUnionPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4194,12 +3994,8 @@ class ArrayMultiDimensionStructurePubSubType : public eprosima::fastdds::dds::To #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4276,12 +4072,8 @@ class ArrayMultiDimensionBitsetPubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4358,12 +4150,8 @@ class ArraySingleDimensionLiteralsShortPubSubType : public eprosima::fastdds::dd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4440,12 +4228,8 @@ class ArraySingleDimensionLiteralsUnsignedShortPubSubType : public eprosima::fas #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4522,12 +4306,8 @@ class ArraySingleDimensionLiteralsLongPubSubType : public eprosima::fastdds::dds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4604,12 +4384,8 @@ class ArraySingleDimensionLiteralsUnsignedLongPubSubType : public eprosima::fast #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4686,12 +4462,8 @@ class ArraySingleDimensionLiteralsLongLongPubSubType : public eprosima::fastdds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4768,12 +4540,8 @@ class ArraySingleDimensionLiteralsUnsignedLongLongPubSubType : public eprosima:: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4850,12 +4618,8 @@ class ArraySingleDimensionLiteralsFloatPubSubType : public eprosima::fastdds::dd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4932,12 +4696,8 @@ class ArraySingleDimensionLiteralsDoublePubSubType : public eprosima::fastdds::d #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5014,12 +4774,8 @@ class ArraySingleDimensionLiteralsLongDoublePubSubType : public eprosima::fastdd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5096,12 +4852,8 @@ class ArraySingleDimensionLiteralsBooleanPubSubType : public eprosima::fastdds:: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5178,12 +4930,8 @@ class ArraySingleDimensionLiteralsOctetPubSubType : public eprosima::fastdds::dd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5260,12 +5008,8 @@ class ArraySingleDimensionLiteralsCharPubSubType : public eprosima::fastdds::dds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5342,12 +5086,8 @@ class ArraySingleDimensionLiteralsWCharPubSubType : public eprosima::fastdds::dd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5424,12 +5164,8 @@ class ArraySingleDimensionLiteralsStringPubSubType : public eprosima::fastdds::d #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5506,12 +5242,8 @@ class ArraySingleDimensionLiteralsWStringPubSubType : public eprosima::fastdds:: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5588,12 +5320,8 @@ class ArraySingleDimensionLiteralsBoundedStringPubSubType : public eprosima::fas #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5670,12 +5398,8 @@ class ArraySingleDimensionLiteralsBoundedWStringPubSubType : public eprosima::fa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5752,12 +5476,8 @@ class ArraySingleDimensionLiteralsEnumPubSubType : public eprosima::fastdds::dds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5834,12 +5554,8 @@ class ArraySingleDimensionLiteralsBitMaskPubSubType : public eprosima::fastdds:: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5916,12 +5632,8 @@ class ArraySingleDimensionLiteralsAliasPubSubType : public eprosima::fastdds::dd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5998,12 +5710,8 @@ class ArraySingleDimensionLiteralsShortArrayPubSubType : public eprosima::fastdd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6080,12 +5788,8 @@ class ArraySingleDimensionLiteralsSequencePubSubType : public eprosima::fastdds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6162,12 +5866,8 @@ class ArraySingleDimensionLiteralsMapPubSubType : public eprosima::fastdds::dds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6244,12 +5944,8 @@ class ArraySingleDimensionLiteralsUnionPubSubType : public eprosima::fastdds::dd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6326,12 +6022,8 @@ class ArraySingleDimensionLiteralsStructurePubSubType : public eprosima::fastdds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6408,12 +6100,8 @@ class ArraySingleDimensionLiteralsBitsetPubSubType : public eprosima::fastdds::d #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6490,12 +6178,8 @@ class ArrayMultiDimensionLiteralsShortPubSubType : public eprosima::fastdds::dds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6572,12 +6256,8 @@ class ArrayMultiDimensionLiteralsUShortPubSubType : public eprosima::fastdds::dd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6654,12 +6334,8 @@ class ArrayMultiDimensionLiteralsLongPubSubType : public eprosima::fastdds::dds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6736,12 +6412,8 @@ class ArrayMultiDimensionLiteralsULongPubSubType : public eprosima::fastdds::dds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6818,12 +6490,8 @@ class ArrayMultiDimensionLiteralsLongLongPubSubType : public eprosima::fastdds:: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6900,12 +6568,8 @@ class ArrayMultiDimensionLiteralsULongLongPubSubType : public eprosima::fastdds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6982,12 +6646,8 @@ class ArrayMultiDimensionLiteralsFloatPubSubType : public eprosima::fastdds::dds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7064,12 +6724,8 @@ class ArrayMultiDimensionLiteralsDoublePubSubType : public eprosima::fastdds::dd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7146,12 +6802,8 @@ class ArrayMultiDimensionLiteralsLongDoublePubSubType : public eprosima::fastdds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7228,12 +6880,8 @@ class ArrayMultiDimensionLiteralsBooleanPubSubType : public eprosima::fastdds::d #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7310,12 +6958,8 @@ class ArrayMultiDimensionLiteralsOctetPubSubType : public eprosima::fastdds::dds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7392,12 +7036,8 @@ class ArrayMultiDimensionLiteralsCharPubSubType : public eprosima::fastdds::dds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7474,12 +7114,8 @@ class ArrayMultiDimensionLiteralsWCharPubSubType : public eprosima::fastdds::dds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7556,12 +7192,8 @@ class ArrayMultiDimensionLiteralsStringPubSubType : public eprosima::fastdds::dd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7638,12 +7270,8 @@ class ArrayMultiDimensionLiteralsWStringPubSubType : public eprosima::fastdds::d #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7720,12 +7348,8 @@ class ArrayMultiDimensionLiteralsBoundedStringPubSubType : public eprosima::fast #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7802,12 +7426,8 @@ class ArrayMultiDimensionLiteralsBoundedWStringPubSubType : public eprosima::fas #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7884,12 +7504,8 @@ class ArrayMultiDimensionLiteralsEnumPubSubType : public eprosima::fastdds::dds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7966,12 +7582,8 @@ class ArrayMultiDimensionLiteralsBitMaskPubSubType : public eprosima::fastdds::d #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -8048,12 +7660,8 @@ class ArrayMultiDimensionLiteralsAliasPubSubType : public eprosima::fastdds::dds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -8130,12 +7738,8 @@ class ArrayMultiDimensionLiteralsSequencePubSubType : public eprosima::fastdds:: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -8212,12 +7816,8 @@ class ArrayMultiDimensionLiteralsMapPubSubType : public eprosima::fastdds::dds:: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -8294,12 +7894,8 @@ class ArrayMultiDimensionLiteralsUnionPubSubType : public eprosima::fastdds::dds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -8376,12 +7972,8 @@ class ArrayMultiDimensionLiteralsStructurePubSubType : public eprosima::fastdds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -8458,12 +8050,8 @@ class ArrayMultiDimensionLiteralsBitSetPubSubType : public eprosima::fastdds::dd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -8540,12 +8128,8 @@ class BoundedSmallArraysPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -8622,21 +8206,173 @@ class BoundedBigArraysPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + +#ifdef TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE + eProsima_user_DllExport inline bool construct_sample( + void* memory) const override { - static_cast(data_representation); + static_cast(memory); return false; } +#endif // TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE + +private: + + eprosima::fastdds::MD5 md5_; + unsigned char* key_buffer_; + +}; + + +/*! + * @brief This class represents the TopicDataType of the type LargeBasicPlainArray defined by the user in the IDL file. + * @ingroup arrays + */ +class LargeBasicPlainArrayPubSubType : public eprosima::fastdds::dds::TopicDataType +{ +public: + + typedef ::LargeBasicPlainArray type; + + eProsima_user_DllExport LargeBasicPlainArrayPubSubType(); + + eProsima_user_DllExport ~LargeBasicPlainArrayPubSubType() override; + + eProsima_user_DllExport bool serialize( + const void* const data, + eprosima::fastdds::rtps::SerializedPayload_t& payload, + eprosima::fastdds::dds::DataRepresentationId_t data_representation) override; + + eProsima_user_DllExport bool deserialize( + eprosima::fastdds::rtps::SerializedPayload_t& payload, + void* data) override; + + eProsima_user_DllExport uint32_t calculate_serialized_size( + const void* const data, + eprosima::fastdds::dds::DataRepresentationId_t data_representation) override; + + eProsima_user_DllExport bool compute_key( + eprosima::fastdds::rtps::SerializedPayload_t& payload, + eprosima::fastdds::rtps::InstanceHandle_t& ihandle, + bool force_md5 = false) override; + + eProsima_user_DllExport bool compute_key( + const void* const data, + eprosima::fastdds::rtps::InstanceHandle_t& ihandle, + bool force_md5 = false) override; + + eProsima_user_DllExport void* create_data() override; + + eProsima_user_DllExport void delete_data( + void* data) override; + + //Register TypeObject representation in Fast DDS TypeObjectRegistry + eProsima_user_DllExport void register_type_object_representation() override; + +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_BOUNDED + eProsima_user_DllExport inline bool is_bounded() const override + { + return true; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_BOUNDED + +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN #ifdef TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE eProsima_user_DllExport inline bool construct_sample( void* memory) const override { - static_cast(memory); - return false; + new (memory) LargeBasicPlainArray(); + return true; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE + +private: + + eprosima::fastdds::MD5 md5_; + unsigned char* key_buffer_; + +}; + + +/*! + * @brief This class represents the TopicDataType of the type LargePlainArray defined by the user in the IDL file. + * @ingroup arrays + */ +class LargePlainArrayPubSubType : public eprosima::fastdds::dds::TopicDataType +{ +public: + + typedef ::LargePlainArray type; + + eProsima_user_DllExport LargePlainArrayPubSubType(); + + eProsima_user_DllExport ~LargePlainArrayPubSubType() override; + + eProsima_user_DllExport bool serialize( + const void* const data, + eprosima::fastdds::rtps::SerializedPayload_t& payload, + eprosima::fastdds::dds::DataRepresentationId_t data_representation) override; + + eProsima_user_DllExport bool deserialize( + eprosima::fastdds::rtps::SerializedPayload_t& payload, + void* data) override; + + eProsima_user_DllExport uint32_t calculate_serialized_size( + const void* const data, + eprosima::fastdds::dds::DataRepresentationId_t data_representation) override; + + eProsima_user_DllExport bool compute_key( + eprosima::fastdds::rtps::SerializedPayload_t& payload, + eprosima::fastdds::rtps::InstanceHandle_t& ihandle, + bool force_md5 = false) override; + + eProsima_user_DllExport bool compute_key( + const void* const data, + eprosima::fastdds::rtps::InstanceHandle_t& ihandle, + bool force_md5 = false) override; + + eProsima_user_DllExport void* create_data() override; + + eProsima_user_DllExport void delete_data( + void* data) override; + + //Register TypeObject representation in Fast DDS TypeObjectRegistry + eProsima_user_DllExport void register_type_object_representation() override; + +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_BOUNDED + eProsima_user_DllExport inline bool is_bounded() const override + { + return true; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_BOUNDED + +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + +#ifdef TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE + eProsima_user_DllExport inline bool construct_sample( + void* memory) const override + { + new (memory) LargePlainArray(); + return true; } #endif // TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE diff --git a/test/dds-types-test/arraysTypeObjectSupport.cxx b/test/dds-types-test/arraysTypeObjectSupport.cxx index bf07bf1cf89..ea6329ba1c5 100644 --- a/test/dds-types-test/arraysTypeObjectSupport.cxx +++ b/test/dds-types-test/arraysTypeObjectSupport.cxx @@ -10266,4 +10266,228 @@ void register_BoundedBigArrays_type_identifier( "BoundedBigArrays already registered in TypeObjectRegistry for a different type."); } } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_LargeBasicPlainArray_type_identifier( + TypeIdentifierPair& type_ids_LargeBasicPlainArray) +{ + + ReturnCode_t return_code_LargeBasicPlainArray {eprosima::fastdds::dds::RETCODE_OK}; + return_code_LargeBasicPlainArray = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "LargeBasicPlainArray", type_ids_LargeBasicPlainArray); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_LargeBasicPlainArray) + { + StructTypeFlag struct_flags_LargeBasicPlainArray = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::FINAL, + false, false); + QualifiedTypeName type_name_LargeBasicPlainArray = "LargeBasicPlainArray"; + eprosima::fastcdr::optional type_ann_builtin_LargeBasicPlainArray; + eprosima::fastcdr::optional ann_custom_LargeBasicPlainArray; + AppliedAnnotationSeq tmp_ann_custom_LargeBasicPlainArray; + eprosima::fastcdr::optional verbatim_LargeBasicPlainArray; + if (!tmp_ann_custom_LargeBasicPlainArray.empty()) + { + ann_custom_LargeBasicPlainArray = tmp_ann_custom_LargeBasicPlainArray; + } + + CompleteTypeDetail detail_LargeBasicPlainArray = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_LargeBasicPlainArray, ann_custom_LargeBasicPlainArray, type_name_LargeBasicPlainArray.to_string()); + CompleteStructHeader header_LargeBasicPlainArray; + header_LargeBasicPlainArray = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_LargeBasicPlainArray); + CompleteStructMemberSeq member_seq_LargeBasicPlainArray; + { + TypeIdentifierPair type_ids_field1; + ReturnCode_t return_code_field1 {eprosima::fastdds::dds::RETCODE_OK}; + return_code_field1 = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_byte", type_ids_field1); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_field1) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "field1 Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_field1 = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_field1 = 0x00000000; + bool common_field1_ec {false}; + CommonStructMember common_field1 {TypeObjectUtils::build_common_struct_member(member_id_field1, member_flags_field1, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_field1, common_field1_ec))}; + if (!common_field1_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure field1 member TypeIdentifier inconsistent."); + return; + } + MemberName name_field1 = "field1"; + eprosima::fastcdr::optional member_ann_builtin_field1; + ann_custom_LargeBasicPlainArray.reset(); + CompleteMemberDetail detail_field1 = TypeObjectUtils::build_complete_member_detail(name_field1, member_ann_builtin_field1, ann_custom_LargeBasicPlainArray); + CompleteStructMember member_field1 = TypeObjectUtils::build_complete_struct_member(common_field1, detail_field1); + TypeObjectUtils::add_complete_struct_member(member_seq_LargeBasicPlainArray, member_field1); + } + { + TypeIdentifierPair type_ids_var_large_basic_plain_array; + ReturnCode_t return_code_var_large_basic_plain_array {eprosima::fastdds::dds::RETCODE_OK}; + return_code_var_large_basic_plain_array = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_array_InnerBasicPlainStructHelper_6291456", type_ids_var_large_basic_plain_array); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_var_large_basic_plain_array) + { + return_code_var_large_basic_plain_array = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "InnerBasicPlainStructHelper", type_ids_var_large_basic_plain_array); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_var_large_basic_plain_array) + { + ::register_InnerBasicPlainStructHelper_type_identifier(type_ids_var_large_basic_plain_array); + } + bool element_identifier_anonymous_array_InnerBasicPlainStructHelper_6291456_ec {false}; + TypeIdentifier* element_identifier_anonymous_array_InnerBasicPlainStructHelper_6291456 {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_var_large_basic_plain_array, element_identifier_anonymous_array_InnerBasicPlainStructHelper_6291456_ec))}; + if (!element_identifier_anonymous_array_InnerBasicPlainStructHelper_6291456_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Array element TypeIdentifier inconsistent."); + return; + } + EquivalenceKind equiv_kind_anonymous_array_InnerBasicPlainStructHelper_6291456 = EK_COMPLETE; + if (TK_NONE == type_ids_var_large_basic_plain_array.type_identifier2()._d()) + { + equiv_kind_anonymous_array_InnerBasicPlainStructHelper_6291456 = EK_BOTH; + } + CollectionElementFlag element_flags_anonymous_array_InnerBasicPlainStructHelper_6291456 = 0; + PlainCollectionHeader header_anonymous_array_InnerBasicPlainStructHelper_6291456 = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_array_InnerBasicPlainStructHelper_6291456, element_flags_anonymous_array_InnerBasicPlainStructHelper_6291456); + { + LBoundSeq array_bound_seq; + TypeObjectUtils::add_array_dimension(array_bound_seq, static_cast(6291456)); + + PlainArrayLElemDefn array_ldefn = TypeObjectUtils::build_plain_array_l_elem_defn(header_anonymous_array_InnerBasicPlainStructHelper_6291456, array_bound_seq, + eprosima::fastcdr::external(element_identifier_anonymous_array_InnerBasicPlainStructHelper_6291456)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_l_array_type_identifier(array_ldefn, "anonymous_array_InnerBasicPlainStructHelper_6291456", type_ids_var_large_basic_plain_array)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_array_InnerBasicPlainStructHelper_6291456 already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_var_large_basic_plain_array = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_var_large_basic_plain_array = 0x00000001; + bool common_var_large_basic_plain_array_ec {false}; + CommonStructMember common_var_large_basic_plain_array {TypeObjectUtils::build_common_struct_member(member_id_var_large_basic_plain_array, member_flags_var_large_basic_plain_array, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_var_large_basic_plain_array, common_var_large_basic_plain_array_ec))}; + if (!common_var_large_basic_plain_array_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure var_large_basic_plain_array member TypeIdentifier inconsistent."); + return; + } + MemberName name_var_large_basic_plain_array = "var_large_basic_plain_array"; + eprosima::fastcdr::optional member_ann_builtin_var_large_basic_plain_array; + ann_custom_LargeBasicPlainArray.reset(); + CompleteMemberDetail detail_var_large_basic_plain_array = TypeObjectUtils::build_complete_member_detail(name_var_large_basic_plain_array, member_ann_builtin_var_large_basic_plain_array, ann_custom_LargeBasicPlainArray); + CompleteStructMember member_var_large_basic_plain_array = TypeObjectUtils::build_complete_struct_member(common_var_large_basic_plain_array, detail_var_large_basic_plain_array); + TypeObjectUtils::add_complete_struct_member(member_seq_LargeBasicPlainArray, member_var_large_basic_plain_array); + } + CompleteStructType struct_type_LargeBasicPlainArray = TypeObjectUtils::build_complete_struct_type(struct_flags_LargeBasicPlainArray, header_LargeBasicPlainArray, member_seq_LargeBasicPlainArray); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_LargeBasicPlainArray, type_name_LargeBasicPlainArray.to_string(), type_ids_LargeBasicPlainArray)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "LargeBasicPlainArray already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_LargePlainArray_type_identifier( + TypeIdentifierPair& type_ids_LargePlainArray) +{ + + ReturnCode_t return_code_LargePlainArray {eprosima::fastdds::dds::RETCODE_OK}; + return_code_LargePlainArray = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "LargePlainArray", type_ids_LargePlainArray); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_LargePlainArray) + { + StructTypeFlag struct_flags_LargePlainArray = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::FINAL, + false, false); + QualifiedTypeName type_name_LargePlainArray = "LargePlainArray"; + eprosima::fastcdr::optional type_ann_builtin_LargePlainArray; + eprosima::fastcdr::optional ann_custom_LargePlainArray; + AppliedAnnotationSeq tmp_ann_custom_LargePlainArray; + eprosima::fastcdr::optional verbatim_LargePlainArray; + if (!tmp_ann_custom_LargePlainArray.empty()) + { + ann_custom_LargePlainArray = tmp_ann_custom_LargePlainArray; + } + + CompleteTypeDetail detail_LargePlainArray = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_LargePlainArray, ann_custom_LargePlainArray, type_name_LargePlainArray.to_string()); + CompleteStructHeader header_LargePlainArray; + header_LargePlainArray = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_LargePlainArray); + CompleteStructMemberSeq member_seq_LargePlainArray; + { + TypeIdentifierPair type_ids_var_large_plain_array; + ReturnCode_t return_code_var_large_plain_array {eprosima::fastdds::dds::RETCODE_OK}; + return_code_var_large_plain_array = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_array_InnerPlainStructHelper_6291456", type_ids_var_large_plain_array); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_var_large_plain_array) + { + return_code_var_large_plain_array = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "InnerPlainStructHelper", type_ids_var_large_plain_array); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_var_large_plain_array) + { + ::register_InnerPlainStructHelper_type_identifier(type_ids_var_large_plain_array); + } + bool element_identifier_anonymous_array_InnerPlainStructHelper_6291456_ec {false}; + TypeIdentifier* element_identifier_anonymous_array_InnerPlainStructHelper_6291456 {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_var_large_plain_array, element_identifier_anonymous_array_InnerPlainStructHelper_6291456_ec))}; + if (!element_identifier_anonymous_array_InnerPlainStructHelper_6291456_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Array element TypeIdentifier inconsistent."); + return; + } + EquivalenceKind equiv_kind_anonymous_array_InnerPlainStructHelper_6291456 = EK_COMPLETE; + if (TK_NONE == type_ids_var_large_plain_array.type_identifier2()._d()) + { + equiv_kind_anonymous_array_InnerPlainStructHelper_6291456 = EK_BOTH; + } + CollectionElementFlag element_flags_anonymous_array_InnerPlainStructHelper_6291456 = 0; + PlainCollectionHeader header_anonymous_array_InnerPlainStructHelper_6291456 = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_array_InnerPlainStructHelper_6291456, element_flags_anonymous_array_InnerPlainStructHelper_6291456); + { + LBoundSeq array_bound_seq; + TypeObjectUtils::add_array_dimension(array_bound_seq, static_cast(6291456)); + + PlainArrayLElemDefn array_ldefn = TypeObjectUtils::build_plain_array_l_elem_defn(header_anonymous_array_InnerPlainStructHelper_6291456, array_bound_seq, + eprosima::fastcdr::external(element_identifier_anonymous_array_InnerPlainStructHelper_6291456)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_l_array_type_identifier(array_ldefn, "anonymous_array_InnerPlainStructHelper_6291456", type_ids_var_large_plain_array)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_array_InnerPlainStructHelper_6291456 already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_var_large_plain_array = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_var_large_plain_array = 0x00000000; + bool common_var_large_plain_array_ec {false}; + CommonStructMember common_var_large_plain_array {TypeObjectUtils::build_common_struct_member(member_id_var_large_plain_array, member_flags_var_large_plain_array, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_var_large_plain_array, common_var_large_plain_array_ec))}; + if (!common_var_large_plain_array_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure var_large_plain_array member TypeIdentifier inconsistent."); + return; + } + MemberName name_var_large_plain_array = "var_large_plain_array"; + eprosima::fastcdr::optional member_ann_builtin_var_large_plain_array; + ann_custom_LargePlainArray.reset(); + CompleteMemberDetail detail_var_large_plain_array = TypeObjectUtils::build_complete_member_detail(name_var_large_plain_array, member_ann_builtin_var_large_plain_array, ann_custom_LargePlainArray); + CompleteStructMember member_var_large_plain_array = TypeObjectUtils::build_complete_struct_member(common_var_large_plain_array, detail_var_large_plain_array); + TypeObjectUtils::add_complete_struct_member(member_seq_LargePlainArray, member_var_large_plain_array); + } + CompleteStructType struct_type_LargePlainArray = TypeObjectUtils::build_complete_struct_type(struct_flags_LargePlainArray, header_LargePlainArray, member_seq_LargePlainArray); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_LargePlainArray, type_name_LargePlainArray.to_string(), type_ids_LargePlainArray)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "LargePlainArray already registered in TypeObjectRegistry for a different type."); + } + } } diff --git a/test/dds-types-test/arraysTypeObjectSupport.hpp b/test/dds-types-test/arraysTypeObjectSupport.hpp index c44633c6a95..99a96cac685 100644 --- a/test/dds-types-test/arraysTypeObjectSupport.hpp +++ b/test/dds-types-test/arraysTypeObjectSupport.hpp @@ -1298,6 +1298,30 @@ eProsima_user_DllExport void register_BoundedSmallArrays_type_identifier( */ eProsima_user_DllExport void register_BoundedBigArrays_type_identifier( eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register LargeBasicPlainArray related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_LargeBasicPlainArray_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register LargePlainArray related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_LargePlainArray_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); #endif // DOXYGEN_SHOULD_SKIP_THIS_PUBLIC diff --git a/test/dds-types-test/bitsetsCdrAux.hpp b/test/dds-types-test/bitsetsCdrAux.hpp index 839f3a423a6..de5f05389f0 100644 --- a/test/dds-types-test/bitsetsCdrAux.hpp +++ b/test/dds-types-test/bitsetsCdrAux.hpp @@ -43,6 +43,7 @@ constexpr uint32_t BitsetStruct_max_key_cdr_typesize {0UL}; + namespace eprosima { namespace fastcdr { @@ -54,6 +55,7 @@ eProsima_user_DllExport void serialize_key( const BitsetStruct& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/bitsetsCdrAux.ipp b/test/dds-types-test/bitsetsCdrAux.ipp index 0df0212eca0..1d78da53c12 100644 --- a/test/dds-types-test/bitsetsCdrAux.ipp +++ b/test/dds-types-test/bitsetsCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -72,6 +73,19 @@ eProsima_user_DllExport void serialize( scdr << bitset; } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerTypedBitsetHelper* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of bitsets not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& dcdr, @@ -100,6 +114,19 @@ eProsima_user_DllExport void deserialize( } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerTypedBitsetHelper* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of bitsets not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -126,6 +153,19 @@ eProsima_user_DllExport void serialize( scdr << bitset; } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerTypedBitsetHelper2* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of bitsets not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& dcdr, @@ -142,6 +182,19 @@ eProsima_user_DllExport void deserialize( } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerTypedBitsetHelper2* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of bitsets not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -165,6 +218,19 @@ eProsima_user_DllExport void serialize( scdr << bitset; } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerTypedBitsetHelper3* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of bitsets not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& dcdr, @@ -178,6 +244,19 @@ eProsima_user_DllExport void deserialize( } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerTypedBitsetHelper3* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of bitsets not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -201,6 +280,19 @@ eProsima_user_DllExport void serialize( scdr << bitset; } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerTypedBitsetHelper4* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of bitsets not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& dcdr, @@ -214,6 +306,27 @@ eProsima_user_DllExport void deserialize( } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerTypedBitsetHelper4* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of bitsets not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_BitsetStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -272,6 +385,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const BitsetStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BitsetStruct_cdr_plain(data_representation) && + sizeof(BitsetStruct) == BitsetStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(BitsetStruct)); + + scdr.jump((array_size -1) * sizeof(BitsetStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -313,6 +464,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + BitsetStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BitsetStruct_cdr_plain(data_representation) && + sizeof(BitsetStruct) == BitsetStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(BitsetStruct)); + + scdr.jump((array_size - 1) * sizeof(BitsetStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const BitsetStruct& data) diff --git a/test/dds-types-test/bitsetsPubSubTypes.cxx b/test/dds-types-test/bitsetsPubSubTypes.cxx index a257a16a406..ac929e21d33 100644 --- a/test/dds-types-test/bitsetsPubSubTypes.cxx +++ b/test/dds-types-test/bitsetsPubSubTypes.cxx @@ -31,6 +31,32 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_BitsetStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + + + + + + + + + + + + +} // namespace fastcdr +} // namespace eprosima + BitsetStructPubSubType::BitsetStructPubSubType() { set_name("BitsetStruct"); @@ -149,6 +175,17 @@ void BitsetStructPubSubType::delete_data( delete(reinterpret_cast<::BitsetStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool BitsetStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool BitsetStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds-types-test/bitsetsPubSubTypes.hpp b/test/dds-types-test/bitsetsPubSubTypes.hpp index bf735994ccf..d1c58e6695d 100644 --- a/test/dds-types-test/bitsetsPubSubTypes.hpp +++ b/test/dds-types-test/bitsetsPubSubTypes.hpp @@ -94,12 +94,8 @@ class BitsetStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds-types-test/constantsCdrAux.hpp b/test/dds-types-test/constantsCdrAux.hpp index 77a14713fff..e7362a92107 100644 --- a/test/dds-types-test/constantsCdrAux.hpp +++ b/test/dds-types-test/constantsCdrAux.hpp @@ -52,15 +52,18 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const const_module1::ModuleConstsLiteralsStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const const_module2::Module2ConstsLiteralsStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ConstsLiteralsStruct& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/constantsCdrAux.ipp b/test/dds-types-test/constantsCdrAux.ipp index 6f330de48e5..be3d19f2134 100644 --- a/test/dds-types-test/constantsCdrAux.ipp +++ b/test/dds-types-test/constantsCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_const_module1_ModuleConstsLiteralsStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -92,6 +101,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const const_module1::ModuleConstsLiteralsStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_const_module1_ModuleConstsLiteralsStruct_cdr_plain(data_representation) && + sizeof(const_module1::ModuleConstsLiteralsStruct) == const_module1_ModuleConstsLiteralsStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(const_module1::ModuleConstsLiteralsStruct)); + + scdr.jump((array_size -1) * sizeof(const_module1::ModuleConstsLiteralsStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -131,6 +178,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + const_module1::ModuleConstsLiteralsStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_const_module1_ModuleConstsLiteralsStruct_cdr_plain(data_representation) && + sizeof(const_module1::ModuleConstsLiteralsStruct) == const_module1_ModuleConstsLiteralsStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(const_module1::ModuleConstsLiteralsStruct)); + + scdr.jump((array_size - 1) * sizeof(const_module1::ModuleConstsLiteralsStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const const_module1::ModuleConstsLiteralsStruct& data) @@ -150,6 +233,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_const_module2_Module2ConstsLiteralsStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -212,6 +303,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const const_module2::Module2ConstsLiteralsStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_const_module2_Module2ConstsLiteralsStruct_cdr_plain(data_representation) && + sizeof(const_module2::Module2ConstsLiteralsStruct) == const_module2_Module2ConstsLiteralsStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(const_module2::Module2ConstsLiteralsStruct)); + + scdr.jump((array_size -1) * sizeof(const_module2::Module2ConstsLiteralsStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -255,6 +384,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + const_module2::Module2ConstsLiteralsStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_const_module2_Module2ConstsLiteralsStruct_cdr_plain(data_representation) && + sizeof(const_module2::Module2ConstsLiteralsStruct) == const_module2_Module2ConstsLiteralsStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(const_module2::Module2ConstsLiteralsStruct)); + + scdr.jump((array_size - 1) * sizeof(const_module2::Module2ConstsLiteralsStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const const_module2::Module2ConstsLiteralsStruct& data) @@ -276,6 +441,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ConstsLiteralsStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -426,6 +599,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ConstsLiteralsStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ConstsLiteralsStruct_cdr_plain(data_representation) && + sizeof(ConstsLiteralsStruct) == ConstsLiteralsStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ConstsLiteralsStruct)); + + scdr.jump((array_size -1) * sizeof(ConstsLiteralsStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -559,6 +770,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ConstsLiteralsStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ConstsLiteralsStruct_cdr_plain(data_representation) && + sizeof(ConstsLiteralsStruct) == ConstsLiteralsStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ConstsLiteralsStruct)); + + scdr.jump((array_size - 1) * sizeof(ConstsLiteralsStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ConstsLiteralsStruct& data) diff --git a/test/dds-types-test/constantsPubSubTypes.cxx b/test/dds-types-test/constantsPubSubTypes.cxx index da6d6050dd8..1b066da4c3e 100644 --- a/test/dds-types-test/constantsPubSubTypes.cxx +++ b/test/dds-types-test/constantsPubSubTypes.cxx @@ -31,6 +31,30 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_ConstsLiteralsStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + + + +bool is_const_module2_Module2ConstsLiteralsStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_const_module1_ModuleConstsLiteralsStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + +} // namespace fastcdr +} // namespace eprosima + namespace const_module1 { ModuleConstsLiteralsStructPubSubType::ModuleConstsLiteralsStructPubSubType() { @@ -150,6 +174,17 @@ namespace const_module1 { delete(reinterpret_cast<::const_module1::ModuleConstsLiteralsStruct*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ModuleConstsLiteralsStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ModuleConstsLiteralsStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -335,6 +370,17 @@ namespace const_module2 { delete(reinterpret_cast<::const_module2::Module2ConstsLiteralsStruct*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Module2ConstsLiteralsStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Module2ConstsLiteralsStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -519,6 +565,17 @@ void ConstsLiteralsStructPubSubType::delete_data( delete(reinterpret_cast<::ConstsLiteralsStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ConstsLiteralsStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ConstsLiteralsStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds-types-test/constantsPubSubTypes.hpp b/test/dds-types-test/constantsPubSubTypes.hpp index fae6beee79a..37fe2bc4ba0 100644 --- a/test/dds-types-test/constantsPubSubTypes.hpp +++ b/test/dds-types-test/constantsPubSubTypes.hpp @@ -98,12 +98,8 @@ namespace const_module1 #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -183,12 +179,8 @@ namespace const_module2 #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -266,12 +258,8 @@ class ConstsLiteralsStructPubSubType : public eprosima::fastdds::dds::TopicDataT #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds-types-test/declarationsCdrAux.hpp b/test/dds-types-test/declarationsCdrAux.hpp index c7d2522bd10..8e8645dcb70 100644 --- a/test/dds-types-test/declarationsCdrAux.hpp +++ b/test/dds-types-test/declarationsCdrAux.hpp @@ -59,27 +59,33 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ForwardDeclarationsRecursiveStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ForwardStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const declarations_module::ForwardStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ModuledForwardDeclarationsRecursiveStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const declarations_module::ModuledForwardStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ModuledCommonNameStructure& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/declarationsCdrAux.ipp b/test/dds-types-test/declarationsCdrAux.ipp index 4c9f8ca5baf..f6863469d72 100644 --- a/test/dds-types-test/declarationsCdrAux.ipp +++ b/test/dds-types-test/declarationsCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_ForwardDeclarationsRecursiveStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -88,6 +97,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ForwardDeclarationsRecursiveStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ForwardDeclarationsRecursiveStruct_cdr_plain(data_representation) && + sizeof(ForwardDeclarationsRecursiveStruct) == ForwardDeclarationsRecursiveStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ForwardDeclarationsRecursiveStruct)); + + scdr.jump((array_size -1) * sizeof(ForwardDeclarationsRecursiveStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -125,6 +172,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ForwardDeclarationsRecursiveStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ForwardDeclarationsRecursiveStruct_cdr_plain(data_representation) && + sizeof(ForwardDeclarationsRecursiveStruct) == ForwardDeclarationsRecursiveStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ForwardDeclarationsRecursiveStruct)); + + scdr.jump((array_size - 1) * sizeof(ForwardDeclarationsRecursiveStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ForwardDeclarationsRecursiveStruct& data) @@ -213,6 +296,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ForwardUnion* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -273,6 +369,27 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ForwardUnion* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_ForwardStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -319,6 +436,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ForwardStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ForwardStruct_cdr_plain(data_representation) && + sizeof(ForwardStruct) == ForwardStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ForwardStruct)); + + scdr.jump((array_size -1) * sizeof(ForwardStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -348,6 +503,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ForwardStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ForwardStruct_cdr_plain(data_representation) && + sizeof(ForwardStruct) == ForwardStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ForwardStruct)); + + scdr.jump((array_size - 1) * sizeof(ForwardStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ForwardStruct& data) @@ -362,6 +553,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_declarations_module_ForwardStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -408,6 +607,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const declarations_module::ForwardStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_declarations_module_ForwardStruct_cdr_plain(data_representation) && + sizeof(declarations_module::ForwardStruct) == declarations_module_ForwardStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(declarations_module::ForwardStruct)); + + scdr.jump((array_size -1) * sizeof(declarations_module::ForwardStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -435,6 +672,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + declarations_module::ForwardStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_declarations_module_ForwardStruct_cdr_plain(data_representation) && + sizeof(declarations_module::ForwardStruct) == declarations_module_ForwardStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(declarations_module::ForwardStruct)); + + scdr.jump((array_size - 1) * sizeof(declarations_module::ForwardStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const declarations_module::ForwardStruct& data) @@ -448,6 +721,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ModuledForwardDeclarationsRecursiveStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -502,6 +783,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ModuledForwardDeclarationsRecursiveStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ModuledForwardDeclarationsRecursiveStruct_cdr_plain(data_representation) && + sizeof(ModuledForwardDeclarationsRecursiveStruct) == ModuledForwardDeclarationsRecursiveStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ModuledForwardDeclarationsRecursiveStruct)); + + scdr.jump((array_size -1) * sizeof(ModuledForwardDeclarationsRecursiveStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -539,6 +858,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ModuledForwardDeclarationsRecursiveStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ModuledForwardDeclarationsRecursiveStruct_cdr_plain(data_representation) && + sizeof(ModuledForwardDeclarationsRecursiveStruct) == ModuledForwardDeclarationsRecursiveStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ModuledForwardDeclarationsRecursiveStruct)); + + scdr.jump((array_size - 1) * sizeof(ModuledForwardDeclarationsRecursiveStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ModuledForwardDeclarationsRecursiveStruct& data) @@ -557,6 +912,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_declarations_module_ModuledForwardStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -607,6 +970,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const declarations_module::ModuledForwardStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_declarations_module_ModuledForwardStruct_cdr_plain(data_representation) && + sizeof(declarations_module::ModuledForwardStruct) == declarations_module_ModuledForwardStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(declarations_module::ModuledForwardStruct)); + + scdr.jump((array_size -1) * sizeof(declarations_module::ModuledForwardStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -638,6 +1039,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + declarations_module::ModuledForwardStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_declarations_module_ModuledForwardStruct_cdr_plain(data_representation) && + sizeof(declarations_module::ModuledForwardStruct) == declarations_module_ModuledForwardStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(declarations_module::ModuledForwardStruct)); + + scdr.jump((array_size - 1) * sizeof(declarations_module::ModuledForwardStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const declarations_module::ModuledForwardStruct& data) @@ -727,6 +1164,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const declarations_module::ModuledForwardUnion* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -789,6 +1239,27 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + declarations_module::ModuledForwardUnion* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_ModuledCommonNameStructure_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -835,6 +1306,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ModuledCommonNameStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ModuledCommonNameStructure_cdr_plain(data_representation) && + sizeof(ModuledCommonNameStructure) == ModuledCommonNameStructure_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ModuledCommonNameStructure)); + + scdr.jump((array_size -1) * sizeof(ModuledCommonNameStructure)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -864,6 +1373,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ModuledCommonNameStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ModuledCommonNameStructure_cdr_plain(data_representation) && + sizeof(ModuledCommonNameStructure) == ModuledCommonNameStructure_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ModuledCommonNameStructure)); + + scdr.jump((array_size - 1) * sizeof(ModuledCommonNameStructure)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ModuledCommonNameStructure& data) diff --git a/test/dds-types-test/declarationsPubSubTypes.cxx b/test/dds-types-test/declarationsPubSubTypes.cxx index f5d5e14f8bd..1730e64207f 100644 --- a/test/dds-types-test/declarationsPubSubTypes.cxx +++ b/test/dds-types-test/declarationsPubSubTypes.cxx @@ -29,6 +29,37 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_ModuledCommonNameStructure_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ForwardStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_declarations_module_ForwardStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_ModuledForwardDeclarationsRecursiveStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_ForwardDeclarationsRecursiveStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_declarations_module_ModuledForwardStruct_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + ForwardDeclarationsRecursiveStructPubSubType::ForwardDeclarationsRecursiveStructPubSubType() { set_name("ForwardDeclarationsRecursiveStruct"); @@ -147,6 +178,17 @@ void ForwardDeclarationsRecursiveStructPubSubType::delete_data( delete(reinterpret_cast<::ForwardDeclarationsRecursiveStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ForwardDeclarationsRecursiveStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ForwardDeclarationsRecursiveStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -330,6 +372,17 @@ void ForwardStructPubSubType::delete_data( delete(reinterpret_cast<::ForwardStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ForwardStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ForwardStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -514,6 +567,17 @@ namespace declarations_module { delete(reinterpret_cast<::declarations_module::ForwardStruct*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ForwardStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ForwardStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -699,6 +763,17 @@ void ModuledForwardDeclarationsRecursiveStructPubSubType::delete_data( delete(reinterpret_cast<::ModuledForwardDeclarationsRecursiveStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ModuledForwardDeclarationsRecursiveStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ModuledForwardDeclarationsRecursiveStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -883,6 +958,17 @@ namespace declarations_module { delete(reinterpret_cast<::declarations_module::ModuledForwardStruct*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ModuledForwardStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ModuledForwardStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1068,6 +1154,17 @@ void ModuledCommonNameStructurePubSubType::delete_data( delete(reinterpret_cast<::ModuledCommonNameStructure*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ModuledCommonNameStructurePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ModuledCommonNameStructurePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds-types-test/declarationsPubSubTypes.hpp b/test/dds-types-test/declarationsPubSubTypes.hpp index 4f4b899208b..b8cff89970b 100644 --- a/test/dds-types-test/declarationsPubSubTypes.hpp +++ b/test/dds-types-test/declarationsPubSubTypes.hpp @@ -97,12 +97,8 @@ class ForwardDeclarationsRecursiveStructPubSubType : public eprosima::fastdds::d #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -179,12 +175,8 @@ class ForwardStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -267,12 +259,8 @@ namespace declarations_module #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -350,12 +338,8 @@ class ModuledForwardDeclarationsRecursiveStructPubSubType : public eprosima::fas #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -434,12 +418,8 @@ namespace declarations_module #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -517,12 +497,8 @@ class ModuledCommonNameStructurePubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds-types-test/declarationsTypeObjectSupport.cxx b/test/dds-types-test/declarationsTypeObjectSupport.cxx new file mode 100644 index 00000000000..ea5d69a42f2 --- /dev/null +++ b/test/dds-types-test/declarationsTypeObjectSupport.cxx @@ -0,0 +1,1700 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file declarationsTypeObjectSupport.cxx + * Source file containing the implementation to register the TypeObject representation of the described types in the IDL file + * + * This file was generated by the tool fastddsgen (version: 4.1.0). + */ + +#include "declarationsTypeObjectSupport.hpp" + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include "declarations.hpp" + + +using namespace eprosima::fastdds::dds::xtypes; + +void register_RecursiveUnboundedSeqForwardStruct_type_identifier( + TypeIdentifierPair& type_ids_RecursiveUnboundedSeqForwardStruct) +{ + ReturnCode_t return_code_RecursiveUnboundedSeqForwardStruct {eprosima::fastdds::dds::RETCODE_OK}; + return_code_RecursiveUnboundedSeqForwardStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "RecursiveUnboundedSeqForwardStruct", type_ids_RecursiveUnboundedSeqForwardStruct); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_RecursiveUnboundedSeqForwardStruct) + { + AliasTypeFlag alias_flags_RecursiveUnboundedSeqForwardStruct = 0; + QualifiedTypeName type_name_RecursiveUnboundedSeqForwardStruct = "RecursiveUnboundedSeqForwardStruct"; + eprosima::fastcdr::optional type_ann_builtin_RecursiveUnboundedSeqForwardStruct; + eprosima::fastcdr::optional ann_custom_RecursiveUnboundedSeqForwardStruct; + CompleteTypeDetail detail_RecursiveUnboundedSeqForwardStruct = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_RecursiveUnboundedSeqForwardStruct, ann_custom_RecursiveUnboundedSeqForwardStruct, type_name_RecursiveUnboundedSeqForwardStruct.to_string()); + CompleteAliasHeader header_RecursiveUnboundedSeqForwardStruct = TypeObjectUtils::build_complete_alias_header(detail_RecursiveUnboundedSeqForwardStruct); + AliasMemberFlag related_flags_RecursiveUnboundedSeqForwardStruct = 0; + return_code_RecursiveUnboundedSeqForwardStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_sequence_ForwardStruct_unbounded", type_ids_RecursiveUnboundedSeqForwardStruct); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_RecursiveUnboundedSeqForwardStruct) + { + return_code_RecursiveUnboundedSeqForwardStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "ForwardStruct", type_ids_RecursiveUnboundedSeqForwardStruct); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_RecursiveUnboundedSeqForwardStruct) + { + ::register_ForwardStruct_type_identifier(type_ids_RecursiveUnboundedSeqForwardStruct); + } + bool element_identifier_anonymous_sequence_ForwardStruct_unbounded_ec {false}; + TypeIdentifier* element_identifier_anonymous_sequence_ForwardStruct_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_RecursiveUnboundedSeqForwardStruct, element_identifier_anonymous_sequence_ForwardStruct_unbounded_ec))}; + if (!element_identifier_anonymous_sequence_ForwardStruct_unbounded_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Sequence element TypeIdentifier inconsistent."); + return; + } + EquivalenceKind equiv_kind_anonymous_sequence_ForwardStruct_unbounded = EK_COMPLETE; + if (TK_NONE == type_ids_RecursiveUnboundedSeqForwardStruct.type_identifier2()._d()) + { + equiv_kind_anonymous_sequence_ForwardStruct_unbounded = EK_BOTH; + } + CollectionElementFlag element_flags_anonymous_sequence_ForwardStruct_unbounded = 0; + PlainCollectionHeader header_anonymous_sequence_ForwardStruct_unbounded = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_sequence_ForwardStruct_unbounded, element_flags_anonymous_sequence_ForwardStruct_unbounded); + { + SBound bound = 0; + PlainSequenceSElemDefn seq_sdefn = TypeObjectUtils::build_plain_sequence_s_elem_defn(header_anonymous_sequence_ForwardStruct_unbounded, bound, + eprosima::fastcdr::external(element_identifier_anonymous_sequence_ForwardStruct_unbounded)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_sequence_type_identifier(seq_sdefn, "anonymous_sequence_ForwardStruct_unbounded", type_ids_RecursiveUnboundedSeqForwardStruct)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_sequence_ForwardStruct_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + bool common_RecursiveUnboundedSeqForwardStruct_ec {false}; + CommonAliasBody common_RecursiveUnboundedSeqForwardStruct {TypeObjectUtils::build_common_alias_body(related_flags_RecursiveUnboundedSeqForwardStruct, + TypeObjectUtils::retrieve_complete_type_identifier(type_ids_RecursiveUnboundedSeqForwardStruct, common_RecursiveUnboundedSeqForwardStruct_ec))}; + if (!common_RecursiveUnboundedSeqForwardStruct_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "RecursiveUnboundedSeqForwardStruct related TypeIdentifier inconsistent."); + return; + } + eprosima::fastcdr::optional member_ann_builtin_RecursiveUnboundedSeqForwardStruct; + ann_custom_RecursiveUnboundedSeqForwardStruct.reset(); + CompleteAliasBody body_RecursiveUnboundedSeqForwardStruct = TypeObjectUtils::build_complete_alias_body(common_RecursiveUnboundedSeqForwardStruct, + member_ann_builtin_RecursiveUnboundedSeqForwardStruct, ann_custom_RecursiveUnboundedSeqForwardStruct); + CompleteAliasType alias_type_RecursiveUnboundedSeqForwardStruct = TypeObjectUtils::build_complete_alias_type(alias_flags_RecursiveUnboundedSeqForwardStruct, + header_RecursiveUnboundedSeqForwardStruct, body_RecursiveUnboundedSeqForwardStruct); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_alias_type_object(alias_type_RecursiveUnboundedSeqForwardStruct, + type_name_RecursiveUnboundedSeqForwardStruct.to_string(), type_ids_RecursiveUnboundedSeqForwardStruct)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "RecursiveUnboundedSeqForwardStruct already registered in TypeObjectRegistry for a different type."); + } + } +} + +void register_RecursiveBoundedSeqForwardStruct_type_identifier( + TypeIdentifierPair& type_ids_RecursiveBoundedSeqForwardStruct) +{ + ReturnCode_t return_code_RecursiveBoundedSeqForwardStruct {eprosima::fastdds::dds::RETCODE_OK}; + return_code_RecursiveBoundedSeqForwardStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "RecursiveBoundedSeqForwardStruct", type_ids_RecursiveBoundedSeqForwardStruct); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_RecursiveBoundedSeqForwardStruct) + { + AliasTypeFlag alias_flags_RecursiveBoundedSeqForwardStruct = 0; + QualifiedTypeName type_name_RecursiveBoundedSeqForwardStruct = "RecursiveBoundedSeqForwardStruct"; + eprosima::fastcdr::optional type_ann_builtin_RecursiveBoundedSeqForwardStruct; + eprosima::fastcdr::optional ann_custom_RecursiveBoundedSeqForwardStruct; + CompleteTypeDetail detail_RecursiveBoundedSeqForwardStruct = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_RecursiveBoundedSeqForwardStruct, ann_custom_RecursiveBoundedSeqForwardStruct, type_name_RecursiveBoundedSeqForwardStruct.to_string()); + CompleteAliasHeader header_RecursiveBoundedSeqForwardStruct = TypeObjectUtils::build_complete_alias_header(detail_RecursiveBoundedSeqForwardStruct); + AliasMemberFlag related_flags_RecursiveBoundedSeqForwardStruct = 0; + return_code_RecursiveBoundedSeqForwardStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_sequence_ForwardStruct_10", type_ids_RecursiveBoundedSeqForwardStruct); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_RecursiveBoundedSeqForwardStruct) + { + return_code_RecursiveBoundedSeqForwardStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "ForwardStruct", type_ids_RecursiveBoundedSeqForwardStruct); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_RecursiveBoundedSeqForwardStruct) + { + ::register_ForwardStruct_type_identifier(type_ids_RecursiveBoundedSeqForwardStruct); + } + bool element_identifier_anonymous_sequence_ForwardStruct_10_ec {false}; + TypeIdentifier* element_identifier_anonymous_sequence_ForwardStruct_10 {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_RecursiveBoundedSeqForwardStruct, element_identifier_anonymous_sequence_ForwardStruct_10_ec))}; + if (!element_identifier_anonymous_sequence_ForwardStruct_10_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Sequence element TypeIdentifier inconsistent."); + return; + } + EquivalenceKind equiv_kind_anonymous_sequence_ForwardStruct_10 = EK_COMPLETE; + if (TK_NONE == type_ids_RecursiveBoundedSeqForwardStruct.type_identifier2()._d()) + { + equiv_kind_anonymous_sequence_ForwardStruct_10 = EK_BOTH; + } + CollectionElementFlag element_flags_anonymous_sequence_ForwardStruct_10 = 0; + PlainCollectionHeader header_anonymous_sequence_ForwardStruct_10 = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_sequence_ForwardStruct_10, element_flags_anonymous_sequence_ForwardStruct_10); + { + SBound bound = static_cast(10); + PlainSequenceSElemDefn seq_sdefn = TypeObjectUtils::build_plain_sequence_s_elem_defn(header_anonymous_sequence_ForwardStruct_10, bound, + eprosima::fastcdr::external(element_identifier_anonymous_sequence_ForwardStruct_10)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_sequence_type_identifier(seq_sdefn, "anonymous_sequence_ForwardStruct_10", type_ids_RecursiveBoundedSeqForwardStruct)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_sequence_ForwardStruct_10 already registered in TypeObjectRegistry for a different type."); + } + } + } + bool common_RecursiveBoundedSeqForwardStruct_ec {false}; + CommonAliasBody common_RecursiveBoundedSeqForwardStruct {TypeObjectUtils::build_common_alias_body(related_flags_RecursiveBoundedSeqForwardStruct, + TypeObjectUtils::retrieve_complete_type_identifier(type_ids_RecursiveBoundedSeqForwardStruct, common_RecursiveBoundedSeqForwardStruct_ec))}; + if (!common_RecursiveBoundedSeqForwardStruct_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "RecursiveBoundedSeqForwardStruct related TypeIdentifier inconsistent."); + return; + } + eprosima::fastcdr::optional member_ann_builtin_RecursiveBoundedSeqForwardStruct; + ann_custom_RecursiveBoundedSeqForwardStruct.reset(); + CompleteAliasBody body_RecursiveBoundedSeqForwardStruct = TypeObjectUtils::build_complete_alias_body(common_RecursiveBoundedSeqForwardStruct, + member_ann_builtin_RecursiveBoundedSeqForwardStruct, ann_custom_RecursiveBoundedSeqForwardStruct); + CompleteAliasType alias_type_RecursiveBoundedSeqForwardStruct = TypeObjectUtils::build_complete_alias_type(alias_flags_RecursiveBoundedSeqForwardStruct, + header_RecursiveBoundedSeqForwardStruct, body_RecursiveBoundedSeqForwardStruct); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_alias_type_object(alias_type_RecursiveBoundedSeqForwardStruct, + type_name_RecursiveBoundedSeqForwardStruct.to_string(), type_ids_RecursiveBoundedSeqForwardStruct)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "RecursiveBoundedSeqForwardStruct already registered in TypeObjectRegistry for a different type."); + } + } +} + +void register_RecursiveUnboundedSeqForwardUnion_type_identifier( + TypeIdentifierPair& type_ids_RecursiveUnboundedSeqForwardUnion) +{ + ReturnCode_t return_code_RecursiveUnboundedSeqForwardUnion {eprosima::fastdds::dds::RETCODE_OK}; + return_code_RecursiveUnboundedSeqForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "RecursiveUnboundedSeqForwardUnion", type_ids_RecursiveUnboundedSeqForwardUnion); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_RecursiveUnboundedSeqForwardUnion) + { + AliasTypeFlag alias_flags_RecursiveUnboundedSeqForwardUnion = 0; + QualifiedTypeName type_name_RecursiveUnboundedSeqForwardUnion = "RecursiveUnboundedSeqForwardUnion"; + eprosima::fastcdr::optional type_ann_builtin_RecursiveUnboundedSeqForwardUnion; + eprosima::fastcdr::optional ann_custom_RecursiveUnboundedSeqForwardUnion; + CompleteTypeDetail detail_RecursiveUnboundedSeqForwardUnion = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_RecursiveUnboundedSeqForwardUnion, ann_custom_RecursiveUnboundedSeqForwardUnion, type_name_RecursiveUnboundedSeqForwardUnion.to_string()); + CompleteAliasHeader header_RecursiveUnboundedSeqForwardUnion = TypeObjectUtils::build_complete_alias_header(detail_RecursiveUnboundedSeqForwardUnion); + AliasMemberFlag related_flags_RecursiveUnboundedSeqForwardUnion = 0; + return_code_RecursiveUnboundedSeqForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_sequence_ForwardUnion_unbounded", type_ids_RecursiveUnboundedSeqForwardUnion); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_RecursiveUnboundedSeqForwardUnion) + { + return_code_RecursiveUnboundedSeqForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "ForwardUnion", type_ids_RecursiveUnboundedSeqForwardUnion); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_RecursiveUnboundedSeqForwardUnion) + { + ::register_ForwardUnion_type_identifier(type_ids_RecursiveUnboundedSeqForwardUnion); + } + bool element_identifier_anonymous_sequence_ForwardUnion_unbounded_ec {false}; + TypeIdentifier* element_identifier_anonymous_sequence_ForwardUnion_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_RecursiveUnboundedSeqForwardUnion, element_identifier_anonymous_sequence_ForwardUnion_unbounded_ec))}; + if (!element_identifier_anonymous_sequence_ForwardUnion_unbounded_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Sequence element TypeIdentifier inconsistent."); + return; + } + EquivalenceKind equiv_kind_anonymous_sequence_ForwardUnion_unbounded = EK_COMPLETE; + if (TK_NONE == type_ids_RecursiveUnboundedSeqForwardUnion.type_identifier2()._d()) + { + equiv_kind_anonymous_sequence_ForwardUnion_unbounded = EK_BOTH; + } + CollectionElementFlag element_flags_anonymous_sequence_ForwardUnion_unbounded = 0; + PlainCollectionHeader header_anonymous_sequence_ForwardUnion_unbounded = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_sequence_ForwardUnion_unbounded, element_flags_anonymous_sequence_ForwardUnion_unbounded); + { + SBound bound = 0; + PlainSequenceSElemDefn seq_sdefn = TypeObjectUtils::build_plain_sequence_s_elem_defn(header_anonymous_sequence_ForwardUnion_unbounded, bound, + eprosima::fastcdr::external(element_identifier_anonymous_sequence_ForwardUnion_unbounded)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_sequence_type_identifier(seq_sdefn, "anonymous_sequence_ForwardUnion_unbounded", type_ids_RecursiveUnboundedSeqForwardUnion)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_sequence_ForwardUnion_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + bool common_RecursiveUnboundedSeqForwardUnion_ec {false}; + CommonAliasBody common_RecursiveUnboundedSeqForwardUnion {TypeObjectUtils::build_common_alias_body(related_flags_RecursiveUnboundedSeqForwardUnion, + TypeObjectUtils::retrieve_complete_type_identifier(type_ids_RecursiveUnboundedSeqForwardUnion, common_RecursiveUnboundedSeqForwardUnion_ec))}; + if (!common_RecursiveUnboundedSeqForwardUnion_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "RecursiveUnboundedSeqForwardUnion related TypeIdentifier inconsistent."); + return; + } + eprosima::fastcdr::optional member_ann_builtin_RecursiveUnboundedSeqForwardUnion; + ann_custom_RecursiveUnboundedSeqForwardUnion.reset(); + CompleteAliasBody body_RecursiveUnboundedSeqForwardUnion = TypeObjectUtils::build_complete_alias_body(common_RecursiveUnboundedSeqForwardUnion, + member_ann_builtin_RecursiveUnboundedSeqForwardUnion, ann_custom_RecursiveUnboundedSeqForwardUnion); + CompleteAliasType alias_type_RecursiveUnboundedSeqForwardUnion = TypeObjectUtils::build_complete_alias_type(alias_flags_RecursiveUnboundedSeqForwardUnion, + header_RecursiveUnboundedSeqForwardUnion, body_RecursiveUnboundedSeqForwardUnion); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_alias_type_object(alias_type_RecursiveUnboundedSeqForwardUnion, + type_name_RecursiveUnboundedSeqForwardUnion.to_string(), type_ids_RecursiveUnboundedSeqForwardUnion)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "RecursiveUnboundedSeqForwardUnion already registered in TypeObjectRegistry for a different type."); + } + } +} + +void register_RecursiveBoundedSeqForwardUnion_type_identifier( + TypeIdentifierPair& type_ids_RecursiveBoundedSeqForwardUnion) +{ + ReturnCode_t return_code_RecursiveBoundedSeqForwardUnion {eprosima::fastdds::dds::RETCODE_OK}; + return_code_RecursiveBoundedSeqForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "RecursiveBoundedSeqForwardUnion", type_ids_RecursiveBoundedSeqForwardUnion); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_RecursiveBoundedSeqForwardUnion) + { + AliasTypeFlag alias_flags_RecursiveBoundedSeqForwardUnion = 0; + QualifiedTypeName type_name_RecursiveBoundedSeqForwardUnion = "RecursiveBoundedSeqForwardUnion"; + eprosima::fastcdr::optional type_ann_builtin_RecursiveBoundedSeqForwardUnion; + eprosima::fastcdr::optional ann_custom_RecursiveBoundedSeqForwardUnion; + CompleteTypeDetail detail_RecursiveBoundedSeqForwardUnion = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_RecursiveBoundedSeqForwardUnion, ann_custom_RecursiveBoundedSeqForwardUnion, type_name_RecursiveBoundedSeqForwardUnion.to_string()); + CompleteAliasHeader header_RecursiveBoundedSeqForwardUnion = TypeObjectUtils::build_complete_alias_header(detail_RecursiveBoundedSeqForwardUnion); + AliasMemberFlag related_flags_RecursiveBoundedSeqForwardUnion = 0; + return_code_RecursiveBoundedSeqForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_sequence_ForwardUnion_10", type_ids_RecursiveBoundedSeqForwardUnion); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_RecursiveBoundedSeqForwardUnion) + { + return_code_RecursiveBoundedSeqForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "ForwardUnion", type_ids_RecursiveBoundedSeqForwardUnion); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_RecursiveBoundedSeqForwardUnion) + { + ::register_ForwardUnion_type_identifier(type_ids_RecursiveBoundedSeqForwardUnion); + } + bool element_identifier_anonymous_sequence_ForwardUnion_10_ec {false}; + TypeIdentifier* element_identifier_anonymous_sequence_ForwardUnion_10 {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_RecursiveBoundedSeqForwardUnion, element_identifier_anonymous_sequence_ForwardUnion_10_ec))}; + if (!element_identifier_anonymous_sequence_ForwardUnion_10_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Sequence element TypeIdentifier inconsistent."); + return; + } + EquivalenceKind equiv_kind_anonymous_sequence_ForwardUnion_10 = EK_COMPLETE; + if (TK_NONE == type_ids_RecursiveBoundedSeqForwardUnion.type_identifier2()._d()) + { + equiv_kind_anonymous_sequence_ForwardUnion_10 = EK_BOTH; + } + CollectionElementFlag element_flags_anonymous_sequence_ForwardUnion_10 = 0; + PlainCollectionHeader header_anonymous_sequence_ForwardUnion_10 = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_sequence_ForwardUnion_10, element_flags_anonymous_sequence_ForwardUnion_10); + { + SBound bound = static_cast(10); + PlainSequenceSElemDefn seq_sdefn = TypeObjectUtils::build_plain_sequence_s_elem_defn(header_anonymous_sequence_ForwardUnion_10, bound, + eprosima::fastcdr::external(element_identifier_anonymous_sequence_ForwardUnion_10)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_sequence_type_identifier(seq_sdefn, "anonymous_sequence_ForwardUnion_10", type_ids_RecursiveBoundedSeqForwardUnion)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_sequence_ForwardUnion_10 already registered in TypeObjectRegistry for a different type."); + } + } + } + bool common_RecursiveBoundedSeqForwardUnion_ec {false}; + CommonAliasBody common_RecursiveBoundedSeqForwardUnion {TypeObjectUtils::build_common_alias_body(related_flags_RecursiveBoundedSeqForwardUnion, + TypeObjectUtils::retrieve_complete_type_identifier(type_ids_RecursiveBoundedSeqForwardUnion, common_RecursiveBoundedSeqForwardUnion_ec))}; + if (!common_RecursiveBoundedSeqForwardUnion_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "RecursiveBoundedSeqForwardUnion related TypeIdentifier inconsistent."); + return; + } + eprosima::fastcdr::optional member_ann_builtin_RecursiveBoundedSeqForwardUnion; + ann_custom_RecursiveBoundedSeqForwardUnion.reset(); + CompleteAliasBody body_RecursiveBoundedSeqForwardUnion = TypeObjectUtils::build_complete_alias_body(common_RecursiveBoundedSeqForwardUnion, + member_ann_builtin_RecursiveBoundedSeqForwardUnion, ann_custom_RecursiveBoundedSeqForwardUnion); + CompleteAliasType alias_type_RecursiveBoundedSeqForwardUnion = TypeObjectUtils::build_complete_alias_type(alias_flags_RecursiveBoundedSeqForwardUnion, + header_RecursiveBoundedSeqForwardUnion, body_RecursiveBoundedSeqForwardUnion); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_alias_type_object(alias_type_RecursiveBoundedSeqForwardUnion, + type_name_RecursiveBoundedSeqForwardUnion.to_string(), type_ids_RecursiveBoundedSeqForwardUnion)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "RecursiveBoundedSeqForwardUnion already registered in TypeObjectRegistry for a different type."); + } + } +} + + +namespace ForwardAnnotation { + + + +} // namespace ForwardAnnotation + +void register_ForwardAnnotation_type_identifier( + TypeIdentifierPair& type_ids_ForwardAnnotation) +{ + ReturnCode_t return_code_ForwardAnnotation {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ForwardAnnotation = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "ForwardAnnotation", type_ids_ForwardAnnotation); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ForwardAnnotation) + { + AnnotationTypeFlag annotation_flag_ForwardAnnotation = 0; + QualifiedTypeName annotation_name_ForwardAnnotation = "ForwardAnnotation"; + CompleteAnnotationHeader header_ForwardAnnotation = TypeObjectUtils::build_complete_annotation_header(annotation_name_ForwardAnnotation); + CompleteAnnotationParameterSeq member_seq_ForwardAnnotation; + { + ReturnCode_t return_code_name; + TypeIdentifierPair type_ids_name; + AnnotationParameterFlag member_flags_name = 0; + return_code_name = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_name); + + if (return_code_name != eprosima::fastdds::dds::RETCODE_OK) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_name)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + CommonAnnotationParameter common_name; + if (EK_COMPLETE == type_ids_name.type_identifier1()._d() || TK_NONE == type_ids_name.type_identifier2()._d()) + { + common_name = TypeObjectUtils::build_common_annotation_parameter(member_flags_name, type_ids_name.type_identifier1()); + } + else if (EK_COMPLETE == type_ids_name.type_identifier2()._d()) + { + common_name = TypeObjectUtils::build_common_annotation_parameter(member_flags_name, type_ids_name.type_identifier2()); + } + else + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "name annotation parameter TypeIdentifier inconsistent."); + return; + } + MemberName name_name = "name"; + AnnotationParameterValue param_value_name = TypeObjectUtils::build_annotation_parameter_value(eprosima::fastcdr::fixed_string<128>("")); + + CompleteAnnotationParameter param_name = TypeObjectUtils::build_complete_annotation_parameter(common_name, name_name, param_value_name); + TypeObjectUtils::add_complete_annotation_parameter(member_seq_ForwardAnnotation, param_name); + } + { + ReturnCode_t return_code_value; + TypeIdentifierPair type_ids_value; + AnnotationParameterFlag member_flags_value = 0; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int16_t", type_ids_value); + + if (return_code_value != eprosima::fastdds::dds::RETCODE_OK) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "value annotation parameter TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + CommonAnnotationParameter common_value; + if (EK_COMPLETE == type_ids_value.type_identifier1()._d() || TK_NONE == type_ids_value.type_identifier2()._d()) + { + common_value = TypeObjectUtils::build_common_annotation_parameter(member_flags_value, type_ids_value.type_identifier1()); + } + else if (EK_COMPLETE == type_ids_value.type_identifier2()._d()) + { + common_value = TypeObjectUtils::build_common_annotation_parameter(member_flags_value, type_ids_value.type_identifier2()); + } + else + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "value annotation parameter TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + AnnotationParameterValue param_value_value = TypeObjectUtils::build_annotation_parameter_value(static_cast(0)); + + CompleteAnnotationParameter param_value = TypeObjectUtils::build_complete_annotation_parameter(common_value, name_value, param_value_value); + TypeObjectUtils::add_complete_annotation_parameter(member_seq_ForwardAnnotation, param_value); + } + CompleteAnnotationType annotation_type_ForwardAnnotation = TypeObjectUtils::build_complete_annotation_type(annotation_flag_ForwardAnnotation, header_ForwardAnnotation, + member_seq_ForwardAnnotation); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_annotation_type_object(annotation_type_ForwardAnnotation, + annotation_name_ForwardAnnotation.to_string(), type_ids_ForwardAnnotation)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "ForwardAnnotation already registered in TypeObjectRegistry for a different type."); + } + } +} +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_ForwardDeclarationsRecursiveStruct_type_identifier( + TypeIdentifierPair& type_ids_ForwardDeclarationsRecursiveStruct) +{ + + ReturnCode_t return_code_ForwardDeclarationsRecursiveStruct {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ForwardDeclarationsRecursiveStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "ForwardDeclarationsRecursiveStruct", type_ids_ForwardDeclarationsRecursiveStruct); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ForwardDeclarationsRecursiveStruct) + { + StructTypeFlag struct_flags_ForwardDeclarationsRecursiveStruct = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_ForwardDeclarationsRecursiveStruct = "ForwardDeclarationsRecursiveStruct"; + eprosima::fastcdr::optional type_ann_builtin_ForwardDeclarationsRecursiveStruct; + eprosima::fastcdr::optional ann_custom_ForwardDeclarationsRecursiveStruct; + CompleteTypeDetail detail_ForwardDeclarationsRecursiveStruct = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ForwardDeclarationsRecursiveStruct, ann_custom_ForwardDeclarationsRecursiveStruct, type_name_ForwardDeclarationsRecursiveStruct.to_string()); + CompleteStructHeader header_ForwardDeclarationsRecursiveStruct; + header_ForwardDeclarationsRecursiveStruct = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_ForwardDeclarationsRecursiveStruct); + CompleteStructMemberSeq member_seq_ForwardDeclarationsRecursiveStruct; + { + TypeIdentifierPair type_ids_var_RecursiveUnboundedSeqForwardStruct; + ReturnCode_t return_code_var_RecursiveUnboundedSeqForwardStruct {eprosima::fastdds::dds::RETCODE_OK}; + return_code_var_RecursiveUnboundedSeqForwardStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "RecursiveUnboundedSeqForwardStruct", type_ids_var_RecursiveUnboundedSeqForwardStruct); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_var_RecursiveUnboundedSeqForwardStruct) + { + ::register_RecursiveUnboundedSeqForwardStruct_type_identifier(type_ids_var_RecursiveUnboundedSeqForwardStruct); + } + StructMemberFlag member_flags_var_RecursiveUnboundedSeqForwardStruct = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_var_RecursiveUnboundedSeqForwardStruct = 0x00000000; + bool common_var_RecursiveUnboundedSeqForwardStruct_ec {false}; + CommonStructMember common_var_RecursiveUnboundedSeqForwardStruct {TypeObjectUtils::build_common_struct_member(member_id_var_RecursiveUnboundedSeqForwardStruct, member_flags_var_RecursiveUnboundedSeqForwardStruct, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_var_RecursiveUnboundedSeqForwardStruct, common_var_RecursiveUnboundedSeqForwardStruct_ec))}; + if (!common_var_RecursiveUnboundedSeqForwardStruct_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure var_RecursiveUnboundedSeqForwardStruct member TypeIdentifier inconsistent."); + return; + } + MemberName name_var_RecursiveUnboundedSeqForwardStruct = "var_RecursiveUnboundedSeqForwardStruct"; + eprosima::fastcdr::optional member_ann_builtin_var_RecursiveUnboundedSeqForwardStruct; + ann_custom_ForwardDeclarationsRecursiveStruct.reset(); + CompleteMemberDetail detail_var_RecursiveUnboundedSeqForwardStruct = TypeObjectUtils::build_complete_member_detail(name_var_RecursiveUnboundedSeqForwardStruct, member_ann_builtin_var_RecursiveUnboundedSeqForwardStruct, ann_custom_ForwardDeclarationsRecursiveStruct); + CompleteStructMember member_var_RecursiveUnboundedSeqForwardStruct = TypeObjectUtils::build_complete_struct_member(common_var_RecursiveUnboundedSeqForwardStruct, detail_var_RecursiveUnboundedSeqForwardStruct); + TypeObjectUtils::add_complete_struct_member(member_seq_ForwardDeclarationsRecursiveStruct, member_var_RecursiveUnboundedSeqForwardStruct); + } + { + TypeIdentifierPair type_ids_var_RecursiveBoundedSeqForwardStruct; + ReturnCode_t return_code_var_RecursiveBoundedSeqForwardStruct {eprosima::fastdds::dds::RETCODE_OK}; + return_code_var_RecursiveBoundedSeqForwardStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "RecursiveBoundedSeqForwardStruct", type_ids_var_RecursiveBoundedSeqForwardStruct); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_var_RecursiveBoundedSeqForwardStruct) + { + ::register_RecursiveBoundedSeqForwardStruct_type_identifier(type_ids_var_RecursiveBoundedSeqForwardStruct); + } + StructMemberFlag member_flags_var_RecursiveBoundedSeqForwardStruct = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_var_RecursiveBoundedSeqForwardStruct = 0x00000001; + bool common_var_RecursiveBoundedSeqForwardStruct_ec {false}; + CommonStructMember common_var_RecursiveBoundedSeqForwardStruct {TypeObjectUtils::build_common_struct_member(member_id_var_RecursiveBoundedSeqForwardStruct, member_flags_var_RecursiveBoundedSeqForwardStruct, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_var_RecursiveBoundedSeqForwardStruct, common_var_RecursiveBoundedSeqForwardStruct_ec))}; + if (!common_var_RecursiveBoundedSeqForwardStruct_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure var_RecursiveBoundedSeqForwardStruct member TypeIdentifier inconsistent."); + return; + } + MemberName name_var_RecursiveBoundedSeqForwardStruct = "var_RecursiveBoundedSeqForwardStruct"; + eprosima::fastcdr::optional member_ann_builtin_var_RecursiveBoundedSeqForwardStruct; + ann_custom_ForwardDeclarationsRecursiveStruct.reset(); + CompleteMemberDetail detail_var_RecursiveBoundedSeqForwardStruct = TypeObjectUtils::build_complete_member_detail(name_var_RecursiveBoundedSeqForwardStruct, member_ann_builtin_var_RecursiveBoundedSeqForwardStruct, ann_custom_ForwardDeclarationsRecursiveStruct); + CompleteStructMember member_var_RecursiveBoundedSeqForwardStruct = TypeObjectUtils::build_complete_struct_member(common_var_RecursiveBoundedSeqForwardStruct, detail_var_RecursiveBoundedSeqForwardStruct); + TypeObjectUtils::add_complete_struct_member(member_seq_ForwardDeclarationsRecursiveStruct, member_var_RecursiveBoundedSeqForwardStruct); + } + { + TypeIdentifierPair type_ids_var_RecursiveUnboundedSeqForwardUnion; + ReturnCode_t return_code_var_RecursiveUnboundedSeqForwardUnion {eprosima::fastdds::dds::RETCODE_OK}; + return_code_var_RecursiveUnboundedSeqForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "RecursiveUnboundedSeqForwardUnion", type_ids_var_RecursiveUnboundedSeqForwardUnion); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_var_RecursiveUnboundedSeqForwardUnion) + { + ::register_RecursiveUnboundedSeqForwardUnion_type_identifier(type_ids_var_RecursiveUnboundedSeqForwardUnion); + } + StructMemberFlag member_flags_var_RecursiveUnboundedSeqForwardUnion = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_var_RecursiveUnboundedSeqForwardUnion = 0x00000002; + bool common_var_RecursiveUnboundedSeqForwardUnion_ec {false}; + CommonStructMember common_var_RecursiveUnboundedSeqForwardUnion {TypeObjectUtils::build_common_struct_member(member_id_var_RecursiveUnboundedSeqForwardUnion, member_flags_var_RecursiveUnboundedSeqForwardUnion, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_var_RecursiveUnboundedSeqForwardUnion, common_var_RecursiveUnboundedSeqForwardUnion_ec))}; + if (!common_var_RecursiveUnboundedSeqForwardUnion_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure var_RecursiveUnboundedSeqForwardUnion member TypeIdentifier inconsistent."); + return; + } + MemberName name_var_RecursiveUnboundedSeqForwardUnion = "var_RecursiveUnboundedSeqForwardUnion"; + eprosima::fastcdr::optional member_ann_builtin_var_RecursiveUnboundedSeqForwardUnion; + ann_custom_ForwardDeclarationsRecursiveStruct.reset(); + CompleteMemberDetail detail_var_RecursiveUnboundedSeqForwardUnion = TypeObjectUtils::build_complete_member_detail(name_var_RecursiveUnboundedSeqForwardUnion, member_ann_builtin_var_RecursiveUnboundedSeqForwardUnion, ann_custom_ForwardDeclarationsRecursiveStruct); + CompleteStructMember member_var_RecursiveUnboundedSeqForwardUnion = TypeObjectUtils::build_complete_struct_member(common_var_RecursiveUnboundedSeqForwardUnion, detail_var_RecursiveUnboundedSeqForwardUnion); + TypeObjectUtils::add_complete_struct_member(member_seq_ForwardDeclarationsRecursiveStruct, member_var_RecursiveUnboundedSeqForwardUnion); + } + { + TypeIdentifierPair type_ids_var_RecursiveBoundedSeqForwardUnion; + ReturnCode_t return_code_var_RecursiveBoundedSeqForwardUnion {eprosima::fastdds::dds::RETCODE_OK}; + return_code_var_RecursiveBoundedSeqForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "RecursiveBoundedSeqForwardUnion", type_ids_var_RecursiveBoundedSeqForwardUnion); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_var_RecursiveBoundedSeqForwardUnion) + { + ::register_RecursiveBoundedSeqForwardUnion_type_identifier(type_ids_var_RecursiveBoundedSeqForwardUnion); + } + StructMemberFlag member_flags_var_RecursiveBoundedSeqForwardUnion = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_var_RecursiveBoundedSeqForwardUnion = 0x00000003; + bool common_var_RecursiveBoundedSeqForwardUnion_ec {false}; + CommonStructMember common_var_RecursiveBoundedSeqForwardUnion {TypeObjectUtils::build_common_struct_member(member_id_var_RecursiveBoundedSeqForwardUnion, member_flags_var_RecursiveBoundedSeqForwardUnion, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_var_RecursiveBoundedSeqForwardUnion, common_var_RecursiveBoundedSeqForwardUnion_ec))}; + if (!common_var_RecursiveBoundedSeqForwardUnion_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure var_RecursiveBoundedSeqForwardUnion member TypeIdentifier inconsistent."); + return; + } + MemberName name_var_RecursiveBoundedSeqForwardUnion = "var_RecursiveBoundedSeqForwardUnion"; + eprosima::fastcdr::optional member_ann_builtin_var_RecursiveBoundedSeqForwardUnion; + ann_custom_ForwardDeclarationsRecursiveStruct.reset(); + CompleteMemberDetail detail_var_RecursiveBoundedSeqForwardUnion = TypeObjectUtils::build_complete_member_detail(name_var_RecursiveBoundedSeqForwardUnion, member_ann_builtin_var_RecursiveBoundedSeqForwardUnion, ann_custom_ForwardDeclarationsRecursiveStruct); + CompleteStructMember member_var_RecursiveBoundedSeqForwardUnion = TypeObjectUtils::build_complete_struct_member(common_var_RecursiveBoundedSeqForwardUnion, detail_var_RecursiveBoundedSeqForwardUnion); + TypeObjectUtils::add_complete_struct_member(member_seq_ForwardDeclarationsRecursiveStruct, member_var_RecursiveBoundedSeqForwardUnion); + } + CompleteStructType struct_type_ForwardDeclarationsRecursiveStruct = TypeObjectUtils::build_complete_struct_type(struct_flags_ForwardDeclarationsRecursiveStruct, header_ForwardDeclarationsRecursiveStruct, member_seq_ForwardDeclarationsRecursiveStruct); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_ForwardDeclarationsRecursiveStruct, type_name_ForwardDeclarationsRecursiveStruct.to_string(), type_ids_ForwardDeclarationsRecursiveStruct)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "ForwardDeclarationsRecursiveStruct already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_ForwardUnion_type_identifier( + TypeIdentifierPair& type_ids_ForwardUnion) +{ + ReturnCode_t return_code_ForwardUnion {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "ForwardUnion", type_ids_ForwardUnion); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ForwardUnion) + { + UnionTypeFlag union_flags_ForwardUnion = TypeObjectUtils::build_union_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_ForwardUnion = "ForwardUnion"; + eprosima::fastcdr::optional type_ann_builtin_ForwardUnion; + eprosima::fastcdr::optional ann_custom_ForwardUnion; + CompleteTypeDetail detail_ForwardUnion = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ForwardUnion, ann_custom_ForwardUnion, type_name_ForwardUnion.to_string()); + CompleteUnionHeader header_ForwardUnion = TypeObjectUtils::build_complete_union_header(detail_ForwardUnion); + UnionDiscriminatorFlag member_flags_ForwardUnion = TypeObjectUtils::build_union_discriminator_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false); + return_code_ForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_ForwardUnion); + + if (return_code_ForwardUnion != eprosima::fastdds::dds::RETCODE_OK) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Union discriminator TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + CommonDiscriminatorMember common_ForwardUnion; + if (EK_COMPLETE == type_ids_ForwardUnion.type_identifier1()._d() || TK_NONE == type_ids_ForwardUnion.type_identifier2()._d()) + { + common_ForwardUnion = TypeObjectUtils::build_common_discriminator_member(member_flags_ForwardUnion, type_ids_ForwardUnion.type_identifier1()); + } + else if (EK_COMPLETE == type_ids_ForwardUnion.type_identifier2()._d()) + { + common_ForwardUnion = TypeObjectUtils::build_common_discriminator_member(member_flags_ForwardUnion, type_ids_ForwardUnion.type_identifier2()); + } + else + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "ForwardUnion discriminator TypeIdentifier inconsistent."); + return; + } + type_ann_builtin_ForwardUnion.reset(); + ann_custom_ForwardUnion.reset(); + CompleteDiscriminatorMember discriminator_ForwardUnion = TypeObjectUtils::build_complete_discriminator_member(common_ForwardUnion, + type_ann_builtin_ForwardUnion, ann_custom_ForwardUnion); + CompleteUnionMemberSeq member_seq_ForwardUnion; + { + return_code_ForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_ForwardUnion); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ForwardUnion) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "case_zero Union member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + UnionMemberFlag member_flags_case_zero = TypeObjectUtils::build_union_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false); + UnionCaseLabelSeq label_seq_case_zero; + TypeObjectUtils::add_union_case_label(label_seq_case_zero, static_cast(0)); + MemberId member_id_case_zero = 0x00000001; + bool common_case_zero_ec {false}; + CommonUnionMember common_case_zero {TypeObjectUtils::build_common_union_member(member_id_case_zero, + member_flags_case_zero, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_ForwardUnion, + common_case_zero_ec), label_seq_case_zero)}; + if (!common_case_zero_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Union case_zero member TypeIdentifier inconsistent."); + return; + } + MemberName name_case_zero = "case_zero"; + eprosima::fastcdr::optional member_ann_builtin_case_zero; + ann_custom_ForwardUnion.reset(); + CompleteMemberDetail detail_case_zero = TypeObjectUtils::build_complete_member_detail(name_case_zero, member_ann_builtin_case_zero, ann_custom_ForwardUnion); + CompleteUnionMember member_case_zero = TypeObjectUtils::build_complete_union_member(common_case_zero, detail_case_zero); + TypeObjectUtils::add_complete_union_member(member_seq_ForwardUnion, member_case_zero); + } + { + return_code_ForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_ForwardUnion); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ForwardUnion) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "case_one Union member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + UnionMemberFlag member_flags_case_one = TypeObjectUtils::build_union_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false); + UnionCaseLabelSeq label_seq_case_one; + TypeObjectUtils::add_union_case_label(label_seq_case_one, static_cast(1)); + MemberId member_id_case_one = 0x00000002; + bool common_case_one_ec {false}; + CommonUnionMember common_case_one {TypeObjectUtils::build_common_union_member(member_id_case_one, + member_flags_case_one, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_ForwardUnion, + common_case_one_ec), label_seq_case_one)}; + if (!common_case_one_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Union case_one member TypeIdentifier inconsistent."); + return; + } + MemberName name_case_one = "case_one"; + eprosima::fastcdr::optional member_ann_builtin_case_one; + ann_custom_ForwardUnion.reset(); + CompleteMemberDetail detail_case_one = TypeObjectUtils::build_complete_member_detail(name_case_one, member_ann_builtin_case_one, ann_custom_ForwardUnion); + CompleteUnionMember member_case_one = TypeObjectUtils::build_complete_union_member(common_case_one, detail_case_one); + TypeObjectUtils::add_complete_union_member(member_seq_ForwardUnion, member_case_one); + } + CompleteUnionType union_type_ForwardUnion = TypeObjectUtils::build_complete_union_type(union_flags_ForwardUnion, header_ForwardUnion, discriminator_ForwardUnion, + member_seq_ForwardUnion); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_union_type_object(union_type_ForwardUnion, type_name_ForwardUnion.to_string(), type_ids_ForwardUnion)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "ForwardUnion already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_ForwardStruct_type_identifier( + TypeIdentifierPair& type_ids_ForwardStruct) +{ + + ReturnCode_t return_code_ForwardStruct {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ForwardStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "ForwardStruct", type_ids_ForwardStruct); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ForwardStruct) + { + StructTypeFlag struct_flags_ForwardStruct = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_ForwardStruct = "ForwardStruct"; + eprosima::fastcdr::optional type_ann_builtin_ForwardStruct; + eprosima::fastcdr::optional ann_custom_ForwardStruct; + CompleteTypeDetail detail_ForwardStruct = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ForwardStruct, ann_custom_ForwardStruct, type_name_ForwardStruct.to_string()); + CompleteStructHeader header_ForwardStruct; + header_ForwardStruct = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_ForwardStruct); + CompleteStructMemberSeq member_seq_ForwardStruct; + { + TypeIdentifierPair type_ids_var_short; + ReturnCode_t return_code_var_short {eprosima::fastdds::dds::RETCODE_OK}; + return_code_var_short = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int16_t", type_ids_var_short); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_var_short) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "var_short Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_var_short = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_var_short = 0x00000000; + bool common_var_short_ec {false}; + CommonStructMember common_var_short {TypeObjectUtils::build_common_struct_member(member_id_var_short, member_flags_var_short, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_var_short, common_var_short_ec))}; + if (!common_var_short_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure var_short member TypeIdentifier inconsistent."); + return; + } + MemberName name_var_short = "var_short"; + eprosima::fastcdr::optional member_ann_builtin_var_short; + ann_custom_ForwardStruct.reset(); + CompleteMemberDetail detail_var_short = TypeObjectUtils::build_complete_member_detail(name_var_short, member_ann_builtin_var_short, ann_custom_ForwardStruct); + CompleteStructMember member_var_short = TypeObjectUtils::build_complete_struct_member(common_var_short, detail_var_short); + TypeObjectUtils::add_complete_struct_member(member_seq_ForwardStruct, member_var_short); + } + { + TypeIdentifierPair type_ids_var_long; + ReturnCode_t return_code_var_long {eprosima::fastdds::dds::RETCODE_OK}; + return_code_var_long = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_var_long); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_var_long) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "var_long Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_var_long = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_var_long = 0x00000001; + bool common_var_long_ec {false}; + CommonStructMember common_var_long {TypeObjectUtils::build_common_struct_member(member_id_var_long, member_flags_var_long, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_var_long, common_var_long_ec))}; + if (!common_var_long_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure var_long member TypeIdentifier inconsistent."); + return; + } + MemberName name_var_long = "var_long"; + eprosima::fastcdr::optional member_ann_builtin_var_long; + ann_custom_ForwardStruct.reset(); + CompleteMemberDetail detail_var_long = TypeObjectUtils::build_complete_member_detail(name_var_long, member_ann_builtin_var_long, ann_custom_ForwardStruct); + CompleteStructMember member_var_long = TypeObjectUtils::build_complete_struct_member(common_var_long, detail_var_long); + TypeObjectUtils::add_complete_struct_member(member_seq_ForwardStruct, member_var_long); + } + CompleteStructType struct_type_ForwardStruct = TypeObjectUtils::build_complete_struct_type(struct_flags_ForwardStruct, header_ForwardStruct, member_seq_ForwardStruct); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_ForwardStruct, type_name_ForwardStruct.to_string(), type_ids_ForwardStruct)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "ForwardStruct already registered in TypeObjectRegistry for a different type."); + } + } +}namespace declarations_module { +void register_ModuledRecursiveUnboundedSeqForwardStruct_type_identifier( + TypeIdentifierPair& type_ids_ModuledRecursiveUnboundedSeqForwardStruct) +{ + ReturnCode_t return_code_ModuledRecursiveUnboundedSeqForwardStruct {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ModuledRecursiveUnboundedSeqForwardStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "declarations_module::ModuledRecursiveUnboundedSeqForwardStruct", type_ids_ModuledRecursiveUnboundedSeqForwardStruct); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ModuledRecursiveUnboundedSeqForwardStruct) + { + AliasTypeFlag alias_flags_ModuledRecursiveUnboundedSeqForwardStruct = 0; + QualifiedTypeName type_name_ModuledRecursiveUnboundedSeqForwardStruct = "declarations_module::ModuledRecursiveUnboundedSeqForwardStruct"; + eprosima::fastcdr::optional type_ann_builtin_ModuledRecursiveUnboundedSeqForwardStruct; + eprosima::fastcdr::optional ann_custom_ModuledRecursiveUnboundedSeqForwardStruct; + CompleteTypeDetail detail_ModuledRecursiveUnboundedSeqForwardStruct = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ModuledRecursiveUnboundedSeqForwardStruct, ann_custom_ModuledRecursiveUnboundedSeqForwardStruct, type_name_ModuledRecursiveUnboundedSeqForwardStruct.to_string()); + CompleteAliasHeader header_ModuledRecursiveUnboundedSeqForwardStruct = TypeObjectUtils::build_complete_alias_header(detail_ModuledRecursiveUnboundedSeqForwardStruct); + AliasMemberFlag related_flags_ModuledRecursiveUnboundedSeqForwardStruct = 0; + return_code_ModuledRecursiveUnboundedSeqForwardStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_sequence_declarations_module_ModuledForwardStruct_unbounded", type_ids_ModuledRecursiveUnboundedSeqForwardStruct); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ModuledRecursiveUnboundedSeqForwardStruct) + { + return_code_ModuledRecursiveUnboundedSeqForwardStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "declarations_module::ModuledForwardStruct", type_ids_ModuledRecursiveUnboundedSeqForwardStruct); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ModuledRecursiveUnboundedSeqForwardStruct) + { + ::declarations_module::register_ModuledForwardStruct_type_identifier(type_ids_ModuledRecursiveUnboundedSeqForwardStruct); + } + bool element_identifier_anonymous_sequence_declarations_module_ModuledForwardStruct_unbounded_ec {false}; + TypeIdentifier* element_identifier_anonymous_sequence_declarations_module_ModuledForwardStruct_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_ModuledRecursiveUnboundedSeqForwardStruct, element_identifier_anonymous_sequence_declarations_module_ModuledForwardStruct_unbounded_ec))}; + if (!element_identifier_anonymous_sequence_declarations_module_ModuledForwardStruct_unbounded_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Sequence element TypeIdentifier inconsistent."); + return; + } + EquivalenceKind equiv_kind_anonymous_sequence_declarations_module_ModuledForwardStruct_unbounded = EK_COMPLETE; + if (TK_NONE == type_ids_ModuledRecursiveUnboundedSeqForwardStruct.type_identifier2()._d()) + { + equiv_kind_anonymous_sequence_declarations_module_ModuledForwardStruct_unbounded = EK_BOTH; + } + CollectionElementFlag element_flags_anonymous_sequence_declarations_module_ModuledForwardStruct_unbounded = 0; + PlainCollectionHeader header_anonymous_sequence_declarations_module_ModuledForwardStruct_unbounded = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_sequence_declarations_module_ModuledForwardStruct_unbounded, element_flags_anonymous_sequence_declarations_module_ModuledForwardStruct_unbounded); + { + SBound bound = 0; + PlainSequenceSElemDefn seq_sdefn = TypeObjectUtils::build_plain_sequence_s_elem_defn(header_anonymous_sequence_declarations_module_ModuledForwardStruct_unbounded, bound, + eprosima::fastcdr::external(element_identifier_anonymous_sequence_declarations_module_ModuledForwardStruct_unbounded)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_sequence_type_identifier(seq_sdefn, "anonymous_sequence_declarations_module_ModuledForwardStruct_unbounded", type_ids_ModuledRecursiveUnboundedSeqForwardStruct)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_sequence_declarations_module_ModuledForwardStruct_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + bool common_ModuledRecursiveUnboundedSeqForwardStruct_ec {false}; + CommonAliasBody common_ModuledRecursiveUnboundedSeqForwardStruct {TypeObjectUtils::build_common_alias_body(related_flags_ModuledRecursiveUnboundedSeqForwardStruct, + TypeObjectUtils::retrieve_complete_type_identifier(type_ids_ModuledRecursiveUnboundedSeqForwardStruct, common_ModuledRecursiveUnboundedSeqForwardStruct_ec))}; + if (!common_ModuledRecursiveUnboundedSeqForwardStruct_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "declarations_module::ModuledRecursiveUnboundedSeqForwardStruct related TypeIdentifier inconsistent."); + return; + } + eprosima::fastcdr::optional member_ann_builtin_ModuledRecursiveUnboundedSeqForwardStruct; + ann_custom_ModuledRecursiveUnboundedSeqForwardStruct.reset(); + CompleteAliasBody body_ModuledRecursiveUnboundedSeqForwardStruct = TypeObjectUtils::build_complete_alias_body(common_ModuledRecursiveUnboundedSeqForwardStruct, + member_ann_builtin_ModuledRecursiveUnboundedSeqForwardStruct, ann_custom_ModuledRecursiveUnboundedSeqForwardStruct); + CompleteAliasType alias_type_ModuledRecursiveUnboundedSeqForwardStruct = TypeObjectUtils::build_complete_alias_type(alias_flags_ModuledRecursiveUnboundedSeqForwardStruct, + header_ModuledRecursiveUnboundedSeqForwardStruct, body_ModuledRecursiveUnboundedSeqForwardStruct); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_alias_type_object(alias_type_ModuledRecursiveUnboundedSeqForwardStruct, + type_name_ModuledRecursiveUnboundedSeqForwardStruct.to_string(), type_ids_ModuledRecursiveUnboundedSeqForwardStruct)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "declarations_module::ModuledRecursiveUnboundedSeqForwardStruct already registered in TypeObjectRegistry for a different type."); + } + } +} + +void register_ModuledRecursiveBoundedSeqForwardStruct_type_identifier( + TypeIdentifierPair& type_ids_ModuledRecursiveBoundedSeqForwardStruct) +{ + ReturnCode_t return_code_ModuledRecursiveBoundedSeqForwardStruct {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ModuledRecursiveBoundedSeqForwardStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "declarations_module::ModuledRecursiveBoundedSeqForwardStruct", type_ids_ModuledRecursiveBoundedSeqForwardStruct); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ModuledRecursiveBoundedSeqForwardStruct) + { + AliasTypeFlag alias_flags_ModuledRecursiveBoundedSeqForwardStruct = 0; + QualifiedTypeName type_name_ModuledRecursiveBoundedSeqForwardStruct = "declarations_module::ModuledRecursiveBoundedSeqForwardStruct"; + eprosima::fastcdr::optional type_ann_builtin_ModuledRecursiveBoundedSeqForwardStruct; + eprosima::fastcdr::optional ann_custom_ModuledRecursiveBoundedSeqForwardStruct; + CompleteTypeDetail detail_ModuledRecursiveBoundedSeqForwardStruct = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ModuledRecursiveBoundedSeqForwardStruct, ann_custom_ModuledRecursiveBoundedSeqForwardStruct, type_name_ModuledRecursiveBoundedSeqForwardStruct.to_string()); + CompleteAliasHeader header_ModuledRecursiveBoundedSeqForwardStruct = TypeObjectUtils::build_complete_alias_header(detail_ModuledRecursiveBoundedSeqForwardStruct); + AliasMemberFlag related_flags_ModuledRecursiveBoundedSeqForwardStruct = 0; + return_code_ModuledRecursiveBoundedSeqForwardStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_sequence_declarations_module_ModuledForwardStruct_10", type_ids_ModuledRecursiveBoundedSeqForwardStruct); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ModuledRecursiveBoundedSeqForwardStruct) + { + return_code_ModuledRecursiveBoundedSeqForwardStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "declarations_module::ModuledForwardStruct", type_ids_ModuledRecursiveBoundedSeqForwardStruct); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ModuledRecursiveBoundedSeqForwardStruct) + { + ::declarations_module::register_ModuledForwardStruct_type_identifier(type_ids_ModuledRecursiveBoundedSeqForwardStruct); + } + bool element_identifier_anonymous_sequence_declarations_module_ModuledForwardStruct_10_ec {false}; + TypeIdentifier* element_identifier_anonymous_sequence_declarations_module_ModuledForwardStruct_10 {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_ModuledRecursiveBoundedSeqForwardStruct, element_identifier_anonymous_sequence_declarations_module_ModuledForwardStruct_10_ec))}; + if (!element_identifier_anonymous_sequence_declarations_module_ModuledForwardStruct_10_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Sequence element TypeIdentifier inconsistent."); + return; + } + EquivalenceKind equiv_kind_anonymous_sequence_declarations_module_ModuledForwardStruct_10 = EK_COMPLETE; + if (TK_NONE == type_ids_ModuledRecursiveBoundedSeqForwardStruct.type_identifier2()._d()) + { + equiv_kind_anonymous_sequence_declarations_module_ModuledForwardStruct_10 = EK_BOTH; + } + CollectionElementFlag element_flags_anonymous_sequence_declarations_module_ModuledForwardStruct_10 = 0; + PlainCollectionHeader header_anonymous_sequence_declarations_module_ModuledForwardStruct_10 = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_sequence_declarations_module_ModuledForwardStruct_10, element_flags_anonymous_sequence_declarations_module_ModuledForwardStruct_10); + { + SBound bound = static_cast(10); + PlainSequenceSElemDefn seq_sdefn = TypeObjectUtils::build_plain_sequence_s_elem_defn(header_anonymous_sequence_declarations_module_ModuledForwardStruct_10, bound, + eprosima::fastcdr::external(element_identifier_anonymous_sequence_declarations_module_ModuledForwardStruct_10)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_sequence_type_identifier(seq_sdefn, "anonymous_sequence_declarations_module_ModuledForwardStruct_10", type_ids_ModuledRecursiveBoundedSeqForwardStruct)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_sequence_declarations_module_ModuledForwardStruct_10 already registered in TypeObjectRegistry for a different type."); + } + } + } + bool common_ModuledRecursiveBoundedSeqForwardStruct_ec {false}; + CommonAliasBody common_ModuledRecursiveBoundedSeqForwardStruct {TypeObjectUtils::build_common_alias_body(related_flags_ModuledRecursiveBoundedSeqForwardStruct, + TypeObjectUtils::retrieve_complete_type_identifier(type_ids_ModuledRecursiveBoundedSeqForwardStruct, common_ModuledRecursiveBoundedSeqForwardStruct_ec))}; + if (!common_ModuledRecursiveBoundedSeqForwardStruct_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "declarations_module::ModuledRecursiveBoundedSeqForwardStruct related TypeIdentifier inconsistent."); + return; + } + eprosima::fastcdr::optional member_ann_builtin_ModuledRecursiveBoundedSeqForwardStruct; + ann_custom_ModuledRecursiveBoundedSeqForwardStruct.reset(); + CompleteAliasBody body_ModuledRecursiveBoundedSeqForwardStruct = TypeObjectUtils::build_complete_alias_body(common_ModuledRecursiveBoundedSeqForwardStruct, + member_ann_builtin_ModuledRecursiveBoundedSeqForwardStruct, ann_custom_ModuledRecursiveBoundedSeqForwardStruct); + CompleteAliasType alias_type_ModuledRecursiveBoundedSeqForwardStruct = TypeObjectUtils::build_complete_alias_type(alias_flags_ModuledRecursiveBoundedSeqForwardStruct, + header_ModuledRecursiveBoundedSeqForwardStruct, body_ModuledRecursiveBoundedSeqForwardStruct); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_alias_type_object(alias_type_ModuledRecursiveBoundedSeqForwardStruct, + type_name_ModuledRecursiveBoundedSeqForwardStruct.to_string(), type_ids_ModuledRecursiveBoundedSeqForwardStruct)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "declarations_module::ModuledRecursiveBoundedSeqForwardStruct already registered in TypeObjectRegistry for a different type."); + } + } +} + +void register_ModuledRecursiveUnboundedSeqForwardUnion_type_identifier( + TypeIdentifierPair& type_ids_ModuledRecursiveUnboundedSeqForwardUnion) +{ + ReturnCode_t return_code_ModuledRecursiveUnboundedSeqForwardUnion {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ModuledRecursiveUnboundedSeqForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "declarations_module::ModuledRecursiveUnboundedSeqForwardUnion", type_ids_ModuledRecursiveUnboundedSeqForwardUnion); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ModuledRecursiveUnboundedSeqForwardUnion) + { + AliasTypeFlag alias_flags_ModuledRecursiveUnboundedSeqForwardUnion = 0; + QualifiedTypeName type_name_ModuledRecursiveUnboundedSeqForwardUnion = "declarations_module::ModuledRecursiveUnboundedSeqForwardUnion"; + eprosima::fastcdr::optional type_ann_builtin_ModuledRecursiveUnboundedSeqForwardUnion; + eprosima::fastcdr::optional ann_custom_ModuledRecursiveUnboundedSeqForwardUnion; + CompleteTypeDetail detail_ModuledRecursiveUnboundedSeqForwardUnion = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ModuledRecursiveUnboundedSeqForwardUnion, ann_custom_ModuledRecursiveUnboundedSeqForwardUnion, type_name_ModuledRecursiveUnboundedSeqForwardUnion.to_string()); + CompleteAliasHeader header_ModuledRecursiveUnboundedSeqForwardUnion = TypeObjectUtils::build_complete_alias_header(detail_ModuledRecursiveUnboundedSeqForwardUnion); + AliasMemberFlag related_flags_ModuledRecursiveUnboundedSeqForwardUnion = 0; + return_code_ModuledRecursiveUnboundedSeqForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_sequence_declarations_module_ModuledForwardUnion_unbounded", type_ids_ModuledRecursiveUnboundedSeqForwardUnion); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ModuledRecursiveUnboundedSeqForwardUnion) + { + return_code_ModuledRecursiveUnboundedSeqForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "declarations_module::ModuledForwardUnion", type_ids_ModuledRecursiveUnboundedSeqForwardUnion); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ModuledRecursiveUnboundedSeqForwardUnion) + { + ::declarations_module::register_ModuledForwardUnion_type_identifier(type_ids_ModuledRecursiveUnboundedSeqForwardUnion); + } + bool element_identifier_anonymous_sequence_declarations_module_ModuledForwardUnion_unbounded_ec {false}; + TypeIdentifier* element_identifier_anonymous_sequence_declarations_module_ModuledForwardUnion_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_ModuledRecursiveUnboundedSeqForwardUnion, element_identifier_anonymous_sequence_declarations_module_ModuledForwardUnion_unbounded_ec))}; + if (!element_identifier_anonymous_sequence_declarations_module_ModuledForwardUnion_unbounded_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Sequence element TypeIdentifier inconsistent."); + return; + } + EquivalenceKind equiv_kind_anonymous_sequence_declarations_module_ModuledForwardUnion_unbounded = EK_COMPLETE; + if (TK_NONE == type_ids_ModuledRecursiveUnboundedSeqForwardUnion.type_identifier2()._d()) + { + equiv_kind_anonymous_sequence_declarations_module_ModuledForwardUnion_unbounded = EK_BOTH; + } + CollectionElementFlag element_flags_anonymous_sequence_declarations_module_ModuledForwardUnion_unbounded = 0; + PlainCollectionHeader header_anonymous_sequence_declarations_module_ModuledForwardUnion_unbounded = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_sequence_declarations_module_ModuledForwardUnion_unbounded, element_flags_anonymous_sequence_declarations_module_ModuledForwardUnion_unbounded); + { + SBound bound = 0; + PlainSequenceSElemDefn seq_sdefn = TypeObjectUtils::build_plain_sequence_s_elem_defn(header_anonymous_sequence_declarations_module_ModuledForwardUnion_unbounded, bound, + eprosima::fastcdr::external(element_identifier_anonymous_sequence_declarations_module_ModuledForwardUnion_unbounded)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_sequence_type_identifier(seq_sdefn, "anonymous_sequence_declarations_module_ModuledForwardUnion_unbounded", type_ids_ModuledRecursiveUnboundedSeqForwardUnion)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_sequence_declarations_module_ModuledForwardUnion_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + bool common_ModuledRecursiveUnboundedSeqForwardUnion_ec {false}; + CommonAliasBody common_ModuledRecursiveUnboundedSeqForwardUnion {TypeObjectUtils::build_common_alias_body(related_flags_ModuledRecursiveUnboundedSeqForwardUnion, + TypeObjectUtils::retrieve_complete_type_identifier(type_ids_ModuledRecursiveUnboundedSeqForwardUnion, common_ModuledRecursiveUnboundedSeqForwardUnion_ec))}; + if (!common_ModuledRecursiveUnboundedSeqForwardUnion_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "declarations_module::ModuledRecursiveUnboundedSeqForwardUnion related TypeIdentifier inconsistent."); + return; + } + eprosima::fastcdr::optional member_ann_builtin_ModuledRecursiveUnboundedSeqForwardUnion; + ann_custom_ModuledRecursiveUnboundedSeqForwardUnion.reset(); + CompleteAliasBody body_ModuledRecursiveUnboundedSeqForwardUnion = TypeObjectUtils::build_complete_alias_body(common_ModuledRecursiveUnboundedSeqForwardUnion, + member_ann_builtin_ModuledRecursiveUnboundedSeqForwardUnion, ann_custom_ModuledRecursiveUnboundedSeqForwardUnion); + CompleteAliasType alias_type_ModuledRecursiveUnboundedSeqForwardUnion = TypeObjectUtils::build_complete_alias_type(alias_flags_ModuledRecursiveUnboundedSeqForwardUnion, + header_ModuledRecursiveUnboundedSeqForwardUnion, body_ModuledRecursiveUnboundedSeqForwardUnion); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_alias_type_object(alias_type_ModuledRecursiveUnboundedSeqForwardUnion, + type_name_ModuledRecursiveUnboundedSeqForwardUnion.to_string(), type_ids_ModuledRecursiveUnboundedSeqForwardUnion)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "declarations_module::ModuledRecursiveUnboundedSeqForwardUnion already registered in TypeObjectRegistry for a different type."); + } + } +} + +void register_ModuledRecursiveBoundedSeqForwardUnion_type_identifier( + TypeIdentifierPair& type_ids_ModuledRecursiveBoundedSeqForwardUnion) +{ + ReturnCode_t return_code_ModuledRecursiveBoundedSeqForwardUnion {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ModuledRecursiveBoundedSeqForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "declarations_module::ModuledRecursiveBoundedSeqForwardUnion", type_ids_ModuledRecursiveBoundedSeqForwardUnion); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ModuledRecursiveBoundedSeqForwardUnion) + { + AliasTypeFlag alias_flags_ModuledRecursiveBoundedSeqForwardUnion = 0; + QualifiedTypeName type_name_ModuledRecursiveBoundedSeqForwardUnion = "declarations_module::ModuledRecursiveBoundedSeqForwardUnion"; + eprosima::fastcdr::optional type_ann_builtin_ModuledRecursiveBoundedSeqForwardUnion; + eprosima::fastcdr::optional ann_custom_ModuledRecursiveBoundedSeqForwardUnion; + CompleteTypeDetail detail_ModuledRecursiveBoundedSeqForwardUnion = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ModuledRecursiveBoundedSeqForwardUnion, ann_custom_ModuledRecursiveBoundedSeqForwardUnion, type_name_ModuledRecursiveBoundedSeqForwardUnion.to_string()); + CompleteAliasHeader header_ModuledRecursiveBoundedSeqForwardUnion = TypeObjectUtils::build_complete_alias_header(detail_ModuledRecursiveBoundedSeqForwardUnion); + AliasMemberFlag related_flags_ModuledRecursiveBoundedSeqForwardUnion = 0; + return_code_ModuledRecursiveBoundedSeqForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_sequence_declarations_module_ModuledForwardUnion_10", type_ids_ModuledRecursiveBoundedSeqForwardUnion); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ModuledRecursiveBoundedSeqForwardUnion) + { + return_code_ModuledRecursiveBoundedSeqForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "declarations_module::ModuledForwardUnion", type_ids_ModuledRecursiveBoundedSeqForwardUnion); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ModuledRecursiveBoundedSeqForwardUnion) + { + ::declarations_module::register_ModuledForwardUnion_type_identifier(type_ids_ModuledRecursiveBoundedSeqForwardUnion); + } + bool element_identifier_anonymous_sequence_declarations_module_ModuledForwardUnion_10_ec {false}; + TypeIdentifier* element_identifier_anonymous_sequence_declarations_module_ModuledForwardUnion_10 {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_ModuledRecursiveBoundedSeqForwardUnion, element_identifier_anonymous_sequence_declarations_module_ModuledForwardUnion_10_ec))}; + if (!element_identifier_anonymous_sequence_declarations_module_ModuledForwardUnion_10_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Sequence element TypeIdentifier inconsistent."); + return; + } + EquivalenceKind equiv_kind_anonymous_sequence_declarations_module_ModuledForwardUnion_10 = EK_COMPLETE; + if (TK_NONE == type_ids_ModuledRecursiveBoundedSeqForwardUnion.type_identifier2()._d()) + { + equiv_kind_anonymous_sequence_declarations_module_ModuledForwardUnion_10 = EK_BOTH; + } + CollectionElementFlag element_flags_anonymous_sequence_declarations_module_ModuledForwardUnion_10 = 0; + PlainCollectionHeader header_anonymous_sequence_declarations_module_ModuledForwardUnion_10 = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_sequence_declarations_module_ModuledForwardUnion_10, element_flags_anonymous_sequence_declarations_module_ModuledForwardUnion_10); + { + SBound bound = static_cast(10); + PlainSequenceSElemDefn seq_sdefn = TypeObjectUtils::build_plain_sequence_s_elem_defn(header_anonymous_sequence_declarations_module_ModuledForwardUnion_10, bound, + eprosima::fastcdr::external(element_identifier_anonymous_sequence_declarations_module_ModuledForwardUnion_10)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_sequence_type_identifier(seq_sdefn, "anonymous_sequence_declarations_module_ModuledForwardUnion_10", type_ids_ModuledRecursiveBoundedSeqForwardUnion)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_sequence_declarations_module_ModuledForwardUnion_10 already registered in TypeObjectRegistry for a different type."); + } + } + } + bool common_ModuledRecursiveBoundedSeqForwardUnion_ec {false}; + CommonAliasBody common_ModuledRecursiveBoundedSeqForwardUnion {TypeObjectUtils::build_common_alias_body(related_flags_ModuledRecursiveBoundedSeqForwardUnion, + TypeObjectUtils::retrieve_complete_type_identifier(type_ids_ModuledRecursiveBoundedSeqForwardUnion, common_ModuledRecursiveBoundedSeqForwardUnion_ec))}; + if (!common_ModuledRecursiveBoundedSeqForwardUnion_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "declarations_module::ModuledRecursiveBoundedSeqForwardUnion related TypeIdentifier inconsistent."); + return; + } + eprosima::fastcdr::optional member_ann_builtin_ModuledRecursiveBoundedSeqForwardUnion; + ann_custom_ModuledRecursiveBoundedSeqForwardUnion.reset(); + CompleteAliasBody body_ModuledRecursiveBoundedSeqForwardUnion = TypeObjectUtils::build_complete_alias_body(common_ModuledRecursiveBoundedSeqForwardUnion, + member_ann_builtin_ModuledRecursiveBoundedSeqForwardUnion, ann_custom_ModuledRecursiveBoundedSeqForwardUnion); + CompleteAliasType alias_type_ModuledRecursiveBoundedSeqForwardUnion = TypeObjectUtils::build_complete_alias_type(alias_flags_ModuledRecursiveBoundedSeqForwardUnion, + header_ModuledRecursiveBoundedSeqForwardUnion, body_ModuledRecursiveBoundedSeqForwardUnion); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_alias_type_object(alias_type_ModuledRecursiveBoundedSeqForwardUnion, + type_name_ModuledRecursiveBoundedSeqForwardUnion.to_string(), type_ids_ModuledRecursiveBoundedSeqForwardUnion)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "declarations_module::ModuledRecursiveBoundedSeqForwardUnion already registered in TypeObjectRegistry for a different type."); + } + } +} + +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_ForwardStruct_type_identifier( + TypeIdentifierPair& type_ids_ForwardStruct) +{ + + ReturnCode_t return_code_ForwardStruct {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ForwardStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "declarations_module::ForwardStruct", type_ids_ForwardStruct); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ForwardStruct) + { + StructTypeFlag struct_flags_ForwardStruct = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_ForwardStruct = "declarations_module::ForwardStruct"; + eprosima::fastcdr::optional type_ann_builtin_ForwardStruct; + eprosima::fastcdr::optional ann_custom_ForwardStruct; + CompleteTypeDetail detail_ForwardStruct = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ForwardStruct, ann_custom_ForwardStruct, type_name_ForwardStruct.to_string()); + CompleteStructHeader header_ForwardStruct; + header_ForwardStruct = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_ForwardStruct); + CompleteStructMemberSeq member_seq_ForwardStruct; + { + TypeIdentifierPair type_ids_var_u_long_long; + ReturnCode_t return_code_var_u_long_long {eprosima::fastdds::dds::RETCODE_OK}; + return_code_var_u_long_long = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_uint64_t", type_ids_var_u_long_long); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_var_u_long_long) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "var_u_long_long Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_var_u_long_long = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_var_u_long_long = 0x00000000; + bool common_var_u_long_long_ec {false}; + CommonStructMember common_var_u_long_long {TypeObjectUtils::build_common_struct_member(member_id_var_u_long_long, member_flags_var_u_long_long, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_var_u_long_long, common_var_u_long_long_ec))}; + if (!common_var_u_long_long_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure var_u_long_long member TypeIdentifier inconsistent."); + return; + } + MemberName name_var_u_long_long = "var_u_long_long"; + eprosima::fastcdr::optional member_ann_builtin_var_u_long_long; + ann_custom_ForwardStruct.reset(); + CompleteMemberDetail detail_var_u_long_long = TypeObjectUtils::build_complete_member_detail(name_var_u_long_long, member_ann_builtin_var_u_long_long, ann_custom_ForwardStruct); + CompleteStructMember member_var_u_long_long = TypeObjectUtils::build_complete_struct_member(common_var_u_long_long, detail_var_u_long_long); + TypeObjectUtils::add_complete_struct_member(member_seq_ForwardStruct, member_var_u_long_long); + } + CompleteStructType struct_type_ForwardStruct = TypeObjectUtils::build_complete_struct_type(struct_flags_ForwardStruct, header_ForwardStruct, member_seq_ForwardStruct); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_ForwardStruct, type_name_ForwardStruct.to_string(), type_ids_ForwardStruct)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "declarations_module::ForwardStruct already registered in TypeObjectRegistry for a different type."); + } + } +} +} // namespace declarations_module +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_ModuledForwardDeclarationsRecursiveStruct_type_identifier( + TypeIdentifierPair& type_ids_ModuledForwardDeclarationsRecursiveStruct) +{ + + ReturnCode_t return_code_ModuledForwardDeclarationsRecursiveStruct {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ModuledForwardDeclarationsRecursiveStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "ModuledForwardDeclarationsRecursiveStruct", type_ids_ModuledForwardDeclarationsRecursiveStruct); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ModuledForwardDeclarationsRecursiveStruct) + { + StructTypeFlag struct_flags_ModuledForwardDeclarationsRecursiveStruct = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_ModuledForwardDeclarationsRecursiveStruct = "ModuledForwardDeclarationsRecursiveStruct"; + eprosima::fastcdr::optional type_ann_builtin_ModuledForwardDeclarationsRecursiveStruct; + eprosima::fastcdr::optional ann_custom_ModuledForwardDeclarationsRecursiveStruct; + CompleteTypeDetail detail_ModuledForwardDeclarationsRecursiveStruct = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ModuledForwardDeclarationsRecursiveStruct, ann_custom_ModuledForwardDeclarationsRecursiveStruct, type_name_ModuledForwardDeclarationsRecursiveStruct.to_string()); + CompleteStructHeader header_ModuledForwardDeclarationsRecursiveStruct; + header_ModuledForwardDeclarationsRecursiveStruct = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_ModuledForwardDeclarationsRecursiveStruct); + CompleteStructMemberSeq member_seq_ModuledForwardDeclarationsRecursiveStruct; + { + TypeIdentifierPair type_ids_var_ModuledRecursiveUnboundedSeqForwardStruct; + ReturnCode_t return_code_var_ModuledRecursiveUnboundedSeqForwardStruct {eprosima::fastdds::dds::RETCODE_OK}; + return_code_var_ModuledRecursiveUnboundedSeqForwardStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "declarations_module::ModuledRecursiveUnboundedSeqForwardStruct", type_ids_var_ModuledRecursiveUnboundedSeqForwardStruct); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_var_ModuledRecursiveUnboundedSeqForwardStruct) + { + ::declarations_module::register_ModuledRecursiveUnboundedSeqForwardStruct_type_identifier(type_ids_var_ModuledRecursiveUnboundedSeqForwardStruct); + } + StructMemberFlag member_flags_var_ModuledRecursiveUnboundedSeqForwardStruct = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_var_ModuledRecursiveUnboundedSeqForwardStruct = 0x00000000; + bool common_var_ModuledRecursiveUnboundedSeqForwardStruct_ec {false}; + CommonStructMember common_var_ModuledRecursiveUnboundedSeqForwardStruct {TypeObjectUtils::build_common_struct_member(member_id_var_ModuledRecursiveUnboundedSeqForwardStruct, member_flags_var_ModuledRecursiveUnboundedSeqForwardStruct, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_var_ModuledRecursiveUnboundedSeqForwardStruct, common_var_ModuledRecursiveUnboundedSeqForwardStruct_ec))}; + if (!common_var_ModuledRecursiveUnboundedSeqForwardStruct_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure var_ModuledRecursiveUnboundedSeqForwardStruct member TypeIdentifier inconsistent."); + return; + } + MemberName name_var_ModuledRecursiveUnboundedSeqForwardStruct = "var_ModuledRecursiveUnboundedSeqForwardStruct"; + eprosima::fastcdr::optional member_ann_builtin_var_ModuledRecursiveUnboundedSeqForwardStruct; + ann_custom_ModuledForwardDeclarationsRecursiveStruct.reset(); + CompleteMemberDetail detail_var_ModuledRecursiveUnboundedSeqForwardStruct = TypeObjectUtils::build_complete_member_detail(name_var_ModuledRecursiveUnboundedSeqForwardStruct, member_ann_builtin_var_ModuledRecursiveUnboundedSeqForwardStruct, ann_custom_ModuledForwardDeclarationsRecursiveStruct); + CompleteStructMember member_var_ModuledRecursiveUnboundedSeqForwardStruct = TypeObjectUtils::build_complete_struct_member(common_var_ModuledRecursiveUnboundedSeqForwardStruct, detail_var_ModuledRecursiveUnboundedSeqForwardStruct); + TypeObjectUtils::add_complete_struct_member(member_seq_ModuledForwardDeclarationsRecursiveStruct, member_var_ModuledRecursiveUnboundedSeqForwardStruct); + } + { + TypeIdentifierPair type_ids_var_ModuledRecursiveBoundedSeqForwardStruct; + ReturnCode_t return_code_var_ModuledRecursiveBoundedSeqForwardStruct {eprosima::fastdds::dds::RETCODE_OK}; + return_code_var_ModuledRecursiveBoundedSeqForwardStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "declarations_module::ModuledRecursiveBoundedSeqForwardStruct", type_ids_var_ModuledRecursiveBoundedSeqForwardStruct); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_var_ModuledRecursiveBoundedSeqForwardStruct) + { + ::declarations_module::register_ModuledRecursiveBoundedSeqForwardStruct_type_identifier(type_ids_var_ModuledRecursiveBoundedSeqForwardStruct); + } + StructMemberFlag member_flags_var_ModuledRecursiveBoundedSeqForwardStruct = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_var_ModuledRecursiveBoundedSeqForwardStruct = 0x00000001; + bool common_var_ModuledRecursiveBoundedSeqForwardStruct_ec {false}; + CommonStructMember common_var_ModuledRecursiveBoundedSeqForwardStruct {TypeObjectUtils::build_common_struct_member(member_id_var_ModuledRecursiveBoundedSeqForwardStruct, member_flags_var_ModuledRecursiveBoundedSeqForwardStruct, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_var_ModuledRecursiveBoundedSeqForwardStruct, common_var_ModuledRecursiveBoundedSeqForwardStruct_ec))}; + if (!common_var_ModuledRecursiveBoundedSeqForwardStruct_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure var_ModuledRecursiveBoundedSeqForwardStruct member TypeIdentifier inconsistent."); + return; + } + MemberName name_var_ModuledRecursiveBoundedSeqForwardStruct = "var_ModuledRecursiveBoundedSeqForwardStruct"; + eprosima::fastcdr::optional member_ann_builtin_var_ModuledRecursiveBoundedSeqForwardStruct; + ann_custom_ModuledForwardDeclarationsRecursiveStruct.reset(); + CompleteMemberDetail detail_var_ModuledRecursiveBoundedSeqForwardStruct = TypeObjectUtils::build_complete_member_detail(name_var_ModuledRecursiveBoundedSeqForwardStruct, member_ann_builtin_var_ModuledRecursiveBoundedSeqForwardStruct, ann_custom_ModuledForwardDeclarationsRecursiveStruct); + CompleteStructMember member_var_ModuledRecursiveBoundedSeqForwardStruct = TypeObjectUtils::build_complete_struct_member(common_var_ModuledRecursiveBoundedSeqForwardStruct, detail_var_ModuledRecursiveBoundedSeqForwardStruct); + TypeObjectUtils::add_complete_struct_member(member_seq_ModuledForwardDeclarationsRecursiveStruct, member_var_ModuledRecursiveBoundedSeqForwardStruct); + } + { + TypeIdentifierPair type_ids_var_ModuledRecursiveUnboundedSeqForwardUnion; + ReturnCode_t return_code_var_ModuledRecursiveUnboundedSeqForwardUnion {eprosima::fastdds::dds::RETCODE_OK}; + return_code_var_ModuledRecursiveUnboundedSeqForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "declarations_module::ModuledRecursiveUnboundedSeqForwardUnion", type_ids_var_ModuledRecursiveUnboundedSeqForwardUnion); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_var_ModuledRecursiveUnboundedSeqForwardUnion) + { + ::declarations_module::register_ModuledRecursiveUnboundedSeqForwardUnion_type_identifier(type_ids_var_ModuledRecursiveUnboundedSeqForwardUnion); + } + StructMemberFlag member_flags_var_ModuledRecursiveUnboundedSeqForwardUnion = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_var_ModuledRecursiveUnboundedSeqForwardUnion = 0x00000002; + bool common_var_ModuledRecursiveUnboundedSeqForwardUnion_ec {false}; + CommonStructMember common_var_ModuledRecursiveUnboundedSeqForwardUnion {TypeObjectUtils::build_common_struct_member(member_id_var_ModuledRecursiveUnboundedSeqForwardUnion, member_flags_var_ModuledRecursiveUnboundedSeqForwardUnion, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_var_ModuledRecursiveUnboundedSeqForwardUnion, common_var_ModuledRecursiveUnboundedSeqForwardUnion_ec))}; + if (!common_var_ModuledRecursiveUnboundedSeqForwardUnion_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure var_ModuledRecursiveUnboundedSeqForwardUnion member TypeIdentifier inconsistent."); + return; + } + MemberName name_var_ModuledRecursiveUnboundedSeqForwardUnion = "var_ModuledRecursiveUnboundedSeqForwardUnion"; + eprosima::fastcdr::optional member_ann_builtin_var_ModuledRecursiveUnboundedSeqForwardUnion; + ann_custom_ModuledForwardDeclarationsRecursiveStruct.reset(); + CompleteMemberDetail detail_var_ModuledRecursiveUnboundedSeqForwardUnion = TypeObjectUtils::build_complete_member_detail(name_var_ModuledRecursiveUnboundedSeqForwardUnion, member_ann_builtin_var_ModuledRecursiveUnboundedSeqForwardUnion, ann_custom_ModuledForwardDeclarationsRecursiveStruct); + CompleteStructMember member_var_ModuledRecursiveUnboundedSeqForwardUnion = TypeObjectUtils::build_complete_struct_member(common_var_ModuledRecursiveUnboundedSeqForwardUnion, detail_var_ModuledRecursiveUnboundedSeqForwardUnion); + TypeObjectUtils::add_complete_struct_member(member_seq_ModuledForwardDeclarationsRecursiveStruct, member_var_ModuledRecursiveUnboundedSeqForwardUnion); + } + { + TypeIdentifierPair type_ids_var_ModuledRecursiveBoundedSeqForwardUnion; + ReturnCode_t return_code_var_ModuledRecursiveBoundedSeqForwardUnion {eprosima::fastdds::dds::RETCODE_OK}; + return_code_var_ModuledRecursiveBoundedSeqForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "declarations_module::ModuledRecursiveBoundedSeqForwardUnion", type_ids_var_ModuledRecursiveBoundedSeqForwardUnion); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_var_ModuledRecursiveBoundedSeqForwardUnion) + { + ::declarations_module::register_ModuledRecursiveBoundedSeqForwardUnion_type_identifier(type_ids_var_ModuledRecursiveBoundedSeqForwardUnion); + } + StructMemberFlag member_flags_var_ModuledRecursiveBoundedSeqForwardUnion = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_var_ModuledRecursiveBoundedSeqForwardUnion = 0x00000003; + bool common_var_ModuledRecursiveBoundedSeqForwardUnion_ec {false}; + CommonStructMember common_var_ModuledRecursiveBoundedSeqForwardUnion {TypeObjectUtils::build_common_struct_member(member_id_var_ModuledRecursiveBoundedSeqForwardUnion, member_flags_var_ModuledRecursiveBoundedSeqForwardUnion, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_var_ModuledRecursiveBoundedSeqForwardUnion, common_var_ModuledRecursiveBoundedSeqForwardUnion_ec))}; + if (!common_var_ModuledRecursiveBoundedSeqForwardUnion_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure var_ModuledRecursiveBoundedSeqForwardUnion member TypeIdentifier inconsistent."); + return; + } + MemberName name_var_ModuledRecursiveBoundedSeqForwardUnion = "var_ModuledRecursiveBoundedSeqForwardUnion"; + eprosima::fastcdr::optional member_ann_builtin_var_ModuledRecursiveBoundedSeqForwardUnion; + ann_custom_ModuledForwardDeclarationsRecursiveStruct.reset(); + CompleteMemberDetail detail_var_ModuledRecursiveBoundedSeqForwardUnion = TypeObjectUtils::build_complete_member_detail(name_var_ModuledRecursiveBoundedSeqForwardUnion, member_ann_builtin_var_ModuledRecursiveBoundedSeqForwardUnion, ann_custom_ModuledForwardDeclarationsRecursiveStruct); + CompleteStructMember member_var_ModuledRecursiveBoundedSeqForwardUnion = TypeObjectUtils::build_complete_struct_member(common_var_ModuledRecursiveBoundedSeqForwardUnion, detail_var_ModuledRecursiveBoundedSeqForwardUnion); + TypeObjectUtils::add_complete_struct_member(member_seq_ModuledForwardDeclarationsRecursiveStruct, member_var_ModuledRecursiveBoundedSeqForwardUnion); + } + CompleteStructType struct_type_ModuledForwardDeclarationsRecursiveStruct = TypeObjectUtils::build_complete_struct_type(struct_flags_ModuledForwardDeclarationsRecursiveStruct, header_ModuledForwardDeclarationsRecursiveStruct, member_seq_ModuledForwardDeclarationsRecursiveStruct); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_ModuledForwardDeclarationsRecursiveStruct, type_name_ModuledForwardDeclarationsRecursiveStruct.to_string(), type_ids_ModuledForwardDeclarationsRecursiveStruct)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "ModuledForwardDeclarationsRecursiveStruct already registered in TypeObjectRegistry for a different type."); + } + } +}namespace declarations_module { +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_ModuledForwardStruct_type_identifier( + TypeIdentifierPair& type_ids_ModuledForwardStruct) +{ + + ReturnCode_t return_code_ModuledForwardStruct {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ModuledForwardStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "declarations_module::ModuledForwardStruct", type_ids_ModuledForwardStruct); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ModuledForwardStruct) + { + StructTypeFlag struct_flags_ModuledForwardStruct = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_ModuledForwardStruct = "declarations_module::ModuledForwardStruct"; + eprosima::fastcdr::optional type_ann_builtin_ModuledForwardStruct; + eprosima::fastcdr::optional ann_custom_ModuledForwardStruct; + AppliedAnnotationSeq tmp_ann_custom_ModuledForwardStruct; + eprosima::fastcdr::optional verbatim_ModuledForwardStruct; + { + eprosima::fastcdr::optional applied_annotation_parameter_seq_ModuledForwardStruct; + AppliedAnnotationParameterSeq tmp_applied_annotation_parameter_seq_ModuledForwardStruct; + { + NameHash paramname_hash_name = TypeObjectUtils::name_hash("name"); + AnnotationParameterValue param_value_name = TypeObjectUtils::build_annotation_parameter_value(eprosima::fastcdr::fixed_string<128>("ForwardAnnotation")); + + AppliedAnnotationParameter applied_param_name = TypeObjectUtils::build_applied_annotation_parameter(paramname_hash_name, + param_value_name); + TypeObjectUtils::add_applied_annotation_parameter(tmp_applied_annotation_parameter_seq_ModuledForwardStruct, applied_param_name); + } + + { + NameHash paramname_hash_value = TypeObjectUtils::name_hash("value"); + AnnotationParameterValue param_value_value = TypeObjectUtils::build_annotation_parameter_value(static_cast(1)); + + AppliedAnnotationParameter applied_param_value = TypeObjectUtils::build_applied_annotation_parameter(paramname_hash_value, + param_value_value); + TypeObjectUtils::add_applied_annotation_parameter(tmp_applied_annotation_parameter_seq_ModuledForwardStruct, applied_param_value); + } + + { + AppliedAnnotation applied_annotation_ModuledForwardStruct; + ReturnCode_t return_code_ForwardAnnotation {eprosima::fastdds::dds::RETCODE_OK}; + TypeIdentifierPair type_ids_ForwardAnnotation; + return_code_ForwardAnnotation = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "ForwardAnnotation", type_ids_ForwardAnnotation); + if (return_code_ForwardAnnotation != eprosima::fastdds::dds::RETCODE_OK) + { + ::register_ForwardAnnotation_type_identifier(type_ids_ForwardAnnotation); + } + if (!tmp_applied_annotation_parameter_seq_ModuledForwardStruct.empty()) + { + applied_annotation_parameter_seq_ModuledForwardStruct = tmp_applied_annotation_parameter_seq_ModuledForwardStruct; + } + if (EK_COMPLETE == type_ids_ForwardAnnotation.type_identifier1()._d()) + { + applied_annotation_ModuledForwardStruct = + TypeObjectUtils::build_applied_annotation(type_ids_ForwardAnnotation.type_identifier1(), applied_annotation_parameter_seq_ModuledForwardStruct); + } + else if (EK_COMPLETE == type_ids_ForwardAnnotation.type_identifier2()._d()) + { + applied_annotation_ModuledForwardStruct = + TypeObjectUtils::build_applied_annotation(type_ids_ForwardAnnotation.type_identifier2(), applied_annotation_parameter_seq_ModuledForwardStruct); + } + else + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "declarations_module::ModuledForwardStruct Structure: Given Annotation TypeIdentifier is inconsistent."); + return; + } + TypeObjectUtils::add_applied_annotation(tmp_ann_custom_ModuledForwardStruct, applied_annotation_ModuledForwardStruct); + } + } + + if (!tmp_ann_custom_ModuledForwardStruct.empty()) + { + ann_custom_ModuledForwardStruct = tmp_ann_custom_ModuledForwardStruct; + } + + CompleteTypeDetail detail_ModuledForwardStruct = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ModuledForwardStruct, ann_custom_ModuledForwardStruct, type_name_ModuledForwardStruct.to_string()); + CompleteStructHeader header_ModuledForwardStruct; + header_ModuledForwardStruct = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_ModuledForwardStruct); + CompleteStructMemberSeq member_seq_ModuledForwardStruct; + { + TypeIdentifierPair type_ids_var_short; + ReturnCode_t return_code_var_short {eprosima::fastdds::dds::RETCODE_OK}; + return_code_var_short = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int16_t", type_ids_var_short); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_var_short) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "var_short Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_var_short = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_var_short = 0x00000000; + bool common_var_short_ec {false}; + CommonStructMember common_var_short {TypeObjectUtils::build_common_struct_member(member_id_var_short, member_flags_var_short, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_var_short, common_var_short_ec))}; + if (!common_var_short_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure var_short member TypeIdentifier inconsistent."); + return; + } + MemberName name_var_short = "var_short"; + eprosima::fastcdr::optional member_ann_builtin_var_short; + ann_custom_ModuledForwardStruct.reset(); + CompleteMemberDetail detail_var_short = TypeObjectUtils::build_complete_member_detail(name_var_short, member_ann_builtin_var_short, ann_custom_ModuledForwardStruct); + CompleteStructMember member_var_short = TypeObjectUtils::build_complete_struct_member(common_var_short, detail_var_short); + TypeObjectUtils::add_complete_struct_member(member_seq_ModuledForwardStruct, member_var_short); + } + { + TypeIdentifierPair type_ids_var_long; + ReturnCode_t return_code_var_long {eprosima::fastdds::dds::RETCODE_OK}; + return_code_var_long = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_var_long); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_var_long) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "var_long Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_var_long = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_var_long = 0x00000001; + bool common_var_long_ec {false}; + CommonStructMember common_var_long {TypeObjectUtils::build_common_struct_member(member_id_var_long, member_flags_var_long, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_var_long, common_var_long_ec))}; + if (!common_var_long_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure var_long member TypeIdentifier inconsistent."); + return; + } + MemberName name_var_long = "var_long"; + eprosima::fastcdr::optional member_ann_builtin_var_long; + ann_custom_ModuledForwardStruct.reset(); + CompleteMemberDetail detail_var_long = TypeObjectUtils::build_complete_member_detail(name_var_long, member_ann_builtin_var_long, ann_custom_ModuledForwardStruct); + CompleteStructMember member_var_long = TypeObjectUtils::build_complete_struct_member(common_var_long, detail_var_long); + TypeObjectUtils::add_complete_struct_member(member_seq_ModuledForwardStruct, member_var_long); + } + CompleteStructType struct_type_ModuledForwardStruct = TypeObjectUtils::build_complete_struct_type(struct_flags_ModuledForwardStruct, header_ModuledForwardStruct, member_seq_ModuledForwardStruct); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_ModuledForwardStruct, type_name_ModuledForwardStruct.to_string(), type_ids_ModuledForwardStruct)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "declarations_module::ModuledForwardStruct already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_ModuledForwardUnion_type_identifier( + TypeIdentifierPair& type_ids_ModuledForwardUnion) +{ + ReturnCode_t return_code_ModuledForwardUnion {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ModuledForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "declarations_module::ModuledForwardUnion", type_ids_ModuledForwardUnion); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ModuledForwardUnion) + { + UnionTypeFlag union_flags_ModuledForwardUnion = TypeObjectUtils::build_union_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_ModuledForwardUnion = "declarations_module::ModuledForwardUnion"; + eprosima::fastcdr::optional type_ann_builtin_ModuledForwardUnion; + eprosima::fastcdr::optional ann_custom_ModuledForwardUnion; + CompleteTypeDetail detail_ModuledForwardUnion = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ModuledForwardUnion, ann_custom_ModuledForwardUnion, type_name_ModuledForwardUnion.to_string()); + CompleteUnionHeader header_ModuledForwardUnion = TypeObjectUtils::build_complete_union_header(detail_ModuledForwardUnion); + UnionDiscriminatorFlag member_flags_ModuledForwardUnion = TypeObjectUtils::build_union_discriminator_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false); + return_code_ModuledForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_ModuledForwardUnion); + + if (return_code_ModuledForwardUnion != eprosima::fastdds::dds::RETCODE_OK) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Union discriminator TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + CommonDiscriminatorMember common_ModuledForwardUnion; + if (EK_COMPLETE == type_ids_ModuledForwardUnion.type_identifier1()._d() || TK_NONE == type_ids_ModuledForwardUnion.type_identifier2()._d()) + { + common_ModuledForwardUnion = TypeObjectUtils::build_common_discriminator_member(member_flags_ModuledForwardUnion, type_ids_ModuledForwardUnion.type_identifier1()); + } + else if (EK_COMPLETE == type_ids_ModuledForwardUnion.type_identifier2()._d()) + { + common_ModuledForwardUnion = TypeObjectUtils::build_common_discriminator_member(member_flags_ModuledForwardUnion, type_ids_ModuledForwardUnion.type_identifier2()); + } + else + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "declarations_module::ModuledForwardUnion discriminator TypeIdentifier inconsistent."); + return; + } + type_ann_builtin_ModuledForwardUnion.reset(); + ann_custom_ModuledForwardUnion.reset(); + CompleteDiscriminatorMember discriminator_ModuledForwardUnion = TypeObjectUtils::build_complete_discriminator_member(common_ModuledForwardUnion, + type_ann_builtin_ModuledForwardUnion, ann_custom_ModuledForwardUnion); + CompleteUnionMemberSeq member_seq_ModuledForwardUnion; + { + return_code_ModuledForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_ModuledForwardUnion); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ModuledForwardUnion) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "case_zero Union member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + UnionMemberFlag member_flags_case_zero = TypeObjectUtils::build_union_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false); + UnionCaseLabelSeq label_seq_case_zero; + TypeObjectUtils::add_union_case_label(label_seq_case_zero, static_cast(long_const)); + MemberId member_id_case_zero = 0x00000001; + bool common_case_zero_ec {false}; + CommonUnionMember common_case_zero {TypeObjectUtils::build_common_union_member(member_id_case_zero, + member_flags_case_zero, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_ModuledForwardUnion, + common_case_zero_ec), label_seq_case_zero)}; + if (!common_case_zero_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Union case_zero member TypeIdentifier inconsistent."); + return; + } + MemberName name_case_zero = "case_zero"; + eprosima::fastcdr::optional member_ann_builtin_case_zero; + ann_custom_ModuledForwardUnion.reset(); + CompleteMemberDetail detail_case_zero = TypeObjectUtils::build_complete_member_detail(name_case_zero, member_ann_builtin_case_zero, ann_custom_ModuledForwardUnion); + CompleteUnionMember member_case_zero = TypeObjectUtils::build_complete_union_member(common_case_zero, detail_case_zero); + TypeObjectUtils::add_complete_union_member(member_seq_ModuledForwardUnion, member_case_zero); + } + { + return_code_ModuledForwardUnion = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_ModuledForwardUnion); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ModuledForwardUnion) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "case_one Union member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + UnionMemberFlag member_flags_case_one = TypeObjectUtils::build_union_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false); + UnionCaseLabelSeq label_seq_case_one; + TypeObjectUtils::add_union_case_label(label_seq_case_one, static_cast(1)); + MemberId member_id_case_one = 0x00000002; + bool common_case_one_ec {false}; + CommonUnionMember common_case_one {TypeObjectUtils::build_common_union_member(member_id_case_one, + member_flags_case_one, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_ModuledForwardUnion, + common_case_one_ec), label_seq_case_one)}; + if (!common_case_one_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Union case_one member TypeIdentifier inconsistent."); + return; + } + MemberName name_case_one = "case_one"; + eprosima::fastcdr::optional member_ann_builtin_case_one; + ann_custom_ModuledForwardUnion.reset(); + CompleteMemberDetail detail_case_one = TypeObjectUtils::build_complete_member_detail(name_case_one, member_ann_builtin_case_one, ann_custom_ModuledForwardUnion); + CompleteUnionMember member_case_one = TypeObjectUtils::build_complete_union_member(common_case_one, detail_case_one); + TypeObjectUtils::add_complete_union_member(member_seq_ModuledForwardUnion, member_case_one); + } + CompleteUnionType union_type_ModuledForwardUnion = TypeObjectUtils::build_complete_union_type(union_flags_ModuledForwardUnion, header_ModuledForwardUnion, discriminator_ModuledForwardUnion, + member_seq_ModuledForwardUnion); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_union_type_object(union_type_ModuledForwardUnion, type_name_ModuledForwardUnion.to_string(), type_ids_ModuledForwardUnion)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "declarations_module::ModuledForwardUnion already registered in TypeObjectRegistry for a different type."); + } + } +} +} // namespace declarations_module +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_ModuledCommonNameStructure_type_identifier( + TypeIdentifierPair& type_ids_ModuledCommonNameStructure) +{ + + ReturnCode_t return_code_ModuledCommonNameStructure {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ModuledCommonNameStructure = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "ModuledCommonNameStructure", type_ids_ModuledCommonNameStructure); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ModuledCommonNameStructure) + { + StructTypeFlag struct_flags_ModuledCommonNameStructure = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_ModuledCommonNameStructure = "ModuledCommonNameStructure"; + eprosima::fastcdr::optional type_ann_builtin_ModuledCommonNameStructure; + eprosima::fastcdr::optional ann_custom_ModuledCommonNameStructure; + CompleteTypeDetail detail_ModuledCommonNameStructure = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ModuledCommonNameStructure, ann_custom_ModuledCommonNameStructure, type_name_ModuledCommonNameStructure.to_string()); + CompleteStructHeader header_ModuledCommonNameStructure; + header_ModuledCommonNameStructure = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_ModuledCommonNameStructure); + CompleteStructMemberSeq member_seq_ModuledCommonNameStructure; + { + TypeIdentifierPair type_ids_global_struct; + ReturnCode_t return_code_global_struct {eprosima::fastdds::dds::RETCODE_OK}; + return_code_global_struct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "ForwardStruct", type_ids_global_struct); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_global_struct) + { + ::register_ForwardStruct_type_identifier(type_ids_global_struct); + } + StructMemberFlag member_flags_global_struct = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_global_struct = 0x00000000; + bool common_global_struct_ec {false}; + CommonStructMember common_global_struct {TypeObjectUtils::build_common_struct_member(member_id_global_struct, member_flags_global_struct, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_global_struct, common_global_struct_ec))}; + if (!common_global_struct_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure global_struct member TypeIdentifier inconsistent."); + return; + } + MemberName name_global_struct = "global_struct"; + eprosima::fastcdr::optional member_ann_builtin_global_struct; + ann_custom_ModuledCommonNameStructure.reset(); + CompleteMemberDetail detail_global_struct = TypeObjectUtils::build_complete_member_detail(name_global_struct, member_ann_builtin_global_struct, ann_custom_ModuledCommonNameStructure); + CompleteStructMember member_global_struct = TypeObjectUtils::build_complete_struct_member(common_global_struct, detail_global_struct); + TypeObjectUtils::add_complete_struct_member(member_seq_ModuledCommonNameStructure, member_global_struct); + } + { + TypeIdentifierPair type_ids_namespaced_struct; + ReturnCode_t return_code_namespaced_struct {eprosima::fastdds::dds::RETCODE_OK}; + return_code_namespaced_struct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "declarations_module::ForwardStruct", type_ids_namespaced_struct); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_namespaced_struct) + { + ::declarations_module::register_ForwardStruct_type_identifier(type_ids_namespaced_struct); + } + StructMemberFlag member_flags_namespaced_struct = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_namespaced_struct = 0x00000001; + bool common_namespaced_struct_ec {false}; + CommonStructMember common_namespaced_struct {TypeObjectUtils::build_common_struct_member(member_id_namespaced_struct, member_flags_namespaced_struct, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_namespaced_struct, common_namespaced_struct_ec))}; + if (!common_namespaced_struct_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure namespaced_struct member TypeIdentifier inconsistent."); + return; + } + MemberName name_namespaced_struct = "namespaced_struct"; + eprosima::fastcdr::optional member_ann_builtin_namespaced_struct; + ann_custom_ModuledCommonNameStructure.reset(); + CompleteMemberDetail detail_namespaced_struct = TypeObjectUtils::build_complete_member_detail(name_namespaced_struct, member_ann_builtin_namespaced_struct, ann_custom_ModuledCommonNameStructure); + CompleteStructMember member_namespaced_struct = TypeObjectUtils::build_complete_struct_member(common_namespaced_struct, detail_namespaced_struct); + TypeObjectUtils::add_complete_struct_member(member_seq_ModuledCommonNameStructure, member_namespaced_struct); + } + CompleteStructType struct_type_ModuledCommonNameStructure = TypeObjectUtils::build_complete_struct_type(struct_flags_ModuledCommonNameStructure, header_ModuledCommonNameStructure, member_seq_ModuledCommonNameStructure); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_ModuledCommonNameStructure, type_name_ModuledCommonNameStructure.to_string(), type_ids_ModuledCommonNameStructure)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "ModuledCommonNameStructure already registered in TypeObjectRegistry for a different type."); + } + } +} diff --git a/test/dds-types-test/declarationsTypeObjectSupport.hpp b/test/dds-types-test/declarationsTypeObjectSupport.hpp new file mode 100644 index 00000000000..dfcc1246afa --- /dev/null +++ b/test/dds-types-test/declarationsTypeObjectSupport.hpp @@ -0,0 +1,282 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file declarationsTypeObjectSupport.hpp + * Header file containing the API required to register the TypeObject representation of the described types in the IDL file + * + * This file was generated by the tool fastddsgen (version: 4.1.0). + */ + +#ifndef FAST_DDS_GENERATED__DECLARATIONS_TYPE_OBJECT_SUPPORT_HPP +#define FAST_DDS_GENERATED__DECLARATIONS_TYPE_OBJECT_SUPPORT_HPP + +#include + + +#if defined(_WIN32) +#if defined(EPROSIMA_USER_DLL_EXPORT) +#define eProsima_user_DllExport __declspec( dllexport ) +#else +#define eProsima_user_DllExport +#endif // EPROSIMA_USER_DLL_EXPORT +#else +#define eProsima_user_DllExport +#endif // _WIN32 + +#ifndef DOXYGEN_SHOULD_SKIP_THIS_PUBLIC + +/** + * @brief Register RecursiveUnboundedSeqForwardStruct related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_RecursiveUnboundedSeqForwardStruct_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + + +/** + * @brief Register RecursiveBoundedSeqForwardStruct related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_RecursiveBoundedSeqForwardStruct_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + + +/** + * @brief Register RecursiveUnboundedSeqForwardUnion related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_RecursiveUnboundedSeqForwardUnion_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + + +/** + * @brief Register RecursiveBoundedSeqForwardUnion related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_RecursiveBoundedSeqForwardUnion_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + + + +namespace ForwardAnnotation { + + + +} // namespace ForwardAnnotation + +/** + * @brief Register ForwardAnnotation related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_ForwardAnnotation_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register ForwardDeclarationsRecursiveStruct related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_ForwardDeclarationsRecursiveStruct_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register ForwardUnion related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_ForwardUnion_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register ForwardStruct related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_ForwardStruct_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +namespace declarations_module { +/** + * @brief Register ModuledRecursiveUnboundedSeqForwardStruct related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_ModuledRecursiveUnboundedSeqForwardStruct_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + + + +/** + * @brief Register ModuledRecursiveBoundedSeqForwardStruct related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_ModuledRecursiveBoundedSeqForwardStruct_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + + + +/** + * @brief Register ModuledRecursiveUnboundedSeqForwardUnion related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_ModuledRecursiveUnboundedSeqForwardUnion_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + + + +/** + * @brief Register ModuledRecursiveBoundedSeqForwardUnion related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_ModuledRecursiveBoundedSeqForwardUnion_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + + + +/** + * @brief Register ForwardStruct related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_ForwardStruct_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + +} // namespace declarations_module +/** + * @brief Register ModuledForwardDeclarationsRecursiveStruct related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_ModuledForwardDeclarationsRecursiveStruct_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +namespace declarations_module { +/** + * @brief Register ModuledForwardStruct related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_ModuledForwardStruct_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + +/** + * @brief Register ModuledForwardUnion related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_ModuledForwardUnion_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + +} // namespace declarations_module +/** + * @brief Register ModuledCommonNameStructure related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_ModuledCommonNameStructure_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + + +#endif // DOXYGEN_SHOULD_SKIP_THIS_PUBLIC + +#endif // FAST_DDS_GENERATED__DECLARATIONS_TYPE_OBJECT_SUPPORT_HPP diff --git a/test/dds-types-test/enumerationsCdrAux.hpp b/test/dds-types-test/enumerationsCdrAux.hpp index 44af177cd90..a8479818085 100644 --- a/test/dds-types-test/enumerationsCdrAux.hpp +++ b/test/dds-types-test/enumerationsCdrAux.hpp @@ -39,6 +39,7 @@ constexpr uint32_t EnumWithValuesStructure_max_key_cdr_typesize {0UL}; + constexpr uint32_t BitMaskStructure_max_cdr_typesize {8UL}; constexpr uint32_t BitMaskStructure_max_key_cdr_typesize {0UL}; @@ -59,19 +60,23 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const EnumStructure& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const BitMaskStructure& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const BoundedBitMaskStructure& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const EnumWithValuesStructure& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/enumerationsCdrAux.ipp b/test/dds-types-test/enumerationsCdrAux.ipp index 350f835d959..dc54122c4e9 100644 --- a/test/dds-types-test/enumerationsCdrAux.ipp +++ b/test/dds-types-test/enumerationsCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_EnumStructure_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -80,6 +89,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const EnumStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_EnumStructure_cdr_plain(data_representation) && + sizeof(EnumStructure) == EnumStructure_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(EnumStructure)); + + scdr.jump((array_size -1) * sizeof(EnumStructure)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -109,6 +156,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + EnumStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_EnumStructure_cdr_plain(data_representation) && + sizeof(EnumStructure) == EnumStructure_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(EnumStructure)); + + scdr.jump((array_size - 1) * sizeof(EnumStructure)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const EnumStructure& data) @@ -123,6 +206,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_BitMaskStructure_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -165,6 +256,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const BitMaskStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BitMaskStructure_cdr_plain(data_representation) && + sizeof(BitMaskStructure) == BitMaskStructure_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(BitMaskStructure)); + + scdr.jump((array_size -1) * sizeof(BitMaskStructure)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -190,6 +319,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + BitMaskStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BitMaskStructure_cdr_plain(data_representation) && + sizeof(BitMaskStructure) == BitMaskStructure_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(BitMaskStructure)); + + scdr.jump((array_size - 1) * sizeof(BitMaskStructure)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const BitMaskStructure& data) @@ -202,6 +367,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_BoundedBitMaskStructure_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -244,6 +417,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const BoundedBitMaskStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BoundedBitMaskStructure_cdr_plain(data_representation) && + sizeof(BoundedBitMaskStructure) == BoundedBitMaskStructure_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(BoundedBitMaskStructure)); + + scdr.jump((array_size -1) * sizeof(BoundedBitMaskStructure)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -269,6 +480,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + BoundedBitMaskStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BoundedBitMaskStructure_cdr_plain(data_representation) && + sizeof(BoundedBitMaskStructure) == BoundedBitMaskStructure_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(BoundedBitMaskStructure)); + + scdr.jump((array_size - 1) * sizeof(BoundedBitMaskStructure)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const BoundedBitMaskStructure& data) @@ -281,6 +528,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_EnumWithValuesStructure_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -323,6 +578,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const EnumWithValuesStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_EnumWithValuesStructure_cdr_plain(data_representation) && + sizeof(EnumWithValuesStructure) == EnumWithValuesStructure_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(EnumWithValuesStructure)); + + scdr.jump((array_size -1) * sizeof(EnumWithValuesStructure)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -348,6 +641,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + EnumWithValuesStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_EnumWithValuesStructure_cdr_plain(data_representation) && + sizeof(EnumWithValuesStructure) == EnumWithValuesStructure_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(EnumWithValuesStructure)); + + scdr.jump((array_size - 1) * sizeof(EnumWithValuesStructure)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const EnumWithValuesStructure& data) diff --git a/test/dds-types-test/enumerationsPubSubTypes.cxx b/test/dds-types-test/enumerationsPubSubTypes.cxx index dc0afd3a1db..edda6404d3d 100644 --- a/test/dds-types-test/enumerationsPubSubTypes.cxx +++ b/test/dds-types-test/enumerationsPubSubTypes.cxx @@ -31,6 +31,38 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_BoundedBitMaskStructure_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_EnumStructure_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_EnumWithValuesStructure_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_BitMaskStructure_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + +} // namespace fastcdr +} // namespace eprosima + namespace Test { } // namespace Test @@ -152,6 +184,17 @@ void EnumStructurePubSubType::delete_data( delete(reinterpret_cast<::EnumStructure*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool EnumStructurePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool EnumStructurePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -334,6 +377,17 @@ void BitMaskStructurePubSubType::delete_data( delete(reinterpret_cast<::BitMaskStructure*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool BitMaskStructurePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool BitMaskStructurePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -516,6 +570,17 @@ void BoundedBitMaskStructurePubSubType::delete_data( delete(reinterpret_cast<::BoundedBitMaskStructure*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool BoundedBitMaskStructurePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool BoundedBitMaskStructurePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -698,6 +763,17 @@ void EnumWithValuesStructurePubSubType::delete_data( delete(reinterpret_cast<::EnumWithValuesStructure*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool EnumWithValuesStructurePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool EnumWithValuesStructurePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds-types-test/enumerationsPubSubTypes.hpp b/test/dds-types-test/enumerationsPubSubTypes.hpp index 1556b778f6a..31507a1d1eb 100644 --- a/test/dds-types-test/enumerationsPubSubTypes.hpp +++ b/test/dds-types-test/enumerationsPubSubTypes.hpp @@ -97,12 +97,8 @@ class EnumStructurePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -179,12 +175,8 @@ class BitMaskStructurePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -261,12 +253,8 @@ class BoundedBitMaskStructurePubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -343,12 +331,8 @@ class EnumWithValuesStructurePubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds-types-test/externalCdrAux.hpp b/test/dds-types-test/externalCdrAux.hpp index 7be79333ad7..ff22f2b4bd2 100644 --- a/test/dds-types-test/externalCdrAux.hpp +++ b/test/dds-types-test/externalCdrAux.hpp @@ -83,6 +83,7 @@ constexpr uint32_t recursive_test_2_max_key_cdr_typesize {0UL}; + constexpr uint32_t recursive_union_container_max_cdr_typesize {20UL}; constexpr uint32_t recursive_union_container_max_key_cdr_typesize {0UL}; @@ -97,6 +98,7 @@ constexpr uint32_t double_external_max_key_cdr_typesize {0UL}; + constexpr uint32_t ext_struct_external_max_cdr_typesize {16UL}; constexpr uint32_t ext_struct_external_max_key_cdr_typesize {0UL}; @@ -131,111 +133,138 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const short_external& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ushort_external& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const long_external& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ulong_external& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const longlong_external& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ulonglong_external& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const float_external& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const double_external& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const longdouble_external& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const boolean_external& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const octet_external& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const char_external& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const wchar_external& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const sequence_short_external& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const string_unbounded_external& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const string_bounded_external& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const map_short_external& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const array_short_external& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const struct_external& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const InnerStructExternal& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ext_struct_external& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ext_and_inner_struct_external& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const struct_external_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const recursive_union_container& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const recursive_test_1& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const recursive_structure& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const recursive_test_2& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/externalCdrAux.ipp b/test/dds-types-test/externalCdrAux.ipp index 521eaedcb18..3480ec48f52 100644 --- a/test/dds-types-test/externalCdrAux.ipp +++ b/test/dds-types-test/externalCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_short_external_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const short_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_short_external_cdr_plain(data_representation) && + sizeof(short_external) == short_external_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(short_external)); + + scdr.jump((array_size -1) * sizeof(short_external)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + short_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_short_external_cdr_plain(data_representation) && + sizeof(short_external) == short_external_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(short_external)); + + scdr.jump((array_size - 1) * sizeof(short_external)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const short_external& data) @@ -113,6 +196,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ushort_external_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -155,6 +246,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ushort_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ushort_external_cdr_plain(data_representation) && + sizeof(ushort_external) == ushort_external_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ushort_external)); + + scdr.jump((array_size -1) * sizeof(ushort_external)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -180,6 +309,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ushort_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ushort_external_cdr_plain(data_representation) && + sizeof(ushort_external) == ushort_external_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ushort_external)); + + scdr.jump((array_size - 1) * sizeof(ushort_external)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ushort_external& data) @@ -192,6 +357,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_long_external_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -234,6 +407,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const long_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_long_external_cdr_plain(data_representation) && + sizeof(long_external) == long_external_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(long_external)); + + scdr.jump((array_size -1) * sizeof(long_external)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -259,6 +470,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + long_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_long_external_cdr_plain(data_representation) && + sizeof(long_external) == long_external_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(long_external)); + + scdr.jump((array_size - 1) * sizeof(long_external)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const long_external& data) @@ -271,6 +518,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ulong_external_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -313,6 +568,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ulong_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ulong_external_cdr_plain(data_representation) && + sizeof(ulong_external) == ulong_external_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ulong_external)); + + scdr.jump((array_size -1) * sizeof(ulong_external)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -338,6 +631,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ulong_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ulong_external_cdr_plain(data_representation) && + sizeof(ulong_external) == ulong_external_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ulong_external)); + + scdr.jump((array_size - 1) * sizeof(ulong_external)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ulong_external& data) @@ -350,6 +679,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_longlong_external_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -392,6 +729,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const longlong_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_longlong_external_cdr_plain(data_representation) && + sizeof(longlong_external) == longlong_external_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(longlong_external)); + + scdr.jump((array_size -1) * sizeof(longlong_external)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -417,6 +792,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + longlong_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_longlong_external_cdr_plain(data_representation) && + sizeof(longlong_external) == longlong_external_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(longlong_external)); + + scdr.jump((array_size - 1) * sizeof(longlong_external)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const longlong_external& data) @@ -429,6 +840,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ulonglong_external_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -471,6 +890,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ulonglong_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ulonglong_external_cdr_plain(data_representation) && + sizeof(ulonglong_external) == ulonglong_external_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ulonglong_external)); + + scdr.jump((array_size -1) * sizeof(ulonglong_external)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -496,6 +953,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ulonglong_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ulonglong_external_cdr_plain(data_representation) && + sizeof(ulonglong_external) == ulonglong_external_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ulonglong_external)); + + scdr.jump((array_size - 1) * sizeof(ulonglong_external)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ulonglong_external& data) @@ -508,6 +1001,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_float_external_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -550,6 +1051,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const float_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_float_external_cdr_plain(data_representation) && + sizeof(float_external) == float_external_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(float_external)); + + scdr.jump((array_size -1) * sizeof(float_external)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -575,6 +1114,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + float_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_float_external_cdr_plain(data_representation) && + sizeof(float_external) == float_external_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(float_external)); + + scdr.jump((array_size - 1) * sizeof(float_external)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const float_external& data) @@ -587,6 +1162,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_double_external_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -629,6 +1212,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const double_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_double_external_cdr_plain(data_representation) && + sizeof(double_external) == double_external_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(double_external)); + + scdr.jump((array_size -1) * sizeof(double_external)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -654,6 +1275,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + double_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_double_external_cdr_plain(data_representation) && + sizeof(double_external) == double_external_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(double_external)); + + scdr.jump((array_size - 1) * sizeof(double_external)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const double_external& data) @@ -666,6 +1323,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_longdouble_external_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -708,6 +1373,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const longdouble_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_longdouble_external_cdr_plain(data_representation) && + sizeof(longdouble_external) == longdouble_external_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(longdouble_external)); + + scdr.jump((array_size -1) * sizeof(longdouble_external)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -733,6 +1436,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + longdouble_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_longdouble_external_cdr_plain(data_representation) && + sizeof(longdouble_external) == longdouble_external_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(longdouble_external)); + + scdr.jump((array_size - 1) * sizeof(longdouble_external)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const longdouble_external& data) @@ -745,6 +1484,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_boolean_external_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -787,6 +1534,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const boolean_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_boolean_external_cdr_plain(data_representation) && + sizeof(boolean_external) == boolean_external_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(boolean_external)); + + scdr.jump((array_size -1) * sizeof(boolean_external)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -812,6 +1597,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + boolean_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_boolean_external_cdr_plain(data_representation) && + sizeof(boolean_external) == boolean_external_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(boolean_external)); + + scdr.jump((array_size - 1) * sizeof(boolean_external)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const boolean_external& data) @@ -824,6 +1645,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_octet_external_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -866,6 +1695,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const octet_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_octet_external_cdr_plain(data_representation) && + sizeof(octet_external) == octet_external_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(octet_external)); + + scdr.jump((array_size -1) * sizeof(octet_external)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -891,6 +1758,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + octet_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_octet_external_cdr_plain(data_representation) && + sizeof(octet_external) == octet_external_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(octet_external)); + + scdr.jump((array_size - 1) * sizeof(octet_external)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const octet_external& data) @@ -903,6 +1806,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_char_external_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -945,6 +1856,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const char_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_char_external_cdr_plain(data_representation) && + sizeof(char_external) == char_external_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(char_external)); + + scdr.jump((array_size -1) * sizeof(char_external)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -970,6 +1919,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + char_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_char_external_cdr_plain(data_representation) && + sizeof(char_external) == char_external_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(char_external)); + + scdr.jump((array_size - 1) * sizeof(char_external)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const char_external& data) @@ -982,6 +1967,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_wchar_external_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1024,6 +2017,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const wchar_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_wchar_external_cdr_plain(data_representation) && + sizeof(wchar_external) == wchar_external_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(wchar_external)); + + scdr.jump((array_size -1) * sizeof(wchar_external)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1049,6 +2080,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + wchar_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_wchar_external_cdr_plain(data_representation) && + sizeof(wchar_external) == wchar_external_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(wchar_external)); + + scdr.jump((array_size - 1) * sizeof(wchar_external)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const wchar_external& data) @@ -1061,6 +2128,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_sequence_short_external_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1103,6 +2178,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const sequence_short_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_sequence_short_external_cdr_plain(data_representation) && + sizeof(sequence_short_external) == sequence_short_external_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(sequence_short_external)); + + scdr.jump((array_size -1) * sizeof(sequence_short_external)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1128,6 +2241,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + sequence_short_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_sequence_short_external_cdr_plain(data_representation) && + sizeof(sequence_short_external) == sequence_short_external_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(sequence_short_external)); + + scdr.jump((array_size - 1) * sizeof(sequence_short_external)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const sequence_short_external& data) @@ -1140,6 +2289,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_string_unbounded_external_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1182,6 +2339,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const string_unbounded_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_string_unbounded_external_cdr_plain(data_representation) && + sizeof(string_unbounded_external) == string_unbounded_external_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(string_unbounded_external)); + + scdr.jump((array_size -1) * sizeof(string_unbounded_external)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1207,6 +2402,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + string_unbounded_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_string_unbounded_external_cdr_plain(data_representation) && + sizeof(string_unbounded_external) == string_unbounded_external_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(string_unbounded_external)); + + scdr.jump((array_size - 1) * sizeof(string_unbounded_external)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const string_unbounded_external& data) @@ -1219,6 +2450,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_string_bounded_external_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1261,6 +2500,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const string_bounded_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_string_bounded_external_cdr_plain(data_representation) && + sizeof(string_bounded_external) == string_bounded_external_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(string_bounded_external)); + + scdr.jump((array_size -1) * sizeof(string_bounded_external)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1286,6 +2563,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + string_bounded_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_string_bounded_external_cdr_plain(data_representation) && + sizeof(string_bounded_external) == string_bounded_external_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(string_bounded_external)); + + scdr.jump((array_size - 1) * sizeof(string_bounded_external)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const string_bounded_external& data) @@ -1298,6 +2611,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_map_short_external_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1340,6 +2661,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const map_short_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_map_short_external_cdr_plain(data_representation) && + sizeof(map_short_external) == map_short_external_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(map_short_external)); + + scdr.jump((array_size -1) * sizeof(map_short_external)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1365,6 +2724,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + map_short_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_map_short_external_cdr_plain(data_representation) && + sizeof(map_short_external) == map_short_external_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(map_short_external)); + + scdr.jump((array_size - 1) * sizeof(map_short_external)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const map_short_external& data) @@ -1377,6 +2772,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_array_short_external_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1419,6 +2822,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const array_short_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_array_short_external_cdr_plain(data_representation) && + sizeof(array_short_external) == array_short_external_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(array_short_external)); + + scdr.jump((array_size -1) * sizeof(array_short_external)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1444,6 +2885,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + array_short_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_array_short_external_cdr_plain(data_representation) && + sizeof(array_short_external) == array_short_external_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(array_short_external)); + + scdr.jump((array_size - 1) * sizeof(array_short_external)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const array_short_external& data) @@ -1456,6 +2933,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_struct_external_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1498,6 +2983,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const struct_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_struct_external_cdr_plain(data_representation) && + sizeof(struct_external) == struct_external_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(struct_external)); + + scdr.jump((array_size -1) * sizeof(struct_external)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1523,6 +3046,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + struct_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_struct_external_cdr_plain(data_representation) && + sizeof(struct_external) == struct_external_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(struct_external)); + + scdr.jump((array_size - 1) * sizeof(struct_external)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const struct_external& data) @@ -1539,6 +3098,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_InnerStructExternal_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1585,6 +3152,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerStructExternal* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerStructExternal_cdr_plain(data_representation) && + sizeof(InnerStructExternal) == InnerStructExternal_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(InnerStructExternal)); + + scdr.jump((array_size -1) * sizeof(InnerStructExternal)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1614,6 +3219,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerStructExternal* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerStructExternal_cdr_plain(data_representation) && + sizeof(InnerStructExternal) == InnerStructExternal_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(InnerStructExternal)); + + scdr.jump((array_size - 1) * sizeof(InnerStructExternal)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const InnerStructExternal& data) @@ -1628,6 +3269,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ext_struct_external_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1670,6 +3319,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ext_struct_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ext_struct_external_cdr_plain(data_representation) && + sizeof(ext_struct_external) == ext_struct_external_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ext_struct_external)); + + scdr.jump((array_size -1) * sizeof(ext_struct_external)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1695,6 +3382,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ext_struct_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ext_struct_external_cdr_plain(data_representation) && + sizeof(ext_struct_external) == ext_struct_external_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ext_struct_external)); + + scdr.jump((array_size - 1) * sizeof(ext_struct_external)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ext_struct_external& data) @@ -1711,6 +3434,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ext_and_inner_struct_external_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1753,6 +3484,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ext_and_inner_struct_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ext_and_inner_struct_external_cdr_plain(data_representation) && + sizeof(ext_and_inner_struct_external) == ext_and_inner_struct_external_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ext_and_inner_struct_external)); + + scdr.jump((array_size -1) * sizeof(ext_and_inner_struct_external)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1778,6 +3547,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ext_and_inner_struct_external* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ext_and_inner_struct_external_cdr_plain(data_representation) && + sizeof(ext_and_inner_struct_external) == ext_and_inner_struct_external_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ext_and_inner_struct_external)); + + scdr.jump((array_size - 1) * sizeof(ext_and_inner_struct_external)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ext_and_inner_struct_external& data) @@ -1794,6 +3599,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_struct_external_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1836,6 +3649,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const struct_external_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_struct_external_optional_cdr_plain(data_representation) && + sizeof(struct_external_optional) == struct_external_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(struct_external_optional)); + + scdr.jump((array_size -1) * sizeof(struct_external_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1861,6 +3712,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + struct_external_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_struct_external_optional_cdr_plain(data_representation) && + sizeof(struct_external_optional) == struct_external_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(struct_external_optional)); + + scdr.jump((array_size - 1) * sizeof(struct_external_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const struct_external_optional& data) @@ -1880,6 +3767,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_recursive_union_container_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1926,6 +3821,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const recursive_union_container* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_recursive_union_container_cdr_plain(data_representation) && + sizeof(recursive_union_container) == recursive_union_container_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(recursive_union_container)); + + scdr.jump((array_size -1) * sizeof(recursive_union_container)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1955,6 +3888,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + recursive_union_container* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_recursive_union_container_cdr_plain(data_representation) && + sizeof(recursive_union_container) == recursive_union_container_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(recursive_union_container)); + + scdr.jump((array_size - 1) * sizeof(recursive_union_container)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const recursive_union_container& data) @@ -2048,6 +4017,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const recursive_union* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2120,6 +4102,27 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + recursive_union* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_recursive_test_1_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2166,6 +4169,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const recursive_test_1* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_recursive_test_1_cdr_plain(data_representation) && + sizeof(recursive_test_1) == recursive_test_1_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(recursive_test_1)); + + scdr.jump((array_size -1) * sizeof(recursive_test_1)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2195,6 +4236,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + recursive_test_1* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_recursive_test_1_cdr_plain(data_representation) && + sizeof(recursive_test_1) == recursive_test_1_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(recursive_test_1)); + + scdr.jump((array_size - 1) * sizeof(recursive_test_1)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const recursive_test_1& data) @@ -2288,6 +4365,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const recursive_structure_container* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2360,6 +4450,27 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + recursive_structure_container* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_recursive_structure_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2406,6 +4517,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const recursive_structure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_recursive_structure_cdr_plain(data_representation) && + sizeof(recursive_structure) == recursive_structure_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(recursive_structure)); + + scdr.jump((array_size -1) * sizeof(recursive_structure)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2435,6 +4584,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + recursive_structure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_recursive_structure_cdr_plain(data_representation) && + sizeof(recursive_structure) == recursive_structure_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(recursive_structure)); + + scdr.jump((array_size - 1) * sizeof(recursive_structure)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const recursive_structure& data) @@ -2449,6 +4634,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_recursive_test_2_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2495,6 +4688,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const recursive_test_2* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_recursive_test_2_cdr_plain(data_representation) && + sizeof(recursive_test_2) == recursive_test_2_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(recursive_test_2)); + + scdr.jump((array_size -1) * sizeof(recursive_test_2)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2524,6 +4755,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + recursive_test_2* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_recursive_test_2_cdr_plain(data_representation) && + sizeof(recursive_test_2) == recursive_test_2_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(recursive_test_2)); + + scdr.jump((array_size - 1) * sizeof(recursive_test_2)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const recursive_test_2& data) diff --git a/test/dds-types-test/externalPubSubTypes.cxx b/test/dds-types-test/externalPubSubTypes.cxx index 86cf3c567cf..75f93b81c06 100644 --- a/test/dds-types-test/externalPubSubTypes.cxx +++ b/test/dds-types-test/externalPubSubTypes.cxx @@ -29,6 +29,111 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_ulong_external_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ushort_external_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_char_external_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_struct_external_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ulonglong_external_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_struct_external_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_short_external_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_octet_external_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_array_short_external_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_long_external_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_boolean_external_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_wchar_external_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_string_unbounded_external_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ext_and_inner_struct_external_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_longlong_external_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_longdouble_external_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_sequence_short_external_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_recursive_test_1_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_recursive_test_2_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_recursive_union_container_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_map_short_external_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_double_external_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_ext_struct_external_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_float_external_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_string_bounded_external_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_recursive_structure_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_InnerStructExternal_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + short_externalPubSubType::short_externalPubSubType() { set_name("short_external"); @@ -147,6 +252,17 @@ void short_externalPubSubType::delete_data( delete(reinterpret_cast<::short_external*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool short_externalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool short_externalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -330,6 +446,17 @@ void ushort_externalPubSubType::delete_data( delete(reinterpret_cast<::ushort_external*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ushort_externalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ushort_externalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +640,17 @@ void long_externalPubSubType::delete_data( delete(reinterpret_cast<::long_external*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool long_externalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool long_externalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -696,6 +834,17 @@ void ulong_externalPubSubType::delete_data( delete(reinterpret_cast<::ulong_external*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ulong_externalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ulong_externalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -879,6 +1028,17 @@ void longlong_externalPubSubType::delete_data( delete(reinterpret_cast<::longlong_external*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool longlong_externalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool longlong_externalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1062,6 +1222,17 @@ void ulonglong_externalPubSubType::delete_data( delete(reinterpret_cast<::ulonglong_external*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ulonglong_externalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ulonglong_externalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1245,6 +1416,17 @@ void float_externalPubSubType::delete_data( delete(reinterpret_cast<::float_external*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool float_externalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool float_externalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1428,6 +1610,17 @@ void double_externalPubSubType::delete_data( delete(reinterpret_cast<::double_external*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool double_externalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool double_externalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1611,6 +1804,17 @@ void longdouble_externalPubSubType::delete_data( delete(reinterpret_cast<::longdouble_external*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool longdouble_externalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool longdouble_externalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1794,6 +1998,17 @@ void boolean_externalPubSubType::delete_data( delete(reinterpret_cast<::boolean_external*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool boolean_externalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool boolean_externalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1977,6 +2192,17 @@ void octet_externalPubSubType::delete_data( delete(reinterpret_cast<::octet_external*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool octet_externalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool octet_externalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2160,6 +2386,17 @@ void char_externalPubSubType::delete_data( delete(reinterpret_cast<::char_external*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool char_externalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool char_externalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2343,6 +2580,17 @@ void wchar_externalPubSubType::delete_data( delete(reinterpret_cast<::wchar_external*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool wchar_externalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool wchar_externalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2526,6 +2774,17 @@ void sequence_short_externalPubSubType::delete_data( delete(reinterpret_cast<::sequence_short_external*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool sequence_short_externalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool sequence_short_externalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2709,6 +2968,17 @@ void string_unbounded_externalPubSubType::delete_data( delete(reinterpret_cast<::string_unbounded_external*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool string_unbounded_externalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool string_unbounded_externalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2892,6 +3162,17 @@ void string_bounded_externalPubSubType::delete_data( delete(reinterpret_cast<::string_bounded_external*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool string_bounded_externalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool string_bounded_externalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3075,6 +3356,17 @@ void map_short_externalPubSubType::delete_data( delete(reinterpret_cast<::map_short_external*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool map_short_externalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool map_short_externalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3258,6 +3550,17 @@ void array_short_externalPubSubType::delete_data( delete(reinterpret_cast<::array_short_external*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool array_short_externalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool array_short_externalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3441,6 +3744,17 @@ void struct_externalPubSubType::delete_data( delete(reinterpret_cast<::struct_external*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool struct_externalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool struct_externalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3624,6 +3938,17 @@ void InnerStructExternalPubSubType::delete_data( delete(reinterpret_cast<::InnerStructExternal*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool InnerStructExternalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool InnerStructExternalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3807,6 +4132,17 @@ void ext_struct_externalPubSubType::delete_data( delete(reinterpret_cast<::ext_struct_external*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ext_struct_externalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ext_struct_externalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3990,6 +4326,17 @@ void ext_and_inner_struct_externalPubSubType::delete_data( delete(reinterpret_cast<::ext_and_inner_struct_external*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ext_and_inner_struct_externalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ext_and_inner_struct_externalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4173,6 +4520,17 @@ void struct_external_optionalPubSubType::delete_data( delete(reinterpret_cast<::struct_external_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool struct_external_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool struct_external_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4356,6 +4714,17 @@ void recursive_test_1PubSubType::delete_data( delete(reinterpret_cast<::recursive_test_1*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool recursive_test_1PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool recursive_test_1PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4539,6 +4908,17 @@ void recursive_structurePubSubType::delete_data( delete(reinterpret_cast<::recursive_structure*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool recursive_structurePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool recursive_structurePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4722,6 +5102,17 @@ void recursive_test_2PubSubType::delete_data( delete(reinterpret_cast<::recursive_test_2*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool recursive_test_2PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool recursive_test_2PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds-types-test/externalPubSubTypes.hpp b/test/dds-types-test/externalPubSubTypes.hpp index 937cc9b2051..60768111b0c 100644 --- a/test/dds-types-test/externalPubSubTypes.hpp +++ b/test/dds-types-test/externalPubSubTypes.hpp @@ -94,12 +94,8 @@ class short_externalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -176,12 +172,8 @@ class ushort_externalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -258,12 +250,8 @@ class long_externalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -340,12 +328,8 @@ class ulong_externalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -422,12 +406,8 @@ class longlong_externalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -504,12 +484,8 @@ class ulonglong_externalPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -586,12 +562,8 @@ class float_externalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -668,12 +640,8 @@ class double_externalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -750,12 +718,8 @@ class longdouble_externalPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -832,12 +796,8 @@ class boolean_externalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -914,12 +874,8 @@ class octet_externalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -996,12 +952,8 @@ class char_externalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1078,12 +1030,8 @@ class wchar_externalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1160,12 +1108,8 @@ class sequence_short_externalPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1242,12 +1186,8 @@ class string_unbounded_externalPubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1324,12 +1264,8 @@ class string_bounded_externalPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1406,12 +1342,8 @@ class map_short_externalPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1488,12 +1420,8 @@ class array_short_externalPubSubType : public eprosima::fastdds::dds::TopicDataT #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1570,12 +1498,8 @@ class struct_externalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1652,12 +1576,8 @@ class InnerStructExternalPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1734,12 +1654,8 @@ class ext_struct_externalPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1816,12 +1732,8 @@ class ext_and_inner_struct_externalPubSubType : public eprosima::fastdds::dds::T #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1898,12 +1810,8 @@ class struct_external_optionalPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1980,12 +1888,8 @@ class recursive_test_1PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2062,12 +1966,8 @@ class recursive_structurePubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2144,12 +2044,8 @@ class recursive_test_2PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds-types-test/externalTypeObjectSupport.cxx b/test/dds-types-test/externalTypeObjectSupport.cxx new file mode 100644 index 00000000000..d59c5214dd6 --- /dev/null +++ b/test/dds-types-test/externalTypeObjectSupport.cxx @@ -0,0 +1,2180 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file externalTypeObjectSupport.cxx + * Source file containing the implementation to register the TypeObject representation of the described types in the IDL file + * + * This file was generated by the tool fastddsgen (version: 4.1.0). + */ + +#include "externalTypeObjectSupport.hpp" + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include "external.hpp" + +#include "helpers/basic_inner_types.hpp" + +using namespace eprosima::fastdds::dds::xtypes; + +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_short_external_type_identifier( + TypeIdentifierPair& type_ids_short_external) +{ + + ReturnCode_t return_code_short_external {eprosima::fastdds::dds::RETCODE_OK}; + return_code_short_external = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "short_external", type_ids_short_external); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_short_external) + { + StructTypeFlag struct_flags_short_external = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_short_external = "short_external"; + eprosima::fastcdr::optional type_ann_builtin_short_external; + eprosima::fastcdr::optional ann_custom_short_external; + CompleteTypeDetail detail_short_external = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_short_external, ann_custom_short_external, type_name_short_external.to_string()); + CompleteStructHeader header_short_external; + header_short_external = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_short_external); + CompleteStructMemberSeq member_seq_short_external; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int16_t", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "value Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, true); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_short_external.reset(); + AppliedAnnotationSeq tmp_ann_custom_value; + eprosima::fastcdr::optional unit_value; + eprosima::fastcdr::optional min_value; + eprosima::fastcdr::optional max_value; + eprosima::fastcdr::optional hash_id_value; + if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) + { + member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); + } + if (!tmp_ann_custom_value.empty()) + { + ann_custom_short_external = tmp_ann_custom_value; + } + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_short_external); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_short_external, member_value); + } + CompleteStructType struct_type_short_external = TypeObjectUtils::build_complete_struct_type(struct_flags_short_external, header_short_external, member_seq_short_external); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_short_external, type_name_short_external.to_string(), type_ids_short_external)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "short_external already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_ushort_external_type_identifier( + TypeIdentifierPair& type_ids_ushort_external) +{ + + ReturnCode_t return_code_ushort_external {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ushort_external = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "ushort_external", type_ids_ushort_external); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ushort_external) + { + StructTypeFlag struct_flags_ushort_external = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_ushort_external = "ushort_external"; + eprosima::fastcdr::optional type_ann_builtin_ushort_external; + eprosima::fastcdr::optional ann_custom_ushort_external; + CompleteTypeDetail detail_ushort_external = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ushort_external, ann_custom_ushort_external, type_name_ushort_external.to_string()); + CompleteStructHeader header_ushort_external; + header_ushort_external = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_ushort_external); + CompleteStructMemberSeq member_seq_ushort_external; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_uint16_t", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "value Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, true); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_ushort_external.reset(); + AppliedAnnotationSeq tmp_ann_custom_value; + eprosima::fastcdr::optional unit_value; + eprosima::fastcdr::optional min_value; + eprosima::fastcdr::optional max_value; + eprosima::fastcdr::optional hash_id_value; + if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) + { + member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); + } + if (!tmp_ann_custom_value.empty()) + { + ann_custom_ushort_external = tmp_ann_custom_value; + } + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_ushort_external); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_ushort_external, member_value); + } + CompleteStructType struct_type_ushort_external = TypeObjectUtils::build_complete_struct_type(struct_flags_ushort_external, header_ushort_external, member_seq_ushort_external); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_ushort_external, type_name_ushort_external.to_string(), type_ids_ushort_external)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "ushort_external already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_long_external_type_identifier( + TypeIdentifierPair& type_ids_long_external) +{ + + ReturnCode_t return_code_long_external {eprosima::fastdds::dds::RETCODE_OK}; + return_code_long_external = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "long_external", type_ids_long_external); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_long_external) + { + StructTypeFlag struct_flags_long_external = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_long_external = "long_external"; + eprosima::fastcdr::optional type_ann_builtin_long_external; + eprosima::fastcdr::optional ann_custom_long_external; + CompleteTypeDetail detail_long_external = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_long_external, ann_custom_long_external, type_name_long_external.to_string()); + CompleteStructHeader header_long_external; + header_long_external = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_long_external); + CompleteStructMemberSeq member_seq_long_external; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "value Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, true); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_long_external.reset(); + AppliedAnnotationSeq tmp_ann_custom_value; + eprosima::fastcdr::optional unit_value; + eprosima::fastcdr::optional min_value; + eprosima::fastcdr::optional max_value; + eprosima::fastcdr::optional hash_id_value; + if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) + { + member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); + } + if (!tmp_ann_custom_value.empty()) + { + ann_custom_long_external = tmp_ann_custom_value; + } + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_long_external); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_long_external, member_value); + } + CompleteStructType struct_type_long_external = TypeObjectUtils::build_complete_struct_type(struct_flags_long_external, header_long_external, member_seq_long_external); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_long_external, type_name_long_external.to_string(), type_ids_long_external)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "long_external already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_ulong_external_type_identifier( + TypeIdentifierPair& type_ids_ulong_external) +{ + + ReturnCode_t return_code_ulong_external {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ulong_external = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "ulong_external", type_ids_ulong_external); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ulong_external) + { + StructTypeFlag struct_flags_ulong_external = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_ulong_external = "ulong_external"; + eprosima::fastcdr::optional type_ann_builtin_ulong_external; + eprosima::fastcdr::optional ann_custom_ulong_external; + CompleteTypeDetail detail_ulong_external = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ulong_external, ann_custom_ulong_external, type_name_ulong_external.to_string()); + CompleteStructHeader header_ulong_external; + header_ulong_external = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_ulong_external); + CompleteStructMemberSeq member_seq_ulong_external; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_uint32_t", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "value Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, true); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_ulong_external.reset(); + AppliedAnnotationSeq tmp_ann_custom_value; + eprosima::fastcdr::optional unit_value; + eprosima::fastcdr::optional min_value; + eprosima::fastcdr::optional max_value; + eprosima::fastcdr::optional hash_id_value; + if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) + { + member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); + } + if (!tmp_ann_custom_value.empty()) + { + ann_custom_ulong_external = tmp_ann_custom_value; + } + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_ulong_external); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_ulong_external, member_value); + } + CompleteStructType struct_type_ulong_external = TypeObjectUtils::build_complete_struct_type(struct_flags_ulong_external, header_ulong_external, member_seq_ulong_external); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_ulong_external, type_name_ulong_external.to_string(), type_ids_ulong_external)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "ulong_external already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_longlong_external_type_identifier( + TypeIdentifierPair& type_ids_longlong_external) +{ + + ReturnCode_t return_code_longlong_external {eprosima::fastdds::dds::RETCODE_OK}; + return_code_longlong_external = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "longlong_external", type_ids_longlong_external); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_longlong_external) + { + StructTypeFlag struct_flags_longlong_external = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_longlong_external = "longlong_external"; + eprosima::fastcdr::optional type_ann_builtin_longlong_external; + eprosima::fastcdr::optional ann_custom_longlong_external; + CompleteTypeDetail detail_longlong_external = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_longlong_external, ann_custom_longlong_external, type_name_longlong_external.to_string()); + CompleteStructHeader header_longlong_external; + header_longlong_external = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_longlong_external); + CompleteStructMemberSeq member_seq_longlong_external; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int64_t", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "value Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, true); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_longlong_external.reset(); + AppliedAnnotationSeq tmp_ann_custom_value; + eprosima::fastcdr::optional unit_value; + eprosima::fastcdr::optional min_value; + eprosima::fastcdr::optional max_value; + eprosima::fastcdr::optional hash_id_value; + if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) + { + member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); + } + if (!tmp_ann_custom_value.empty()) + { + ann_custom_longlong_external = tmp_ann_custom_value; + } + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_longlong_external); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_longlong_external, member_value); + } + CompleteStructType struct_type_longlong_external = TypeObjectUtils::build_complete_struct_type(struct_flags_longlong_external, header_longlong_external, member_seq_longlong_external); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_longlong_external, type_name_longlong_external.to_string(), type_ids_longlong_external)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "longlong_external already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_ulonglong_external_type_identifier( + TypeIdentifierPair& type_ids_ulonglong_external) +{ + + ReturnCode_t return_code_ulonglong_external {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ulonglong_external = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "ulonglong_external", type_ids_ulonglong_external); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ulonglong_external) + { + StructTypeFlag struct_flags_ulonglong_external = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_ulonglong_external = "ulonglong_external"; + eprosima::fastcdr::optional type_ann_builtin_ulonglong_external; + eprosima::fastcdr::optional ann_custom_ulonglong_external; + CompleteTypeDetail detail_ulonglong_external = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ulonglong_external, ann_custom_ulonglong_external, type_name_ulonglong_external.to_string()); + CompleteStructHeader header_ulonglong_external; + header_ulonglong_external = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_ulonglong_external); + CompleteStructMemberSeq member_seq_ulonglong_external; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_uint64_t", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "value Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, true); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_ulonglong_external.reset(); + AppliedAnnotationSeq tmp_ann_custom_value; + eprosima::fastcdr::optional unit_value; + eprosima::fastcdr::optional min_value; + eprosima::fastcdr::optional max_value; + eprosima::fastcdr::optional hash_id_value; + if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) + { + member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); + } + if (!tmp_ann_custom_value.empty()) + { + ann_custom_ulonglong_external = tmp_ann_custom_value; + } + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_ulonglong_external); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_ulonglong_external, member_value); + } + CompleteStructType struct_type_ulonglong_external = TypeObjectUtils::build_complete_struct_type(struct_flags_ulonglong_external, header_ulonglong_external, member_seq_ulonglong_external); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_ulonglong_external, type_name_ulonglong_external.to_string(), type_ids_ulonglong_external)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "ulonglong_external already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_float_external_type_identifier( + TypeIdentifierPair& type_ids_float_external) +{ + + ReturnCode_t return_code_float_external {eprosima::fastdds::dds::RETCODE_OK}; + return_code_float_external = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "float_external", type_ids_float_external); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_float_external) + { + StructTypeFlag struct_flags_float_external = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_float_external = "float_external"; + eprosima::fastcdr::optional type_ann_builtin_float_external; + eprosima::fastcdr::optional ann_custom_float_external; + CompleteTypeDetail detail_float_external = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_float_external, ann_custom_float_external, type_name_float_external.to_string()); + CompleteStructHeader header_float_external; + header_float_external = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_float_external); + CompleteStructMemberSeq member_seq_float_external; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_float", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "value Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, true); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_float_external.reset(); + AppliedAnnotationSeq tmp_ann_custom_value; + eprosima::fastcdr::optional unit_value; + eprosima::fastcdr::optional min_value; + eprosima::fastcdr::optional max_value; + eprosima::fastcdr::optional hash_id_value; + if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) + { + member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); + } + if (!tmp_ann_custom_value.empty()) + { + ann_custom_float_external = tmp_ann_custom_value; + } + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_float_external); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_float_external, member_value); + } + CompleteStructType struct_type_float_external = TypeObjectUtils::build_complete_struct_type(struct_flags_float_external, header_float_external, member_seq_float_external); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_float_external, type_name_float_external.to_string(), type_ids_float_external)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "float_external already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_double_external_type_identifier( + TypeIdentifierPair& type_ids_double_external) +{ + + ReturnCode_t return_code_double_external {eprosima::fastdds::dds::RETCODE_OK}; + return_code_double_external = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "double_external", type_ids_double_external); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_double_external) + { + StructTypeFlag struct_flags_double_external = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_double_external = "double_external"; + eprosima::fastcdr::optional type_ann_builtin_double_external; + eprosima::fastcdr::optional ann_custom_double_external; + CompleteTypeDetail detail_double_external = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_double_external, ann_custom_double_external, type_name_double_external.to_string()); + CompleteStructHeader header_double_external; + header_double_external = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_double_external); + CompleteStructMemberSeq member_seq_double_external; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_double", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "value Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, true); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_double_external.reset(); + AppliedAnnotationSeq tmp_ann_custom_value; + eprosima::fastcdr::optional unit_value; + eprosima::fastcdr::optional min_value; + eprosima::fastcdr::optional max_value; + eprosima::fastcdr::optional hash_id_value; + if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) + { + member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); + } + if (!tmp_ann_custom_value.empty()) + { + ann_custom_double_external = tmp_ann_custom_value; + } + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_double_external); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_double_external, member_value); + } + CompleteStructType struct_type_double_external = TypeObjectUtils::build_complete_struct_type(struct_flags_double_external, header_double_external, member_seq_double_external); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_double_external, type_name_double_external.to_string(), type_ids_double_external)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "double_external already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_longdouble_external_type_identifier( + TypeIdentifierPair& type_ids_longdouble_external) +{ + + ReturnCode_t return_code_longdouble_external {eprosima::fastdds::dds::RETCODE_OK}; + return_code_longdouble_external = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "longdouble_external", type_ids_longdouble_external); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_longdouble_external) + { + StructTypeFlag struct_flags_longdouble_external = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_longdouble_external = "longdouble_external"; + eprosima::fastcdr::optional type_ann_builtin_longdouble_external; + eprosima::fastcdr::optional ann_custom_longdouble_external; + CompleteTypeDetail detail_longdouble_external = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_longdouble_external, ann_custom_longdouble_external, type_name_longdouble_external.to_string()); + CompleteStructHeader header_longdouble_external; + header_longdouble_external = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_longdouble_external); + CompleteStructMemberSeq member_seq_longdouble_external; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_longdouble", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "value Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, true); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_longdouble_external.reset(); + AppliedAnnotationSeq tmp_ann_custom_value; + eprosima::fastcdr::optional unit_value; + eprosima::fastcdr::optional min_value; + eprosima::fastcdr::optional max_value; + eprosima::fastcdr::optional hash_id_value; + if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) + { + member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); + } + if (!tmp_ann_custom_value.empty()) + { + ann_custom_longdouble_external = tmp_ann_custom_value; + } + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_longdouble_external); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_longdouble_external, member_value); + } + CompleteStructType struct_type_longdouble_external = TypeObjectUtils::build_complete_struct_type(struct_flags_longdouble_external, header_longdouble_external, member_seq_longdouble_external); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_longdouble_external, type_name_longdouble_external.to_string(), type_ids_longdouble_external)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "longdouble_external already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_boolean_external_type_identifier( + TypeIdentifierPair& type_ids_boolean_external) +{ + + ReturnCode_t return_code_boolean_external {eprosima::fastdds::dds::RETCODE_OK}; + return_code_boolean_external = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "boolean_external", type_ids_boolean_external); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_boolean_external) + { + StructTypeFlag struct_flags_boolean_external = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_boolean_external = "boolean_external"; + eprosima::fastcdr::optional type_ann_builtin_boolean_external; + eprosima::fastcdr::optional ann_custom_boolean_external; + CompleteTypeDetail detail_boolean_external = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_boolean_external, ann_custom_boolean_external, type_name_boolean_external.to_string()); + CompleteStructHeader header_boolean_external; + header_boolean_external = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_boolean_external); + CompleteStructMemberSeq member_seq_boolean_external; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_bool", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "value Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, true); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_boolean_external.reset(); + AppliedAnnotationSeq tmp_ann_custom_value; + eprosima::fastcdr::optional unit_value; + eprosima::fastcdr::optional min_value; + eprosima::fastcdr::optional max_value; + eprosima::fastcdr::optional hash_id_value; + if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) + { + member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); + } + if (!tmp_ann_custom_value.empty()) + { + ann_custom_boolean_external = tmp_ann_custom_value; + } + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_boolean_external); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_boolean_external, member_value); + } + CompleteStructType struct_type_boolean_external = TypeObjectUtils::build_complete_struct_type(struct_flags_boolean_external, header_boolean_external, member_seq_boolean_external); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_boolean_external, type_name_boolean_external.to_string(), type_ids_boolean_external)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "boolean_external already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_octet_external_type_identifier( + TypeIdentifierPair& type_ids_octet_external) +{ + + ReturnCode_t return_code_octet_external {eprosima::fastdds::dds::RETCODE_OK}; + return_code_octet_external = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "octet_external", type_ids_octet_external); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_octet_external) + { + StructTypeFlag struct_flags_octet_external = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_octet_external = "octet_external"; + eprosima::fastcdr::optional type_ann_builtin_octet_external; + eprosima::fastcdr::optional ann_custom_octet_external; + CompleteTypeDetail detail_octet_external = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_octet_external, ann_custom_octet_external, type_name_octet_external.to_string()); + CompleteStructHeader header_octet_external; + header_octet_external = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_octet_external); + CompleteStructMemberSeq member_seq_octet_external; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_byte", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "value Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, true); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_octet_external.reset(); + AppliedAnnotationSeq tmp_ann_custom_value; + eprosima::fastcdr::optional unit_value; + eprosima::fastcdr::optional min_value; + eprosima::fastcdr::optional max_value; + eprosima::fastcdr::optional hash_id_value; + if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) + { + member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); + } + if (!tmp_ann_custom_value.empty()) + { + ann_custom_octet_external = tmp_ann_custom_value; + } + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_octet_external); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_octet_external, member_value); + } + CompleteStructType struct_type_octet_external = TypeObjectUtils::build_complete_struct_type(struct_flags_octet_external, header_octet_external, member_seq_octet_external); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_octet_external, type_name_octet_external.to_string(), type_ids_octet_external)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "octet_external already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_char_external_type_identifier( + TypeIdentifierPair& type_ids_char_external) +{ + + ReturnCode_t return_code_char_external {eprosima::fastdds::dds::RETCODE_OK}; + return_code_char_external = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "char_external", type_ids_char_external); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_char_external) + { + StructTypeFlag struct_flags_char_external = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_char_external = "char_external"; + eprosima::fastcdr::optional type_ann_builtin_char_external; + eprosima::fastcdr::optional ann_custom_char_external; + CompleteTypeDetail detail_char_external = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_char_external, ann_custom_char_external, type_name_char_external.to_string()); + CompleteStructHeader header_char_external; + header_char_external = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_char_external); + CompleteStructMemberSeq member_seq_char_external; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_char", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "value Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, true); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_char_external.reset(); + AppliedAnnotationSeq tmp_ann_custom_value; + eprosima::fastcdr::optional unit_value; + eprosima::fastcdr::optional min_value; + eprosima::fastcdr::optional max_value; + eprosima::fastcdr::optional hash_id_value; + if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) + { + member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); + } + if (!tmp_ann_custom_value.empty()) + { + ann_custom_char_external = tmp_ann_custom_value; + } + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_char_external); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_char_external, member_value); + } + CompleteStructType struct_type_char_external = TypeObjectUtils::build_complete_struct_type(struct_flags_char_external, header_char_external, member_seq_char_external); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_char_external, type_name_char_external.to_string(), type_ids_char_external)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "char_external already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_wchar_external_type_identifier( + TypeIdentifierPair& type_ids_wchar_external) +{ + + ReturnCode_t return_code_wchar_external {eprosima::fastdds::dds::RETCODE_OK}; + return_code_wchar_external = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "wchar_external", type_ids_wchar_external); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_wchar_external) + { + StructTypeFlag struct_flags_wchar_external = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_wchar_external = "wchar_external"; + eprosima::fastcdr::optional type_ann_builtin_wchar_external; + eprosima::fastcdr::optional ann_custom_wchar_external; + CompleteTypeDetail detail_wchar_external = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_wchar_external, ann_custom_wchar_external, type_name_wchar_external.to_string()); + CompleteStructHeader header_wchar_external; + header_wchar_external = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_wchar_external); + CompleteStructMemberSeq member_seq_wchar_external; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_wchar_t", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "value Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, true); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_wchar_external.reset(); + AppliedAnnotationSeq tmp_ann_custom_value; + eprosima::fastcdr::optional unit_value; + eprosima::fastcdr::optional min_value; + eprosima::fastcdr::optional max_value; + eprosima::fastcdr::optional hash_id_value; + if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) + { + member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); + } + if (!tmp_ann_custom_value.empty()) + { + ann_custom_wchar_external = tmp_ann_custom_value; + } + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_wchar_external); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_wchar_external, member_value); + } + CompleteStructType struct_type_wchar_external = TypeObjectUtils::build_complete_struct_type(struct_flags_wchar_external, header_wchar_external, member_seq_wchar_external); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_wchar_external, type_name_wchar_external.to_string(), type_ids_wchar_external)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "wchar_external already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_sequence_short_external_type_identifier( + TypeIdentifierPair& type_ids_sequence_short_external) +{ + + ReturnCode_t return_code_sequence_short_external {eprosima::fastdds::dds::RETCODE_OK}; + return_code_sequence_short_external = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "sequence_short_external", type_ids_sequence_short_external); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_sequence_short_external) + { + StructTypeFlag struct_flags_sequence_short_external = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_sequence_short_external = "sequence_short_external"; + eprosima::fastcdr::optional type_ann_builtin_sequence_short_external; + eprosima::fastcdr::optional ann_custom_sequence_short_external; + CompleteTypeDetail detail_sequence_short_external = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_sequence_short_external, ann_custom_sequence_short_external, type_name_sequence_short_external.to_string()); + CompleteStructHeader header_sequence_short_external; + header_sequence_short_external = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_sequence_short_external); + CompleteStructMemberSeq member_seq_sequence_short_external; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_sequence_int16_t_unbounded", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int16_t", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Sequence element TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + bool element_identifier_anonymous_sequence_int16_t_unbounded_ec {false}; + TypeIdentifier* element_identifier_anonymous_sequence_int16_t_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, element_identifier_anonymous_sequence_int16_t_unbounded_ec))}; + if (!element_identifier_anonymous_sequence_int16_t_unbounded_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Sequence element TypeIdentifier inconsistent."); + return; + } + EquivalenceKind equiv_kind_anonymous_sequence_int16_t_unbounded = EK_COMPLETE; + if (TK_NONE == type_ids_value.type_identifier2()._d()) + { + equiv_kind_anonymous_sequence_int16_t_unbounded = EK_BOTH; + } + CollectionElementFlag element_flags_anonymous_sequence_int16_t_unbounded = 0; + PlainCollectionHeader header_anonymous_sequence_int16_t_unbounded = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_sequence_int16_t_unbounded, element_flags_anonymous_sequence_int16_t_unbounded); + { + SBound bound = 0; + PlainSequenceSElemDefn seq_sdefn = TypeObjectUtils::build_plain_sequence_s_elem_defn(header_anonymous_sequence_int16_t_unbounded, bound, + eprosima::fastcdr::external(element_identifier_anonymous_sequence_int16_t_unbounded)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_sequence_type_identifier(seq_sdefn, "anonymous_sequence_int16_t_unbounded", type_ids_value)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_sequence_int16_t_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, true); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_sequence_short_external.reset(); + AppliedAnnotationSeq tmp_ann_custom_value; + eprosima::fastcdr::optional unit_value; + eprosima::fastcdr::optional min_value; + eprosima::fastcdr::optional max_value; + eprosima::fastcdr::optional hash_id_value; + if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) + { + member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); + } + if (!tmp_ann_custom_value.empty()) + { + ann_custom_sequence_short_external = tmp_ann_custom_value; + } + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_sequence_short_external); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_sequence_short_external, member_value); + } + CompleteStructType struct_type_sequence_short_external = TypeObjectUtils::build_complete_struct_type(struct_flags_sequence_short_external, header_sequence_short_external, member_seq_sequence_short_external); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_sequence_short_external, type_name_sequence_short_external.to_string(), type_ids_sequence_short_external)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "sequence_short_external already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_string_unbounded_external_type_identifier( + TypeIdentifierPair& type_ids_string_unbounded_external) +{ + + ReturnCode_t return_code_string_unbounded_external {eprosima::fastdds::dds::RETCODE_OK}; + return_code_string_unbounded_external = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "string_unbounded_external", type_ids_string_unbounded_external); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_string_unbounded_external) + { + StructTypeFlag struct_flags_string_unbounded_external = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_string_unbounded_external = "string_unbounded_external"; + eprosima::fastcdr::optional type_ann_builtin_string_unbounded_external; + eprosima::fastcdr::optional ann_custom_string_unbounded_external; + CompleteTypeDetail detail_string_unbounded_external = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_string_unbounded_external, ann_custom_string_unbounded_external, type_name_string_unbounded_external.to_string()); + CompleteStructHeader header_string_unbounded_external; + header_string_unbounded_external = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_string_unbounded_external); + CompleteStructMemberSeq member_seq_string_unbounded_external; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_value)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, true); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_string_unbounded_external.reset(); + AppliedAnnotationSeq tmp_ann_custom_value; + eprosima::fastcdr::optional unit_value; + eprosima::fastcdr::optional min_value; + eprosima::fastcdr::optional max_value; + eprosima::fastcdr::optional hash_id_value; + if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) + { + member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); + } + if (!tmp_ann_custom_value.empty()) + { + ann_custom_string_unbounded_external = tmp_ann_custom_value; + } + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_string_unbounded_external); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_string_unbounded_external, member_value); + } + CompleteStructType struct_type_string_unbounded_external = TypeObjectUtils::build_complete_struct_type(struct_flags_string_unbounded_external, header_string_unbounded_external, member_seq_string_unbounded_external); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_string_unbounded_external, type_name_string_unbounded_external.to_string(), type_ids_string_unbounded_external)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "string_unbounded_external already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_string_bounded_external_type_identifier( + TypeIdentifierPair& type_ids_string_bounded_external) +{ + + ReturnCode_t return_code_string_bounded_external {eprosima::fastdds::dds::RETCODE_OK}; + return_code_string_bounded_external = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "string_bounded_external", type_ids_string_bounded_external); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_string_bounded_external) + { + StructTypeFlag struct_flags_string_bounded_external = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_string_bounded_external = "string_bounded_external"; + eprosima::fastcdr::optional type_ann_builtin_string_bounded_external; + eprosima::fastcdr::optional ann_custom_string_bounded_external; + CompleteTypeDetail detail_string_bounded_external = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_string_bounded_external, ann_custom_string_bounded_external, type_name_string_bounded_external.to_string()); + CompleteStructHeader header_string_bounded_external; + header_string_bounded_external = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_string_bounded_external); + CompleteStructMemberSeq member_seq_string_bounded_external; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_8", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + { + SBound bound = static_cast(8); + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_8", type_ids_value)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_8 already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, true); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_string_bounded_external.reset(); + AppliedAnnotationSeq tmp_ann_custom_value; + eprosima::fastcdr::optional unit_value; + eprosima::fastcdr::optional min_value; + eprosima::fastcdr::optional max_value; + eprosima::fastcdr::optional hash_id_value; + if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) + { + member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); + } + if (!tmp_ann_custom_value.empty()) + { + ann_custom_string_bounded_external = tmp_ann_custom_value; + } + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_string_bounded_external); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_string_bounded_external, member_value); + } + CompleteStructType struct_type_string_bounded_external = TypeObjectUtils::build_complete_struct_type(struct_flags_string_bounded_external, header_string_bounded_external, member_seq_string_bounded_external); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_string_bounded_external, type_name_string_bounded_external.to_string(), type_ids_string_bounded_external)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "string_bounded_external already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_map_short_external_type_identifier( + TypeIdentifierPair& type_ids_map_short_external) +{ + + ReturnCode_t return_code_map_short_external {eprosima::fastdds::dds::RETCODE_OK}; + return_code_map_short_external = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "map_short_external", type_ids_map_short_external); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_map_short_external) + { + StructTypeFlag struct_flags_map_short_external = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_map_short_external = "map_short_external"; + eprosima::fastcdr::optional type_ann_builtin_map_short_external; + eprosima::fastcdr::optional ann_custom_map_short_external; + CompleteTypeDetail detail_map_short_external = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_map_short_external, ann_custom_map_short_external, type_name_map_short_external.to_string()); + CompleteStructHeader header_map_short_external; + header_map_short_external = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_map_short_external); + CompleteStructMemberSeq member_seq_map_short_external; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_map_int32_t_int16_t_unbounded", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int16_t", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Map element TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + bool element_identifier_anonymous_map_int32_t_int16_t_unbounded_ec {false}; + TypeIdentifier* element_identifier_anonymous_map_int32_t_int16_t_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, element_identifier_anonymous_map_int32_t_int16_t_unbounded_ec))}; + if (!element_identifier_anonymous_map_int32_t_int16_t_unbounded_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_map_int32_t_int16_t_unbounded inconsistent element TypeIdentifier."); + return; + } + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Map key TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + bool key_identifier_anonymous_map_int32_t_int16_t_unbounded_ec {false}; + TypeIdentifier* key_identifier_anonymous_map_int32_t_int16_t_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, key_identifier_anonymous_map_int32_t_int16_t_unbounded_ec))}; + if (!key_identifier_anonymous_map_int32_t_int16_t_unbounded_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_map_int32_t_int16_t_unbounded inconsistent key TypeIdentifier."); + return; + } + EquivalenceKind equiv_kind_anonymous_map_int32_t_int16_t_unbounded = EK_BOTH; + if ((EK_COMPLETE == key_identifier_anonymous_map_int32_t_int16_t_unbounded->_d() || EK_COMPLETE == element_identifier_anonymous_map_int32_t_int16_t_unbounded->_d()) || + (TI_PLAIN_SEQUENCE_SMALL == element_identifier_anonymous_map_int32_t_int16_t_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_int32_t_int16_t_unbounded->seq_sdefn().header().equiv_kind()) || + (TI_PLAIN_SEQUENCE_LARGE == element_identifier_anonymous_map_int32_t_int16_t_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_int32_t_int16_t_unbounded->seq_ldefn().header().equiv_kind()) || + (TI_PLAIN_ARRAY_SMALL == element_identifier_anonymous_map_int32_t_int16_t_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_int32_t_int16_t_unbounded->array_sdefn().header().equiv_kind()) || + (TI_PLAIN_ARRAY_LARGE == element_identifier_anonymous_map_int32_t_int16_t_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_int32_t_int16_t_unbounded->array_ldefn().header().equiv_kind()) || + (TI_PLAIN_MAP_SMALL == element_identifier_anonymous_map_int32_t_int16_t_unbounded->_d() && (EK_COMPLETE == element_identifier_anonymous_map_int32_t_int16_t_unbounded->map_sdefn().key_identifier()->_d() || EK_COMPLETE == element_identifier_anonymous_map_int32_t_int16_t_unbounded->map_sdefn().header().equiv_kind())) || + (TI_PLAIN_MAP_LARGE == element_identifier_anonymous_map_int32_t_int16_t_unbounded->_d() && (EK_COMPLETE == element_identifier_anonymous_map_int32_t_int16_t_unbounded->map_ldefn().key_identifier()->_d() || EK_COMPLETE == element_identifier_anonymous_map_int32_t_int16_t_unbounded->map_ldefn().header().equiv_kind()))) + { + equiv_kind_anonymous_map_int32_t_int16_t_unbounded = EK_COMPLETE; + } + CollectionElementFlag element_flags_anonymous_map_int32_t_int16_t_unbounded = 0; + CollectionElementFlag key_flags_anonymous_map_int32_t_int16_t_unbounded = 0; + PlainCollectionHeader header_anonymous_map_int32_t_int16_t_unbounded = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_map_int32_t_int16_t_unbounded, element_flags_anonymous_map_int32_t_int16_t_unbounded); + { + SBound bound = 0; + PlainMapSTypeDefn map_sdefn = TypeObjectUtils::build_plain_map_s_type_defn(header_anonymous_map_int32_t_int16_t_unbounded, bound, + eprosima::fastcdr::external(element_identifier_anonymous_map_int32_t_int16_t_unbounded), key_flags_anonymous_map_int32_t_int16_t_unbounded, + eprosima::fastcdr::external(key_identifier_anonymous_map_int32_t_int16_t_unbounded)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_map_type_identifier(map_sdefn, "anonymous_map_int32_t_int16_t_unbounded", type_ids_value)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_map_int32_t_int16_t_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, true); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_map_short_external.reset(); + AppliedAnnotationSeq tmp_ann_custom_value; + eprosima::fastcdr::optional unit_value; + eprosima::fastcdr::optional min_value; + eprosima::fastcdr::optional max_value; + eprosima::fastcdr::optional hash_id_value; + if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) + { + member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); + } + if (!tmp_ann_custom_value.empty()) + { + ann_custom_map_short_external = tmp_ann_custom_value; + } + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_map_short_external); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_map_short_external, member_value); + } + CompleteStructType struct_type_map_short_external = TypeObjectUtils::build_complete_struct_type(struct_flags_map_short_external, header_map_short_external, member_seq_map_short_external); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_map_short_external, type_name_map_short_external.to_string(), type_ids_map_short_external)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "map_short_external already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_array_short_external_type_identifier( + TypeIdentifierPair& type_ids_array_short_external) +{ + + ReturnCode_t return_code_array_short_external {eprosima::fastdds::dds::RETCODE_OK}; + return_code_array_short_external = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "array_short_external", type_ids_array_short_external); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_array_short_external) + { + StructTypeFlag struct_flags_array_short_external = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_array_short_external = "array_short_external"; + eprosima::fastcdr::optional type_ann_builtin_array_short_external; + eprosima::fastcdr::optional ann_custom_array_short_external; + CompleteTypeDetail detail_array_short_external = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_array_short_external, ann_custom_array_short_external, type_name_array_short_external.to_string()); + CompleteStructHeader header_array_short_external; + header_array_short_external = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_array_short_external); + CompleteStructMemberSeq member_seq_array_short_external; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_array_int16_t_10", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int16_t", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Array element TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + bool element_identifier_anonymous_array_int16_t_10_ec {false}; + TypeIdentifier* element_identifier_anonymous_array_int16_t_10 {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, element_identifier_anonymous_array_int16_t_10_ec))}; + if (!element_identifier_anonymous_array_int16_t_10_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Array element TypeIdentifier inconsistent."); + return; + } + EquivalenceKind equiv_kind_anonymous_array_int16_t_10 = EK_COMPLETE; + if (TK_NONE == type_ids_value.type_identifier2()._d()) + { + equiv_kind_anonymous_array_int16_t_10 = EK_BOTH; + } + CollectionElementFlag element_flags_anonymous_array_int16_t_10 = 0; + PlainCollectionHeader header_anonymous_array_int16_t_10 = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_array_int16_t_10, element_flags_anonymous_array_int16_t_10); + { + SBoundSeq array_bound_seq; + TypeObjectUtils::add_array_dimension(array_bound_seq, static_cast(10)); + + PlainArraySElemDefn array_sdefn = TypeObjectUtils::build_plain_array_s_elem_defn(header_anonymous_array_int16_t_10, array_bound_seq, + eprosima::fastcdr::external(element_identifier_anonymous_array_int16_t_10)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_array_type_identifier(array_sdefn, "anonymous_array_int16_t_10", type_ids_value)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_array_int16_t_10 already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, true); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_array_short_external.reset(); + AppliedAnnotationSeq tmp_ann_custom_value; + eprosima::fastcdr::optional unit_value; + eprosima::fastcdr::optional min_value; + eprosima::fastcdr::optional max_value; + eprosima::fastcdr::optional hash_id_value; + if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) + { + member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); + } + if (!tmp_ann_custom_value.empty()) + { + ann_custom_array_short_external = tmp_ann_custom_value; + } + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_array_short_external); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_array_short_external, member_value); + } + CompleteStructType struct_type_array_short_external = TypeObjectUtils::build_complete_struct_type(struct_flags_array_short_external, header_array_short_external, member_seq_array_short_external); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_array_short_external, type_name_array_short_external.to_string(), type_ids_array_short_external)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "array_short_external already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_struct_external_type_identifier( + TypeIdentifierPair& type_ids_struct_external) +{ + + ReturnCode_t return_code_struct_external {eprosima::fastdds::dds::RETCODE_OK}; + return_code_struct_external = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "struct_external", type_ids_struct_external); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_struct_external) + { + StructTypeFlag struct_flags_struct_external = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_struct_external = "struct_external"; + eprosima::fastcdr::optional type_ann_builtin_struct_external; + eprosima::fastcdr::optional ann_custom_struct_external; + CompleteTypeDetail detail_struct_external = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_struct_external, ann_custom_struct_external, type_name_struct_external.to_string()); + CompleteStructHeader header_struct_external; + header_struct_external = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_struct_external); + CompleteStructMemberSeq member_seq_struct_external; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "InnerStructureHelper", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + ::register_InnerStructureHelper_type_identifier(type_ids_value); + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, true); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_struct_external.reset(); + AppliedAnnotationSeq tmp_ann_custom_value; + eprosima::fastcdr::optional unit_value; + eprosima::fastcdr::optional min_value; + eprosima::fastcdr::optional max_value; + eprosima::fastcdr::optional hash_id_value; + if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) + { + member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); + } + if (!tmp_ann_custom_value.empty()) + { + ann_custom_struct_external = tmp_ann_custom_value; + } + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_struct_external); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_struct_external, member_value); + } + CompleteStructType struct_type_struct_external = TypeObjectUtils::build_complete_struct_type(struct_flags_struct_external, header_struct_external, member_seq_struct_external); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_struct_external, type_name_struct_external.to_string(), type_ids_struct_external)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "struct_external already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_InnerStructExternal_type_identifier( + TypeIdentifierPair& type_ids_InnerStructExternal) +{ + + ReturnCode_t return_code_InnerStructExternal {eprosima::fastdds::dds::RETCODE_OK}; + return_code_InnerStructExternal = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "InnerStructExternal", type_ids_InnerStructExternal); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_InnerStructExternal) + { + StructTypeFlag struct_flags_InnerStructExternal = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_InnerStructExternal = "InnerStructExternal"; + eprosima::fastcdr::optional type_ann_builtin_InnerStructExternal; + eprosima::fastcdr::optional ann_custom_InnerStructExternal; + CompleteTypeDetail detail_InnerStructExternal = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_InnerStructExternal, ann_custom_InnerStructExternal, type_name_InnerStructExternal.to_string()); + CompleteStructHeader header_InnerStructExternal; + header_InnerStructExternal = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_InnerStructExternal); + CompleteStructMemberSeq member_seq_InnerStructExternal; + { + TypeIdentifierPair type_ids_s; + ReturnCode_t return_code_s {eprosima::fastdds::dds::RETCODE_OK}; + return_code_s = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int16_t", type_ids_s); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_s) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "s Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_s = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_s = 0x00000000; + bool common_s_ec {false}; + CommonStructMember common_s {TypeObjectUtils::build_common_struct_member(member_id_s, member_flags_s, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_s, common_s_ec))}; + if (!common_s_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure s member TypeIdentifier inconsistent."); + return; + } + MemberName name_s = "s"; + eprosima::fastcdr::optional member_ann_builtin_s; + ann_custom_InnerStructExternal.reset(); + CompleteMemberDetail detail_s = TypeObjectUtils::build_complete_member_detail(name_s, member_ann_builtin_s, ann_custom_InnerStructExternal); + CompleteStructMember member_s = TypeObjectUtils::build_complete_struct_member(common_s, detail_s); + TypeObjectUtils::add_complete_struct_member(member_seq_InnerStructExternal, member_s); + } + { + TypeIdentifierPair type_ids_l; + ReturnCode_t return_code_l {eprosima::fastdds::dds::RETCODE_OK}; + return_code_l = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_l); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_l) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "l Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_l = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, true); + MemberId member_id_l = 0x00000001; + bool common_l_ec {false}; + CommonStructMember common_l {TypeObjectUtils::build_common_struct_member(member_id_l, member_flags_l, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_l, common_l_ec))}; + if (!common_l_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure l member TypeIdentifier inconsistent."); + return; + } + MemberName name_l = "l"; + eprosima::fastcdr::optional member_ann_builtin_l; + ann_custom_InnerStructExternal.reset(); + AppliedAnnotationSeq tmp_ann_custom_l; + eprosima::fastcdr::optional unit_l; + eprosima::fastcdr::optional min_l; + eprosima::fastcdr::optional max_l; + eprosima::fastcdr::optional hash_id_l; + if (unit_l.has_value() || min_l.has_value() || max_l.has_value() || hash_id_l.has_value()) + { + member_ann_builtin_l = TypeObjectUtils::build_applied_builtin_member_annotations(unit_l, min_l, max_l, hash_id_l); + } + if (!tmp_ann_custom_l.empty()) + { + ann_custom_InnerStructExternal = tmp_ann_custom_l; + } + CompleteMemberDetail detail_l = TypeObjectUtils::build_complete_member_detail(name_l, member_ann_builtin_l, ann_custom_InnerStructExternal); + CompleteStructMember member_l = TypeObjectUtils::build_complete_struct_member(common_l, detail_l); + TypeObjectUtils::add_complete_struct_member(member_seq_InnerStructExternal, member_l); + } + CompleteStructType struct_type_InnerStructExternal = TypeObjectUtils::build_complete_struct_type(struct_flags_InnerStructExternal, header_InnerStructExternal, member_seq_InnerStructExternal); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_InnerStructExternal, type_name_InnerStructExternal.to_string(), type_ids_InnerStructExternal)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "InnerStructExternal already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_ext_struct_external_type_identifier( + TypeIdentifierPair& type_ids_ext_struct_external) +{ + + ReturnCode_t return_code_ext_struct_external {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ext_struct_external = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "ext_struct_external", type_ids_ext_struct_external); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ext_struct_external) + { + StructTypeFlag struct_flags_ext_struct_external = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_ext_struct_external = "ext_struct_external"; + eprosima::fastcdr::optional type_ann_builtin_ext_struct_external; + eprosima::fastcdr::optional ann_custom_ext_struct_external; + CompleteTypeDetail detail_ext_struct_external = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ext_struct_external, ann_custom_ext_struct_external, type_name_ext_struct_external.to_string()); + CompleteStructHeader header_ext_struct_external; + header_ext_struct_external = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_ext_struct_external); + CompleteStructMemberSeq member_seq_ext_struct_external; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "InnerStructExternal", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + ::register_InnerStructExternal_type_identifier(type_ids_value); + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_ext_struct_external.reset(); + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_ext_struct_external); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_ext_struct_external, member_value); + } + CompleteStructType struct_type_ext_struct_external = TypeObjectUtils::build_complete_struct_type(struct_flags_ext_struct_external, header_ext_struct_external, member_seq_ext_struct_external); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_ext_struct_external, type_name_ext_struct_external.to_string(), type_ids_ext_struct_external)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "ext_struct_external already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_ext_and_inner_struct_external_type_identifier( + TypeIdentifierPair& type_ids_ext_and_inner_struct_external) +{ + + ReturnCode_t return_code_ext_and_inner_struct_external {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ext_and_inner_struct_external = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "ext_and_inner_struct_external", type_ids_ext_and_inner_struct_external); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ext_and_inner_struct_external) + { + StructTypeFlag struct_flags_ext_and_inner_struct_external = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_ext_and_inner_struct_external = "ext_and_inner_struct_external"; + eprosima::fastcdr::optional type_ann_builtin_ext_and_inner_struct_external; + eprosima::fastcdr::optional ann_custom_ext_and_inner_struct_external; + CompleteTypeDetail detail_ext_and_inner_struct_external = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ext_and_inner_struct_external, ann_custom_ext_and_inner_struct_external, type_name_ext_and_inner_struct_external.to_string()); + CompleteStructHeader header_ext_and_inner_struct_external; + header_ext_and_inner_struct_external = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_ext_and_inner_struct_external); + CompleteStructMemberSeq member_seq_ext_and_inner_struct_external; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "InnerStructExternal", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + ::register_InnerStructExternal_type_identifier(type_ids_value); + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, true); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_ext_and_inner_struct_external.reset(); + AppliedAnnotationSeq tmp_ann_custom_value; + eprosima::fastcdr::optional unit_value; + eprosima::fastcdr::optional min_value; + eprosima::fastcdr::optional max_value; + eprosima::fastcdr::optional hash_id_value; + if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) + { + member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); + } + if (!tmp_ann_custom_value.empty()) + { + ann_custom_ext_and_inner_struct_external = tmp_ann_custom_value; + } + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_ext_and_inner_struct_external); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_ext_and_inner_struct_external, member_value); + } + CompleteStructType struct_type_ext_and_inner_struct_external = TypeObjectUtils::build_complete_struct_type(struct_flags_ext_and_inner_struct_external, header_ext_and_inner_struct_external, member_seq_ext_and_inner_struct_external); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_ext_and_inner_struct_external, type_name_ext_and_inner_struct_external.to_string(), type_ids_ext_and_inner_struct_external)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "ext_and_inner_struct_external already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_struct_external_optional_type_identifier( + TypeIdentifierPair& type_ids_struct_external_optional) +{ + + ReturnCode_t return_code_struct_external_optional {eprosima::fastdds::dds::RETCODE_OK}; + return_code_struct_external_optional = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "struct_external_optional", type_ids_struct_external_optional); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_struct_external_optional) + { + StructTypeFlag struct_flags_struct_external_optional = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_struct_external_optional = "struct_external_optional"; + eprosima::fastcdr::optional type_ann_builtin_struct_external_optional; + eprosima::fastcdr::optional ann_custom_struct_external_optional; + CompleteTypeDetail detail_struct_external_optional = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_struct_external_optional, ann_custom_struct_external_optional, type_name_struct_external_optional.to_string()); + CompleteStructHeader header_struct_external_optional; + header_struct_external_optional = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_struct_external_optional); + CompleteStructMemberSeq member_seq_struct_external_optional; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "InnerStructureHelper", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + ::register_InnerStructureHelper_type_identifier(type_ids_value); + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + true, false, false, true); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_struct_external_optional.reset(); + AppliedAnnotationSeq tmp_ann_custom_value; + eprosima::fastcdr::optional unit_value; + eprosima::fastcdr::optional min_value; + eprosima::fastcdr::optional max_value; + eprosima::fastcdr::optional hash_id_value; + if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) + { + member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); + } + if (!tmp_ann_custom_value.empty()) + { + ann_custom_struct_external_optional = tmp_ann_custom_value; + } + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_struct_external_optional); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_struct_external_optional, member_value); + } + CompleteStructType struct_type_struct_external_optional = TypeObjectUtils::build_complete_struct_type(struct_flags_struct_external_optional, header_struct_external_optional, member_seq_struct_external_optional); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_struct_external_optional, type_name_struct_external_optional.to_string(), type_ids_struct_external_optional)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "struct_external_optional already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_recursive_union_container_type_identifier( + TypeIdentifierPair& type_ids_recursive_union_container) +{ + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "recursive_union_container contains forward declarations (not yet supported)."); +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_recursive_union_type_identifier( + TypeIdentifierPair& type_ids_recursive_union) +{ + ReturnCode_t return_code_recursive_union {eprosima::fastdds::dds::RETCODE_OK}; + return_code_recursive_union = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "recursive_union", type_ids_recursive_union); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_recursive_union) + { + UnionTypeFlag union_flags_recursive_union = TypeObjectUtils::build_union_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + true, false); + QualifiedTypeName type_name_recursive_union = "recursive_union"; + eprosima::fastcdr::optional type_ann_builtin_recursive_union; + eprosima::fastcdr::optional ann_custom_recursive_union; + AppliedAnnotationSeq tmp_ann_custom_recursive_union; + eprosima::fastcdr::optional verbatim_recursive_union; + if (!tmp_ann_custom_recursive_union.empty()) + { + ann_custom_recursive_union = tmp_ann_custom_recursive_union; + } + + CompleteTypeDetail detail_recursive_union = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_recursive_union, ann_custom_recursive_union, type_name_recursive_union.to_string()); + CompleteUnionHeader header_recursive_union = TypeObjectUtils::build_complete_union_header(detail_recursive_union); + UnionDiscriminatorFlag member_flags_recursive_union = TypeObjectUtils::build_union_discriminator_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false); + return_code_recursive_union = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_byte", type_ids_recursive_union); + + if (return_code_recursive_union != eprosima::fastdds::dds::RETCODE_OK) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Union discriminator TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + CommonDiscriminatorMember common_recursive_union; + if (EK_COMPLETE == type_ids_recursive_union.type_identifier1()._d() || TK_NONE == type_ids_recursive_union.type_identifier2()._d()) + { + common_recursive_union = TypeObjectUtils::build_common_discriminator_member(member_flags_recursive_union, type_ids_recursive_union.type_identifier1()); + } + else if (EK_COMPLETE == type_ids_recursive_union.type_identifier2()._d()) + { + common_recursive_union = TypeObjectUtils::build_common_discriminator_member(member_flags_recursive_union, type_ids_recursive_union.type_identifier2()); + } + else + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "recursive_union discriminator TypeIdentifier inconsistent."); + return; + } + type_ann_builtin_recursive_union.reset(); + ann_custom_recursive_union.reset(); + CompleteDiscriminatorMember discriminator_recursive_union = TypeObjectUtils::build_complete_discriminator_member(common_recursive_union, + type_ann_builtin_recursive_union, ann_custom_recursive_union); + CompleteUnionMemberSeq member_seq_recursive_union; + { + return_code_recursive_union = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_recursive_union); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_recursive_union) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "l Union member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + UnionMemberFlag member_flags_l = TypeObjectUtils::build_union_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false); + UnionCaseLabelSeq label_seq_l; + TypeObjectUtils::add_union_case_label(label_seq_l, static_cast(1)); + MemberId member_id_l = 0x00000001; + bool common_l_ec {false}; + CommonUnionMember common_l {TypeObjectUtils::build_common_union_member(member_id_l, + member_flags_l, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_recursive_union, + common_l_ec), label_seq_l)}; + if (!common_l_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Union l member TypeIdentifier inconsistent."); + return; + } + MemberName name_l = "l"; + eprosima::fastcdr::optional member_ann_builtin_l; + ann_custom_recursive_union.reset(); + CompleteMemberDetail detail_l = TypeObjectUtils::build_complete_member_detail(name_l, member_ann_builtin_l, ann_custom_recursive_union); + CompleteUnionMember member_l = TypeObjectUtils::build_complete_union_member(common_l, detail_l); + TypeObjectUtils::add_complete_union_member(member_seq_recursive_union, member_l); + } + { + return_code_recursive_union = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "recursive_union_container", type_ids_recursive_union); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_recursive_union) + { + ::register_recursive_union_container_type_identifier(type_ids_recursive_union); + } + UnionMemberFlag member_flags_c = TypeObjectUtils::build_union_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false); + UnionCaseLabelSeq label_seq_c; + TypeObjectUtils::add_union_case_label(label_seq_c, static_cast(2)); + MemberId member_id_c = 0x00000002; + bool common_c_ec {false}; + CommonUnionMember common_c {TypeObjectUtils::build_common_union_member(member_id_c, + member_flags_c, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_recursive_union, + common_c_ec), label_seq_c)}; + if (!common_c_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Union c member TypeIdentifier inconsistent."); + return; + } + MemberName name_c = "c"; + eprosima::fastcdr::optional member_ann_builtin_c; + ann_custom_recursive_union.reset(); + CompleteMemberDetail detail_c = TypeObjectUtils::build_complete_member_detail(name_c, member_ann_builtin_c, ann_custom_recursive_union); + CompleteUnionMember member_c = TypeObjectUtils::build_complete_union_member(common_c, detail_c); + TypeObjectUtils::add_complete_union_member(member_seq_recursive_union, member_c); + } + { + return_code_recursive_union = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int16_t", type_ids_recursive_union); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_recursive_union) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "s Union member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + UnionMemberFlag member_flags_s = TypeObjectUtils::build_union_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false); + UnionCaseLabelSeq label_seq_s; + TypeObjectUtils::add_union_case_label(label_seq_s, static_cast(3)); + MemberId member_id_s = 0x00000003; + bool common_s_ec {false}; + CommonUnionMember common_s {TypeObjectUtils::build_common_union_member(member_id_s, + member_flags_s, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_recursive_union, + common_s_ec), label_seq_s)}; + if (!common_s_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Union s member TypeIdentifier inconsistent."); + return; + } + MemberName name_s = "s"; + eprosima::fastcdr::optional member_ann_builtin_s; + ann_custom_recursive_union.reset(); + CompleteMemberDetail detail_s = TypeObjectUtils::build_complete_member_detail(name_s, member_ann_builtin_s, ann_custom_recursive_union); + CompleteUnionMember member_s = TypeObjectUtils::build_complete_union_member(common_s, detail_s); + TypeObjectUtils::add_complete_union_member(member_seq_recursive_union, member_s); + } + CompleteUnionType union_type_recursive_union = TypeObjectUtils::build_complete_union_type(union_flags_recursive_union, header_recursive_union, discriminator_recursive_union, + member_seq_recursive_union); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_union_type_object(union_type_recursive_union, type_name_recursive_union.to_string(), type_ids_recursive_union)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "recursive_union already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_recursive_test_1_type_identifier( + TypeIdentifierPair& type_ids_recursive_test_1) +{ + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "recursive_test_1 contains forward declarations (not yet supported)."); +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_recursive_structure_container_type_identifier( + TypeIdentifierPair& type_ids_recursive_structure_container) +{ + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "recursive_structure_container contains forward declarations (not yet supported)."); +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_recursive_structure_type_identifier( + TypeIdentifierPair& type_ids_recursive_structure) +{ + + ReturnCode_t return_code_recursive_structure {eprosima::fastdds::dds::RETCODE_OK}; + return_code_recursive_structure = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "recursive_structure", type_ids_recursive_structure); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_recursive_structure) + { + StructTypeFlag struct_flags_recursive_structure = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + true, false); + QualifiedTypeName type_name_recursive_structure = "recursive_structure"; + eprosima::fastcdr::optional type_ann_builtin_recursive_structure; + eprosima::fastcdr::optional ann_custom_recursive_structure; + AppliedAnnotationSeq tmp_ann_custom_recursive_structure; + eprosima::fastcdr::optional verbatim_recursive_structure; + if (!tmp_ann_custom_recursive_structure.empty()) + { + ann_custom_recursive_structure = tmp_ann_custom_recursive_structure; + } + + CompleteTypeDetail detail_recursive_structure = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_recursive_structure, ann_custom_recursive_structure, type_name_recursive_structure.to_string()); + CompleteStructHeader header_recursive_structure; + header_recursive_structure = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_recursive_structure); + CompleteStructMemberSeq member_seq_recursive_structure; + { + TypeIdentifierPair type_ids_s; + ReturnCode_t return_code_s {eprosima::fastdds::dds::RETCODE_OK}; + return_code_s = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int16_t", type_ids_s); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_s) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "s Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_s = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_s = 0x00000000; + bool common_s_ec {false}; + CommonStructMember common_s {TypeObjectUtils::build_common_struct_member(member_id_s, member_flags_s, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_s, common_s_ec))}; + if (!common_s_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure s member TypeIdentifier inconsistent."); + return; + } + MemberName name_s = "s"; + eprosima::fastcdr::optional member_ann_builtin_s; + ann_custom_recursive_structure.reset(); + CompleteMemberDetail detail_s = TypeObjectUtils::build_complete_member_detail(name_s, member_ann_builtin_s, ann_custom_recursive_structure); + CompleteStructMember member_s = TypeObjectUtils::build_complete_struct_member(common_s, detail_s); + TypeObjectUtils::add_complete_struct_member(member_seq_recursive_structure, member_s); + } + { + TypeIdentifierPair type_ids_c; + ReturnCode_t return_code_c {eprosima::fastdds::dds::RETCODE_OK}; + return_code_c = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "recursive_structure_container", type_ids_c); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_c) + { + ::register_recursive_structure_container_type_identifier(type_ids_c); + } + StructMemberFlag member_flags_c = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_c = 0x00000001; + bool common_c_ec {false}; + CommonStructMember common_c {TypeObjectUtils::build_common_struct_member(member_id_c, member_flags_c, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_c, common_c_ec))}; + if (!common_c_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure c member TypeIdentifier inconsistent."); + return; + } + MemberName name_c = "c"; + eprosima::fastcdr::optional member_ann_builtin_c; + ann_custom_recursive_structure.reset(); + CompleteMemberDetail detail_c = TypeObjectUtils::build_complete_member_detail(name_c, member_ann_builtin_c, ann_custom_recursive_structure); + CompleteStructMember member_c = TypeObjectUtils::build_complete_struct_member(common_c, detail_c); + TypeObjectUtils::add_complete_struct_member(member_seq_recursive_structure, member_c); + } + CompleteStructType struct_type_recursive_structure = TypeObjectUtils::build_complete_struct_type(struct_flags_recursive_structure, header_recursive_structure, member_seq_recursive_structure); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_recursive_structure, type_name_recursive_structure.to_string(), type_ids_recursive_structure)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "recursive_structure already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_recursive_test_2_type_identifier( + TypeIdentifierPair& type_ids_recursive_test_2) +{ + + ReturnCode_t return_code_recursive_test_2 {eprosima::fastdds::dds::RETCODE_OK}; + return_code_recursive_test_2 = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "recursive_test_2", type_ids_recursive_test_2); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_recursive_test_2) + { + StructTypeFlag struct_flags_recursive_test_2 = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_recursive_test_2 = "recursive_test_2"; + eprosima::fastcdr::optional type_ann_builtin_recursive_test_2; + eprosima::fastcdr::optional ann_custom_recursive_test_2; + CompleteTypeDetail detail_recursive_test_2 = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_recursive_test_2, ann_custom_recursive_test_2, type_name_recursive_test_2.to_string()); + CompleteStructHeader header_recursive_test_2; + header_recursive_test_2 = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_recursive_test_2); + CompleteStructMemberSeq member_seq_recursive_test_2; + { + TypeIdentifierPair type_ids_o; + ReturnCode_t return_code_o {eprosima::fastdds::dds::RETCODE_OK}; + return_code_o = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_byte", type_ids_o); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_o) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "o Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_o = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_o = 0x00000000; + bool common_o_ec {false}; + CommonStructMember common_o {TypeObjectUtils::build_common_struct_member(member_id_o, member_flags_o, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_o, common_o_ec))}; + if (!common_o_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure o member TypeIdentifier inconsistent."); + return; + } + MemberName name_o = "o"; + eprosima::fastcdr::optional member_ann_builtin_o; + ann_custom_recursive_test_2.reset(); + CompleteMemberDetail detail_o = TypeObjectUtils::build_complete_member_detail(name_o, member_ann_builtin_o, ann_custom_recursive_test_2); + CompleteStructMember member_o = TypeObjectUtils::build_complete_struct_member(common_o, detail_o); + TypeObjectUtils::add_complete_struct_member(member_seq_recursive_test_2, member_o); + } + { + TypeIdentifierPair type_ids_s; + ReturnCode_t return_code_s {eprosima::fastdds::dds::RETCODE_OK}; + return_code_s = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "recursive_structure", type_ids_s); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_s) + { + ::register_recursive_structure_type_identifier(type_ids_s); + } + StructMemberFlag member_flags_s = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_s = 0x00000001; + bool common_s_ec {false}; + CommonStructMember common_s {TypeObjectUtils::build_common_struct_member(member_id_s, member_flags_s, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_s, common_s_ec))}; + if (!common_s_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure s member TypeIdentifier inconsistent."); + return; + } + MemberName name_s = "s"; + eprosima::fastcdr::optional member_ann_builtin_s; + ann_custom_recursive_test_2.reset(); + CompleteMemberDetail detail_s = TypeObjectUtils::build_complete_member_detail(name_s, member_ann_builtin_s, ann_custom_recursive_test_2); + CompleteStructMember member_s = TypeObjectUtils::build_complete_struct_member(common_s, detail_s); + TypeObjectUtils::add_complete_struct_member(member_seq_recursive_test_2, member_s); + } + CompleteStructType struct_type_recursive_test_2 = TypeObjectUtils::build_complete_struct_type(struct_flags_recursive_test_2, header_recursive_test_2, member_seq_recursive_test_2); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_recursive_test_2, type_name_recursive_test_2.to_string(), type_ids_recursive_test_2)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "recursive_test_2 already registered in TypeObjectRegistry for a different type."); + } + } +} diff --git a/test/dds-types-test/externalTypeObjectSupport.hpp b/test/dds-types-test/externalTypeObjectSupport.hpp new file mode 100644 index 00000000000..b199d584246 --- /dev/null +++ b/test/dds-types-test/externalTypeObjectSupport.hpp @@ -0,0 +1,393 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file externalTypeObjectSupport.hpp + * Header file containing the API required to register the TypeObject representation of the described types in the IDL file + * + * This file was generated by the tool fastddsgen (version: 4.1.0). + */ + +#ifndef FAST_DDS_GENERATED__EXTERNAL_TYPE_OBJECT_SUPPORT_HPP +#define FAST_DDS_GENERATED__EXTERNAL_TYPE_OBJECT_SUPPORT_HPP + +#include + +#include "helpers/basic_inner_typesTypeObjectSupport.hpp" + +#if defined(_WIN32) +#if defined(EPROSIMA_USER_DLL_EXPORT) +#define eProsima_user_DllExport __declspec( dllexport ) +#else +#define eProsima_user_DllExport +#endif // EPROSIMA_USER_DLL_EXPORT +#else +#define eProsima_user_DllExport +#endif // _WIN32 + +#ifndef DOXYGEN_SHOULD_SKIP_THIS_PUBLIC + +/** + * @brief Register short_external related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_short_external_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register ushort_external related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_ushort_external_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register long_external related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_long_external_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register ulong_external related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_ulong_external_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register longlong_external related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_longlong_external_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register ulonglong_external related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_ulonglong_external_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register float_external related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_float_external_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register double_external related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_double_external_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register longdouble_external related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_longdouble_external_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register boolean_external related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_boolean_external_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register octet_external related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_octet_external_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register char_external related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_char_external_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register wchar_external related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_wchar_external_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register sequence_short_external related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_sequence_short_external_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register string_unbounded_external related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_string_unbounded_external_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register string_bounded_external related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_string_bounded_external_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register map_short_external related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_map_short_external_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register array_short_external related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_array_short_external_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register struct_external related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_struct_external_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register InnerStructExternal related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_InnerStructExternal_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register ext_struct_external related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_ext_struct_external_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register ext_and_inner_struct_external related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_ext_and_inner_struct_external_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register struct_external_optional related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_struct_external_optional_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register recursive_union_container related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_recursive_union_container_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register recursive_union related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_recursive_union_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register recursive_test_1 related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_recursive_test_1_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register recursive_structure_container related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_recursive_structure_container_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register recursive_structure related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_recursive_structure_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register recursive_test_2 related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_recursive_test_2_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + + +#endif // DOXYGEN_SHOULD_SKIP_THIS_PUBLIC + +#endif // FAST_DDS_GENERATED__EXTERNAL_TYPE_OBJECT_SUPPORT_HPP diff --git a/test/dds-types-test/finalCdrAux.hpp b/test/dds-types-test/finalCdrAux.hpp index c1e305f80bf..bce4a9aba90 100644 --- a/test/dds-types-test/finalCdrAux.hpp +++ b/test/dds-types-test/finalCdrAux.hpp @@ -51,6 +51,7 @@ constexpr uint32_t FinalULongStruct_max_cdr_typesize {4UL}; constexpr uint32_t FinalULongStruct_max_key_cdr_typesize {0UL}; + constexpr uint32_t FinalLongDoubleStruct_max_cdr_typesize {16UL}; constexpr uint32_t FinalLongDoubleStruct_max_key_cdr_typesize {0UL}; @@ -73,6 +74,7 @@ constexpr uint32_t FinalOctetStruct_max_key_cdr_typesize {0UL}; + constexpr uint32_t FinalDoubleStruct_max_cdr_typesize {8UL}; constexpr uint32_t FinalDoubleStruct_max_key_cdr_typesize {0UL}; @@ -105,78 +107,545 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalShortStruct& data); +#ifndef SWIG +namespace detail { + +template +struct FinalShortStruct_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct FinalShortStruct_f +{ + typedef int16_t FinalShortStruct::* type; + friend constexpr type get( + FinalShortStruct_f); +}; + +template struct FinalShortStruct_rob; + +template +inline std::size_t constexpr FinalShortStruct_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalUShortStruct& data); +#ifndef SWIG +namespace detail { + +template +struct FinalUShortStruct_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct FinalUShortStruct_f +{ + typedef uint16_t FinalUShortStruct::* type; + friend constexpr type get( + FinalUShortStruct_f); +}; + +template struct FinalUShortStruct_rob; + +template +inline std::size_t constexpr FinalUShortStruct_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalLongStruct& data); +#ifndef SWIG +namespace detail { + +template +struct FinalLongStruct_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct FinalLongStruct_f +{ + typedef int32_t FinalLongStruct::* type; + friend constexpr type get( + FinalLongStruct_f); +}; + +template struct FinalLongStruct_rob; + +template +inline std::size_t constexpr FinalLongStruct_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalULongStruct& data); +#ifndef SWIG +namespace detail { + +template +struct FinalULongStruct_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct FinalULongStruct_f +{ + typedef uint32_t FinalULongStruct::* type; + friend constexpr type get( + FinalULongStruct_f); +}; + +template struct FinalULongStruct_rob; + +template +inline std::size_t constexpr FinalULongStruct_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalLongLongStruct& data); +#ifndef SWIG +namespace detail { + +template +struct FinalLongLongStruct_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct FinalLongLongStruct_f +{ + typedef int64_t FinalLongLongStruct::* type; + friend constexpr type get( + FinalLongLongStruct_f); +}; + +template struct FinalLongLongStruct_rob; + +template +inline std::size_t constexpr FinalLongLongStruct_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalULongLongStruct& data); +#ifndef SWIG +namespace detail { + +template +struct FinalULongLongStruct_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct FinalULongLongStruct_f +{ + typedef uint64_t FinalULongLongStruct::* type; + friend constexpr type get( + FinalULongLongStruct_f); +}; + +template struct FinalULongLongStruct_rob; + +template +inline std::size_t constexpr FinalULongLongStruct_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalFloatStruct& data); +#ifndef SWIG +namespace detail { + +template +struct FinalFloatStruct_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct FinalFloatStruct_f +{ + typedef float FinalFloatStruct::* type; + friend constexpr type get( + FinalFloatStruct_f); +}; + +template struct FinalFloatStruct_rob; + +template +inline std::size_t constexpr FinalFloatStruct_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalDoubleStruct& data); +#ifndef SWIG +namespace detail { + +template +struct FinalDoubleStruct_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct FinalDoubleStruct_f +{ + typedef double FinalDoubleStruct::* type; + friend constexpr type get( + FinalDoubleStruct_f); +}; + +template struct FinalDoubleStruct_rob; + +template +inline std::size_t constexpr FinalDoubleStruct_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalLongDoubleStruct& data); +#ifndef SWIG +namespace detail { + +template +struct FinalLongDoubleStruct_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct FinalLongDoubleStruct_f +{ + typedef long double FinalLongDoubleStruct::* type; + friend constexpr type get( + FinalLongDoubleStruct_f); +}; + +template struct FinalLongDoubleStruct_rob; + +template +inline std::size_t constexpr FinalLongDoubleStruct_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalBooleanStruct& data); +#ifndef SWIG +namespace detail { + +template +struct FinalBooleanStruct_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct FinalBooleanStruct_f +{ + typedef bool FinalBooleanStruct::* type; + friend constexpr type get( + FinalBooleanStruct_f); +}; + +template struct FinalBooleanStruct_rob; + +template +inline std::size_t constexpr FinalBooleanStruct_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalOctetStruct& data); +#ifndef SWIG +namespace detail { + +template +struct FinalOctetStruct_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct FinalOctetStruct_f +{ + typedef uint8_t FinalOctetStruct::* type; + friend constexpr type get( + FinalOctetStruct_f); +}; + +template struct FinalOctetStruct_rob; + +template +inline std::size_t constexpr FinalOctetStruct_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalCharStruct& data); +#ifndef SWIG +namespace detail { + +template +struct FinalCharStruct_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct FinalCharStruct_f +{ + typedef char FinalCharStruct::* type; + friend constexpr type get( + FinalCharStruct_f); +}; + +template struct FinalCharStruct_rob; + +template +inline std::size_t constexpr FinalCharStruct_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalWCharStruct& data); +#ifndef SWIG +namespace detail { + +template +struct FinalWCharStruct_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct FinalWCharStruct_f +{ + typedef wchar_t FinalWCharStruct::* type; + friend constexpr type get( + FinalWCharStruct_f); +}; + +template struct FinalWCharStruct_rob; + +template +inline std::size_t constexpr FinalWCharStruct_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalUnionStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalEmptyStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalEmptyInheritanceStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalInheritanceStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const InheritanceEmptyStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalExtensibilityInheritance& data); +#ifndef SWIG +namespace detail { + +template +struct FinalExtensibilityInheritance_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct FinalExtensibilityInheritance_f +{ + typedef int32_t FinalExtensibilityInheritance::* type; + friend constexpr type get( + FinalExtensibilityInheritance_f); +}; + +template struct FinalExtensibilityInheritance_rob; + +template +inline std::size_t constexpr FinalExtensibilityInheritance_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/finalCdrAux.ipp b/test/dds-types-test/finalCdrAux.ipp index 7f101875f94..2b2523d1013 100644 --- a/test/dds-types-test/finalCdrAux.ipp +++ b/test/dds-types-test/finalCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,24 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_FinalShortStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 2ULL == + (detail::FinalShortStruct_offset_of() + + sizeof(int16_t)); + } + else + { + return 2ULL == + (detail::FinalShortStruct_offset_of() + + sizeof(int16_t)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +95,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FinalShortStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalShortStruct_cdr_plain(data_representation) && + sizeof(FinalShortStruct) == FinalShortStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FinalShortStruct)); + + scdr.jump((array_size -1) * sizeof(FinalShortStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +158,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FinalShortStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalShortStruct_cdr_plain(data_representation) && + sizeof(FinalShortStruct) == FinalShortStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FinalShortStruct)); + + scdr.jump((array_size - 1) * sizeof(FinalShortStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalShortStruct& data) @@ -113,6 +206,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FinalUShortStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 2ULL == + (detail::FinalUShortStruct_offset_of() + + sizeof(uint16_t)); + } + else + { + return 2ULL == + (detail::FinalUShortStruct_offset_of() + + sizeof(uint16_t)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -155,6 +266,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FinalUShortStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalUShortStruct_cdr_plain(data_representation) && + sizeof(FinalUShortStruct) == FinalUShortStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FinalUShortStruct)); + + scdr.jump((array_size -1) * sizeof(FinalUShortStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -180,6 +329,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FinalUShortStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalUShortStruct_cdr_plain(data_representation) && + sizeof(FinalUShortStruct) == FinalUShortStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FinalUShortStruct)); + + scdr.jump((array_size - 1) * sizeof(FinalUShortStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalUShortStruct& data) @@ -192,6 +377,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FinalLongStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 4ULL == + (detail::FinalLongStruct_offset_of() + + sizeof(int32_t)); + } + else + { + return 4ULL == + (detail::FinalLongStruct_offset_of() + + sizeof(int32_t)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -234,6 +437,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FinalLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalLongStruct_cdr_plain(data_representation) && + sizeof(FinalLongStruct) == FinalLongStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FinalLongStruct)); + + scdr.jump((array_size -1) * sizeof(FinalLongStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -259,6 +500,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FinalLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalLongStruct_cdr_plain(data_representation) && + sizeof(FinalLongStruct) == FinalLongStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FinalLongStruct)); + + scdr.jump((array_size - 1) * sizeof(FinalLongStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalLongStruct& data) @@ -271,6 +548,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FinalULongStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 4ULL == + (detail::FinalULongStruct_offset_of() + + sizeof(uint32_t)); + } + else + { + return 4ULL == + (detail::FinalULongStruct_offset_of() + + sizeof(uint32_t)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -313,6 +608,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FinalULongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalULongStruct_cdr_plain(data_representation) && + sizeof(FinalULongStruct) == FinalULongStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FinalULongStruct)); + + scdr.jump((array_size -1) * sizeof(FinalULongStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -338,6 +671,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FinalULongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalULongStruct_cdr_plain(data_representation) && + sizeof(FinalULongStruct) == FinalULongStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FinalULongStruct)); + + scdr.jump((array_size - 1) * sizeof(FinalULongStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalULongStruct& data) @@ -350,6 +719,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FinalLongLongStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 8ULL == + (detail::FinalLongLongStruct_offset_of() + + sizeof(int64_t)); + } + else + { + return 8ULL == + (detail::FinalLongLongStruct_offset_of() + + sizeof(int64_t)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -392,6 +779,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FinalLongLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalLongLongStruct_cdr_plain(data_representation) && + sizeof(FinalLongLongStruct) == FinalLongLongStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FinalLongLongStruct)); + + scdr.jump((array_size -1) * sizeof(FinalLongLongStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -417,6 +842,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FinalLongLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalLongLongStruct_cdr_plain(data_representation) && + sizeof(FinalLongLongStruct) == FinalLongLongStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FinalLongLongStruct)); + + scdr.jump((array_size - 1) * sizeof(FinalLongLongStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalLongLongStruct& data) @@ -429,6 +890,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FinalULongLongStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 8ULL == + (detail::FinalULongLongStruct_offset_of() + + sizeof(uint64_t)); + } + else + { + return 8ULL == + (detail::FinalULongLongStruct_offset_of() + + sizeof(uint64_t)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -471,6 +950,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FinalULongLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalULongLongStruct_cdr_plain(data_representation) && + sizeof(FinalULongLongStruct) == FinalULongLongStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FinalULongLongStruct)); + + scdr.jump((array_size -1) * sizeof(FinalULongLongStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -496,6 +1013,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FinalULongLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalULongLongStruct_cdr_plain(data_representation) && + sizeof(FinalULongLongStruct) == FinalULongLongStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FinalULongLongStruct)); + + scdr.jump((array_size - 1) * sizeof(FinalULongLongStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalULongLongStruct& data) @@ -508,6 +1061,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FinalFloatStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 4ULL == + (detail::FinalFloatStruct_offset_of() + + sizeof(float)); + } + else + { + return 4ULL == + (detail::FinalFloatStruct_offset_of() + + sizeof(float)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -550,6 +1121,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FinalFloatStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalFloatStruct_cdr_plain(data_representation) && + sizeof(FinalFloatStruct) == FinalFloatStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FinalFloatStruct)); + + scdr.jump((array_size -1) * sizeof(FinalFloatStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -575,6 +1184,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FinalFloatStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalFloatStruct_cdr_plain(data_representation) && + sizeof(FinalFloatStruct) == FinalFloatStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FinalFloatStruct)); + + scdr.jump((array_size - 1) * sizeof(FinalFloatStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalFloatStruct& data) @@ -587,6 +1232,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FinalDoubleStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 8ULL == + (detail::FinalDoubleStruct_offset_of() + + sizeof(double)); + } + else + { + return 8ULL == + (detail::FinalDoubleStruct_offset_of() + + sizeof(double)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -629,6 +1292,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FinalDoubleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalDoubleStruct_cdr_plain(data_representation) && + sizeof(FinalDoubleStruct) == FinalDoubleStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FinalDoubleStruct)); + + scdr.jump((array_size -1) * sizeof(FinalDoubleStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -654,6 +1355,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FinalDoubleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalDoubleStruct_cdr_plain(data_representation) && + sizeof(FinalDoubleStruct) == FinalDoubleStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FinalDoubleStruct)); + + scdr.jump((array_size - 1) * sizeof(FinalDoubleStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalDoubleStruct& data) @@ -666,6 +1403,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FinalLongDoubleStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 16ULL == + (detail::FinalLongDoubleStruct_offset_of() + + sizeof(long double)); + } + else + { + return 16ULL == + (detail::FinalLongDoubleStruct_offset_of() + + sizeof(long double)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -708,6 +1463,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FinalLongDoubleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalLongDoubleStruct_cdr_plain(data_representation) && + sizeof(FinalLongDoubleStruct) == FinalLongDoubleStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FinalLongDoubleStruct)); + + scdr.jump((array_size -1) * sizeof(FinalLongDoubleStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -733,6 +1526,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FinalLongDoubleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalLongDoubleStruct_cdr_plain(data_representation) && + sizeof(FinalLongDoubleStruct) == FinalLongDoubleStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FinalLongDoubleStruct)); + + scdr.jump((array_size - 1) * sizeof(FinalLongDoubleStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalLongDoubleStruct& data) @@ -745,6 +1574,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FinalBooleanStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 1ULL == + (detail::FinalBooleanStruct_offset_of() + + sizeof(bool)); + } + else + { + return 1ULL == + (detail::FinalBooleanStruct_offset_of() + + sizeof(bool)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -787,6 +1634,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FinalBooleanStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalBooleanStruct_cdr_plain(data_representation) && + sizeof(FinalBooleanStruct) == FinalBooleanStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FinalBooleanStruct)); + + scdr.jump((array_size -1) * sizeof(FinalBooleanStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -812,6 +1697,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FinalBooleanStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalBooleanStruct_cdr_plain(data_representation) && + sizeof(FinalBooleanStruct) == FinalBooleanStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FinalBooleanStruct)); + + scdr.jump((array_size - 1) * sizeof(FinalBooleanStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalBooleanStruct& data) @@ -824,6 +1745,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FinalOctetStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 1ULL == + (detail::FinalOctetStruct_offset_of() + + sizeof(uint8_t)); + } + else + { + return 1ULL == + (detail::FinalOctetStruct_offset_of() + + sizeof(uint8_t)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -866,6 +1805,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FinalOctetStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalOctetStruct_cdr_plain(data_representation) && + sizeof(FinalOctetStruct) == FinalOctetStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FinalOctetStruct)); + + scdr.jump((array_size -1) * sizeof(FinalOctetStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -891,6 +1868,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FinalOctetStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalOctetStruct_cdr_plain(data_representation) && + sizeof(FinalOctetStruct) == FinalOctetStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FinalOctetStruct)); + + scdr.jump((array_size - 1) * sizeof(FinalOctetStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalOctetStruct& data) @@ -903,6 +1916,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FinalCharStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 1ULL == + (detail::FinalCharStruct_offset_of() + + sizeof(char)); + } + else + { + return 1ULL == + (detail::FinalCharStruct_offset_of() + + sizeof(char)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -945,6 +1976,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FinalCharStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalCharStruct_cdr_plain(data_representation) && + sizeof(FinalCharStruct) == FinalCharStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FinalCharStruct)); + + scdr.jump((array_size -1) * sizeof(FinalCharStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -970,6 +2039,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FinalCharStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalCharStruct_cdr_plain(data_representation) && + sizeof(FinalCharStruct) == FinalCharStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FinalCharStruct)); + + scdr.jump((array_size - 1) * sizeof(FinalCharStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalCharStruct& data) @@ -982,6 +2087,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FinalWCharStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 2ULL == + (detail::FinalWCharStruct_offset_of() + + sizeof(wchar_t)); + } + else + { + return 2ULL == + (detail::FinalWCharStruct_offset_of() + + sizeof(wchar_t)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1024,6 +2147,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FinalWCharStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalWCharStruct_cdr_plain(data_representation) && + sizeof(FinalWCharStruct) == FinalWCharStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FinalWCharStruct)); + + scdr.jump((array_size -1) * sizeof(FinalWCharStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1049,6 +2210,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FinalWCharStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalWCharStruct_cdr_plain(data_representation) && + sizeof(FinalWCharStruct) == FinalWCharStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FinalWCharStruct)); + + scdr.jump((array_size - 1) * sizeof(FinalWCharStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalWCharStruct& data) @@ -1061,6 +2258,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FinalUnionStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1103,6 +2308,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FinalUnionStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalUnionStruct_cdr_plain(data_representation) && + sizeof(FinalUnionStruct) == FinalUnionStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FinalUnionStruct)); + + scdr.jump((array_size -1) * sizeof(FinalUnionStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1128,6 +2371,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FinalUnionStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalUnionStruct_cdr_plain(data_representation) && + sizeof(FinalUnionStruct) == FinalUnionStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FinalUnionStruct)); + + scdr.jump((array_size - 1) * sizeof(FinalUnionStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalUnionStruct& data) @@ -1140,6 +2419,20 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FinalEmptyStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return true; + } + else + { + return true; + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1178,6 +2471,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FinalEmptyStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalEmptyStruct_cdr_plain(data_representation) && + sizeof(FinalEmptyStruct) == FinalEmptyStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FinalEmptyStruct)); + + scdr.jump((array_size -1) * sizeof(FinalEmptyStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1195,6 +2526,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FinalEmptyStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalEmptyStruct_cdr_plain(data_representation) && + sizeof(FinalEmptyStruct) == FinalEmptyStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FinalEmptyStruct)); + + scdr.jump((array_size - 1) * sizeof(FinalEmptyStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalEmptyStruct& data) @@ -1205,6 +2572,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FinalEmptyInheritanceStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1247,6 +2622,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FinalEmptyInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalEmptyInheritanceStruct_cdr_plain(data_representation) && + sizeof(FinalEmptyInheritanceStruct) == FinalEmptyInheritanceStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FinalEmptyInheritanceStruct)); + + scdr.jump((array_size -1) * sizeof(FinalEmptyInheritanceStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1272,6 +2685,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FinalEmptyInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalEmptyInheritanceStruct_cdr_plain(data_representation) && + sizeof(FinalEmptyInheritanceStruct) == FinalEmptyInheritanceStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FinalEmptyInheritanceStruct)); + + scdr.jump((array_size - 1) * sizeof(FinalEmptyInheritanceStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalEmptyInheritanceStruct& data) @@ -1283,6 +2732,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FinalInheritanceStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1329,6 +2786,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FinalInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalInheritanceStruct_cdr_plain(data_representation) && + sizeof(FinalInheritanceStruct) == FinalInheritanceStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FinalInheritanceStruct)); + + scdr.jump((array_size -1) * sizeof(FinalInheritanceStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1358,6 +2853,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FinalInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalInheritanceStruct_cdr_plain(data_representation) && + sizeof(FinalInheritanceStruct) == FinalInheritanceStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FinalInheritanceStruct)); + + scdr.jump((array_size - 1) * sizeof(FinalInheritanceStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalInheritanceStruct& data) @@ -1369,6 +2900,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_InheritanceEmptyStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 2ULL == + (detail::FinalShortStruct_offset_of() + + sizeof(int16_t)); + } + else + { + return 2ULL == + (detail::FinalShortStruct_offset_of() + + sizeof(int16_t)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1411,6 +2960,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InheritanceEmptyStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InheritanceEmptyStruct_cdr_plain(data_representation) && + sizeof(InheritanceEmptyStruct) == InheritanceEmptyStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(InheritanceEmptyStruct)); + + scdr.jump((array_size -1) * sizeof(InheritanceEmptyStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1436,6 +3023,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InheritanceEmptyStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InheritanceEmptyStruct_cdr_plain(data_representation) && + sizeof(InheritanceEmptyStruct) == InheritanceEmptyStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(InheritanceEmptyStruct)); + + scdr.jump((array_size - 1) * sizeof(InheritanceEmptyStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const InheritanceEmptyStruct& data) @@ -1447,6 +3070,24 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FinalExtensibilityInheritance_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 8ULL == + (detail::FinalExtensibilityInheritance_offset_of() + + sizeof(int32_t)); + } + else + { + return 8ULL == + (detail::FinalExtensibilityInheritance_offset_of() + + sizeof(int32_t)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1493,6 +3134,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FinalExtensibilityInheritance* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalExtensibilityInheritance_cdr_plain(data_representation) && + sizeof(FinalExtensibilityInheritance) == FinalExtensibilityInheritance_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FinalExtensibilityInheritance)); + + scdr.jump((array_size -1) * sizeof(FinalExtensibilityInheritance)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1522,6 +3201,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FinalExtensibilityInheritance* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalExtensibilityInheritance_cdr_plain(data_representation) && + sizeof(FinalExtensibilityInheritance) == FinalExtensibilityInheritance_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FinalExtensibilityInheritance)); + + scdr.jump((array_size - 1) * sizeof(FinalExtensibilityInheritance)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalExtensibilityInheritance& data) diff --git a/test/dds-types-test/finalPubSubTypes.cxx b/test/dds-types-test/finalPubSubTypes.cxx index 3c37baddf78..6bbcd657543 100644 --- a/test/dds-types-test/finalPubSubTypes.cxx +++ b/test/dds-types-test/finalPubSubTypes.cxx @@ -31,6 +31,85 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_FinalLongStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_FinalEmptyInheritanceStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_FinalULongLongStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_FinalFloatStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_FinalUnionStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_FinalLongLongStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_InheritanceEmptyStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_FinalExtensibilityInheritance_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_FinalULongStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_FinalLongDoubleStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_FinalInheritanceStruct_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_FinalCharStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_FinalUShortStruct_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_FinalOctetStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + +bool is_FinalDoubleStruct_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_FinalBooleanStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_FinalWCharStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_FinalShortStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + +bool is_FinalEmptyStruct_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + FinalShortStructPubSubType::FinalShortStructPubSubType() { set_name("FinalShortStruct"); @@ -149,6 +228,16 @@ void FinalShortStructPubSubType::delete_data( delete(reinterpret_cast<::FinalShortStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FinalShortStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_FinalShortStruct_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FinalShortStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +420,16 @@ void FinalUShortStructPubSubType::delete_data( delete(reinterpret_cast<::FinalUShortStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FinalUShortStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_FinalUShortStruct_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FinalUShortStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +612,16 @@ void FinalLongStructPubSubType::delete_data( delete(reinterpret_cast<::FinalLongStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FinalLongStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_FinalLongStruct_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FinalLongStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -695,6 +804,16 @@ void FinalULongStructPubSubType::delete_data( delete(reinterpret_cast<::FinalULongStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FinalULongStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_FinalULongStruct_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FinalULongStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -877,6 +996,16 @@ void FinalLongLongStructPubSubType::delete_data( delete(reinterpret_cast<::FinalLongLongStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FinalLongLongStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_FinalLongLongStruct_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FinalLongLongStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1059,6 +1188,16 @@ void FinalULongLongStructPubSubType::delete_data( delete(reinterpret_cast<::FinalULongLongStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FinalULongLongStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_FinalULongLongStruct_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FinalULongLongStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1241,6 +1380,16 @@ void FinalFloatStructPubSubType::delete_data( delete(reinterpret_cast<::FinalFloatStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FinalFloatStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_FinalFloatStruct_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FinalFloatStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1423,6 +1572,16 @@ void FinalDoubleStructPubSubType::delete_data( delete(reinterpret_cast<::FinalDoubleStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FinalDoubleStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_FinalDoubleStruct_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FinalDoubleStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1605,6 +1764,16 @@ void FinalLongDoubleStructPubSubType::delete_data( delete(reinterpret_cast<::FinalLongDoubleStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FinalLongDoubleStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_FinalLongDoubleStruct_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FinalLongDoubleStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1787,6 +1956,16 @@ void FinalBooleanStructPubSubType::delete_data( delete(reinterpret_cast<::FinalBooleanStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FinalBooleanStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_FinalBooleanStruct_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FinalBooleanStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1969,6 +2148,16 @@ void FinalOctetStructPubSubType::delete_data( delete(reinterpret_cast<::FinalOctetStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FinalOctetStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_FinalOctetStruct_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FinalOctetStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2151,6 +2340,16 @@ void FinalCharStructPubSubType::delete_data( delete(reinterpret_cast<::FinalCharStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FinalCharStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_FinalCharStruct_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FinalCharStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2333,6 +2532,16 @@ void FinalWCharStructPubSubType::delete_data( delete(reinterpret_cast<::FinalWCharStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FinalWCharStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_FinalWCharStruct_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FinalWCharStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2515,6 +2724,17 @@ void FinalUnionStructPubSubType::delete_data( delete(reinterpret_cast<::FinalUnionStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FinalUnionStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FinalUnionStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2697,6 +2917,16 @@ void FinalEmptyStructPubSubType::delete_data( delete(reinterpret_cast<::FinalEmptyStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FinalEmptyStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_FinalEmptyStruct_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FinalEmptyStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2879,6 +3109,17 @@ void FinalEmptyInheritanceStructPubSubType::delete_data( delete(reinterpret_cast<::FinalEmptyInheritanceStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FinalEmptyInheritanceStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FinalEmptyInheritanceStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3061,6 +3302,17 @@ void FinalInheritanceStructPubSubType::delete_data( delete(reinterpret_cast<::FinalInheritanceStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FinalInheritanceStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FinalInheritanceStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3243,6 +3495,16 @@ void InheritanceEmptyStructPubSubType::delete_data( delete(reinterpret_cast<::InheritanceEmptyStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool InheritanceEmptyStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_InheritanceEmptyStruct_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool InheritanceEmptyStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3425,6 +3687,16 @@ void FinalExtensibilityInheritancePubSubType::delete_data( delete(reinterpret_cast<::FinalExtensibilityInheritance*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FinalExtensibilityInheritancePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_FinalExtensibilityInheritance_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FinalExtensibilityInheritancePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds-types-test/finalPubSubTypes.hpp b/test/dds-types-test/finalPubSubTypes.hpp index ea566a80618..10d561051b0 100644 --- a/test/dds-types-test/finalPubSubTypes.hpp +++ b/test/dds-types-test/finalPubSubTypes.hpp @@ -39,39 +39,6 @@ #endif // FASTDDS_GEN_API_VER -#ifndef SWIG -namespace detail { - -template -struct FinalShortStruct_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct FinalShortStruct_f -{ - typedef int16_t FinalShortStruct::* type; - friend constexpr type get( - FinalShortStruct_f); -}; - -template struct FinalShortStruct_rob; - -template -inline size_t constexpr FinalShortStruct_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - /*! * @brief This class represents the TopicDataType of the type FinalShortStruct defined by the user in the IDL file. * @ingroup final @@ -127,18 +94,8 @@ class FinalShortStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) - { - return is_plain_xcdrv2_impl(); - } - else - { - return is_plain_xcdrv1_impl(); - } - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -157,56 +114,8 @@ class FinalShortStructPubSubType : public eprosima::fastdds::dds::TopicDataType eprosima::fastdds::MD5 md5_; unsigned char* key_buffer_; - - static constexpr bool is_plain_xcdrv1_impl() - { - return 2ULL == - (detail::FinalShortStruct_offset_of() + - sizeof(int16_t)); - } - - static constexpr bool is_plain_xcdrv2_impl() - { - return 2ULL == - (detail::FinalShortStruct_offset_of() + - sizeof(int16_t)); - } - -}; - - -#ifndef SWIG -namespace detail { - -template -struct FinalUShortStruct_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct FinalUShortStruct_f -{ - typedef uint16_t FinalUShortStruct::* type; - friend constexpr type get( - FinalUShortStruct_f); }; -template struct FinalUShortStruct_rob; - -template -inline size_t constexpr FinalUShortStruct_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - /*! * @brief This class represents the TopicDataType of the type FinalUShortStruct defined by the user in the IDL file. @@ -263,18 +172,8 @@ class FinalUShortStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) - { - return is_plain_xcdrv2_impl(); - } - else - { - return is_plain_xcdrv1_impl(); - } - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -293,56 +192,8 @@ class FinalUShortStructPubSubType : public eprosima::fastdds::dds::TopicDataType eprosima::fastdds::MD5 md5_; unsigned char* key_buffer_; - - static constexpr bool is_plain_xcdrv1_impl() - { - return 2ULL == - (detail::FinalUShortStruct_offset_of() + - sizeof(uint16_t)); - } - - static constexpr bool is_plain_xcdrv2_impl() - { - return 2ULL == - (detail::FinalUShortStruct_offset_of() + - sizeof(uint16_t)); - } - -}; - - -#ifndef SWIG -namespace detail { - -template -struct FinalLongStruct_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - }; -struct FinalLongStruct_f -{ - typedef int32_t FinalLongStruct::* type; - friend constexpr type get( - FinalLongStruct_f); -}; - -template struct FinalLongStruct_rob; - -template -inline size_t constexpr FinalLongStruct_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - /*! * @brief This class represents the TopicDataType of the type FinalLongStruct defined by the user in the IDL file. @@ -399,18 +250,8 @@ class FinalLongStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) - { - return is_plain_xcdrv2_impl(); - } - else - { - return is_plain_xcdrv1_impl(); - } - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -429,57 +270,9 @@ class FinalLongStructPubSubType : public eprosima::fastdds::dds::TopicDataType eprosima::fastdds::MD5 md5_; unsigned char* key_buffer_; - - static constexpr bool is_plain_xcdrv1_impl() - { - return 4ULL == - (detail::FinalLongStruct_offset_of() + - sizeof(int32_t)); - } - - static constexpr bool is_plain_xcdrv2_impl() - { - return 4ULL == - (detail::FinalLongStruct_offset_of() + - sizeof(int32_t)); - } - }; -#ifndef SWIG -namespace detail { - -template -struct FinalULongStruct_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct FinalULongStruct_f -{ - typedef uint32_t FinalULongStruct::* type; - friend constexpr type get( - FinalULongStruct_f); -}; - -template struct FinalULongStruct_rob; - -template -inline size_t constexpr FinalULongStruct_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - /*! * @brief This class represents the TopicDataType of the type FinalULongStruct defined by the user in the IDL file. * @ingroup final @@ -535,18 +328,8 @@ class FinalULongStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) - { - return is_plain_xcdrv2_impl(); - } - else - { - return is_plain_xcdrv1_impl(); - } - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -565,57 +348,9 @@ class FinalULongStructPubSubType : public eprosima::fastdds::dds::TopicDataType eprosima::fastdds::MD5 md5_; unsigned char* key_buffer_; - - static constexpr bool is_plain_xcdrv1_impl() - { - return 4ULL == - (detail::FinalULongStruct_offset_of() + - sizeof(uint32_t)); - } - - static constexpr bool is_plain_xcdrv2_impl() - { - return 4ULL == - (detail::FinalULongStruct_offset_of() + - sizeof(uint32_t)); - } - }; -#ifndef SWIG -namespace detail { - -template -struct FinalLongLongStruct_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct FinalLongLongStruct_f -{ - typedef int64_t FinalLongLongStruct::* type; - friend constexpr type get( - FinalLongLongStruct_f); -}; - -template struct FinalLongLongStruct_rob; - -template -inline size_t constexpr FinalLongLongStruct_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - /*! * @brief This class represents the TopicDataType of the type FinalLongLongStruct defined by the user in the IDL file. * @ingroup final @@ -671,18 +406,8 @@ class FinalLongLongStructPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) - { - return is_plain_xcdrv2_impl(); - } - else - { - return is_plain_xcdrv1_impl(); - } - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -701,57 +426,9 @@ class FinalLongLongStructPubSubType : public eprosima::fastdds::dds::TopicDataTy eprosima::fastdds::MD5 md5_; unsigned char* key_buffer_; - - static constexpr bool is_plain_xcdrv1_impl() - { - return 8ULL == - (detail::FinalLongLongStruct_offset_of() + - sizeof(int64_t)); - } - - static constexpr bool is_plain_xcdrv2_impl() - { - return 8ULL == - (detail::FinalLongLongStruct_offset_of() + - sizeof(int64_t)); - } - }; -#ifndef SWIG -namespace detail { - -template -struct FinalULongLongStruct_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct FinalULongLongStruct_f -{ - typedef uint64_t FinalULongLongStruct::* type; - friend constexpr type get( - FinalULongLongStruct_f); -}; - -template struct FinalULongLongStruct_rob; - -template -inline size_t constexpr FinalULongLongStruct_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - /*! * @brief This class represents the TopicDataType of the type FinalULongLongStruct defined by the user in the IDL file. * @ingroup final @@ -807,18 +484,8 @@ class FinalULongLongStructPubSubType : public eprosima::fastdds::dds::TopicDataT #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) - { - return is_plain_xcdrv2_impl(); - } - else - { - return is_plain_xcdrv1_impl(); - } - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -837,57 +504,9 @@ class FinalULongLongStructPubSubType : public eprosima::fastdds::dds::TopicDataT eprosima::fastdds::MD5 md5_; unsigned char* key_buffer_; - - static constexpr bool is_plain_xcdrv1_impl() - { - return 8ULL == - (detail::FinalULongLongStruct_offset_of() + - sizeof(uint64_t)); - } - - static constexpr bool is_plain_xcdrv2_impl() - { - return 8ULL == - (detail::FinalULongLongStruct_offset_of() + - sizeof(uint64_t)); - } - }; -#ifndef SWIG -namespace detail { - -template -struct FinalFloatStruct_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct FinalFloatStruct_f -{ - typedef float FinalFloatStruct::* type; - friend constexpr type get( - FinalFloatStruct_f); -}; - -template struct FinalFloatStruct_rob; - -template -inline size_t constexpr FinalFloatStruct_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - /*! * @brief This class represents the TopicDataType of the type FinalFloatStruct defined by the user in the IDL file. * @ingroup final @@ -943,18 +562,8 @@ class FinalFloatStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) - { - return is_plain_xcdrv2_impl(); - } - else - { - return is_plain_xcdrv1_impl(); - } - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -973,56 +582,8 @@ class FinalFloatStructPubSubType : public eprosima::fastdds::dds::TopicDataType eprosima::fastdds::MD5 md5_; unsigned char* key_buffer_; - - static constexpr bool is_plain_xcdrv1_impl() - { - return 4ULL == - (detail::FinalFloatStruct_offset_of() + - sizeof(float)); - } - - static constexpr bool is_plain_xcdrv2_impl() - { - return 4ULL == - (detail::FinalFloatStruct_offset_of() + - sizeof(float)); - } - -}; - - -#ifndef SWIG -namespace detail { - -template -struct FinalDoubleStruct_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - }; -struct FinalDoubleStruct_f -{ - typedef double FinalDoubleStruct::* type; - friend constexpr type get( - FinalDoubleStruct_f); -}; - -template struct FinalDoubleStruct_rob; - -template -inline size_t constexpr FinalDoubleStruct_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - /*! * @brief This class represents the TopicDataType of the type FinalDoubleStruct defined by the user in the IDL file. @@ -1079,18 +640,8 @@ class FinalDoubleStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) - { - return is_plain_xcdrv2_impl(); - } - else - { - return is_plain_xcdrv1_impl(); - } - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1109,57 +660,9 @@ class FinalDoubleStructPubSubType : public eprosima::fastdds::dds::TopicDataType eprosima::fastdds::MD5 md5_; unsigned char* key_buffer_; - - static constexpr bool is_plain_xcdrv1_impl() - { - return 8ULL == - (detail::FinalDoubleStruct_offset_of() + - sizeof(double)); - } - - static constexpr bool is_plain_xcdrv2_impl() - { - return 8ULL == - (detail::FinalDoubleStruct_offset_of() + - sizeof(double)); - } - }; -#ifndef SWIG -namespace detail { - -template -struct FinalLongDoubleStruct_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct FinalLongDoubleStruct_f -{ - typedef long double FinalLongDoubleStruct::* type; - friend constexpr type get( - FinalLongDoubleStruct_f); -}; - -template struct FinalLongDoubleStruct_rob; - -template -inline size_t constexpr FinalLongDoubleStruct_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - /*! * @brief This class represents the TopicDataType of the type FinalLongDoubleStruct defined by the user in the IDL file. * @ingroup final @@ -1215,18 +718,8 @@ class FinalLongDoubleStructPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) - { - return is_plain_xcdrv2_impl(); - } - else - { - return is_plain_xcdrv1_impl(); - } - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1245,57 +738,9 @@ class FinalLongDoubleStructPubSubType : public eprosima::fastdds::dds::TopicData eprosima::fastdds::MD5 md5_; unsigned char* key_buffer_; - - static constexpr bool is_plain_xcdrv1_impl() - { - return 16ULL == - (detail::FinalLongDoubleStruct_offset_of() + - sizeof(long double)); - } - - static constexpr bool is_plain_xcdrv2_impl() - { - return 16ULL == - (detail::FinalLongDoubleStruct_offset_of() + - sizeof(long double)); - } - }; -#ifndef SWIG -namespace detail { - -template -struct FinalBooleanStruct_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct FinalBooleanStruct_f -{ - typedef bool FinalBooleanStruct::* type; - friend constexpr type get( - FinalBooleanStruct_f); -}; - -template struct FinalBooleanStruct_rob; - -template -inline size_t constexpr FinalBooleanStruct_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - /*! * @brief This class represents the TopicDataType of the type FinalBooleanStruct defined by the user in the IDL file. * @ingroup final @@ -1351,18 +796,8 @@ class FinalBooleanStructPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) - { - return is_plain_xcdrv2_impl(); - } - else - { - return is_plain_xcdrv1_impl(); - } - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1381,57 +816,9 @@ class FinalBooleanStructPubSubType : public eprosima::fastdds::dds::TopicDataTyp eprosima::fastdds::MD5 md5_; unsigned char* key_buffer_; - - static constexpr bool is_plain_xcdrv1_impl() - { - return 1ULL == - (detail::FinalBooleanStruct_offset_of() + - sizeof(bool)); - } - - static constexpr bool is_plain_xcdrv2_impl() - { - return 1ULL == - (detail::FinalBooleanStruct_offset_of() + - sizeof(bool)); - } - }; -#ifndef SWIG -namespace detail { - -template -struct FinalOctetStruct_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct FinalOctetStruct_f -{ - typedef uint8_t FinalOctetStruct::* type; - friend constexpr type get( - FinalOctetStruct_f); -}; - -template struct FinalOctetStruct_rob; - -template -inline size_t constexpr FinalOctetStruct_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - /*! * @brief This class represents the TopicDataType of the type FinalOctetStruct defined by the user in the IDL file. * @ingroup final @@ -1487,18 +874,8 @@ class FinalOctetStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) - { - return is_plain_xcdrv2_impl(); - } - else - { - return is_plain_xcdrv1_impl(); - } - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1517,56 +894,8 @@ class FinalOctetStructPubSubType : public eprosima::fastdds::dds::TopicDataType eprosima::fastdds::MD5 md5_; unsigned char* key_buffer_; - - static constexpr bool is_plain_xcdrv1_impl() - { - return 1ULL == - (detail::FinalOctetStruct_offset_of() + - sizeof(uint8_t)); - } - - static constexpr bool is_plain_xcdrv2_impl() - { - return 1ULL == - (detail::FinalOctetStruct_offset_of() + - sizeof(uint8_t)); - } - -}; - - -#ifndef SWIG -namespace detail { - -template -struct FinalCharStruct_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct FinalCharStruct_f -{ - typedef char FinalCharStruct::* type; - friend constexpr type get( - FinalCharStruct_f); }; -template struct FinalCharStruct_rob; - -template -inline size_t constexpr FinalCharStruct_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - /*! * @brief This class represents the TopicDataType of the type FinalCharStruct defined by the user in the IDL file. @@ -1623,18 +952,8 @@ class FinalCharStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) - { - return is_plain_xcdrv2_impl(); - } - else - { - return is_plain_xcdrv1_impl(); - } - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1653,56 +972,8 @@ class FinalCharStructPubSubType : public eprosima::fastdds::dds::TopicDataType eprosima::fastdds::MD5 md5_; unsigned char* key_buffer_; - - static constexpr bool is_plain_xcdrv1_impl() - { - return 1ULL == - (detail::FinalCharStruct_offset_of() + - sizeof(char)); - } - - static constexpr bool is_plain_xcdrv2_impl() - { - return 1ULL == - (detail::FinalCharStruct_offset_of() + - sizeof(char)); - } - -}; - - -#ifndef SWIG -namespace detail { - -template -struct FinalWCharStruct_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct FinalWCharStruct_f -{ - typedef wchar_t FinalWCharStruct::* type; - friend constexpr type get( - FinalWCharStruct_f); }; -template struct FinalWCharStruct_rob; - -template -inline size_t constexpr FinalWCharStruct_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - /*! * @brief This class represents the TopicDataType of the type FinalWCharStruct defined by the user in the IDL file. @@ -1759,18 +1030,8 @@ class FinalWCharStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) - { - return is_plain_xcdrv2_impl(); - } - else - { - return is_plain_xcdrv1_impl(); - } - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1789,21 +1050,6 @@ class FinalWCharStructPubSubType : public eprosima::fastdds::dds::TopicDataType eprosima::fastdds::MD5 md5_; unsigned char* key_buffer_; - - static constexpr bool is_plain_xcdrv1_impl() - { - return 2ULL == - (detail::FinalWCharStruct_offset_of() + - sizeof(wchar_t)); - } - - static constexpr bool is_plain_xcdrv2_impl() - { - return 2ULL == - (detail::FinalWCharStruct_offset_of() + - sizeof(wchar_t)); - } - }; @@ -1862,12 +1108,8 @@ class FinalUnionStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1944,18 +1186,8 @@ class FinalEmptyStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) - { - return is_plain_xcdrv2_impl(); - } - else - { - return is_plain_xcdrv1_impl(); - } - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1974,17 +1206,6 @@ class FinalEmptyStructPubSubType : public eprosima::fastdds::dds::TopicDataType eprosima::fastdds::MD5 md5_; unsigned char* key_buffer_; - - static constexpr bool is_plain_xcdrv1_impl() - { - return true; - } - - static constexpr bool is_plain_xcdrv2_impl() - { - return true; - } - }; @@ -2043,12 +1264,8 @@ class FinalEmptyInheritanceStructPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2125,12 +1342,8 @@ class FinalInheritanceStructPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2207,18 +1420,8 @@ class InheritanceEmptyStructPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) - { - return is_plain_xcdrv2_impl(); - } - else - { - return is_plain_xcdrv1_impl(); - } - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2237,57 +1440,9 @@ class InheritanceEmptyStructPubSubType : public eprosima::fastdds::dds::TopicDat eprosima::fastdds::MD5 md5_; unsigned char* key_buffer_; - - static constexpr bool is_plain_xcdrv1_impl() - { - return 2ULL == - (detail::FinalShortStruct_offset_of() + - sizeof(int16_t)); - } - - static constexpr bool is_plain_xcdrv2_impl() - { - return 2ULL == - (detail::FinalShortStruct_offset_of() + - sizeof(int16_t)); - } - }; -#ifndef SWIG -namespace detail { - -template -struct FinalExtensibilityInheritance_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct FinalExtensibilityInheritance_f -{ - typedef int32_t FinalExtensibilityInheritance::* type; - friend constexpr type get( - FinalExtensibilityInheritance_f); -}; - -template struct FinalExtensibilityInheritance_rob; - -template -inline size_t constexpr FinalExtensibilityInheritance_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - /*! * @brief This class represents the TopicDataType of the type FinalExtensibilityInheritance defined by the user in the IDL file. * @ingroup final @@ -2343,18 +1498,8 @@ class FinalExtensibilityInheritancePubSubType : public eprosima::fastdds::dds::T #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) - { - return is_plain_xcdrv2_impl(); - } - else - { - return is_plain_xcdrv1_impl(); - } - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2373,21 +1518,6 @@ class FinalExtensibilityInheritancePubSubType : public eprosima::fastdds::dds::T eprosima::fastdds::MD5 md5_; unsigned char* key_buffer_; - - static constexpr bool is_plain_xcdrv1_impl() - { - return 8ULL == - (detail::FinalExtensibilityInheritance_offset_of() + - sizeof(int32_t)); - } - - static constexpr bool is_plain_xcdrv2_impl() - { - return 8ULL == - (detail::FinalExtensibilityInheritance_offset_of() + - sizeof(int32_t)); - } - }; diff --git a/test/dds-types-test/helpers/basic_inner_types.hpp b/test/dds-types-test/helpers/basic_inner_types.hpp index 3a3c77a7814..e8651c9fbde 100644 --- a/test/dds-types-test/helpers/basic_inner_types.hpp +++ b/test/dds-types-test/helpers/basic_inner_types.hpp @@ -846,6 +846,326 @@ typedef InnerBitsetHelper inner_bitset_helper_alias; const std::string const_string = "AAA"; const std::wstring const_wstring = L"BBB"; +/*! + * @brief This class represents the structure InnerBasicPlainStructHelper defined by the user in the IDL file. + * @ingroup basic_inner_types + */ +class InnerBasicPlainStructHelper +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport InnerBasicPlainStructHelper() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~InnerBasicPlainStructHelper() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object InnerBasicPlainStructHelper that will be copied. + */ + eProsima_user_DllExport InnerBasicPlainStructHelper( + const InnerBasicPlainStructHelper& x) + { + m_field1 = x.m_field1; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object InnerBasicPlainStructHelper that will be copied. + */ + eProsima_user_DllExport InnerBasicPlainStructHelper( + InnerBasicPlainStructHelper&& x) noexcept + { + m_field1 = x.m_field1; + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object InnerBasicPlainStructHelper that will be copied. + */ + eProsima_user_DllExport InnerBasicPlainStructHelper& operator =( + const InnerBasicPlainStructHelper& x) + { + + m_field1 = x.m_field1; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object InnerBasicPlainStructHelper that will be copied. + */ + eProsima_user_DllExport InnerBasicPlainStructHelper& operator =( + InnerBasicPlainStructHelper&& x) noexcept + { + + m_field1 = x.m_field1; + return *this; + } + + /*! + * @brief Comparison operator. + * @param x InnerBasicPlainStructHelper object to compare. + */ + eProsima_user_DllExport bool operator ==( + const InnerBasicPlainStructHelper& x) const + { + return (m_field1 == x.m_field1); + } + + /*! + * @brief Comparison operator. + * @param x InnerBasicPlainStructHelper object to compare. + */ + eProsima_user_DllExport bool operator !=( + const InnerBasicPlainStructHelper& x) const + { + return !(*this == x); + } + + /*! + * @brief This function sets a value in member field1 + * @param _field1 New value for member field1 + */ + eProsima_user_DllExport void field1( + int32_t _field1) + { + m_field1 = _field1; + } + + /*! + * @brief This function returns the value of member field1 + * @return Value of member field1 + */ + eProsima_user_DllExport int32_t field1() const + { + return m_field1; + } + + /*! + * @brief This function returns a reference to member field1 + * @return Reference to member field1 + */ + eProsima_user_DllExport int32_t& field1() + { + return m_field1; + } + + + +private: + + int32_t m_field1{0}; + +}; +/*! + * @brief This class represents the structure InnerPlainStructHelper defined by the user in the IDL file. + * @ingroup basic_inner_types + */ +class InnerPlainStructHelper +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport InnerPlainStructHelper() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~InnerPlainStructHelper() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object InnerPlainStructHelper that will be copied. + */ + eProsima_user_DllExport InnerPlainStructHelper( + const InnerPlainStructHelper& x) + { + m_field1 = x.m_field1; + + m_field2 = x.m_field2; + + m_field3 = x.m_field3; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object InnerPlainStructHelper that will be copied. + */ + eProsima_user_DllExport InnerPlainStructHelper( + InnerPlainStructHelper&& x) noexcept + { + m_field1 = x.m_field1; + m_field2 = x.m_field2; + m_field3 = x.m_field3; + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object InnerPlainStructHelper that will be copied. + */ + eProsima_user_DllExport InnerPlainStructHelper& operator =( + const InnerPlainStructHelper& x) + { + + m_field1 = x.m_field1; + + m_field2 = x.m_field2; + + m_field3 = x.m_field3; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object InnerPlainStructHelper that will be copied. + */ + eProsima_user_DllExport InnerPlainStructHelper& operator =( + InnerPlainStructHelper&& x) noexcept + { + + m_field1 = x.m_field1; + m_field2 = x.m_field2; + m_field3 = x.m_field3; + return *this; + } + + /*! + * @brief Comparison operator. + * @param x InnerPlainStructHelper object to compare. + */ + eProsima_user_DllExport bool operator ==( + const InnerPlainStructHelper& x) const + { + return (m_field1 == x.m_field1 && + m_field2 == x.m_field2 && + m_field3 == x.m_field3); + } + + /*! + * @brief Comparison operator. + * @param x InnerPlainStructHelper object to compare. + */ + eProsima_user_DllExport bool operator !=( + const InnerPlainStructHelper& x) const + { + return !(*this == x); + } + + /*! + * @brief This function sets a value in member field1 + * @param _field1 New value for member field1 + */ + eProsima_user_DllExport void field1( + bool _field1) + { + m_field1 = _field1; + } + + /*! + * @brief This function returns the value of member field1 + * @return Value of member field1 + */ + eProsima_user_DllExport bool field1() const + { + return m_field1; + } + + /*! + * @brief This function returns a reference to member field1 + * @return Reference to member field1 + */ + eProsima_user_DllExport bool& field1() + { + return m_field1; + } + + + /*! + * @brief This function sets a value in member field2 + * @param _field2 New value for member field2 + */ + eProsima_user_DllExport void field2( + int32_t _field2) + { + m_field2 = _field2; + } + + /*! + * @brief This function returns the value of member field2 + * @return Value of member field2 + */ + eProsima_user_DllExport int32_t field2() const + { + return m_field2; + } + + /*! + * @brief This function returns a reference to member field2 + * @return Reference to member field2 + */ + eProsima_user_DllExport int32_t& field2() + { + return m_field2; + } + + + /*! + * @brief This function sets a value in member field3 + * @param _field3 New value for member field3 + */ + eProsima_user_DllExport void field3( + float _field3) + { + m_field3 = _field3; + } + + /*! + * @brief This function returns the value of member field3 + * @return Value of member field3 + */ + eProsima_user_DllExport float field3() const + { + return m_field3; + } + + /*! + * @brief This function returns a reference to member field3 + * @return Reference to member field3 + */ + eProsima_user_DllExport float& field3() + { + return m_field3; + } + + + +private: + + bool m_field1{false}; + int32_t m_field2{0}; + float m_field3{0.0}; + +}; #endif // _FAST_DDS_GENERATED_BASIC_INNER_TYPES_HPP_ diff --git a/test/dds-types-test/helpers/basic_inner_typesCdrAux.hpp b/test/dds-types-test/helpers/basic_inner_typesCdrAux.hpp index caea5415d5a..30626dec693 100644 --- a/test/dds-types-test/helpers/basic_inner_typesCdrAux.hpp +++ b/test/dds-types-test/helpers/basic_inner_typesCdrAux.hpp @@ -27,6 +27,9 @@ constexpr uint32_t InnerStructureHelper_max_cdr_typesize {12UL}; constexpr uint32_t InnerStructureHelper_max_key_cdr_typesize {0UL}; +constexpr uint32_t InnerPlainStructHelper_max_cdr_typesize {12UL}; +constexpr uint32_t InnerPlainStructHelper_max_key_cdr_typesize {0UL}; + constexpr uint32_t InnerEmptyStructureHelper_max_cdr_typesize {4UL}; constexpr uint32_t InnerEmptyStructureHelper_max_key_cdr_typesize {0UL}; @@ -34,6 +37,9 @@ constexpr uint32_t InnerEmptyStructureHelper_max_key_cdr_typesize {0UL}; +constexpr uint32_t InnerBasicPlainStructHelper_max_cdr_typesize {4UL}; +constexpr uint32_t InnerBasicPlainStructHelper_max_key_cdr_typesize {0UL}; + @@ -53,11 +59,87 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const InnerStructureHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const InnerEmptyStructureHelper& data); +eProsima_user_DllExport void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const InnerBasicPlainStructHelper& data); + +#ifndef SWIG +namespace detail { + +template +struct InnerBasicPlainStructHelper_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct InnerBasicPlainStructHelper_f +{ + typedef int32_t InnerBasicPlainStructHelper::* type; + friend constexpr type get( + InnerBasicPlainStructHelper_f); +}; + +template struct InnerBasicPlainStructHelper_rob; + +template +inline std::size_t constexpr InnerBasicPlainStructHelper_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + +eProsima_user_DllExport void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const InnerPlainStructHelper& data); + +#ifndef SWIG +namespace detail { + +template +struct InnerPlainStructHelper_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct InnerPlainStructHelper_f +{ + typedef float InnerPlainStructHelper::* type; + friend constexpr type get( + InnerPlainStructHelper_f); +}; + +template struct InnerPlainStructHelper_rob; + +template +inline std::size_t constexpr InnerPlainStructHelper_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/helpers/basic_inner_typesCdrAux.ipp b/test/dds-types-test/helpers/basic_inner_typesCdrAux.ipp index 150fcbb544d..acd6687fcf3 100644 --- a/test/dds-types-test/helpers/basic_inner_typesCdrAux.ipp +++ b/test/dds-types-test/helpers/basic_inner_typesCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_InnerStructureHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -80,6 +89,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerStructureHelper_cdr_plain(data_representation) && + sizeof(InnerStructureHelper) == InnerStructureHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(InnerStructureHelper)); + + scdr.jump((array_size -1) * sizeof(InnerStructureHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -109,6 +156,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerStructureHelper_cdr_plain(data_representation) && + sizeof(InnerStructureHelper) == InnerStructureHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(InnerStructureHelper)); + + scdr.jump((array_size - 1) * sizeof(InnerStructureHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const InnerStructureHelper& data) @@ -123,6 +206,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_InnerEmptyStructureHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -161,6 +252,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerEmptyStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerEmptyStructureHelper_cdr_plain(data_representation) && + sizeof(InnerEmptyStructureHelper) == InnerEmptyStructureHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(InnerEmptyStructureHelper)); + + scdr.jump((array_size -1) * sizeof(InnerEmptyStructureHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -178,6 +307,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerEmptyStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerEmptyStructureHelper_cdr_plain(data_representation) && + sizeof(InnerEmptyStructureHelper) == InnerEmptyStructureHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(InnerEmptyStructureHelper)); + + scdr.jump((array_size - 1) * sizeof(InnerEmptyStructureHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const InnerEmptyStructureHelper& data) @@ -263,6 +428,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -330,6 +508,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -366,6 +557,19 @@ eProsima_user_DllExport void serialize( scdr << bitset; } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of bitsets not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& dcdr, @@ -392,6 +596,381 @@ eProsima_user_DllExport void deserialize( } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of bitsets not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_InnerBasicPlainStructHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 4ULL == + (detail::InnerBasicPlainStructHelper_offset_of() + + sizeof(int32_t)); + } + else + { + return 4ULL == + (detail::InnerBasicPlainStructHelper_offset_of() + + sizeof(int32_t)); + } +} + +template<> +eProsima_user_DllExport size_t calculate_serialized_size( + eprosima::fastcdr::CdrSizeCalculator& calculator, + const InnerBasicPlainStructHelper& data, + size_t& current_alignment) +{ + static_cast(data); + + eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); + size_t calculated_size {calculator.begin_calculate_type_serialized_size( + eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + current_alignment)}; + + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0), + data.field1(), current_alignment); + + + calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); + + return calculated_size; +} + +template<> +eProsima_user_DllExport void serialize( + eprosima::fastcdr::Cdr& scdr, + const InnerBasicPlainStructHelper& data) +{ + eprosima::fastcdr::Cdr::state current_state(scdr); + scdr.begin_serialize_type(current_state, + eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); + + scdr + << eprosima::fastcdr::MemberId(0) << data.field1() +; + scdr.end_serialize_type(current_state); +} + +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerBasicPlainStructHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerBasicPlainStructHelper_cdr_plain(data_representation) && + sizeof(InnerBasicPlainStructHelper) == InnerBasicPlainStructHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(InnerBasicPlainStructHelper)); + + scdr.jump((array_size -1) * sizeof(InnerBasicPlainStructHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, + InnerBasicPlainStructHelper& data) +{ + cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool + { + bool ret_value = true; + switch (mid.id) + { + case 0: + dcdr >> data.field1(); + break; + + default: + ret_value = false; + break; + } + return ret_value; + }); +} + +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerBasicPlainStructHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerBasicPlainStructHelper_cdr_plain(data_representation) && + sizeof(InnerBasicPlainStructHelper) == InnerBasicPlainStructHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(InnerBasicPlainStructHelper)); + + scdr.jump((array_size - 1) * sizeof(InnerBasicPlainStructHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const InnerBasicPlainStructHelper& data) +{ + + static_cast(scdr); + static_cast(data); + scdr << data.field1(); + +} + + + +eProsima_user_DllExport bool is_InnerPlainStructHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 12ULL == + (detail::InnerPlainStructHelper_offset_of() + + sizeof(float)); + } + else + { + return 12ULL == + (detail::InnerPlainStructHelper_offset_of() + + sizeof(float)); + } +} + +template<> +eProsima_user_DllExport size_t calculate_serialized_size( + eprosima::fastcdr::CdrSizeCalculator& calculator, + const InnerPlainStructHelper& data, + size_t& current_alignment) +{ + static_cast(data); + + eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); + size_t calculated_size {calculator.begin_calculate_type_serialized_size( + eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + current_alignment)}; + + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0), + data.field1(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(1), + data.field2(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(2), + data.field3(), current_alignment); + + + calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); + + return calculated_size; +} + +template<> +eProsima_user_DllExport void serialize( + eprosima::fastcdr::Cdr& scdr, + const InnerPlainStructHelper& data) +{ + eprosima::fastcdr::Cdr::state current_state(scdr); + scdr.begin_serialize_type(current_state, + eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); + + scdr + << eprosima::fastcdr::MemberId(0) << data.field1() + << eprosima::fastcdr::MemberId(1) << data.field2() + << eprosima::fastcdr::MemberId(2) << data.field3() +; + scdr.end_serialize_type(current_state); +} + +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerPlainStructHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerPlainStructHelper_cdr_plain(data_representation) && + sizeof(InnerPlainStructHelper) == InnerPlainStructHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(InnerPlainStructHelper)); + + scdr.jump((array_size -1) * sizeof(InnerPlainStructHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, + InnerPlainStructHelper& data) +{ + cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool + { + bool ret_value = true; + switch (mid.id) + { + case 0: + dcdr >> data.field1(); + break; + + case 1: + dcdr >> data.field2(); + break; + + case 2: + dcdr >> data.field3(); + break; + + default: + ret_value = false; + break; + } + return ret_value; + }); +} + +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerPlainStructHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerPlainStructHelper_cdr_plain(data_representation) && + sizeof(InnerPlainStructHelper) == InnerPlainStructHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(InnerPlainStructHelper)); + + scdr.jump((array_size - 1) * sizeof(InnerPlainStructHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const InnerPlainStructHelper& data) +{ + + static_cast(scdr); + static_cast(data); + scdr << data.field1(); + + scdr << data.field2(); + + scdr << data.field3(); + +} + + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/helpers/basic_inner_typesPubSubTypes.cxx b/test/dds-types-test/helpers/basic_inner_typesPubSubTypes.cxx index 3fd1239fc93..6cbf2bc018d 100644 --- a/test/dds-types-test/helpers/basic_inner_typesPubSubTypes.cxx +++ b/test/dds-types-test/helpers/basic_inner_typesPubSubTypes.cxx @@ -31,6 +31,421 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_InnerStructureHelper_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_InnerPlainStructHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_InnerEmptyStructureHelper_cdr_plain( + DataRepresentationId_t data_representation); + + + + + +bool is_InnerBasicPlainStructHelper_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + + + +} // namespace fastcdr +} // namespace eprosima + +InnerBasicPlainStructHelperPubSubType::InnerBasicPlainStructHelperPubSubType() +{ + set_name("InnerBasicPlainStructHelper"); + uint32_t type_size = InnerBasicPlainStructHelper_max_cdr_typesize; + type_size += static_cast(eprosima::fastcdr::Cdr::alignment(type_size, 4)); /* possible submessage alignment */ + max_serialized_type_size = type_size + 4; /*encapsulation*/ + is_compute_key_provided = false; + uint32_t key_length = InnerBasicPlainStructHelper_max_key_cdr_typesize > 16 ? InnerBasicPlainStructHelper_max_key_cdr_typesize : 16; + key_buffer_ = reinterpret_cast(malloc(key_length)); + memset(key_buffer_, 0, key_length); +} + +InnerBasicPlainStructHelperPubSubType::~InnerBasicPlainStructHelperPubSubType() +{ + if (key_buffer_ != nullptr) + { + free(key_buffer_); + } +} + +bool InnerBasicPlainStructHelperPubSubType::serialize( + const void* const data, + SerializedPayload_t& payload, + DataRepresentationId_t data_representation) +{ + const ::InnerBasicPlainStructHelper* p_type = static_cast(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.max_size); + // Object that serializes the data. + eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN, + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::CdrVersion::XCDRv1 : eprosima::fastcdr::CdrVersion::XCDRv2); + payload.encapsulation = ser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE; + ser.set_encoding_flag( + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2); + + try + { + // Serialize encapsulation + ser.serialize_encapsulation(); + // Serialize the object. + ser << *p_type; + ser.set_dds_cdr_options({0,0}); + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return false; + } + + // Get the serialized length + payload.length = static_cast(ser.get_serialized_data_length()); + return true; +} + +bool InnerBasicPlainStructHelperPubSubType::deserialize( + SerializedPayload_t& payload, + void* data) +{ + try + { + // Convert DATA to pointer of your type + ::InnerBasicPlainStructHelper* p_type = static_cast<::InnerBasicPlainStructHelper*>(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.length); + + // Object that deserializes the data. + eprosima::fastcdr::Cdr deser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN); + + // Deserialize encapsulation. + deser.read_encapsulation(); + payload.encapsulation = deser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE; + + // Deserialize the object. + deser >> *p_type; + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return false; + } + + return true; +} + +uint32_t InnerBasicPlainStructHelperPubSubType::calculate_serialized_size( + const void* const data, + DataRepresentationId_t data_representation) +{ + try + { + eprosima::fastcdr::CdrSizeCalculator calculator( + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::CdrVersion::XCDRv1 :eprosima::fastcdr::CdrVersion::XCDRv2); + size_t current_alignment {0}; + return static_cast(calculator.calculate_serialized_size( + *static_cast(data), current_alignment)) + + 4u /*encapsulation*/; + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return 0; + } +} + +void* InnerBasicPlainStructHelperPubSubType::create_data() +{ + return reinterpret_cast(new ::InnerBasicPlainStructHelper()); +} + +void InnerBasicPlainStructHelperPubSubType::delete_data( + void* data) +{ + delete(reinterpret_cast<::InnerBasicPlainStructHelper*>(data)); +} + +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool InnerBasicPlainStructHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_InnerBasicPlainStructHelper_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + +bool InnerBasicPlainStructHelperPubSubType::compute_key( + SerializedPayload_t& payload, + InstanceHandle_t& handle, + bool force_md5) +{ + if (!is_compute_key_provided) + { + return false; + } + + ::InnerBasicPlainStructHelper data; + if (deserialize(payload, static_cast(&data))) + { + return compute_key(static_cast(&data), handle, force_md5); + } + + return false; +} + +bool InnerBasicPlainStructHelperPubSubType::compute_key( + const void* const data, + InstanceHandle_t& handle, + bool force_md5) +{ + if (!is_compute_key_provided) + { + return false; + } + + const ::InnerBasicPlainStructHelper* p_type = static_cast(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(key_buffer_), + InnerBasicPlainStructHelper_max_key_cdr_typesize); + + // Object that serializes the data. + eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS, eprosima::fastcdr::CdrVersion::XCDRv2); + ser.set_encoding_flag(eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2); + eprosima::fastcdr::serialize_key(ser, *p_type); + if (force_md5 || InnerBasicPlainStructHelper_max_key_cdr_typesize > 16) + { + md5_.init(); + md5_.update(key_buffer_, static_cast(ser.get_serialized_data_length())); + md5_.finalize(); + for (uint8_t i = 0; i < 16; ++i) + { + handle.value[i] = md5_.digest[i]; + } + } + else + { + for (uint8_t i = 0; i < 16; ++i) + { + handle.value[i] = key_buffer_[i]; + } + } + return true; +} + +void InnerBasicPlainStructHelperPubSubType::register_type_object_representation() +{ + register_InnerBasicPlainStructHelper_type_identifier(type_identifiers_); +} + +InnerPlainStructHelperPubSubType::InnerPlainStructHelperPubSubType() +{ + set_name("InnerPlainStructHelper"); + uint32_t type_size = InnerPlainStructHelper_max_cdr_typesize; + type_size += static_cast(eprosima::fastcdr::Cdr::alignment(type_size, 4)); /* possible submessage alignment */ + max_serialized_type_size = type_size + 4; /*encapsulation*/ + is_compute_key_provided = false; + uint32_t key_length = InnerPlainStructHelper_max_key_cdr_typesize > 16 ? InnerPlainStructHelper_max_key_cdr_typesize : 16; + key_buffer_ = reinterpret_cast(malloc(key_length)); + memset(key_buffer_, 0, key_length); +} + +InnerPlainStructHelperPubSubType::~InnerPlainStructHelperPubSubType() +{ + if (key_buffer_ != nullptr) + { + free(key_buffer_); + } +} + +bool InnerPlainStructHelperPubSubType::serialize( + const void* const data, + SerializedPayload_t& payload, + DataRepresentationId_t data_representation) +{ + const ::InnerPlainStructHelper* p_type = static_cast(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.max_size); + // Object that serializes the data. + eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN, + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::CdrVersion::XCDRv1 : eprosima::fastcdr::CdrVersion::XCDRv2); + payload.encapsulation = ser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE; + ser.set_encoding_flag( + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2); + + try + { + // Serialize encapsulation + ser.serialize_encapsulation(); + // Serialize the object. + ser << *p_type; + ser.set_dds_cdr_options({0,0}); + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return false; + } + + // Get the serialized length + payload.length = static_cast(ser.get_serialized_data_length()); + return true; +} + +bool InnerPlainStructHelperPubSubType::deserialize( + SerializedPayload_t& payload, + void* data) +{ + try + { + // Convert DATA to pointer of your type + ::InnerPlainStructHelper* p_type = static_cast<::InnerPlainStructHelper*>(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.length); + + // Object that deserializes the data. + eprosima::fastcdr::Cdr deser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN); + + // Deserialize encapsulation. + deser.read_encapsulation(); + payload.encapsulation = deser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE; + + // Deserialize the object. + deser >> *p_type; + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return false; + } + + return true; +} + +uint32_t InnerPlainStructHelperPubSubType::calculate_serialized_size( + const void* const data, + DataRepresentationId_t data_representation) +{ + try + { + eprosima::fastcdr::CdrSizeCalculator calculator( + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::CdrVersion::XCDRv1 :eprosima::fastcdr::CdrVersion::XCDRv2); + size_t current_alignment {0}; + return static_cast(calculator.calculate_serialized_size( + *static_cast(data), current_alignment)) + + 4u /*encapsulation*/; + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return 0; + } +} + +void* InnerPlainStructHelperPubSubType::create_data() +{ + return reinterpret_cast(new ::InnerPlainStructHelper()); +} + +void InnerPlainStructHelperPubSubType::delete_data( + void* data) +{ + delete(reinterpret_cast<::InnerPlainStructHelper*>(data)); +} + +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool InnerPlainStructHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_InnerPlainStructHelper_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + +bool InnerPlainStructHelperPubSubType::compute_key( + SerializedPayload_t& payload, + InstanceHandle_t& handle, + bool force_md5) +{ + if (!is_compute_key_provided) + { + return false; + } + + ::InnerPlainStructHelper data; + if (deserialize(payload, static_cast(&data))) + { + return compute_key(static_cast(&data), handle, force_md5); + } + + return false; +} + +bool InnerPlainStructHelperPubSubType::compute_key( + const void* const data, + InstanceHandle_t& handle, + bool force_md5) +{ + if (!is_compute_key_provided) + { + return false; + } + + const ::InnerPlainStructHelper* p_type = static_cast(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(key_buffer_), + InnerPlainStructHelper_max_key_cdr_typesize); + + // Object that serializes the data. + eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS, eprosima::fastcdr::CdrVersion::XCDRv2); + ser.set_encoding_flag(eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2); + eprosima::fastcdr::serialize_key(ser, *p_type); + if (force_md5 || InnerPlainStructHelper_max_key_cdr_typesize > 16) + { + md5_.init(); + md5_.update(key_buffer_, static_cast(ser.get_serialized_data_length())); + md5_.finalize(); + for (uint8_t i = 0; i < 16; ++i) + { + handle.value[i] = md5_.digest[i]; + } + } + else + { + for (uint8_t i = 0; i < 16; ++i) + { + handle.value[i] = key_buffer_[i]; + } + } + return true; +} + +void InnerPlainStructHelperPubSubType::register_type_object_representation() +{ + register_InnerPlainStructHelper_type_identifier(type_identifiers_); +} + // Include auxiliary functions like for serializing/deserializing. #include "basic_inner_typesCdrAux.ipp" diff --git a/test/dds-types-test/helpers/basic_inner_typesPubSubTypes.hpp b/test/dds-types-test/helpers/basic_inner_typesPubSubTypes.hpp index b5d7cec2899..ed9ab432411 100644 --- a/test/dds-types-test/helpers/basic_inner_typesPubSubTypes.hpp +++ b/test/dds-types-test/helpers/basic_inner_typesPubSubTypes.hpp @@ -46,5 +46,161 @@ typedef std::map Inner_alias_map_helper; typedef InnerStructureHelper inner_structure_helper_alias; typedef InnerBitsetHelper inner_bitset_helper_alias; +/*! + * @brief This class represents the TopicDataType of the type InnerBasicPlainStructHelper defined by the user in the IDL file. + * @ingroup basic_inner_types + */ +class InnerBasicPlainStructHelperPubSubType : public eprosima::fastdds::dds::TopicDataType +{ +public: + + typedef ::InnerBasicPlainStructHelper type; + + eProsima_user_DllExport InnerBasicPlainStructHelperPubSubType(); + + eProsima_user_DllExport ~InnerBasicPlainStructHelperPubSubType() override; + + eProsima_user_DllExport bool serialize( + const void* const data, + eprosima::fastdds::rtps::SerializedPayload_t& payload, + eprosima::fastdds::dds::DataRepresentationId_t data_representation) override; + + eProsima_user_DllExport bool deserialize( + eprosima::fastdds::rtps::SerializedPayload_t& payload, + void* data) override; + + eProsima_user_DllExport uint32_t calculate_serialized_size( + const void* const data, + eprosima::fastdds::dds::DataRepresentationId_t data_representation) override; + + eProsima_user_DllExport bool compute_key( + eprosima::fastdds::rtps::SerializedPayload_t& payload, + eprosima::fastdds::rtps::InstanceHandle_t& ihandle, + bool force_md5 = false) override; + + eProsima_user_DllExport bool compute_key( + const void* const data, + eprosima::fastdds::rtps::InstanceHandle_t& ihandle, + bool force_md5 = false) override; + + eProsima_user_DllExport void* create_data() override; + + eProsima_user_DllExport void delete_data( + void* data) override; + + //Register TypeObject representation in Fast DDS TypeObjectRegistry + eProsima_user_DllExport void register_type_object_representation() override; + +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_BOUNDED + eProsima_user_DllExport inline bool is_bounded() const override + { + return true; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_BOUNDED + +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + +#ifdef TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE + eProsima_user_DllExport inline bool construct_sample( + void* memory) const override + { + new (memory) InnerBasicPlainStructHelper(); + return true; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE + +private: + + eprosima::fastdds::MD5 md5_; + unsigned char* key_buffer_; + +}; + + +/*! + * @brief This class represents the TopicDataType of the type InnerPlainStructHelper defined by the user in the IDL file. + * @ingroup basic_inner_types + */ +class InnerPlainStructHelperPubSubType : public eprosima::fastdds::dds::TopicDataType +{ +public: + + typedef ::InnerPlainStructHelper type; + + eProsima_user_DllExport InnerPlainStructHelperPubSubType(); + + eProsima_user_DllExport ~InnerPlainStructHelperPubSubType() override; + + eProsima_user_DllExport bool serialize( + const void* const data, + eprosima::fastdds::rtps::SerializedPayload_t& payload, + eprosima::fastdds::dds::DataRepresentationId_t data_representation) override; + + eProsima_user_DllExport bool deserialize( + eprosima::fastdds::rtps::SerializedPayload_t& payload, + void* data) override; + + eProsima_user_DllExport uint32_t calculate_serialized_size( + const void* const data, + eprosima::fastdds::dds::DataRepresentationId_t data_representation) override; + + eProsima_user_DllExport bool compute_key( + eprosima::fastdds::rtps::SerializedPayload_t& payload, + eprosima::fastdds::rtps::InstanceHandle_t& ihandle, + bool force_md5 = false) override; + + eProsima_user_DllExport bool compute_key( + const void* const data, + eprosima::fastdds::rtps::InstanceHandle_t& ihandle, + bool force_md5 = false) override; + + eProsima_user_DllExport void* create_data() override; + + eProsima_user_DllExport void delete_data( + void* data) override; + + //Register TypeObject representation in Fast DDS TypeObjectRegistry + eProsima_user_DllExport void register_type_object_representation() override; + +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_BOUNDED + eProsima_user_DllExport inline bool is_bounded() const override + { + return true; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_BOUNDED + +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + +#ifdef TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE + eProsima_user_DllExport inline bool construct_sample( + void* memory) const override + { + new (memory) InnerPlainStructHelper(); + return true; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE + +private: + + eprosima::fastdds::MD5 md5_; + unsigned char* key_buffer_; + +}; + + #endif // FAST_DDS_GENERATED__BASIC_INNER_TYPES_PUBSUBTYPES_HPP diff --git a/test/dds-types-test/helpers/basic_inner_typesTypeObjectSupport.cxx b/test/dds-types-test/helpers/basic_inner_typesTypeObjectSupport.cxx index 193f87c7f54..2c2c815d5bd 100644 --- a/test/dds-types-test/helpers/basic_inner_typesTypeObjectSupport.cxx +++ b/test/dds-types-test/helpers/basic_inner_typesTypeObjectSupport.cxx @@ -1187,4 +1187,194 @@ void register_inner_bitset_helper_alias_type_identifier( } } +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_InnerBasicPlainStructHelper_type_identifier( + TypeIdentifierPair& type_ids_InnerBasicPlainStructHelper) +{ + + ReturnCode_t return_code_InnerBasicPlainStructHelper {eprosima::fastdds::dds::RETCODE_OK}; + return_code_InnerBasicPlainStructHelper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "InnerBasicPlainStructHelper", type_ids_InnerBasicPlainStructHelper); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_InnerBasicPlainStructHelper) + { + StructTypeFlag struct_flags_InnerBasicPlainStructHelper = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::FINAL, + false, false); + QualifiedTypeName type_name_InnerBasicPlainStructHelper = "InnerBasicPlainStructHelper"; + eprosima::fastcdr::optional type_ann_builtin_InnerBasicPlainStructHelper; + eprosima::fastcdr::optional ann_custom_InnerBasicPlainStructHelper; + AppliedAnnotationSeq tmp_ann_custom_InnerBasicPlainStructHelper; + eprosima::fastcdr::optional verbatim_InnerBasicPlainStructHelper; + if (!tmp_ann_custom_InnerBasicPlainStructHelper.empty()) + { + ann_custom_InnerBasicPlainStructHelper = tmp_ann_custom_InnerBasicPlainStructHelper; + } + CompleteTypeDetail detail_InnerBasicPlainStructHelper = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_InnerBasicPlainStructHelper, ann_custom_InnerBasicPlainStructHelper, type_name_InnerBasicPlainStructHelper.to_string()); + CompleteStructHeader header_InnerBasicPlainStructHelper; + header_InnerBasicPlainStructHelper = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_InnerBasicPlainStructHelper); + CompleteStructMemberSeq member_seq_InnerBasicPlainStructHelper; + { + TypeIdentifierPair type_ids_field1; + ReturnCode_t return_code_field1 {eprosima::fastdds::dds::RETCODE_OK}; + return_code_field1 = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_field1); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_field1) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "field1 Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_field1 = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_field1 = 0x00000000; + bool common_field1_ec {false}; + CommonStructMember common_field1 {TypeObjectUtils::build_common_struct_member(member_id_field1, member_flags_field1, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_field1, common_field1_ec))}; + if (!common_field1_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure field1 member TypeIdentifier inconsistent."); + return; + } + MemberName name_field1 = "field1"; + eprosima::fastcdr::optional member_ann_builtin_field1; + ann_custom_InnerBasicPlainStructHelper.reset(); + CompleteMemberDetail detail_field1 = TypeObjectUtils::build_complete_member_detail(name_field1, member_ann_builtin_field1, ann_custom_InnerBasicPlainStructHelper); + CompleteStructMember member_field1 = TypeObjectUtils::build_complete_struct_member(common_field1, detail_field1); + TypeObjectUtils::add_complete_struct_member(member_seq_InnerBasicPlainStructHelper, member_field1); + } + CompleteStructType struct_type_InnerBasicPlainStructHelper = TypeObjectUtils::build_complete_struct_type(struct_flags_InnerBasicPlainStructHelper, header_InnerBasicPlainStructHelper, member_seq_InnerBasicPlainStructHelper); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_InnerBasicPlainStructHelper, type_name_InnerBasicPlainStructHelper.to_string(), type_ids_InnerBasicPlainStructHelper)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "InnerBasicPlainStructHelper already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_InnerPlainStructHelper_type_identifier( + TypeIdentifierPair& type_ids_InnerPlainStructHelper) +{ + + ReturnCode_t return_code_InnerPlainStructHelper {eprosima::fastdds::dds::RETCODE_OK}; + return_code_InnerPlainStructHelper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "InnerPlainStructHelper", type_ids_InnerPlainStructHelper); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_InnerPlainStructHelper) + { + StructTypeFlag struct_flags_InnerPlainStructHelper = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::FINAL, + false, false); + QualifiedTypeName type_name_InnerPlainStructHelper = "InnerPlainStructHelper"; + eprosima::fastcdr::optional type_ann_builtin_InnerPlainStructHelper; + eprosima::fastcdr::optional ann_custom_InnerPlainStructHelper; + AppliedAnnotationSeq tmp_ann_custom_InnerPlainStructHelper; + eprosima::fastcdr::optional verbatim_InnerPlainStructHelper; + if (!tmp_ann_custom_InnerPlainStructHelper.empty()) + { + ann_custom_InnerPlainStructHelper = tmp_ann_custom_InnerPlainStructHelper; + } + + CompleteTypeDetail detail_InnerPlainStructHelper = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_InnerPlainStructHelper, ann_custom_InnerPlainStructHelper, type_name_InnerPlainStructHelper.to_string()); + CompleteStructHeader header_InnerPlainStructHelper; + header_InnerPlainStructHelper = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_InnerPlainStructHelper); + CompleteStructMemberSeq member_seq_InnerPlainStructHelper; + { + TypeIdentifierPair type_ids_field1; + ReturnCode_t return_code_field1 {eprosima::fastdds::dds::RETCODE_OK}; + return_code_field1 = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_bool", type_ids_field1); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_field1) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "field1 Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_field1 = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_field1 = 0x00000000; + bool common_field1_ec {false}; + CommonStructMember common_field1 {TypeObjectUtils::build_common_struct_member(member_id_field1, member_flags_field1, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_field1, common_field1_ec))}; + if (!common_field1_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure field1 member TypeIdentifier inconsistent."); + return; + } + MemberName name_field1 = "field1"; + eprosima::fastcdr::optional member_ann_builtin_field1; + ann_custom_InnerPlainStructHelper.reset(); + CompleteMemberDetail detail_field1 = TypeObjectUtils::build_complete_member_detail(name_field1, member_ann_builtin_field1, ann_custom_InnerPlainStructHelper); + CompleteStructMember member_field1 = TypeObjectUtils::build_complete_struct_member(common_field1, detail_field1); + TypeObjectUtils::add_complete_struct_member(member_seq_InnerPlainStructHelper, member_field1); + } + { + TypeIdentifierPair type_ids_field2; + ReturnCode_t return_code_field2 {eprosima::fastdds::dds::RETCODE_OK}; + return_code_field2 = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_field2); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_field2) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "field2 Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_field2 = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_field2 = 0x00000001; + bool common_field2_ec {false}; + CommonStructMember common_field2 {TypeObjectUtils::build_common_struct_member(member_id_field2, member_flags_field2, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_field2, common_field2_ec))}; + if (!common_field2_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure field2 member TypeIdentifier inconsistent."); + return; + } + MemberName name_field2 = "field2"; + eprosima::fastcdr::optional member_ann_builtin_field2; + ann_custom_InnerPlainStructHelper.reset(); + CompleteMemberDetail detail_field2 = TypeObjectUtils::build_complete_member_detail(name_field2, member_ann_builtin_field2, ann_custom_InnerPlainStructHelper); + CompleteStructMember member_field2 = TypeObjectUtils::build_complete_struct_member(common_field2, detail_field2); + TypeObjectUtils::add_complete_struct_member(member_seq_InnerPlainStructHelper, member_field2); + } + { + TypeIdentifierPair type_ids_field3; + ReturnCode_t return_code_field3 {eprosima::fastdds::dds::RETCODE_OK}; + return_code_field3 = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_float", type_ids_field3); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_field3) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "field3 Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_field3 = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_field3 = 0x00000002; + bool common_field3_ec {false}; + CommonStructMember common_field3 {TypeObjectUtils::build_common_struct_member(member_id_field3, member_flags_field3, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_field3, common_field3_ec))}; + if (!common_field3_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure field3 member TypeIdentifier inconsistent."); + return; + } + MemberName name_field3 = "field3"; + eprosima::fastcdr::optional member_ann_builtin_field3; + ann_custom_InnerPlainStructHelper.reset(); + CompleteMemberDetail detail_field3 = TypeObjectUtils::build_complete_member_detail(name_field3, member_ann_builtin_field3, ann_custom_InnerPlainStructHelper); + CompleteStructMember member_field3 = TypeObjectUtils::build_complete_struct_member(common_field3, detail_field3); + TypeObjectUtils::add_complete_struct_member(member_seq_InnerPlainStructHelper, member_field3); + } + CompleteStructType struct_type_InnerPlainStructHelper = TypeObjectUtils::build_complete_struct_type(struct_flags_InnerPlainStructHelper, header_InnerPlainStructHelper, member_seq_InnerPlainStructHelper); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_InnerPlainStructHelper, type_name_InnerPlainStructHelper.to_string(), type_ids_InnerPlainStructHelper)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "InnerPlainStructHelper already registered in TypeObjectRegistry for a different type."); + } + } +} diff --git a/test/dds-types-test/helpers/basic_inner_typesTypeObjectSupport.hpp b/test/dds-types-test/helpers/basic_inner_typesTypeObjectSupport.hpp index c26f49a6892..8a4de03d589 100644 --- a/test/dds-types-test/helpers/basic_inner_typesTypeObjectSupport.hpp +++ b/test/dds-types-test/helpers/basic_inner_typesTypeObjectSupport.hpp @@ -233,6 +233,30 @@ eProsima_user_DllExport void register_inner_bitset_helper_alias_type_identifier( eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register InnerBasicPlainStructHelper related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_InnerBasicPlainStructHelper_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register InnerPlainStructHelper related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_InnerPlainStructHelper_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); #endif // DOXYGEN_SHOULD_SKIP_THIS_PUBLIC diff --git a/test/dds-types-test/helpers/helpers/basic_inner_types.hpp b/test/dds-types-test/helpers/helpers/basic_inner_types.hpp new file mode 100644 index 00000000000..3a3c77a7814 --- /dev/null +++ b/test/dds-types-test/helpers/helpers/basic_inner_types.hpp @@ -0,0 +1,852 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file basic_inner_types.hpp + * This header file contains the declaration of the described types in the IDL file. + * + * This file was generated by the tool fastddsgen (version: 4.1.0). + */ + +#ifndef FAST_DDS_GENERATED__BASIC_INNER_TYPES_HPP +#define FAST_DDS_GENERATED__BASIC_INNER_TYPES_HPP + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + + +#if defined(_WIN32) +#if defined(EPROSIMA_USER_DLL_EXPORT) +#define eProsima_user_DllExport __declspec( dllexport ) +#else +#define eProsima_user_DllExport +#endif // EPROSIMA_USER_DLL_EXPORT +#else +#define eProsima_user_DllExport +#endif // _WIN32 + +#if defined(_WIN32) +#if defined(EPROSIMA_USER_DLL_EXPORT) +#if defined(BASIC_INNER_TYPES_SOURCE) +#define BASIC_INNER_TYPES_DllAPI __declspec( dllexport ) +#else +#define BASIC_INNER_TYPES_DllAPI __declspec( dllimport ) +#endif // BASIC_INNER_TYPES_SOURCE +#else +#define BASIC_INNER_TYPES_DllAPI +#endif // EPROSIMA_USER_DLL_EXPORT +#else +#define BASIC_INNER_TYPES_DllAPI +#endif // _WIN32 + +/*! + * @brief This class represents the enumeration InnerEnumHelper defined by the user in the IDL file. + * @ingroup basic_inner_types + */ +enum class InnerEnumHelper : int32_t +{ + ENUM_VALUE_1, + ENUM_VALUE_2, + ENUM_VALUE_3 +}; +/*! + * @brief This enumeration represents the InnerBitMaskHelper bitflags defined by the user in the IDL file. + * @ingroup basic_inner_types + */ +enum InnerBitMaskHelperBits : uint32_t +{ + flag0 = 0x01ull << 0, + flag1 = 0x01ull << 1, + flag4 = 0x01ull << 4, + flag6 = 0x01ull << 6 +}; +typedef uint32_t InnerBitMaskHelper; +/*! + * @brief This enumeration represents the InnerBoundedBitMaskHelper bitflags defined by the user in the IDL file. + * @ingroup basic_inner_types + */ +enum InnerBoundedBitMaskHelperBits : uint8_t +{ + bflag0 = 0x01ull << 0, + bflag1 = 0x01ull << 1, + bflag4 = 0x01ull << 4, + bflag6 = 0x01ull << 6 +}; +typedef uint8_t InnerBoundedBitMaskHelper; +typedef int32_t InnerAliasHelper; + +/*! + * @brief This class represents the structure InnerStructureHelper defined by the user in the IDL file. + * @ingroup basic_inner_types + */ +class InnerStructureHelper +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport InnerStructureHelper() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~InnerStructureHelper() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object InnerStructureHelper that will be copied. + */ + eProsima_user_DllExport InnerStructureHelper( + const InnerStructureHelper& x) + { + m_field1 = x.m_field1; + + m_field2 = x.m_field2; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object InnerStructureHelper that will be copied. + */ + eProsima_user_DllExport InnerStructureHelper( + InnerStructureHelper&& x) noexcept + { + m_field1 = x.m_field1; + m_field2 = x.m_field2; + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object InnerStructureHelper that will be copied. + */ + eProsima_user_DllExport InnerStructureHelper& operator =( + const InnerStructureHelper& x) + { + + m_field1 = x.m_field1; + + m_field2 = x.m_field2; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object InnerStructureHelper that will be copied. + */ + eProsima_user_DllExport InnerStructureHelper& operator =( + InnerStructureHelper&& x) noexcept + { + + m_field1 = x.m_field1; + m_field2 = x.m_field2; + return *this; + } + + /*! + * @brief Comparison operator. + * @param x InnerStructureHelper object to compare. + */ + eProsima_user_DllExport bool operator ==( + const InnerStructureHelper& x) const + { + return (m_field1 == x.m_field1 && + m_field2 == x.m_field2); + } + + /*! + * @brief Comparison operator. + * @param x InnerStructureHelper object to compare. + */ + eProsima_user_DllExport bool operator !=( + const InnerStructureHelper& x) const + { + return !(*this == x); + } + + /*! + * @brief This function sets a value in member field1 + * @param _field1 New value for member field1 + */ + eProsima_user_DllExport void field1( + int32_t _field1) + { + m_field1 = _field1; + } + + /*! + * @brief This function returns the value of member field1 + * @return Value of member field1 + */ + eProsima_user_DllExport int32_t field1() const + { + return m_field1; + } + + /*! + * @brief This function returns a reference to member field1 + * @return Reference to member field1 + */ + eProsima_user_DllExport int32_t& field1() + { + return m_field1; + } + + + /*! + * @brief This function sets a value in member field2 + * @param _field2 New value for member field2 + */ + eProsima_user_DllExport void field2( + float _field2) + { + m_field2 = _field2; + } + + /*! + * @brief This function returns the value of member field2 + * @return Value of member field2 + */ + eProsima_user_DllExport float field2() const + { + return m_field2; + } + + /*! + * @brief This function returns a reference to member field2 + * @return Reference to member field2 + */ + eProsima_user_DllExport float& field2() + { + return m_field2; + } + + + +private: + + int32_t m_field1{0}; + float m_field2{0.0}; + +}; +/*! + * @brief This class represents the structure InnerEmptyStructureHelper defined by the user in the IDL file. + * @ingroup basic_inner_types + */ +class InnerEmptyStructureHelper +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport InnerEmptyStructureHelper() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~InnerEmptyStructureHelper() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object InnerEmptyStructureHelper that will be copied. + */ + eProsima_user_DllExport InnerEmptyStructureHelper( + const InnerEmptyStructureHelper& x) + { + static_cast(x); + } + + /*! + * @brief Move constructor. + * @param x Reference to the object InnerEmptyStructureHelper that will be copied. + */ + eProsima_user_DllExport InnerEmptyStructureHelper( + InnerEmptyStructureHelper&& x) noexcept + { + static_cast(x); + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object InnerEmptyStructureHelper that will be copied. + */ + eProsima_user_DllExport InnerEmptyStructureHelper& operator =( + const InnerEmptyStructureHelper& x) + { + + static_cast(x); + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object InnerEmptyStructureHelper that will be copied. + */ + eProsima_user_DllExport InnerEmptyStructureHelper& operator =( + InnerEmptyStructureHelper&& x) noexcept + { + + static_cast(x); + + return *this; + } + + /*! + * @brief Comparison operator. + * @param x InnerEmptyStructureHelper object to compare. + */ + eProsima_user_DllExport bool operator ==( + const InnerEmptyStructureHelper& x) const + { + static_cast(x); + return true; + } + + /*! + * @brief Comparison operator. + * @param x InnerEmptyStructureHelper object to compare. + */ + eProsima_user_DllExport bool operator !=( + const InnerEmptyStructureHelper& x) const + { + return !(*this == x); + } + + + +private: + + +}; +/*! + * @brief This class represents the union InnerUnionHelper defined by the user in the IDL file. + * @ingroup basic_inner_types + */ +class InnerUnionHelper +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport InnerUnionHelper() + { + selected_member_ = 0x00000003; + member_destructor_ = nullptr; + m_shortValue = {0}; + + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~InnerUnionHelper() + { + if (member_destructor_) + { + member_destructor_(); + } + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object InnerUnionHelper that will be copied. + */ + eProsima_user_DllExport InnerUnionHelper( + const InnerUnionHelper& x) + { + m__d = x.m__d; + + switch (x.selected_member_) + { + case 0x00000001: + longValue_() = x.m_longValue; + break; + + case 0x00000002: + floatValue_() = x.m_floatValue; + break; + + case 0x00000003: + shortValue_() = x.m_shortValue; + break; + + } + } + + /*! + * @brief Move constructor. + * @param x Reference to the object InnerUnionHelper that will be copied. + */ + eProsima_user_DllExport InnerUnionHelper( + InnerUnionHelper&& x) noexcept + { + m__d = x.m__d; + + switch (x.selected_member_) + { + case 0x00000001: + longValue_() = std::move(x.m_longValue); + break; + + case 0x00000002: + floatValue_() = std::move(x.m_floatValue); + break; + + case 0x00000003: + shortValue_() = std::move(x.m_shortValue); + break; + + } + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object InnerUnionHelper that will be copied. + */ + eProsima_user_DllExport InnerUnionHelper& operator =( + const InnerUnionHelper& x) + { + m__d = x.m__d; + + switch (x.selected_member_) + { + case 0x00000001: + longValue_() = x.m_longValue; + break; + + case 0x00000002: + floatValue_() = x.m_floatValue; + break; + + case 0x00000003: + shortValue_() = x.m_shortValue; + break; + + } + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object InnerUnionHelper that will be copied. + */ + eProsima_user_DllExport InnerUnionHelper& operator =( + InnerUnionHelper&& x) noexcept + { + m__d = x.m__d; + + switch (x.selected_member_) + { + case 0x00000001: + longValue_() = std::move(x.m_longValue); + break; + + case 0x00000002: + floatValue_() = std::move(x.m_floatValue); + break; + + case 0x00000003: + shortValue_() = std::move(x.m_shortValue); + break; + + } + + return *this; + } + + /*! + * @brief Comparison operator. + * @param x InnerUnionHelper object to compare. + */ + eProsima_user_DllExport bool operator ==( + const InnerUnionHelper& x) const + { + bool ret_value {false}; + + if (x.selected_member_ == selected_member_) + { + if (0x0FFFFFFFu != selected_member_) + { + if (x.m__d == m__d) + { + switch (selected_member_) + { + case 0x00000001: + ret_value = (x.m_longValue == m_longValue); + break; + + case 0x00000002: + ret_value = (x.m_floatValue == m_floatValue); + break; + + case 0x00000003: + ret_value = (x.m_shortValue == m_shortValue); + break; + + } + } + } + else + { + ret_value = true; + } + } + + return ret_value; + } + + /*! + * @brief Comparison operator. + * @param x InnerUnionHelper object to compare. + */ + eProsima_user_DllExport bool operator !=( + const InnerUnionHelper& x) const + { + return !(*this == x); + } + + /*! + * @brief This function sets the discriminator value. + * @param __d New value for the discriminator. + * @exception eprosima::fastcdr::exception::BadParamException This exception is thrown if the new value doesn't correspond to the selected union member. + */ + eProsima_user_DllExport void _d( + int32_t __d) + { + bool valid_discriminator = false; + + switch (__d) + { + case 0: + if (0x00000001 == selected_member_) + { + valid_discriminator = true; + } + break; + + case 1: + if (0x00000002 == selected_member_) + { + valid_discriminator = true; + } + break; + + default: + if (0x00000003 == selected_member_) + { + valid_discriminator = true; + } + break; + + } + + if (!valid_discriminator) + { + throw eprosima::fastcdr::exception::BadParamException("Discriminator doesn't correspond with the selected union member"); + } + + m__d = __d; + } + + /*! + * @brief This function returns the value of the discriminator. + * @return Value of the discriminator + */ + eProsima_user_DllExport int32_t _d() const + { + return m__d; + } + + /*! + * @brief This function sets a value in member longValue + * @param _longValue New value for member longValue + */ + eProsima_user_DllExport void longValue( + int32_t _longValue) + { + longValue_() = _longValue; + m__d = 0; + } + + /*! + * @brief This function returns the value of member longValue + * @return Value of member longValue + * @exception eprosima::fastcdr::exception::BadParamException This exception is thrown if the requested union member is not the current selection. + */ + eProsima_user_DllExport int32_t longValue() const + { + if (0x00000001 != selected_member_) + { + throw eprosima::fastcdr::exception::BadParamException("This member has not been selected"); + } + + return m_longValue; + } + + /*! + * @brief This function returns a reference to member longValue + * @return Reference to member longValue + * @exception eprosima::fastcdr::exception::BadParamException This exception is thrown if the requested union member is not the current selection. + */ + eProsima_user_DllExport int32_t& longValue() + { + if (0x00000001 != selected_member_) + { + throw eprosima::fastcdr::exception::BadParamException("This member has not been selected"); + } + + return m_longValue; + } + + + /*! + * @brief This function sets a value in member floatValue + * @param _floatValue New value for member floatValue + */ + eProsima_user_DllExport void floatValue( + float _floatValue) + { + floatValue_() = _floatValue; + m__d = 1; + } + + /*! + * @brief This function returns the value of member floatValue + * @return Value of member floatValue + * @exception eprosima::fastcdr::exception::BadParamException This exception is thrown if the requested union member is not the current selection. + */ + eProsima_user_DllExport float floatValue() const + { + if (0x00000002 != selected_member_) + { + throw eprosima::fastcdr::exception::BadParamException("This member has not been selected"); + } + + return m_floatValue; + } + + /*! + * @brief This function returns a reference to member floatValue + * @return Reference to member floatValue + * @exception eprosima::fastcdr::exception::BadParamException This exception is thrown if the requested union member is not the current selection. + */ + eProsima_user_DllExport float& floatValue() + { + if (0x00000002 != selected_member_) + { + throw eprosima::fastcdr::exception::BadParamException("This member has not been selected"); + } + + return m_floatValue; + } + + + /*! + * @brief This function sets a value in member shortValue + * @param _shortValue New value for member shortValue + */ + eProsima_user_DllExport void shortValue( + int16_t _shortValue) + { + shortValue_() = _shortValue; + m__d = 2147483647; + } + + /*! + * @brief This function returns the value of member shortValue + * @return Value of member shortValue + * @exception eprosima::fastcdr::exception::BadParamException This exception is thrown if the requested union member is not the current selection. + */ + eProsima_user_DllExport int16_t shortValue() const + { + if (0x00000003 != selected_member_) + { + throw eprosima::fastcdr::exception::BadParamException("This member has not been selected"); + } + + return m_shortValue; + } + + /*! + * @brief This function returns a reference to member shortValue + * @return Reference to member shortValue + * @exception eprosima::fastcdr::exception::BadParamException This exception is thrown if the requested union member is not the current selection. + */ + eProsima_user_DllExport int16_t& shortValue() + { + if (0x00000003 != selected_member_) + { + throw eprosima::fastcdr::exception::BadParamException("This member has not been selected"); + } + + return m_shortValue; + } + + + +private: + + int32_t& longValue_() + { + if (0x00000001 != selected_member_) + { + if (member_destructor_) + { + member_destructor_(); + } + + selected_member_ = 0x00000001; + member_destructor_ = nullptr; + m_longValue = {0}; + + } + + return m_longValue; + } + + float& floatValue_() + { + if (0x00000002 != selected_member_) + { + if (member_destructor_) + { + member_destructor_(); + } + + selected_member_ = 0x00000002; + member_destructor_ = nullptr; + m_floatValue = {0.0}; + + } + + return m_floatValue; + } + + int16_t& shortValue_() + { + if (0x00000003 != selected_member_) + { + if (member_destructor_) + { + member_destructor_(); + } + + selected_member_ = 0x00000003; + member_destructor_ = nullptr; + m_shortValue = {0}; + + } + + return m_shortValue; + } + + + int32_t m__d {2147483647}; + + union + { + int32_t m_longValue; + float m_floatValue; + int16_t m_shortValue; + }; + + uint32_t selected_member_ {0x0FFFFFFFu}; + + std::function member_destructor_; +}; +/*! + * @brief This structure represents the bitset InnerBitsetHelper defined by the user in the IDL file. + * @ingroup basic_inner_types + */ +struct InnerBitsetHelper +{ + uint8_t a : 3; + + bool b : 1; + + uint8_t : 4; + + uint16_t c : 10; + + uint8_t : 3; + + int16_t d : 12; + + + /*! + * @brief Comparison operator. + * @param x InnerBitsetHelper object to compare. + */ + eProsima_user_DllExport bool operator ==( + const InnerBitsetHelper& x) const + { + return (a == x.a && + b == x.b && + c == x.c && + d == x.d); + } + + /*! + * @brief Comparison operator. + * @param x InnerBitsetHelper object to compare. + */ + eProsima_user_DllExport bool operator !=( + const InnerBitsetHelper& x) const + { + return !(*this == x); + } +}; +const int16_t inner_const_helper = 1; +typedef eprosima::fastcdr::fixed_string<10> Inner_alias_bounded_string_helper; + +typedef std::wstring Inner_alias_bounded_wstring_helper; + +typedef std::array Inner_alias_array_helper; + +typedef std::vector Inner_alias_sequence_helper; + +typedef std::map Inner_alias_map_helper; + +typedef InnerStructureHelper inner_structure_helper_alias; + +typedef InnerBitsetHelper inner_bitset_helper_alias; + +const std::string const_string = "AAA"; +const std::wstring const_wstring = L"BBB"; + +#endif // _FAST_DDS_GENERATED_BASIC_INNER_TYPES_HPP_ + + diff --git a/test/dds-types-test/helpers/helpers/basic_inner_typesCdrAux.hpp b/test/dds-types-test/helpers/helpers/basic_inner_typesCdrAux.hpp new file mode 100644 index 00000000000..bc29b00d474 --- /dev/null +++ b/test/dds-types-test/helpers/helpers/basic_inner_typesCdrAux.hpp @@ -0,0 +1,67 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file basic_inner_typesCdrAux.hpp + * This source file contains some definitions of CDR related functions. + * + * This file was generated by the tool fastddsgen (version: 4.1.0). + */ + +#ifndef FAST_DDS_GENERATED__BASIC_INNER_TYPESCDRAUX_HPP +#define FAST_DDS_GENERATED__BASIC_INNER_TYPESCDRAUX_HPP + +#include "basic_inner_types.hpp" +constexpr uint32_t InnerStructureHelper_max_cdr_typesize {12UL}; +constexpr uint32_t InnerStructureHelper_max_key_cdr_typesize {0UL}; + + +constexpr uint32_t InnerEmptyStructureHelper_max_cdr_typesize {4UL}; +constexpr uint32_t InnerEmptyStructureHelper_max_key_cdr_typesize {0UL}; + + + + + + + + + + + + + + +namespace eprosima { +namespace fastcdr { + +class Cdr; +class CdrSizeCalculator; + +eProsima_user_DllExport void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const InnerStructureHelper& data); + + +eProsima_user_DllExport void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const InnerEmptyStructureHelper& data); + + + +} // namespace fastcdr +} // namespace eprosima + +#endif // FAST_DDS_GENERATED__BASIC_INNER_TYPESCDRAUX_HPP + diff --git a/test/dds-types-test/helpers/helpers/basic_inner_typesCdrAux.ipp b/test/dds-types-test/helpers/helpers/basic_inner_typesCdrAux.ipp new file mode 100644 index 00000000000..c1d2afa9042 --- /dev/null +++ b/test/dds-types-test/helpers/helpers/basic_inner_typesCdrAux.ipp @@ -0,0 +1,696 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file basic_inner_typesCdrAux.ipp + * This source file contains some declarations of CDR related functions. + * + * This file was generated by the tool fastddsgen (version: 4.1.0). + */ + +#ifndef FAST_DDS_GENERATED__BASIC_INNER_TYPESCDRAUX_IPP +#define FAST_DDS_GENERATED__BASIC_INNER_TYPESCDRAUX_IPP + +#include "basic_inner_typesCdrAux.hpp" + +#include +#include + +#include + +#include +using namespace eprosima::fastcdr::exception; + +namespace eprosima { +namespace fastcdr { + + +eProsima_user_DllExport bool is_InnerStructureHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + +template<> +eProsima_user_DllExport size_t calculate_serialized_size( + eprosima::fastcdr::CdrSizeCalculator& calculator, + const InnerStructureHelper& data, + size_t& current_alignment) +{ + static_cast(data); + + eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); + size_t calculated_size {calculator.begin_calculate_type_serialized_size( + eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + current_alignment)}; + + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0), + data.field1(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(1), + data.field2(), current_alignment); + + + calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); + + return calculated_size; +} + +template<> +eProsima_user_DllExport void serialize( + eprosima::fastcdr::Cdr& scdr, + const InnerStructureHelper& data) +{ + eprosima::fastcdr::Cdr::state current_state(scdr); + scdr.begin_serialize_type(current_state, + eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); + + scdr + << eprosima::fastcdr::MemberId(0) << data.field1() + << eprosima::fastcdr::MemberId(1) << data.field2() +; + scdr.end_serialize_type(current_state); +} + +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerStructureHelper_cdr_plain(data_representation) && + sizeof(InnerStructureHelper) == InnerStructureHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(InnerStructureHelper)); + + scdr.jump((array_size -1) * sizeof(InnerStructureHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } +} + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, + InnerStructureHelper& data) +{ + cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool + { + bool ret_value = true; + switch (mid.id) + { + case 0: + dcdr >> data.field1(); + break; + + case 1: + dcdr >> data.field2(); + break; + + default: + ret_value = false; + break; + } + return ret_value; + }); +} + +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (CdrVersion::XCDRv2 == scdr.get_cdr_version()) + { + uint32_t dheader {0}; + scdr.deserialize(dheader); + auto offset = scdr.get_current_position(); + + if (is_InnerStructureHelper_cdr_plain(data_representation) && + sizeof(InnerStructureHelper) == InnerStructureHelper_max_cdr_typesize) + { + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size) * sizeof(InnerStructureHelper)); + + scdr.jump((array_size) * sizeof(InnerStructureHelper)); + } + else + { + uint32_t count {0}; + while (scdr.get_current_position() - offset < dheader && count < array_size) + { + scdr.deserialize_array(&array_ptr[count], 1); + ++count; + } + } + + if (scdr.get_current_position() - offset != dheader) + { + throw exception::BadParamException("Member size greater than size specified by DHEADER"); + } + } + else + { + if (is_InnerStructureHelper_cdr_plain(data_representation) && + sizeof(InnerStructureHelper) == InnerStructureHelper_max_cdr_typesize) + { + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size) * sizeof(InnerStructureHelper)); + + scdr.jump((array_size) * sizeof(InnerStructureHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} + +void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const InnerStructureHelper& data) +{ + + static_cast(scdr); + static_cast(data); + scdr << data.field1(); + + scdr << data.field2(); + +} + + + +eProsima_user_DllExport bool is_InnerEmptyStructureHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + +template<> +eProsima_user_DllExport size_t calculate_serialized_size( + eprosima::fastcdr::CdrSizeCalculator& calculator, + const InnerEmptyStructureHelper& data, + size_t& current_alignment) +{ + static_cast(data); + + eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); + size_t calculated_size {calculator.begin_calculate_type_serialized_size( + eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + current_alignment)}; + + + + calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); + + return calculated_size; +} + +template<> +eProsima_user_DllExport void serialize( + eprosima::fastcdr::Cdr& scdr, + const InnerEmptyStructureHelper& data) +{ + eprosima::fastcdr::Cdr::state current_state(scdr); + scdr.begin_serialize_type(current_state, + eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); + + static_cast(data); + + scdr.end_serialize_type(current_state); +} + +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerEmptyStructureHelper* array_ptr, + const std::size_t array_size) +{ + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerEmptyStructureHelper_cdr_plain(data_representation) && + sizeof(InnerEmptyStructureHelper) == InnerEmptyStructureHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(InnerEmptyStructureHelper)); + + scdr.jump((array_size -1) * sizeof(InnerEmptyStructureHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } +} + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, + InnerEmptyStructureHelper& data) +{ + cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool + { + static_cast(data); + static_cast(dcdr); + static_cast(mid); + return false; + }); +} + +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerEmptyStructureHelper* array_ptr, + const std::size_t array_size) +{ + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (CdrVersion::XCDRv2 == scdr.get_cdr_version()) + { + uint32_t dheader {0}; + scdr.deserialize(dheader); + auto offset = scdr.get_current_position(); + + if (is_InnerEmptyStructureHelper_cdr_plain(data_representation) && + sizeof(InnerEmptyStructureHelper) == InnerEmptyStructureHelper_max_cdr_typesize) + { + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size) * sizeof(InnerEmptyStructureHelper)); + + scdr.jump((array_size) * sizeof(InnerEmptyStructureHelper)); + } + else + { + uint32_t count {0}; + while (scdr.get_current_position() - offset < dheader && count < array_size) + { + scdr.deserialize_array(&array_ptr[count], 1); + ++count; + } + } + + if (scdr.get_current_position() - offset != dheader) + { + throw exception::BadParamException("Member size greater than size specified by DHEADER"); + } + } + else + { + if (is_InnerEmptyStructureHelper_cdr_plain(data_representation) && + sizeof(InnerEmptyStructureHelper) == InnerEmptyStructureHelper_max_cdr_typesize) + { + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size) * sizeof(InnerEmptyStructureHelper)); + + scdr.jump((array_size) * sizeof(InnerEmptyStructureHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} + +void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const InnerEmptyStructureHelper& data) +{ + + static_cast(scdr); + static_cast(data); +} + + +template<> +eProsima_user_DllExport size_t calculate_serialized_size( + eprosima::fastcdr::CdrSizeCalculator& calculator, + const InnerUnionHelper& data, + size_t& current_alignment) +{ + static_cast(data); + + eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); + size_t calculated_size {calculator.begin_calculate_type_serialized_size( + eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + current_alignment)}; + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0), data._d(), + current_alignment); + + switch (data._d()) + { + case 0: + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(1), + data.longValue(), current_alignment); + break; + + case 1: + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(2), + data.floatValue(), current_alignment); + break; + + default: + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(3), + data.shortValue(), current_alignment); + break; + + } + + calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); + + return calculated_size; +} + + +template<> +eProsima_user_DllExport void serialize( + eprosima::fastcdr::Cdr& scdr, + const InnerUnionHelper& data) +{ + eprosima::fastcdr::Cdr::state current_state(scdr); + scdr.begin_serialize_type(current_state, + eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); + + scdr << eprosima::fastcdr::MemberId(0) << data._d(); + + switch (data._d()) + { + case 0: + scdr << eprosima::fastcdr::MemberId(1) << data.longValue(); + break; + + case 1: + scdr << eprosima::fastcdr::MemberId(2) << data.floatValue(); + break; + + default: + scdr << eprosima::fastcdr::MemberId(3) << data.shortValue(); + break; + + } + + scdr.end_serialize_type(current_state); +} + +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerUnionHelper_cdr_plain(data_representation) && + sizeof(InnerUnionHelper) == InnerUnionHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(InnerUnionHelper)); + + scdr.jump((array_size -1) * sizeof(InnerUnionHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } +} + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, + InnerUnionHelper& data) +{ + cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool + { + bool ret_value = true; + if (0 == mid.id) + { + int32_t discriminator; + dcdr >> discriminator; + + switch (discriminator) + { + case 0: + { + int32_t longValue_value{0}; + data.longValue(std::move(longValue_value)); + data._d(discriminator); + break; + } + + case 1: + { + float floatValue_value{0.0}; + data.floatValue(std::move(floatValue_value)); + data._d(discriminator); + break; + } + + default: + { + int16_t shortValue_value{0}; + data.shortValue(std::move(shortValue_value)); + data._d(discriminator); + break; + } + + } + } + else + { + switch (data._d()) + { + case 0: + dcdr >> data.longValue(); + break; + + case 1: + dcdr >> data.floatValue(); + break; + + default: + dcdr >> data.shortValue(); + break; + + } + ret_value = false; + } + return ret_value; + }); +} + +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (CdrVersion::XCDRv2 == scdr.get_cdr_version()) + { + uint32_t dheader {0}; + scdr.deserialize(dheader); + auto offset = scdr.get_current_position(); + + if (is_InnerUnionHelper_cdr_plain(data_representation) && + sizeof(InnerUnionHelper) == InnerUnionHelper_max_cdr_typesize) + { + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size) * sizeof(InnerUnionHelper)); + + scdr.jump((array_size) * sizeof(InnerUnionHelper)); + } + else + { + uint32_t count {0}; + while (scdr.get_current_position() - offset < dheader && count < array_size) + { + scdr.deserialize_array(&array_ptr[count], 1); + ++count; + } + } + + if (scdr.get_current_position() - offset != dheader) + { + throw exception::BadParamException("Member size greater than size specified by DHEADER"); + } + } + else + { + if (is_InnerUnionHelper_cdr_plain(data_representation) && + sizeof(InnerUnionHelper) == InnerUnionHelper_max_cdr_typesize) + { + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size) * sizeof(InnerUnionHelper)); + + scdr.jump((array_size) * sizeof(InnerUnionHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} + +template<> +eProsima_user_DllExport size_t calculate_serialized_size( + eprosima::fastcdr::CdrSizeCalculator& calculator, + const InnerBitsetHelper&, + size_t& current_alignment) +{ + return calculator.calculate_serialized_size(std::bitset<33>{}, current_alignment); +} + +template<> +eProsima_user_DllExport void serialize( + eprosima::fastcdr::Cdr& scdr, + const InnerBitsetHelper& data) +{ + std::bitset<33> bitset; + + bitset <<= 12; + bitset |= (data.d & 0xFFF); + + bitset <<= 3; + + bitset <<= 10; + bitset |= (data.c & 0x3FF); + + bitset <<= 4; + + bitset <<= 1; + bitset |= (data.b & 0x1); + + bitset <<= 3; + bitset |= (data.a & 0x7); + + + scdr << bitset; +} + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& dcdr, + InnerBitsetHelper& data) +{ + std::bitset<33> bitset; + dcdr >> bitset; + + data.a = static_cast(bitset.to_ullong() & 0x7); + bitset >>= 3; + + data.b = static_cast(bitset.to_ullong() & 0x1); + bitset >>= 1; + + bitset >>= 4; + + data.c = static_cast(bitset.to_ullong() & 0x3FF); + bitset >>= 10; + + bitset >>= 3; + + data.d = static_cast(bitset.to_ullong() & 0xFFF); + bitset >>= 12; + +} + + +} // namespace fastcdr +} // namespace eprosima + +#endif // FAST_DDS_GENERATED__BASIC_INNER_TYPESCDRAUX_IPP + diff --git a/test/dds-types-test/helpers/helpers/basic_inner_typesPubSubTypes.cxx b/test/dds-types-test/helpers/helpers/basic_inner_typesPubSubTypes.cxx new file mode 100644 index 00000000000..58d681140aa --- /dev/null +++ b/test/dds-types-test/helpers/helpers/basic_inner_typesPubSubTypes.cxx @@ -0,0 +1,61 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file basic_inner_typesPubSubTypes.cpp + * This header file contains the implementation of the serialization functions. + * + * This file was generated by the tool fastddsgen (version: 4.1.0). + */ + +#include "basic_inner_typesPubSubTypes.hpp" + +#include +#include + +#include "basic_inner_typesCdrAux.hpp" +#include "basic_inner_typesTypeObjectSupport.hpp" + +using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; +using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; +using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; + +namespace eprosima { +namespace fastcdr { + +bool is_InnerStructureHelper_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_InnerEmptyStructureHelper_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + + + + + + + +} // namespace fastcdr +} // namespace eprosima + + +// Include auxiliary functions like for serializing/deserializing. +#include "basic_inner_typesCdrAux.ipp" diff --git a/test/dds-types-test/helpers/helpers/basic_inner_typesPubSubTypes.hpp b/test/dds-types-test/helpers/helpers/basic_inner_typesPubSubTypes.hpp new file mode 100644 index 00000000000..b5d7cec2899 --- /dev/null +++ b/test/dds-types-test/helpers/helpers/basic_inner_typesPubSubTypes.hpp @@ -0,0 +1,50 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file basic_inner_typesPubSubTypes.hpp + * This header file contains the declaration of the serialization functions. + * + * This file was generated by the tool fastddsgen (version: 4.1.0). + */ + + +#ifndef FAST_DDS_GENERATED__BASIC_INNER_TYPES_PUBSUBTYPES_HPP +#define FAST_DDS_GENERATED__BASIC_INNER_TYPES_PUBSUBTYPES_HPP + +#include +#include +#include +#include +#include + +#include "basic_inner_types.hpp" + + +#if !defined(FASTDDS_GEN_API_VER) || (FASTDDS_GEN_API_VER != 3) +#error \ + Generated basic_inner_types is not compatible with current installed Fast DDS. Please, regenerate it with fastddsgen. +#endif // FASTDDS_GEN_API_VER + +typedef int32_t InnerAliasHelper; +typedef eprosima::fastcdr::fixed_string<10> Inner_alias_bounded_string_helper; +typedef std::wstring Inner_alias_bounded_wstring_helper; +typedef std::array Inner_alias_array_helper; +typedef std::vector Inner_alias_sequence_helper; +typedef std::map Inner_alias_map_helper; +typedef InnerStructureHelper inner_structure_helper_alias; +typedef InnerBitsetHelper inner_bitset_helper_alias; + +#endif // FAST_DDS_GENERATED__BASIC_INNER_TYPES_PUBSUBTYPES_HPP + diff --git a/test/dds-types-test/helpers/helpers/basic_inner_typesTypeObjectSupport.cxx b/test/dds-types-test/helpers/helpers/basic_inner_typesTypeObjectSupport.cxx new file mode 100644 index 00000000000..193f87c7f54 --- /dev/null +++ b/test/dds-types-test/helpers/helpers/basic_inner_typesTypeObjectSupport.cxx @@ -0,0 +1,1190 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file basic_inner_typesTypeObjectSupport.cxx + * Source file containing the implementation to register the TypeObject representation of the described types in the IDL file + * + * This file was generated by the tool fastddsgen (version: 4.1.0). + */ + +#include "basic_inner_typesTypeObjectSupport.hpp" + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include "basic_inner_types.hpp" + + +using namespace eprosima::fastdds::dds::xtypes; + +void register_InnerEnumHelper_type_identifier( + TypeIdentifierPair& type_ids_InnerEnumHelper) +{ + ReturnCode_t return_code_InnerEnumHelper {eprosima::fastdds::dds::RETCODE_OK}; + return_code_InnerEnumHelper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "InnerEnumHelper", type_ids_InnerEnumHelper); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_InnerEnumHelper) + { + EnumTypeFlag enum_flags_InnerEnumHelper = 0; + BitBound bit_bound_InnerEnumHelper = 32; + CommonEnumeratedHeader common_InnerEnumHelper = TypeObjectUtils::build_common_enumerated_header(bit_bound_InnerEnumHelper); + QualifiedTypeName type_name_InnerEnumHelper = "InnerEnumHelper"; + eprosima::fastcdr::optional type_ann_builtin_InnerEnumHelper; + eprosima::fastcdr::optional ann_custom_InnerEnumHelper; + CompleteTypeDetail detail_InnerEnumHelper = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_InnerEnumHelper, ann_custom_InnerEnumHelper, type_name_InnerEnumHelper.to_string()); + CompleteEnumeratedHeader header_InnerEnumHelper = TypeObjectUtils::build_complete_enumerated_header(common_InnerEnumHelper, detail_InnerEnumHelper); + CompleteEnumeratedLiteralSeq literal_seq_InnerEnumHelper; + { + EnumeratedLiteralFlag flags_ENUM_VALUE_1 = TypeObjectUtils::build_enumerated_literal_flag(false); + CommonEnumeratedLiteral common_ENUM_VALUE_1 = TypeObjectUtils::build_common_enumerated_literal(0, flags_ENUM_VALUE_1); + eprosima::fastcdr::optional member_ann_builtin_ENUM_VALUE_1; + ann_custom_InnerEnumHelper.reset(); + MemberName name_ENUM_VALUE_1 = "ENUM_VALUE_1"; + CompleteMemberDetail detail_ENUM_VALUE_1 = TypeObjectUtils::build_complete_member_detail(name_ENUM_VALUE_1, member_ann_builtin_ENUM_VALUE_1, ann_custom_InnerEnumHelper); + CompleteEnumeratedLiteral literal_ENUM_VALUE_1 = TypeObjectUtils::build_complete_enumerated_literal(common_ENUM_VALUE_1, detail_ENUM_VALUE_1); + TypeObjectUtils::add_complete_enumerated_literal(literal_seq_InnerEnumHelper, literal_ENUM_VALUE_1); + } + { + EnumeratedLiteralFlag flags_ENUM_VALUE_2 = TypeObjectUtils::build_enumerated_literal_flag(false); + CommonEnumeratedLiteral common_ENUM_VALUE_2 = TypeObjectUtils::build_common_enumerated_literal(1, flags_ENUM_VALUE_2); + eprosima::fastcdr::optional member_ann_builtin_ENUM_VALUE_2; + ann_custom_InnerEnumHelper.reset(); + MemberName name_ENUM_VALUE_2 = "ENUM_VALUE_2"; + CompleteMemberDetail detail_ENUM_VALUE_2 = TypeObjectUtils::build_complete_member_detail(name_ENUM_VALUE_2, member_ann_builtin_ENUM_VALUE_2, ann_custom_InnerEnumHelper); + CompleteEnumeratedLiteral literal_ENUM_VALUE_2 = TypeObjectUtils::build_complete_enumerated_literal(common_ENUM_VALUE_2, detail_ENUM_VALUE_2); + TypeObjectUtils::add_complete_enumerated_literal(literal_seq_InnerEnumHelper, literal_ENUM_VALUE_2); + } + { + EnumeratedLiteralFlag flags_ENUM_VALUE_3 = TypeObjectUtils::build_enumerated_literal_flag(false); + CommonEnumeratedLiteral common_ENUM_VALUE_3 = TypeObjectUtils::build_common_enumerated_literal(2, flags_ENUM_VALUE_3); + eprosima::fastcdr::optional member_ann_builtin_ENUM_VALUE_3; + ann_custom_InnerEnumHelper.reset(); + MemberName name_ENUM_VALUE_3 = "ENUM_VALUE_3"; + CompleteMemberDetail detail_ENUM_VALUE_3 = TypeObjectUtils::build_complete_member_detail(name_ENUM_VALUE_3, member_ann_builtin_ENUM_VALUE_3, ann_custom_InnerEnumHelper); + CompleteEnumeratedLiteral literal_ENUM_VALUE_3 = TypeObjectUtils::build_complete_enumerated_literal(common_ENUM_VALUE_3, detail_ENUM_VALUE_3); + TypeObjectUtils::add_complete_enumerated_literal(literal_seq_InnerEnumHelper, literal_ENUM_VALUE_3); + } + CompleteEnumeratedType enumerated_type_InnerEnumHelper = TypeObjectUtils::build_complete_enumerated_type(enum_flags_InnerEnumHelper, header_InnerEnumHelper, + literal_seq_InnerEnumHelper); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_enumerated_type_object(enumerated_type_InnerEnumHelper, type_name_InnerEnumHelper.to_string(), type_ids_InnerEnumHelper)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "InnerEnumHelper already registered in TypeObjectRegistry for a different type."); + } + } +}void register_InnerBitMaskHelper_type_identifier( + TypeIdentifierPair& type_ids_InnerBitMaskHelper) +{ + ReturnCode_t return_code_InnerBitMaskHelper {eprosima::fastdds::dds::RETCODE_OK}; + return_code_InnerBitMaskHelper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "InnerBitMaskHelper", type_ids_InnerBitMaskHelper); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_InnerBitMaskHelper) + { + BitmaskTypeFlag bitmask_flags_InnerBitMaskHelper = 0; + BitBound bit_bound_InnerBitMaskHelper = 32; + CommonEnumeratedHeader common_InnerBitMaskHelper = TypeObjectUtils::build_common_enumerated_header(bit_bound_InnerBitMaskHelper, true); + QualifiedTypeName type_name_InnerBitMaskHelper = "InnerBitMaskHelper"; + eprosima::fastcdr::optional type_ann_builtin_InnerBitMaskHelper; + eprosima::fastcdr::optional ann_custom_InnerBitMaskHelper; + CompleteTypeDetail detail_InnerBitMaskHelper = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_InnerBitMaskHelper, ann_custom_InnerBitMaskHelper, type_name_InnerBitMaskHelper.to_string()); + CompleteEnumeratedHeader header_InnerBitMaskHelper = TypeObjectUtils::build_complete_enumerated_header(common_InnerBitMaskHelper, detail_InnerBitMaskHelper, true); + CompleteBitflagSeq flag_seq_InnerBitMaskHelper; + { + uint16_t position_flag0 = 0; + BitflagFlag flags_flag0 = 0; + CommonBitflag common_flag0 = TypeObjectUtils::build_common_bitflag(position_flag0, flags_flag0); + eprosima::fastcdr::optional member_ann_builtin_flag0; + ann_custom_InnerBitMaskHelper.reset(); + AppliedAnnotationSeq tmp_ann_custom_flag0; + if (!tmp_ann_custom_flag0.empty()) + { + ann_custom_InnerBitMaskHelper = tmp_ann_custom_flag0; + } + MemberName name_flag0 = "flag0"; + CompleteMemberDetail detail_flag0 = TypeObjectUtils::build_complete_member_detail(name_flag0, member_ann_builtin_flag0, ann_custom_InnerBitMaskHelper); + CompleteBitflag bitflag_flag0 = TypeObjectUtils::build_complete_bitflag(common_flag0, detail_flag0); + TypeObjectUtils::add_complete_bitflag(flag_seq_InnerBitMaskHelper, bitflag_flag0); + } + { + uint16_t position_flag1 = 1; + BitflagFlag flags_flag1 = 0; + CommonBitflag common_flag1 = TypeObjectUtils::build_common_bitflag(position_flag1, flags_flag1); + eprosima::fastcdr::optional member_ann_builtin_flag1; + ann_custom_InnerBitMaskHelper.reset(); + AppliedAnnotationSeq tmp_ann_custom_flag1; + if (!tmp_ann_custom_flag1.empty()) + { + ann_custom_InnerBitMaskHelper = tmp_ann_custom_flag1; + } + MemberName name_flag1 = "flag1"; + CompleteMemberDetail detail_flag1 = TypeObjectUtils::build_complete_member_detail(name_flag1, member_ann_builtin_flag1, ann_custom_InnerBitMaskHelper); + CompleteBitflag bitflag_flag1 = TypeObjectUtils::build_complete_bitflag(common_flag1, detail_flag1); + TypeObjectUtils::add_complete_bitflag(flag_seq_InnerBitMaskHelper, bitflag_flag1); + } + { + uint16_t position_flag4 = 4; + BitflagFlag flags_flag4 = 0; + CommonBitflag common_flag4 = TypeObjectUtils::build_common_bitflag(position_flag4, flags_flag4); + eprosima::fastcdr::optional member_ann_builtin_flag4; + ann_custom_InnerBitMaskHelper.reset(); + AppliedAnnotationSeq tmp_ann_custom_flag4; + if (!tmp_ann_custom_flag4.empty()) + { + ann_custom_InnerBitMaskHelper = tmp_ann_custom_flag4; + } + MemberName name_flag4 = "flag4"; + CompleteMemberDetail detail_flag4 = TypeObjectUtils::build_complete_member_detail(name_flag4, member_ann_builtin_flag4, ann_custom_InnerBitMaskHelper); + CompleteBitflag bitflag_flag4 = TypeObjectUtils::build_complete_bitflag(common_flag4, detail_flag4); + TypeObjectUtils::add_complete_bitflag(flag_seq_InnerBitMaskHelper, bitflag_flag4); + } + { + uint16_t position_flag6 = 6; + BitflagFlag flags_flag6 = 0; + CommonBitflag common_flag6 = TypeObjectUtils::build_common_bitflag(position_flag6, flags_flag6); + eprosima::fastcdr::optional member_ann_builtin_flag6; + ann_custom_InnerBitMaskHelper.reset(); + AppliedAnnotationSeq tmp_ann_custom_flag6; + if (!tmp_ann_custom_flag6.empty()) + { + ann_custom_InnerBitMaskHelper = tmp_ann_custom_flag6; + } + MemberName name_flag6 = "flag6"; + CompleteMemberDetail detail_flag6 = TypeObjectUtils::build_complete_member_detail(name_flag6, member_ann_builtin_flag6, ann_custom_InnerBitMaskHelper); + CompleteBitflag bitflag_flag6 = TypeObjectUtils::build_complete_bitflag(common_flag6, detail_flag6); + TypeObjectUtils::add_complete_bitflag(flag_seq_InnerBitMaskHelper, bitflag_flag6); + } + CompleteBitmaskType bitmask_type_InnerBitMaskHelper = TypeObjectUtils::build_complete_bitmask_type(bitmask_flags_InnerBitMaskHelper, header_InnerBitMaskHelper, flag_seq_InnerBitMaskHelper); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_bitmask_type_object(bitmask_type_InnerBitMaskHelper, + type_name_InnerBitMaskHelper.to_string(), type_ids_InnerBitMaskHelper)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "InnerBitMaskHelper already registered in TypeObjectRegistry for a different type."); + } + } +}void register_InnerBoundedBitMaskHelper_type_identifier( + TypeIdentifierPair& type_ids_InnerBoundedBitMaskHelper) +{ + ReturnCode_t return_code_InnerBoundedBitMaskHelper {eprosima::fastdds::dds::RETCODE_OK}; + return_code_InnerBoundedBitMaskHelper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "InnerBoundedBitMaskHelper", type_ids_InnerBoundedBitMaskHelper); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_InnerBoundedBitMaskHelper) + { + BitmaskTypeFlag bitmask_flags_InnerBoundedBitMaskHelper = 0; + BitBound bit_bound_InnerBoundedBitMaskHelper = 8; + CommonEnumeratedHeader common_InnerBoundedBitMaskHelper = TypeObjectUtils::build_common_enumerated_header(bit_bound_InnerBoundedBitMaskHelper, true); + QualifiedTypeName type_name_InnerBoundedBitMaskHelper = "InnerBoundedBitMaskHelper"; + eprosima::fastcdr::optional type_ann_builtin_InnerBoundedBitMaskHelper; + eprosima::fastcdr::optional ann_custom_InnerBoundedBitMaskHelper; + AppliedAnnotationSeq tmp_ann_custom_InnerBoundedBitMaskHelper; + eprosima::fastcdr::optional verbatim_InnerBoundedBitMaskHelper; + if (!tmp_ann_custom_InnerBoundedBitMaskHelper.empty()) + { + ann_custom_InnerBoundedBitMaskHelper = tmp_ann_custom_InnerBoundedBitMaskHelper; + } + + CompleteTypeDetail detail_InnerBoundedBitMaskHelper = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_InnerBoundedBitMaskHelper, ann_custom_InnerBoundedBitMaskHelper, type_name_InnerBoundedBitMaskHelper.to_string()); + CompleteEnumeratedHeader header_InnerBoundedBitMaskHelper = TypeObjectUtils::build_complete_enumerated_header(common_InnerBoundedBitMaskHelper, detail_InnerBoundedBitMaskHelper, true); + CompleteBitflagSeq flag_seq_InnerBoundedBitMaskHelper; + { + uint16_t position_bflag0 = 0; + BitflagFlag flags_bflag0 = 0; + CommonBitflag common_bflag0 = TypeObjectUtils::build_common_bitflag(position_bflag0, flags_bflag0); + eprosima::fastcdr::optional member_ann_builtin_bflag0; + ann_custom_InnerBoundedBitMaskHelper.reset(); + AppliedAnnotationSeq tmp_ann_custom_bflag0; + if (!tmp_ann_custom_bflag0.empty()) + { + ann_custom_InnerBoundedBitMaskHelper = tmp_ann_custom_bflag0; + } + MemberName name_bflag0 = "bflag0"; + CompleteMemberDetail detail_bflag0 = TypeObjectUtils::build_complete_member_detail(name_bflag0, member_ann_builtin_bflag0, ann_custom_InnerBoundedBitMaskHelper); + CompleteBitflag bitflag_bflag0 = TypeObjectUtils::build_complete_bitflag(common_bflag0, detail_bflag0); + TypeObjectUtils::add_complete_bitflag(flag_seq_InnerBoundedBitMaskHelper, bitflag_bflag0); + } + { + uint16_t position_bflag1 = 1; + BitflagFlag flags_bflag1 = 0; + CommonBitflag common_bflag1 = TypeObjectUtils::build_common_bitflag(position_bflag1, flags_bflag1); + eprosima::fastcdr::optional member_ann_builtin_bflag1; + ann_custom_InnerBoundedBitMaskHelper.reset(); + AppliedAnnotationSeq tmp_ann_custom_bflag1; + if (!tmp_ann_custom_bflag1.empty()) + { + ann_custom_InnerBoundedBitMaskHelper = tmp_ann_custom_bflag1; + } + MemberName name_bflag1 = "bflag1"; + CompleteMemberDetail detail_bflag1 = TypeObjectUtils::build_complete_member_detail(name_bflag1, member_ann_builtin_bflag1, ann_custom_InnerBoundedBitMaskHelper); + CompleteBitflag bitflag_bflag1 = TypeObjectUtils::build_complete_bitflag(common_bflag1, detail_bflag1); + TypeObjectUtils::add_complete_bitflag(flag_seq_InnerBoundedBitMaskHelper, bitflag_bflag1); + } + { + uint16_t position_bflag4 = 4; + BitflagFlag flags_bflag4 = 0; + CommonBitflag common_bflag4 = TypeObjectUtils::build_common_bitflag(position_bflag4, flags_bflag4); + eprosima::fastcdr::optional member_ann_builtin_bflag4; + ann_custom_InnerBoundedBitMaskHelper.reset(); + AppliedAnnotationSeq tmp_ann_custom_bflag4; + if (!tmp_ann_custom_bflag4.empty()) + { + ann_custom_InnerBoundedBitMaskHelper = tmp_ann_custom_bflag4; + } + MemberName name_bflag4 = "bflag4"; + CompleteMemberDetail detail_bflag4 = TypeObjectUtils::build_complete_member_detail(name_bflag4, member_ann_builtin_bflag4, ann_custom_InnerBoundedBitMaskHelper); + CompleteBitflag bitflag_bflag4 = TypeObjectUtils::build_complete_bitflag(common_bflag4, detail_bflag4); + TypeObjectUtils::add_complete_bitflag(flag_seq_InnerBoundedBitMaskHelper, bitflag_bflag4); + } + { + uint16_t position_bflag6 = 6; + BitflagFlag flags_bflag6 = 0; + CommonBitflag common_bflag6 = TypeObjectUtils::build_common_bitflag(position_bflag6, flags_bflag6); + eprosima::fastcdr::optional member_ann_builtin_bflag6; + ann_custom_InnerBoundedBitMaskHelper.reset(); + AppliedAnnotationSeq tmp_ann_custom_bflag6; + if (!tmp_ann_custom_bflag6.empty()) + { + ann_custom_InnerBoundedBitMaskHelper = tmp_ann_custom_bflag6; + } + MemberName name_bflag6 = "bflag6"; + CompleteMemberDetail detail_bflag6 = TypeObjectUtils::build_complete_member_detail(name_bflag6, member_ann_builtin_bflag6, ann_custom_InnerBoundedBitMaskHelper); + CompleteBitflag bitflag_bflag6 = TypeObjectUtils::build_complete_bitflag(common_bflag6, detail_bflag6); + TypeObjectUtils::add_complete_bitflag(flag_seq_InnerBoundedBitMaskHelper, bitflag_bflag6); + } + CompleteBitmaskType bitmask_type_InnerBoundedBitMaskHelper = TypeObjectUtils::build_complete_bitmask_type(bitmask_flags_InnerBoundedBitMaskHelper, header_InnerBoundedBitMaskHelper, flag_seq_InnerBoundedBitMaskHelper); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_bitmask_type_object(bitmask_type_InnerBoundedBitMaskHelper, + type_name_InnerBoundedBitMaskHelper.to_string(), type_ids_InnerBoundedBitMaskHelper)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "InnerBoundedBitMaskHelper already registered in TypeObjectRegistry for a different type."); + } + } +}void register_InnerAliasHelper_type_identifier( + TypeIdentifierPair& type_ids_InnerAliasHelper) +{ + ReturnCode_t return_code_InnerAliasHelper {eprosima::fastdds::dds::RETCODE_OK}; + return_code_InnerAliasHelper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "InnerAliasHelper", type_ids_InnerAliasHelper); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_InnerAliasHelper) + { + AliasTypeFlag alias_flags_InnerAliasHelper = 0; + QualifiedTypeName type_name_InnerAliasHelper = "InnerAliasHelper"; + eprosima::fastcdr::optional type_ann_builtin_InnerAliasHelper; + eprosima::fastcdr::optional ann_custom_InnerAliasHelper; + CompleteTypeDetail detail_InnerAliasHelper = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_InnerAliasHelper, ann_custom_InnerAliasHelper, type_name_InnerAliasHelper.to_string()); + CompleteAliasHeader header_InnerAliasHelper = TypeObjectUtils::build_complete_alias_header(detail_InnerAliasHelper); + AliasMemberFlag related_flags_InnerAliasHelper = 0; + return_code_InnerAliasHelper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_InnerAliasHelper); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_InnerAliasHelper) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "InnerAliasHelper related TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + bool common_InnerAliasHelper_ec {false}; + CommonAliasBody common_InnerAliasHelper {TypeObjectUtils::build_common_alias_body(related_flags_InnerAliasHelper, + TypeObjectUtils::retrieve_complete_type_identifier(type_ids_InnerAliasHelper, common_InnerAliasHelper_ec))}; + if (!common_InnerAliasHelper_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "InnerAliasHelper related TypeIdentifier inconsistent."); + return; + } + eprosima::fastcdr::optional member_ann_builtin_InnerAliasHelper; + ann_custom_InnerAliasHelper.reset(); + CompleteAliasBody body_InnerAliasHelper = TypeObjectUtils::build_complete_alias_body(common_InnerAliasHelper, + member_ann_builtin_InnerAliasHelper, ann_custom_InnerAliasHelper); + CompleteAliasType alias_type_InnerAliasHelper = TypeObjectUtils::build_complete_alias_type(alias_flags_InnerAliasHelper, + header_InnerAliasHelper, body_InnerAliasHelper); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_alias_type_object(alias_type_InnerAliasHelper, + type_name_InnerAliasHelper.to_string(), type_ids_InnerAliasHelper)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "InnerAliasHelper already registered in TypeObjectRegistry for a different type."); + } + } +} + +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_InnerStructureHelper_type_identifier( + TypeIdentifierPair& type_ids_InnerStructureHelper) +{ + + ReturnCode_t return_code_InnerStructureHelper {eprosima::fastdds::dds::RETCODE_OK}; + return_code_InnerStructureHelper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "InnerStructureHelper", type_ids_InnerStructureHelper); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_InnerStructureHelper) + { + StructTypeFlag struct_flags_InnerStructureHelper = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + true, false); + QualifiedTypeName type_name_InnerStructureHelper = "InnerStructureHelper"; + eprosima::fastcdr::optional type_ann_builtin_InnerStructureHelper; + eprosima::fastcdr::optional ann_custom_InnerStructureHelper; + AppliedAnnotationSeq tmp_ann_custom_InnerStructureHelper; + eprosima::fastcdr::optional verbatim_InnerStructureHelper; + if (!tmp_ann_custom_InnerStructureHelper.empty()) + { + ann_custom_InnerStructureHelper = tmp_ann_custom_InnerStructureHelper; + } + + CompleteTypeDetail detail_InnerStructureHelper = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_InnerStructureHelper, ann_custom_InnerStructureHelper, type_name_InnerStructureHelper.to_string()); + CompleteStructHeader header_InnerStructureHelper; + header_InnerStructureHelper = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_InnerStructureHelper); + CompleteStructMemberSeq member_seq_InnerStructureHelper; + { + TypeIdentifierPair type_ids_field1; + ReturnCode_t return_code_field1 {eprosima::fastdds::dds::RETCODE_OK}; + return_code_field1 = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_field1); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_field1) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "field1 Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_field1 = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_field1 = 0x00000000; + bool common_field1_ec {false}; + CommonStructMember common_field1 {TypeObjectUtils::build_common_struct_member(member_id_field1, member_flags_field1, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_field1, common_field1_ec))}; + if (!common_field1_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure field1 member TypeIdentifier inconsistent."); + return; + } + MemberName name_field1 = "field1"; + eprosima::fastcdr::optional member_ann_builtin_field1; + ann_custom_InnerStructureHelper.reset(); + CompleteMemberDetail detail_field1 = TypeObjectUtils::build_complete_member_detail(name_field1, member_ann_builtin_field1, ann_custom_InnerStructureHelper); + CompleteStructMember member_field1 = TypeObjectUtils::build_complete_struct_member(common_field1, detail_field1); + TypeObjectUtils::add_complete_struct_member(member_seq_InnerStructureHelper, member_field1); + } + { + TypeIdentifierPair type_ids_field2; + ReturnCode_t return_code_field2 {eprosima::fastdds::dds::RETCODE_OK}; + return_code_field2 = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_float", type_ids_field2); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_field2) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "field2 Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_field2 = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_field2 = 0x00000001; + bool common_field2_ec {false}; + CommonStructMember common_field2 {TypeObjectUtils::build_common_struct_member(member_id_field2, member_flags_field2, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_field2, common_field2_ec))}; + if (!common_field2_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure field2 member TypeIdentifier inconsistent."); + return; + } + MemberName name_field2 = "field2"; + eprosima::fastcdr::optional member_ann_builtin_field2; + ann_custom_InnerStructureHelper.reset(); + CompleteMemberDetail detail_field2 = TypeObjectUtils::build_complete_member_detail(name_field2, member_ann_builtin_field2, ann_custom_InnerStructureHelper); + CompleteStructMember member_field2 = TypeObjectUtils::build_complete_struct_member(common_field2, detail_field2); + TypeObjectUtils::add_complete_struct_member(member_seq_InnerStructureHelper, member_field2); + } + CompleteStructType struct_type_InnerStructureHelper = TypeObjectUtils::build_complete_struct_type(struct_flags_InnerStructureHelper, header_InnerStructureHelper, member_seq_InnerStructureHelper); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_InnerStructureHelper, type_name_InnerStructureHelper.to_string(), type_ids_InnerStructureHelper)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "InnerStructureHelper already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_InnerEmptyStructureHelper_type_identifier( + TypeIdentifierPair& type_ids_InnerEmptyStructureHelper) +{ + + ReturnCode_t return_code_InnerEmptyStructureHelper {eprosima::fastdds::dds::RETCODE_OK}; + return_code_InnerEmptyStructureHelper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "InnerEmptyStructureHelper", type_ids_InnerEmptyStructureHelper); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_InnerEmptyStructureHelper) + { + StructTypeFlag struct_flags_InnerEmptyStructureHelper = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + true, false); + QualifiedTypeName type_name_InnerEmptyStructureHelper = "InnerEmptyStructureHelper"; + eprosima::fastcdr::optional type_ann_builtin_InnerEmptyStructureHelper; + eprosima::fastcdr::optional ann_custom_InnerEmptyStructureHelper; + AppliedAnnotationSeq tmp_ann_custom_InnerEmptyStructureHelper; + eprosima::fastcdr::optional verbatim_InnerEmptyStructureHelper; + if (!tmp_ann_custom_InnerEmptyStructureHelper.empty()) + { + ann_custom_InnerEmptyStructureHelper = tmp_ann_custom_InnerEmptyStructureHelper; + } + + CompleteTypeDetail detail_InnerEmptyStructureHelper = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_InnerEmptyStructureHelper, ann_custom_InnerEmptyStructureHelper, type_name_InnerEmptyStructureHelper.to_string()); + CompleteStructHeader header_InnerEmptyStructureHelper; + header_InnerEmptyStructureHelper = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_InnerEmptyStructureHelper); + CompleteStructMemberSeq member_seq_InnerEmptyStructureHelper; + CompleteStructType struct_type_InnerEmptyStructureHelper = TypeObjectUtils::build_complete_struct_type(struct_flags_InnerEmptyStructureHelper, header_InnerEmptyStructureHelper, member_seq_InnerEmptyStructureHelper); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_InnerEmptyStructureHelper, type_name_InnerEmptyStructureHelper.to_string(), type_ids_InnerEmptyStructureHelper)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "InnerEmptyStructureHelper already registered in TypeObjectRegistry for a different type."); + } + } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_InnerUnionHelper_type_identifier( + TypeIdentifierPair& type_ids_InnerUnionHelper) +{ + ReturnCode_t return_code_InnerUnionHelper {eprosima::fastdds::dds::RETCODE_OK}; + return_code_InnerUnionHelper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "InnerUnionHelper", type_ids_InnerUnionHelper); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_InnerUnionHelper) + { + UnionTypeFlag union_flags_InnerUnionHelper = TypeObjectUtils::build_union_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + true, false); + QualifiedTypeName type_name_InnerUnionHelper = "InnerUnionHelper"; + eprosima::fastcdr::optional type_ann_builtin_InnerUnionHelper; + eprosima::fastcdr::optional ann_custom_InnerUnionHelper; + AppliedAnnotationSeq tmp_ann_custom_InnerUnionHelper; + eprosima::fastcdr::optional verbatim_InnerUnionHelper; + if (!tmp_ann_custom_InnerUnionHelper.empty()) + { + ann_custom_InnerUnionHelper = tmp_ann_custom_InnerUnionHelper; + } + + CompleteTypeDetail detail_InnerUnionHelper = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_InnerUnionHelper, ann_custom_InnerUnionHelper, type_name_InnerUnionHelper.to_string()); + CompleteUnionHeader header_InnerUnionHelper = TypeObjectUtils::build_complete_union_header(detail_InnerUnionHelper); + UnionDiscriminatorFlag member_flags_InnerUnionHelper = TypeObjectUtils::build_union_discriminator_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false); + return_code_InnerUnionHelper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_InnerUnionHelper); + + if (return_code_InnerUnionHelper != eprosima::fastdds::dds::RETCODE_OK) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Union discriminator TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + CommonDiscriminatorMember common_InnerUnionHelper; + if (EK_COMPLETE == type_ids_InnerUnionHelper.type_identifier1()._d() || TK_NONE == type_ids_InnerUnionHelper.type_identifier2()._d()) + { + common_InnerUnionHelper = TypeObjectUtils::build_common_discriminator_member(member_flags_InnerUnionHelper, type_ids_InnerUnionHelper.type_identifier1()); + } + else if (EK_COMPLETE == type_ids_InnerUnionHelper.type_identifier2()._d()) + { + common_InnerUnionHelper = TypeObjectUtils::build_common_discriminator_member(member_flags_InnerUnionHelper, type_ids_InnerUnionHelper.type_identifier2()); + } + else + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "InnerUnionHelper discriminator TypeIdentifier inconsistent."); + return; + } + type_ann_builtin_InnerUnionHelper.reset(); + ann_custom_InnerUnionHelper.reset(); + CompleteDiscriminatorMember discriminator_InnerUnionHelper = TypeObjectUtils::build_complete_discriminator_member(common_InnerUnionHelper, + type_ann_builtin_InnerUnionHelper, ann_custom_InnerUnionHelper); + CompleteUnionMemberSeq member_seq_InnerUnionHelper; + { + return_code_InnerUnionHelper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_InnerUnionHelper); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_InnerUnionHelper) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "longValue Union member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + UnionMemberFlag member_flags_longValue = TypeObjectUtils::build_union_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false); + UnionCaseLabelSeq label_seq_longValue; + TypeObjectUtils::add_union_case_label(label_seq_longValue, static_cast(0)); + MemberId member_id_longValue = 0x00000001; + bool common_longValue_ec {false}; + CommonUnionMember common_longValue {TypeObjectUtils::build_common_union_member(member_id_longValue, + member_flags_longValue, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_InnerUnionHelper, + common_longValue_ec), label_seq_longValue)}; + if (!common_longValue_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Union longValue member TypeIdentifier inconsistent."); + return; + } + MemberName name_longValue = "longValue"; + eprosima::fastcdr::optional member_ann_builtin_longValue; + ann_custom_InnerUnionHelper.reset(); + CompleteMemberDetail detail_longValue = TypeObjectUtils::build_complete_member_detail(name_longValue, member_ann_builtin_longValue, ann_custom_InnerUnionHelper); + CompleteUnionMember member_longValue = TypeObjectUtils::build_complete_union_member(common_longValue, detail_longValue); + TypeObjectUtils::add_complete_union_member(member_seq_InnerUnionHelper, member_longValue); + } + { + return_code_InnerUnionHelper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_float", type_ids_InnerUnionHelper); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_InnerUnionHelper) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "floatValue Union member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + UnionMemberFlag member_flags_floatValue = TypeObjectUtils::build_union_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false); + UnionCaseLabelSeq label_seq_floatValue; + TypeObjectUtils::add_union_case_label(label_seq_floatValue, static_cast(1)); + MemberId member_id_floatValue = 0x00000002; + bool common_floatValue_ec {false}; + CommonUnionMember common_floatValue {TypeObjectUtils::build_common_union_member(member_id_floatValue, + member_flags_floatValue, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_InnerUnionHelper, + common_floatValue_ec), label_seq_floatValue)}; + if (!common_floatValue_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Union floatValue member TypeIdentifier inconsistent."); + return; + } + MemberName name_floatValue = "floatValue"; + eprosima::fastcdr::optional member_ann_builtin_floatValue; + ann_custom_InnerUnionHelper.reset(); + CompleteMemberDetail detail_floatValue = TypeObjectUtils::build_complete_member_detail(name_floatValue, member_ann_builtin_floatValue, ann_custom_InnerUnionHelper); + CompleteUnionMember member_floatValue = TypeObjectUtils::build_complete_union_member(common_floatValue, detail_floatValue); + TypeObjectUtils::add_complete_union_member(member_seq_InnerUnionHelper, member_floatValue); + } + { + return_code_InnerUnionHelper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int16_t", type_ids_InnerUnionHelper); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_InnerUnionHelper) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "shortValue Union member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + UnionMemberFlag member_flags_shortValue = TypeObjectUtils::build_union_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + true, false); + UnionCaseLabelSeq label_seq_shortValue; + MemberId member_id_shortValue = 0x00000003; + bool common_shortValue_ec {false}; + CommonUnionMember common_shortValue {TypeObjectUtils::build_common_union_member(member_id_shortValue, + member_flags_shortValue, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_InnerUnionHelper, + common_shortValue_ec), label_seq_shortValue)}; + if (!common_shortValue_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Union shortValue member TypeIdentifier inconsistent."); + return; + } + MemberName name_shortValue = "shortValue"; + eprosima::fastcdr::optional member_ann_builtin_shortValue; + ann_custom_InnerUnionHelper.reset(); + CompleteMemberDetail detail_shortValue = TypeObjectUtils::build_complete_member_detail(name_shortValue, member_ann_builtin_shortValue, ann_custom_InnerUnionHelper); + CompleteUnionMember member_shortValue = TypeObjectUtils::build_complete_union_member(common_shortValue, detail_shortValue); + TypeObjectUtils::add_complete_union_member(member_seq_InnerUnionHelper, member_shortValue); + } + CompleteUnionType union_type_InnerUnionHelper = TypeObjectUtils::build_complete_union_type(union_flags_InnerUnionHelper, header_InnerUnionHelper, discriminator_InnerUnionHelper, + member_seq_InnerUnionHelper); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_union_type_object(union_type_InnerUnionHelper, type_name_InnerUnionHelper.to_string(), type_ids_InnerUnionHelper)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "InnerUnionHelper already registered in TypeObjectRegistry for a different type."); + } + } +}void register_InnerBitsetHelper_type_identifier( + TypeIdentifierPair& type_ids_InnerBitsetHelper) +{ + ReturnCode_t return_code_InnerBitsetHelper {eprosima::fastdds::dds::RETCODE_OK}; + return_code_InnerBitsetHelper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "InnerBitsetHelper", type_ids_InnerBitsetHelper); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_InnerBitsetHelper) + { + BitsetTypeFlag bitset_flags_InnerBitsetHelper = 0; + QualifiedTypeName type_name_InnerBitsetHelper = "InnerBitsetHelper"; + eprosima::fastcdr::optional type_ann_builtin_InnerBitsetHelper; + eprosima::fastcdr::optional ann_custom_InnerBitsetHelper; + CompleteTypeDetail detail_InnerBitsetHelper = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_InnerBitsetHelper, ann_custom_InnerBitsetHelper, type_name_InnerBitsetHelper.to_string()); + CompleteBitsetHeader header_InnerBitsetHelper = TypeObjectUtils::build_complete_bitset_header(detail_InnerBitsetHelper); + CompleteBitfieldSeq field_seq_InnerBitsetHelper; + { + uint16_t position_a = 0; + BitsetMemberFlag flags_a = 0; + uint8_t bitcount_a = 3; + TypeKind holder_type_a = TK_UINT8; + CommonBitfield common_a = TypeObjectUtils::build_common_bitfield(position_a, flags_a, bitcount_a, holder_type_a); + eprosima::fastcdr::optional member_ann_builtin_a; + ann_custom_InnerBitsetHelper.reset(); + MemberName name_a = "a"; + CompleteMemberDetail detail_a = TypeObjectUtils::build_complete_member_detail(name_a, member_ann_builtin_a, ann_custom_InnerBitsetHelper); + CompleteBitfield bitfield_a = TypeObjectUtils::build_complete_bitfield(common_a, detail_a); + TypeObjectUtils::add_complete_bitfield(field_seq_InnerBitsetHelper, bitfield_a); + } + { + uint16_t position_b = 3; + BitsetMemberFlag flags_b = 0; + uint8_t bitcount_b = 1; + TypeKind holder_type_b = TK_BOOLEAN; + CommonBitfield common_b = TypeObjectUtils::build_common_bitfield(position_b, flags_b, bitcount_b, holder_type_b); + eprosima::fastcdr::optional member_ann_builtin_b; + ann_custom_InnerBitsetHelper.reset(); + MemberName name_b = "b"; + CompleteMemberDetail detail_b = TypeObjectUtils::build_complete_member_detail(name_b, member_ann_builtin_b, ann_custom_InnerBitsetHelper); + CompleteBitfield bitfield_b = TypeObjectUtils::build_complete_bitfield(common_b, detail_b); + TypeObjectUtils::add_complete_bitfield(field_seq_InnerBitsetHelper, bitfield_b); + } + { + uint16_t position_c = 8; + BitsetMemberFlag flags_c = 0; + uint8_t bitcount_c = 10; + TypeKind holder_type_c = TK_UINT16; + CommonBitfield common_c = TypeObjectUtils::build_common_bitfield(position_c, flags_c, bitcount_c, holder_type_c); + eprosima::fastcdr::optional member_ann_builtin_c; + ann_custom_InnerBitsetHelper.reset(); + MemberName name_c = "c"; + CompleteMemberDetail detail_c = TypeObjectUtils::build_complete_member_detail(name_c, member_ann_builtin_c, ann_custom_InnerBitsetHelper); + CompleteBitfield bitfield_c = TypeObjectUtils::build_complete_bitfield(common_c, detail_c); + TypeObjectUtils::add_complete_bitfield(field_seq_InnerBitsetHelper, bitfield_c); + } + { + uint16_t position_d = 21; + BitsetMemberFlag flags_d = 0; + uint8_t bitcount_d = 12; + TypeKind holder_type_d = TK_INT16; + CommonBitfield common_d = TypeObjectUtils::build_common_bitfield(position_d, flags_d, bitcount_d, holder_type_d); + eprosima::fastcdr::optional member_ann_builtin_d; + ann_custom_InnerBitsetHelper.reset(); + MemberName name_d = "d"; + CompleteMemberDetail detail_d = TypeObjectUtils::build_complete_member_detail(name_d, member_ann_builtin_d, ann_custom_InnerBitsetHelper); + CompleteBitfield bitfield_d = TypeObjectUtils::build_complete_bitfield(common_d, detail_d); + TypeObjectUtils::add_complete_bitfield(field_seq_InnerBitsetHelper, bitfield_d); + } + CompleteBitsetType bitset_type_InnerBitsetHelper = TypeObjectUtils::build_complete_bitset_type(bitset_flags_InnerBitsetHelper, header_InnerBitsetHelper, field_seq_InnerBitsetHelper); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_bitset_type_object(bitset_type_InnerBitsetHelper, + type_name_InnerBitsetHelper.to_string(), type_ids_InnerBitsetHelper)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "InnerBitsetHelper already registered in TypeObjectRegistry for a different type."); + } + } +}void register_Inner_alias_bounded_string_helper_type_identifier( + TypeIdentifierPair& type_ids_Inner_alias_bounded_string_helper) +{ + ReturnCode_t return_code_Inner_alias_bounded_string_helper {eprosima::fastdds::dds::RETCODE_OK}; + return_code_Inner_alias_bounded_string_helper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "Inner_alias_bounded_string_helper", type_ids_Inner_alias_bounded_string_helper); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Inner_alias_bounded_string_helper) + { + AliasTypeFlag alias_flags_Inner_alias_bounded_string_helper = 0; + QualifiedTypeName type_name_Inner_alias_bounded_string_helper = "Inner_alias_bounded_string_helper"; + eprosima::fastcdr::optional type_ann_builtin_Inner_alias_bounded_string_helper; + eprosima::fastcdr::optional ann_custom_Inner_alias_bounded_string_helper; + CompleteTypeDetail detail_Inner_alias_bounded_string_helper = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Inner_alias_bounded_string_helper, ann_custom_Inner_alias_bounded_string_helper, type_name_Inner_alias_bounded_string_helper.to_string()); + CompleteAliasHeader header_Inner_alias_bounded_string_helper = TypeObjectUtils::build_complete_alias_header(detail_Inner_alias_bounded_string_helper); + AliasMemberFlag related_flags_Inner_alias_bounded_string_helper = 0; + return_code_Inner_alias_bounded_string_helper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_10", type_ids_Inner_alias_bounded_string_helper); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Inner_alias_bounded_string_helper) + { + { + SBound bound = static_cast(10); + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_10", type_ids_Inner_alias_bounded_string_helper)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_10 already registered in TypeObjectRegistry for a different type."); + } + } + } + bool common_Inner_alias_bounded_string_helper_ec {false}; + CommonAliasBody common_Inner_alias_bounded_string_helper {TypeObjectUtils::build_common_alias_body(related_flags_Inner_alias_bounded_string_helper, + TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Inner_alias_bounded_string_helper, common_Inner_alias_bounded_string_helper_ec))}; + if (!common_Inner_alias_bounded_string_helper_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Inner_alias_bounded_string_helper related TypeIdentifier inconsistent."); + return; + } + eprosima::fastcdr::optional member_ann_builtin_Inner_alias_bounded_string_helper; + ann_custom_Inner_alias_bounded_string_helper.reset(); + CompleteAliasBody body_Inner_alias_bounded_string_helper = TypeObjectUtils::build_complete_alias_body(common_Inner_alias_bounded_string_helper, + member_ann_builtin_Inner_alias_bounded_string_helper, ann_custom_Inner_alias_bounded_string_helper); + CompleteAliasType alias_type_Inner_alias_bounded_string_helper = TypeObjectUtils::build_complete_alias_type(alias_flags_Inner_alias_bounded_string_helper, + header_Inner_alias_bounded_string_helper, body_Inner_alias_bounded_string_helper); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_alias_type_object(alias_type_Inner_alias_bounded_string_helper, + type_name_Inner_alias_bounded_string_helper.to_string(), type_ids_Inner_alias_bounded_string_helper)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Inner_alias_bounded_string_helper already registered in TypeObjectRegistry for a different type."); + } + } +} + +void register_Inner_alias_bounded_wstring_helper_type_identifier( + TypeIdentifierPair& type_ids_Inner_alias_bounded_wstring_helper) +{ + ReturnCode_t return_code_Inner_alias_bounded_wstring_helper {eprosima::fastdds::dds::RETCODE_OK}; + return_code_Inner_alias_bounded_wstring_helper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "Inner_alias_bounded_wstring_helper", type_ids_Inner_alias_bounded_wstring_helper); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Inner_alias_bounded_wstring_helper) + { + AliasTypeFlag alias_flags_Inner_alias_bounded_wstring_helper = 0; + QualifiedTypeName type_name_Inner_alias_bounded_wstring_helper = "Inner_alias_bounded_wstring_helper"; + eprosima::fastcdr::optional type_ann_builtin_Inner_alias_bounded_wstring_helper; + eprosima::fastcdr::optional ann_custom_Inner_alias_bounded_wstring_helper; + CompleteTypeDetail detail_Inner_alias_bounded_wstring_helper = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Inner_alias_bounded_wstring_helper, ann_custom_Inner_alias_bounded_wstring_helper, type_name_Inner_alias_bounded_wstring_helper.to_string()); + CompleteAliasHeader header_Inner_alias_bounded_wstring_helper = TypeObjectUtils::build_complete_alias_header(detail_Inner_alias_bounded_wstring_helper); + AliasMemberFlag related_flags_Inner_alias_bounded_wstring_helper = 0; + return_code_Inner_alias_bounded_wstring_helper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_wstring_10", type_ids_Inner_alias_bounded_wstring_helper); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Inner_alias_bounded_wstring_helper) + { + { + SBound bound = static_cast(10); + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_wstring_10", type_ids_Inner_alias_bounded_wstring_helper, true)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_wstring_10 already registered in TypeObjectRegistry for a different type."); + } + } + } + bool common_Inner_alias_bounded_wstring_helper_ec {false}; + CommonAliasBody common_Inner_alias_bounded_wstring_helper {TypeObjectUtils::build_common_alias_body(related_flags_Inner_alias_bounded_wstring_helper, + TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Inner_alias_bounded_wstring_helper, common_Inner_alias_bounded_wstring_helper_ec))}; + if (!common_Inner_alias_bounded_wstring_helper_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Inner_alias_bounded_wstring_helper related TypeIdentifier inconsistent."); + return; + } + eprosima::fastcdr::optional member_ann_builtin_Inner_alias_bounded_wstring_helper; + ann_custom_Inner_alias_bounded_wstring_helper.reset(); + CompleteAliasBody body_Inner_alias_bounded_wstring_helper = TypeObjectUtils::build_complete_alias_body(common_Inner_alias_bounded_wstring_helper, + member_ann_builtin_Inner_alias_bounded_wstring_helper, ann_custom_Inner_alias_bounded_wstring_helper); + CompleteAliasType alias_type_Inner_alias_bounded_wstring_helper = TypeObjectUtils::build_complete_alias_type(alias_flags_Inner_alias_bounded_wstring_helper, + header_Inner_alias_bounded_wstring_helper, body_Inner_alias_bounded_wstring_helper); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_alias_type_object(alias_type_Inner_alias_bounded_wstring_helper, + type_name_Inner_alias_bounded_wstring_helper.to_string(), type_ids_Inner_alias_bounded_wstring_helper)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Inner_alias_bounded_wstring_helper already registered in TypeObjectRegistry for a different type."); + } + } +} + +void register_Inner_alias_array_helper_type_identifier( + TypeIdentifierPair& type_ids_Inner_alias_array_helper) +{ + ReturnCode_t return_code_Inner_alias_array_helper {eprosima::fastdds::dds::RETCODE_OK}; + return_code_Inner_alias_array_helper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "Inner_alias_array_helper", type_ids_Inner_alias_array_helper); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Inner_alias_array_helper) + { + AliasTypeFlag alias_flags_Inner_alias_array_helper = 0; + QualifiedTypeName type_name_Inner_alias_array_helper = "Inner_alias_array_helper"; + eprosima::fastcdr::optional type_ann_builtin_Inner_alias_array_helper; + eprosima::fastcdr::optional ann_custom_Inner_alias_array_helper; + CompleteTypeDetail detail_Inner_alias_array_helper = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Inner_alias_array_helper, ann_custom_Inner_alias_array_helper, type_name_Inner_alias_array_helper.to_string()); + CompleteAliasHeader header_Inner_alias_array_helper = TypeObjectUtils::build_complete_alias_header(detail_Inner_alias_array_helper); + AliasMemberFlag related_flags_Inner_alias_array_helper = 0; + return_code_Inner_alias_array_helper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_array_int16_t_2", type_ids_Inner_alias_array_helper); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Inner_alias_array_helper) + { + return_code_Inner_alias_array_helper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int16_t", type_ids_Inner_alias_array_helper); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Inner_alias_array_helper) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Array element TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + bool element_identifier_anonymous_array_int16_t_2_ec {false}; + TypeIdentifier* element_identifier_anonymous_array_int16_t_2 {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Inner_alias_array_helper, element_identifier_anonymous_array_int16_t_2_ec))}; + if (!element_identifier_anonymous_array_int16_t_2_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Array element TypeIdentifier inconsistent."); + return; + } + EquivalenceKind equiv_kind_anonymous_array_int16_t_2 = EK_COMPLETE; + if (TK_NONE == type_ids_Inner_alias_array_helper.type_identifier2()._d()) + { + equiv_kind_anonymous_array_int16_t_2 = EK_BOTH; + } + CollectionElementFlag element_flags_anonymous_array_int16_t_2 = 0; + PlainCollectionHeader header_anonymous_array_int16_t_2 = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_array_int16_t_2, element_flags_anonymous_array_int16_t_2); + { + SBoundSeq array_bound_seq; + TypeObjectUtils::add_array_dimension(array_bound_seq, static_cast(2)); + + PlainArraySElemDefn array_sdefn = TypeObjectUtils::build_plain_array_s_elem_defn(header_anonymous_array_int16_t_2, array_bound_seq, + eprosima::fastcdr::external(element_identifier_anonymous_array_int16_t_2)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_array_type_identifier(array_sdefn, "anonymous_array_int16_t_2", type_ids_Inner_alias_array_helper)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_array_int16_t_2 already registered in TypeObjectRegistry for a different type."); + } + } + } + bool common_Inner_alias_array_helper_ec {false}; + CommonAliasBody common_Inner_alias_array_helper {TypeObjectUtils::build_common_alias_body(related_flags_Inner_alias_array_helper, + TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Inner_alias_array_helper, common_Inner_alias_array_helper_ec))}; + if (!common_Inner_alias_array_helper_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Inner_alias_array_helper related TypeIdentifier inconsistent."); + return; + } + eprosima::fastcdr::optional member_ann_builtin_Inner_alias_array_helper; + ann_custom_Inner_alias_array_helper.reset(); + CompleteAliasBody body_Inner_alias_array_helper = TypeObjectUtils::build_complete_alias_body(common_Inner_alias_array_helper, + member_ann_builtin_Inner_alias_array_helper, ann_custom_Inner_alias_array_helper); + CompleteAliasType alias_type_Inner_alias_array_helper = TypeObjectUtils::build_complete_alias_type(alias_flags_Inner_alias_array_helper, + header_Inner_alias_array_helper, body_Inner_alias_array_helper); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_alias_type_object(alias_type_Inner_alias_array_helper, + type_name_Inner_alias_array_helper.to_string(), type_ids_Inner_alias_array_helper)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Inner_alias_array_helper already registered in TypeObjectRegistry for a different type."); + } + } +} + +void register_Inner_alias_sequence_helper_type_identifier( + TypeIdentifierPair& type_ids_Inner_alias_sequence_helper) +{ + ReturnCode_t return_code_Inner_alias_sequence_helper {eprosima::fastdds::dds::RETCODE_OK}; + return_code_Inner_alias_sequence_helper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "Inner_alias_sequence_helper", type_ids_Inner_alias_sequence_helper); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Inner_alias_sequence_helper) + { + AliasTypeFlag alias_flags_Inner_alias_sequence_helper = 0; + QualifiedTypeName type_name_Inner_alias_sequence_helper = "Inner_alias_sequence_helper"; + eprosima::fastcdr::optional type_ann_builtin_Inner_alias_sequence_helper; + eprosima::fastcdr::optional ann_custom_Inner_alias_sequence_helper; + CompleteTypeDetail detail_Inner_alias_sequence_helper = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Inner_alias_sequence_helper, ann_custom_Inner_alias_sequence_helper, type_name_Inner_alias_sequence_helper.to_string()); + CompleteAliasHeader header_Inner_alias_sequence_helper = TypeObjectUtils::build_complete_alias_header(detail_Inner_alias_sequence_helper); + AliasMemberFlag related_flags_Inner_alias_sequence_helper = 0; + return_code_Inner_alias_sequence_helper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_sequence_int16_t_unbounded", type_ids_Inner_alias_sequence_helper); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Inner_alias_sequence_helper) + { + return_code_Inner_alias_sequence_helper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int16_t", type_ids_Inner_alias_sequence_helper); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Inner_alias_sequence_helper) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Sequence element TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + bool element_identifier_anonymous_sequence_int16_t_unbounded_ec {false}; + TypeIdentifier* element_identifier_anonymous_sequence_int16_t_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Inner_alias_sequence_helper, element_identifier_anonymous_sequence_int16_t_unbounded_ec))}; + if (!element_identifier_anonymous_sequence_int16_t_unbounded_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Sequence element TypeIdentifier inconsistent."); + return; + } + EquivalenceKind equiv_kind_anonymous_sequence_int16_t_unbounded = EK_COMPLETE; + if (TK_NONE == type_ids_Inner_alias_sequence_helper.type_identifier2()._d()) + { + equiv_kind_anonymous_sequence_int16_t_unbounded = EK_BOTH; + } + CollectionElementFlag element_flags_anonymous_sequence_int16_t_unbounded = 0; + PlainCollectionHeader header_anonymous_sequence_int16_t_unbounded = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_sequence_int16_t_unbounded, element_flags_anonymous_sequence_int16_t_unbounded); + { + SBound bound = 0; + PlainSequenceSElemDefn seq_sdefn = TypeObjectUtils::build_plain_sequence_s_elem_defn(header_anonymous_sequence_int16_t_unbounded, bound, + eprosima::fastcdr::external(element_identifier_anonymous_sequence_int16_t_unbounded)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_sequence_type_identifier(seq_sdefn, "anonymous_sequence_int16_t_unbounded", type_ids_Inner_alias_sequence_helper)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_sequence_int16_t_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + bool common_Inner_alias_sequence_helper_ec {false}; + CommonAliasBody common_Inner_alias_sequence_helper {TypeObjectUtils::build_common_alias_body(related_flags_Inner_alias_sequence_helper, + TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Inner_alias_sequence_helper, common_Inner_alias_sequence_helper_ec))}; + if (!common_Inner_alias_sequence_helper_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Inner_alias_sequence_helper related TypeIdentifier inconsistent."); + return; + } + eprosima::fastcdr::optional member_ann_builtin_Inner_alias_sequence_helper; + ann_custom_Inner_alias_sequence_helper.reset(); + CompleteAliasBody body_Inner_alias_sequence_helper = TypeObjectUtils::build_complete_alias_body(common_Inner_alias_sequence_helper, + member_ann_builtin_Inner_alias_sequence_helper, ann_custom_Inner_alias_sequence_helper); + CompleteAliasType alias_type_Inner_alias_sequence_helper = TypeObjectUtils::build_complete_alias_type(alias_flags_Inner_alias_sequence_helper, + header_Inner_alias_sequence_helper, body_Inner_alias_sequence_helper); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_alias_type_object(alias_type_Inner_alias_sequence_helper, + type_name_Inner_alias_sequence_helper.to_string(), type_ids_Inner_alias_sequence_helper)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Inner_alias_sequence_helper already registered in TypeObjectRegistry for a different type."); + } + } +} + +void register_Inner_alias_map_helper_type_identifier( + TypeIdentifierPair& type_ids_Inner_alias_map_helper) +{ + ReturnCode_t return_code_Inner_alias_map_helper {eprosima::fastdds::dds::RETCODE_OK}; + return_code_Inner_alias_map_helper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "Inner_alias_map_helper", type_ids_Inner_alias_map_helper); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Inner_alias_map_helper) + { + AliasTypeFlag alias_flags_Inner_alias_map_helper = 0; + QualifiedTypeName type_name_Inner_alias_map_helper = "Inner_alias_map_helper"; + eprosima::fastcdr::optional type_ann_builtin_Inner_alias_map_helper; + eprosima::fastcdr::optional ann_custom_Inner_alias_map_helper; + CompleteTypeDetail detail_Inner_alias_map_helper = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Inner_alias_map_helper, ann_custom_Inner_alias_map_helper, type_name_Inner_alias_map_helper.to_string()); + CompleteAliasHeader header_Inner_alias_map_helper = TypeObjectUtils::build_complete_alias_header(detail_Inner_alias_map_helper); + AliasMemberFlag related_flags_Inner_alias_map_helper = 0; + return_code_Inner_alias_map_helper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_map_int32_t_int32_t_unbounded", type_ids_Inner_alias_map_helper); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Inner_alias_map_helper) + { + return_code_Inner_alias_map_helper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_Inner_alias_map_helper); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Inner_alias_map_helper) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Map element TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + bool element_identifier_anonymous_map_int32_t_int32_t_unbounded_ec {false}; + TypeIdentifier* element_identifier_anonymous_map_int32_t_int32_t_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Inner_alias_map_helper, element_identifier_anonymous_map_int32_t_int32_t_unbounded_ec))}; + if (!element_identifier_anonymous_map_int32_t_int32_t_unbounded_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_map_int32_t_int32_t_unbounded inconsistent element TypeIdentifier."); + return; + } + return_code_Inner_alias_map_helper = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_Inner_alias_map_helper); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Inner_alias_map_helper) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Map key TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + bool key_identifier_anonymous_map_int32_t_int32_t_unbounded_ec {false}; + TypeIdentifier* key_identifier_anonymous_map_int32_t_int32_t_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Inner_alias_map_helper, key_identifier_anonymous_map_int32_t_int32_t_unbounded_ec))}; + if (!key_identifier_anonymous_map_int32_t_int32_t_unbounded_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_map_int32_t_int32_t_unbounded inconsistent key TypeIdentifier."); + return; + } + EquivalenceKind equiv_kind_anonymous_map_int32_t_int32_t_unbounded = EK_BOTH; + if ((EK_COMPLETE == key_identifier_anonymous_map_int32_t_int32_t_unbounded->_d() || EK_COMPLETE == element_identifier_anonymous_map_int32_t_int32_t_unbounded->_d()) || + (TI_PLAIN_SEQUENCE_SMALL == element_identifier_anonymous_map_int32_t_int32_t_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_int32_t_int32_t_unbounded->seq_sdefn().header().equiv_kind()) || + (TI_PLAIN_SEQUENCE_LARGE == element_identifier_anonymous_map_int32_t_int32_t_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_int32_t_int32_t_unbounded->seq_ldefn().header().equiv_kind()) || + (TI_PLAIN_ARRAY_SMALL == element_identifier_anonymous_map_int32_t_int32_t_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_int32_t_int32_t_unbounded->array_sdefn().header().equiv_kind()) || + (TI_PLAIN_ARRAY_LARGE == element_identifier_anonymous_map_int32_t_int32_t_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_int32_t_int32_t_unbounded->array_ldefn().header().equiv_kind()) || + (TI_PLAIN_MAP_SMALL == element_identifier_anonymous_map_int32_t_int32_t_unbounded->_d() && (EK_COMPLETE == element_identifier_anonymous_map_int32_t_int32_t_unbounded->map_sdefn().key_identifier()->_d() || EK_COMPLETE == element_identifier_anonymous_map_int32_t_int32_t_unbounded->map_sdefn().header().equiv_kind())) || + (TI_PLAIN_MAP_LARGE == element_identifier_anonymous_map_int32_t_int32_t_unbounded->_d() && (EK_COMPLETE == element_identifier_anonymous_map_int32_t_int32_t_unbounded->map_ldefn().key_identifier()->_d() || EK_COMPLETE == element_identifier_anonymous_map_int32_t_int32_t_unbounded->map_ldefn().header().equiv_kind()))) + { + equiv_kind_anonymous_map_int32_t_int32_t_unbounded = EK_COMPLETE; + } + CollectionElementFlag element_flags_anonymous_map_int32_t_int32_t_unbounded = 0; + CollectionElementFlag key_flags_anonymous_map_int32_t_int32_t_unbounded = 0; + PlainCollectionHeader header_anonymous_map_int32_t_int32_t_unbounded = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_map_int32_t_int32_t_unbounded, element_flags_anonymous_map_int32_t_int32_t_unbounded); + { + SBound bound = 0; + PlainMapSTypeDefn map_sdefn = TypeObjectUtils::build_plain_map_s_type_defn(header_anonymous_map_int32_t_int32_t_unbounded, bound, + eprosima::fastcdr::external(element_identifier_anonymous_map_int32_t_int32_t_unbounded), key_flags_anonymous_map_int32_t_int32_t_unbounded, + eprosima::fastcdr::external(key_identifier_anonymous_map_int32_t_int32_t_unbounded)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_map_type_identifier(map_sdefn, "anonymous_map_int32_t_int32_t_unbounded", type_ids_Inner_alias_map_helper)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_map_int32_t_int32_t_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + bool common_Inner_alias_map_helper_ec {false}; + CommonAliasBody common_Inner_alias_map_helper {TypeObjectUtils::build_common_alias_body(related_flags_Inner_alias_map_helper, + TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Inner_alias_map_helper, common_Inner_alias_map_helper_ec))}; + if (!common_Inner_alias_map_helper_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Inner_alias_map_helper related TypeIdentifier inconsistent."); + return; + } + eprosima::fastcdr::optional member_ann_builtin_Inner_alias_map_helper; + ann_custom_Inner_alias_map_helper.reset(); + CompleteAliasBody body_Inner_alias_map_helper = TypeObjectUtils::build_complete_alias_body(common_Inner_alias_map_helper, + member_ann_builtin_Inner_alias_map_helper, ann_custom_Inner_alias_map_helper); + CompleteAliasType alias_type_Inner_alias_map_helper = TypeObjectUtils::build_complete_alias_type(alias_flags_Inner_alias_map_helper, + header_Inner_alias_map_helper, body_Inner_alias_map_helper); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_alias_type_object(alias_type_Inner_alias_map_helper, + type_name_Inner_alias_map_helper.to_string(), type_ids_Inner_alias_map_helper)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Inner_alias_map_helper already registered in TypeObjectRegistry for a different type."); + } + } +} + +void register_inner_structure_helper_alias_type_identifier( + TypeIdentifierPair& type_ids_inner_structure_helper_alias) +{ + ReturnCode_t return_code_inner_structure_helper_alias {eprosima::fastdds::dds::RETCODE_OK}; + return_code_inner_structure_helper_alias = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "inner_structure_helper_alias", type_ids_inner_structure_helper_alias); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_inner_structure_helper_alias) + { + AliasTypeFlag alias_flags_inner_structure_helper_alias = 0; + QualifiedTypeName type_name_inner_structure_helper_alias = "inner_structure_helper_alias"; + eprosima::fastcdr::optional type_ann_builtin_inner_structure_helper_alias; + eprosima::fastcdr::optional ann_custom_inner_structure_helper_alias; + CompleteTypeDetail detail_inner_structure_helper_alias = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_inner_structure_helper_alias, ann_custom_inner_structure_helper_alias, type_name_inner_structure_helper_alias.to_string()); + CompleteAliasHeader header_inner_structure_helper_alias = TypeObjectUtils::build_complete_alias_header(detail_inner_structure_helper_alias); + AliasMemberFlag related_flags_inner_structure_helper_alias = 0; + return_code_inner_structure_helper_alias = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "InnerStructureHelper", type_ids_inner_structure_helper_alias); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_inner_structure_helper_alias) + { + ::register_InnerStructureHelper_type_identifier(type_ids_inner_structure_helper_alias); + } + bool common_inner_structure_helper_alias_ec {false}; + CommonAliasBody common_inner_structure_helper_alias {TypeObjectUtils::build_common_alias_body(related_flags_inner_structure_helper_alias, + TypeObjectUtils::retrieve_complete_type_identifier(type_ids_inner_structure_helper_alias, common_inner_structure_helper_alias_ec))}; + if (!common_inner_structure_helper_alias_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "inner_structure_helper_alias related TypeIdentifier inconsistent."); + return; + } + eprosima::fastcdr::optional member_ann_builtin_inner_structure_helper_alias; + ann_custom_inner_structure_helper_alias.reset(); + CompleteAliasBody body_inner_structure_helper_alias = TypeObjectUtils::build_complete_alias_body(common_inner_structure_helper_alias, + member_ann_builtin_inner_structure_helper_alias, ann_custom_inner_structure_helper_alias); + CompleteAliasType alias_type_inner_structure_helper_alias = TypeObjectUtils::build_complete_alias_type(alias_flags_inner_structure_helper_alias, + header_inner_structure_helper_alias, body_inner_structure_helper_alias); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_alias_type_object(alias_type_inner_structure_helper_alias, + type_name_inner_structure_helper_alias.to_string(), type_ids_inner_structure_helper_alias)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "inner_structure_helper_alias already registered in TypeObjectRegistry for a different type."); + } + } +} + +void register_inner_bitset_helper_alias_type_identifier( + TypeIdentifierPair& type_ids_inner_bitset_helper_alias) +{ + ReturnCode_t return_code_inner_bitset_helper_alias {eprosima::fastdds::dds::RETCODE_OK}; + return_code_inner_bitset_helper_alias = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "inner_bitset_helper_alias", type_ids_inner_bitset_helper_alias); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_inner_bitset_helper_alias) + { + AliasTypeFlag alias_flags_inner_bitset_helper_alias = 0; + QualifiedTypeName type_name_inner_bitset_helper_alias = "inner_bitset_helper_alias"; + eprosima::fastcdr::optional type_ann_builtin_inner_bitset_helper_alias; + eprosima::fastcdr::optional ann_custom_inner_bitset_helper_alias; + CompleteTypeDetail detail_inner_bitset_helper_alias = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_inner_bitset_helper_alias, ann_custom_inner_bitset_helper_alias, type_name_inner_bitset_helper_alias.to_string()); + CompleteAliasHeader header_inner_bitset_helper_alias = TypeObjectUtils::build_complete_alias_header(detail_inner_bitset_helper_alias); + AliasMemberFlag related_flags_inner_bitset_helper_alias = 0; + return_code_inner_bitset_helper_alias = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "InnerBitsetHelper", type_ids_inner_bitset_helper_alias); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_inner_bitset_helper_alias) + { + ::register_InnerBitsetHelper_type_identifier(type_ids_inner_bitset_helper_alias); + } + bool common_inner_bitset_helper_alias_ec {false}; + CommonAliasBody common_inner_bitset_helper_alias {TypeObjectUtils::build_common_alias_body(related_flags_inner_bitset_helper_alias, + TypeObjectUtils::retrieve_complete_type_identifier(type_ids_inner_bitset_helper_alias, common_inner_bitset_helper_alias_ec))}; + if (!common_inner_bitset_helper_alias_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "inner_bitset_helper_alias related TypeIdentifier inconsistent."); + return; + } + eprosima::fastcdr::optional member_ann_builtin_inner_bitset_helper_alias; + ann_custom_inner_bitset_helper_alias.reset(); + CompleteAliasBody body_inner_bitset_helper_alias = TypeObjectUtils::build_complete_alias_body(common_inner_bitset_helper_alias, + member_ann_builtin_inner_bitset_helper_alias, ann_custom_inner_bitset_helper_alias); + CompleteAliasType alias_type_inner_bitset_helper_alias = TypeObjectUtils::build_complete_alias_type(alias_flags_inner_bitset_helper_alias, + header_inner_bitset_helper_alias, body_inner_bitset_helper_alias); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_alias_type_object(alias_type_inner_bitset_helper_alias, + type_name_inner_bitset_helper_alias.to_string(), type_ids_inner_bitset_helper_alias)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "inner_bitset_helper_alias already registered in TypeObjectRegistry for a different type."); + } + } +} + + diff --git a/test/dds-types-test/helpers/helpers/basic_inner_typesTypeObjectSupport.hpp b/test/dds-types-test/helpers/helpers/basic_inner_typesTypeObjectSupport.hpp new file mode 100644 index 00000000000..c26f49a6892 --- /dev/null +++ b/test/dds-types-test/helpers/helpers/basic_inner_typesTypeObjectSupport.hpp @@ -0,0 +1,240 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file basic_inner_typesTypeObjectSupport.hpp + * Header file containing the API required to register the TypeObject representation of the described types in the IDL file + * + * This file was generated by the tool fastddsgen (version: 4.1.0). + */ + +#ifndef FAST_DDS_GENERATED__BASIC_INNER_TYPES_TYPE_OBJECT_SUPPORT_HPP +#define FAST_DDS_GENERATED__BASIC_INNER_TYPES_TYPE_OBJECT_SUPPORT_HPP + +#include + + +#if defined(_WIN32) +#if defined(EPROSIMA_USER_DLL_EXPORT) +#define eProsima_user_DllExport __declspec( dllexport ) +#else +#define eProsima_user_DllExport +#endif // EPROSIMA_USER_DLL_EXPORT +#else +#define eProsima_user_DllExport +#endif // _WIN32 + +#ifndef DOXYGEN_SHOULD_SKIP_THIS_PUBLIC + +/** + * @brief Register InnerEnumHelper related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_InnerEnumHelper_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register InnerBitMaskHelper related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_InnerBitMaskHelper_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register InnerBoundedBitMaskHelper related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_InnerBoundedBitMaskHelper_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register InnerAliasHelper related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_InnerAliasHelper_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + + +/** + * @brief Register InnerStructureHelper related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_InnerStructureHelper_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register InnerEmptyStructureHelper related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_InnerEmptyStructureHelper_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register InnerUnionHelper related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_InnerUnionHelper_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register InnerBitsetHelper related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_InnerBitsetHelper_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register Inner_alias_bounded_string_helper related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_Inner_alias_bounded_string_helper_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + + +/** + * @brief Register Inner_alias_bounded_wstring_helper related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_Inner_alias_bounded_wstring_helper_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + + +/** + * @brief Register Inner_alias_array_helper related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_Inner_alias_array_helper_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + + +/** + * @brief Register Inner_alias_sequence_helper related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_Inner_alias_sequence_helper_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + + +/** + * @brief Register Inner_alias_map_helper related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_Inner_alias_map_helper_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + + +/** + * @brief Register inner_structure_helper_alias related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_inner_structure_helper_alias_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + + +/** + * @brief Register inner_bitset_helper_alias related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_inner_bitset_helper_alias_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + + + + +#endif // DOXYGEN_SHOULD_SKIP_THIS_PUBLIC + +#endif // FAST_DDS_GENERATED__BASIC_INNER_TYPES_TYPE_OBJECT_SUPPORT_HPP diff --git a/test/dds-types-test/inheritanceCdrAux.hpp b/test/dds-types-test/inheritanceCdrAux.hpp index b5e7191a578..7a870fb9f48 100644 --- a/test/dds-types-test/inheritanceCdrAux.hpp +++ b/test/dds-types-test/inheritanceCdrAux.hpp @@ -44,12 +44,14 @@ constexpr uint32_t InnerStructureHelperEmptyChildChild_max_key_cdr_typesize {0UL + constexpr uint32_t StructuresInheritanceStruct_max_cdr_typesize {142UL}; constexpr uint32_t StructuresInheritanceStruct_max_key_cdr_typesize {0UL}; + constexpr uint32_t BitsetsChildInheritanceStruct_max_cdr_typesize {32UL}; constexpr uint32_t BitsetsChildInheritanceStruct_max_key_cdr_typesize {0UL}; @@ -75,35 +77,43 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const InnerStructureHelperChild& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const InnerStructureHelperChildChild& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const InnerStructureHelperEmptyChild& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const InnerStructureHelperEmptyChildChild& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const InnerEmptyStructureHelperChild& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructAliasInheritanceStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructuresInheritanceStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const BitsetsChildInheritanceStruct& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/inheritanceCdrAux.ipp b/test/dds-types-test/inheritanceCdrAux.ipp index b2ca62b7971..91d7d98ab6a 100644 --- a/test/dds-types-test/inheritanceCdrAux.ipp +++ b/test/dds-types-test/inheritanceCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_InnerStructureHelperChild_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -88,6 +97,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerStructureHelperChild* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerStructureHelperChild_cdr_plain(data_representation) && + sizeof(InnerStructureHelperChild) == InnerStructureHelperChild_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(InnerStructureHelperChild)); + + scdr.jump((array_size -1) * sizeof(InnerStructureHelperChild)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -125,6 +172,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerStructureHelperChild* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerStructureHelperChild_cdr_plain(data_representation) && + sizeof(InnerStructureHelperChild) == InnerStructureHelperChild_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(InnerStructureHelperChild)); + + scdr.jump((array_size - 1) * sizeof(InnerStructureHelperChild)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const InnerStructureHelperChild& data) @@ -136,6 +219,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_InnerStructureHelperChildChild_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -198,6 +289,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerStructureHelperChildChild* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerStructureHelperChildChild_cdr_plain(data_representation) && + sizeof(InnerStructureHelperChildChild) == InnerStructureHelperChildChild_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(InnerStructureHelperChildChild)); + + scdr.jump((array_size -1) * sizeof(InnerStructureHelperChildChild)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -243,6 +372,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerStructureHelperChildChild* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerStructureHelperChildChild_cdr_plain(data_representation) && + sizeof(InnerStructureHelperChildChild) == InnerStructureHelperChildChild_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(InnerStructureHelperChildChild)); + + scdr.jump((array_size - 1) * sizeof(InnerStructureHelperChildChild)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const InnerStructureHelperChildChild& data) @@ -254,6 +419,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_InnerStructureHelperEmptyChild_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -300,6 +473,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerStructureHelperEmptyChild* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerStructureHelperEmptyChild_cdr_plain(data_representation) && + sizeof(InnerStructureHelperEmptyChild) == InnerStructureHelperEmptyChild_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(InnerStructureHelperEmptyChild)); + + scdr.jump((array_size -1) * sizeof(InnerStructureHelperEmptyChild)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -329,6 +540,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerStructureHelperEmptyChild* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerStructureHelperEmptyChild_cdr_plain(data_representation) && + sizeof(InnerStructureHelperEmptyChild) == InnerStructureHelperEmptyChild_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(InnerStructureHelperEmptyChild)); + + scdr.jump((array_size - 1) * sizeof(InnerStructureHelperEmptyChild)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const InnerStructureHelperEmptyChild& data) @@ -340,6 +587,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_InnerStructureHelperEmptyChildChild_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -390,6 +645,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerStructureHelperEmptyChildChild* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerStructureHelperEmptyChildChild_cdr_plain(data_representation) && + sizeof(InnerStructureHelperEmptyChildChild) == InnerStructureHelperEmptyChildChild_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(InnerStructureHelperEmptyChildChild)); + + scdr.jump((array_size -1) * sizeof(InnerStructureHelperEmptyChildChild)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -423,6 +716,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerStructureHelperEmptyChildChild* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerStructureHelperEmptyChildChild_cdr_plain(data_representation) && + sizeof(InnerStructureHelperEmptyChildChild) == InnerStructureHelperEmptyChildChild_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(InnerStructureHelperEmptyChildChild)); + + scdr.jump((array_size - 1) * sizeof(InnerStructureHelperEmptyChildChild)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const InnerStructureHelperEmptyChildChild& data) @@ -434,6 +763,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_InnerEmptyStructureHelperChild_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -480,6 +817,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerEmptyStructureHelperChild* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerEmptyStructureHelperChild_cdr_plain(data_representation) && + sizeof(InnerEmptyStructureHelperChild) == InnerEmptyStructureHelperChild_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(InnerEmptyStructureHelperChild)); + + scdr.jump((array_size -1) * sizeof(InnerEmptyStructureHelperChild)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -509,6 +884,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerEmptyStructureHelperChild* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerEmptyStructureHelperChild_cdr_plain(data_representation) && + sizeof(InnerEmptyStructureHelperChild) == InnerEmptyStructureHelperChild_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(InnerEmptyStructureHelperChild)); + + scdr.jump((array_size - 1) * sizeof(InnerEmptyStructureHelperChild)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const InnerEmptyStructureHelperChild& data) @@ -520,6 +931,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructAliasInheritanceStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -570,6 +989,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructAliasInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructAliasInheritanceStruct_cdr_plain(data_representation) && + sizeof(StructAliasInheritanceStruct) == StructAliasInheritanceStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructAliasInheritanceStruct)); + + scdr.jump((array_size -1) * sizeof(StructAliasInheritanceStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -603,6 +1060,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructAliasInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructAliasInheritanceStruct_cdr_plain(data_representation) && + sizeof(StructAliasInheritanceStruct) == StructAliasInheritanceStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructAliasInheritanceStruct)); + + scdr.jump((array_size - 1) * sizeof(StructAliasInheritanceStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructAliasInheritanceStruct& data) @@ -614,6 +1107,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructuresInheritanceStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -676,6 +1177,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructuresInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructuresInheritanceStruct_cdr_plain(data_representation) && + sizeof(StructuresInheritanceStruct) == StructuresInheritanceStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructuresInheritanceStruct)); + + scdr.jump((array_size -1) * sizeof(StructuresInheritanceStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -721,6 +1260,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructuresInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructuresInheritanceStruct_cdr_plain(data_representation) && + sizeof(StructuresInheritanceStruct) == StructuresInheritanceStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructuresInheritanceStruct)); + + scdr.jump((array_size - 1) * sizeof(StructuresInheritanceStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructuresInheritanceStruct& data) @@ -806,6 +1381,19 @@ eProsima_user_DllExport void serialize( scdr << bitset; } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerBitsetHelperChild* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of bitsets not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& dcdr, @@ -835,6 +1423,19 @@ eProsima_user_DllExport void deserialize( } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerBitsetHelperChild* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of bitsets not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -877,6 +1478,19 @@ eProsima_user_DllExport void serialize( scdr << bitset; } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerBitsetHelperChildChild* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of bitsets not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& dcdr, @@ -909,6 +1523,19 @@ eProsima_user_DllExport void deserialize( } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerBitsetHelperChildChild* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of bitsets not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -948,6 +1575,19 @@ eProsima_user_DllExport void serialize( scdr << bitset; } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const BitsetAliasInheritanceBitset* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of bitsets not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& dcdr, @@ -977,6 +1617,27 @@ eProsima_user_DllExport void deserialize( } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + BitsetAliasInheritanceBitset* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of bitsets not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_BitsetsChildInheritanceStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1027,6 +1688,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const BitsetsChildInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BitsetsChildInheritanceStruct_cdr_plain(data_representation) && + sizeof(BitsetsChildInheritanceStruct) == BitsetsChildInheritanceStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(BitsetsChildInheritanceStruct)); + + scdr.jump((array_size -1) * sizeof(BitsetsChildInheritanceStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1060,6 +1759,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + BitsetsChildInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BitsetsChildInheritanceStruct_cdr_plain(data_representation) && + sizeof(BitsetsChildInheritanceStruct) == BitsetsChildInheritanceStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(BitsetsChildInheritanceStruct)); + + scdr.jump((array_size - 1) * sizeof(BitsetsChildInheritanceStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const BitsetsChildInheritanceStruct& data) diff --git a/test/dds-types-test/inheritancePubSubTypes.cxx b/test/dds-types-test/inheritancePubSubTypes.cxx index 9c8e7c1356d..31e1b6822ca 100644 --- a/test/dds-types-test/inheritancePubSubTypes.cxx +++ b/test/dds-types-test/inheritancePubSubTypes.cxx @@ -31,6 +31,55 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_InnerStructureHelperChild_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_InnerStructureHelperEmptyChild_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_InnerEmptyStructureHelperChild_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_InnerStructureHelperChildChild_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_InnerStructureHelperEmptyChildChild_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + +bool is_StructuresInheritanceStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + + + +bool is_BitsetsChildInheritanceStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + + + +bool is_StructAliasInheritanceStruct_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + InnerStructureHelperChildPubSubType::InnerStructureHelperChildPubSubType() { set_name("InnerStructureHelperChild"); @@ -149,6 +198,17 @@ void InnerStructureHelperChildPubSubType::delete_data( delete(reinterpret_cast<::InnerStructureHelperChild*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool InnerStructureHelperChildPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool InnerStructureHelperChildPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +391,17 @@ void InnerStructureHelperChildChildPubSubType::delete_data( delete(reinterpret_cast<::InnerStructureHelperChildChild*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool InnerStructureHelperChildChildPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool InnerStructureHelperChildChildPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +584,17 @@ void InnerStructureHelperEmptyChildPubSubType::delete_data( delete(reinterpret_cast<::InnerStructureHelperEmptyChild*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool InnerStructureHelperEmptyChildPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool InnerStructureHelperEmptyChildPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -695,6 +777,17 @@ void InnerStructureHelperEmptyChildChildPubSubType::delete_data( delete(reinterpret_cast<::InnerStructureHelperEmptyChildChild*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool InnerStructureHelperEmptyChildChildPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool InnerStructureHelperEmptyChildChildPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -877,6 +970,17 @@ void InnerEmptyStructureHelperChildPubSubType::delete_data( delete(reinterpret_cast<::InnerEmptyStructureHelperChild*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool InnerEmptyStructureHelperChildPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool InnerEmptyStructureHelperChildPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1059,6 +1163,17 @@ void StructAliasInheritanceStructPubSubType::delete_data( delete(reinterpret_cast<::StructAliasInheritanceStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructAliasInheritanceStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructAliasInheritanceStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1241,6 +1356,17 @@ void StructuresInheritanceStructPubSubType::delete_data( delete(reinterpret_cast<::StructuresInheritanceStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructuresInheritanceStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructuresInheritanceStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1423,6 +1549,17 @@ void BitsetsChildInheritanceStructPubSubType::delete_data( delete(reinterpret_cast<::BitsetsChildInheritanceStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool BitsetsChildInheritanceStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool BitsetsChildInheritanceStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds-types-test/inheritancePubSubTypes.hpp b/test/dds-types-test/inheritancePubSubTypes.hpp index a509c307d10..e4c34e4ce11 100644 --- a/test/dds-types-test/inheritancePubSubTypes.hpp +++ b/test/dds-types-test/inheritancePubSubTypes.hpp @@ -94,12 +94,8 @@ class InnerStructureHelperChildPubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -176,12 +172,8 @@ class InnerStructureHelperChildChildPubSubType : public eprosima::fastdds::dds:: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -258,12 +250,8 @@ class InnerStructureHelperEmptyChildPubSubType : public eprosima::fastdds::dds:: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -340,12 +328,8 @@ class InnerStructureHelperEmptyChildChildPubSubType : public eprosima::fastdds:: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -422,12 +406,8 @@ class InnerEmptyStructureHelperChildPubSubType : public eprosima::fastdds::dds:: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -504,12 +484,8 @@ class StructAliasInheritanceStructPubSubType : public eprosima::fastdds::dds::To #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -586,12 +562,8 @@ class StructuresInheritanceStructPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -668,12 +640,8 @@ class BitsetsChildInheritanceStructPubSubType : public eprosima::fastdds::dds::T #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds-types-test/keyCdrAux.hpp b/test/dds-types-test/keyCdrAux.hpp index 82563e25e8f..6fc574637d8 100644 --- a/test/dds-types-test/keyCdrAux.hpp +++ b/test/dds-types-test/keyCdrAux.hpp @@ -94,83 +94,103 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedShortStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedUShortStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedLongStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedULongStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedLongLongStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedULongLongStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedFloatStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedDoubleStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedLongDoubleStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedBooleanStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedOctetStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedCharStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedWCharStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedEmptyStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedEmptyInheritanceStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedInheritanceStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const InheritanceKeyedEmptyStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedFinal& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedAppendable& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedMutable& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/keyCdrAux.ipp b/test/dds-types-test/keyCdrAux.ipp index 37e64d8a36e..171b6e9821b 100644 --- a/test/dds-types-test/keyCdrAux.ipp +++ b/test/dds-types-test/keyCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_KeyedShortStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -80,6 +89,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyedShortStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedShortStruct_cdr_plain(data_representation) && + sizeof(KeyedShortStruct) == KeyedShortStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyedShortStruct)); + + scdr.jump((array_size -1) * sizeof(KeyedShortStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -109,6 +156,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyedShortStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedShortStruct_cdr_plain(data_representation) && + sizeof(KeyedShortStruct) == KeyedShortStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyedShortStruct)); + + scdr.jump((array_size - 1) * sizeof(KeyedShortStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedShortStruct& data) @@ -122,6 +205,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_KeyedUShortStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -168,6 +259,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyedUShortStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedUShortStruct_cdr_plain(data_representation) && + sizeof(KeyedUShortStruct) == KeyedUShortStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyedUShortStruct)); + + scdr.jump((array_size -1) * sizeof(KeyedUShortStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -197,6 +326,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyedUShortStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedUShortStruct_cdr_plain(data_representation) && + sizeof(KeyedUShortStruct) == KeyedUShortStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyedUShortStruct)); + + scdr.jump((array_size - 1) * sizeof(KeyedUShortStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedUShortStruct& data) @@ -210,6 +375,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_KeyedLongStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -256,6 +429,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyedLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedLongStruct_cdr_plain(data_representation) && + sizeof(KeyedLongStruct) == KeyedLongStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyedLongStruct)); + + scdr.jump((array_size -1) * sizeof(KeyedLongStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -285,6 +496,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyedLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedLongStruct_cdr_plain(data_representation) && + sizeof(KeyedLongStruct) == KeyedLongStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyedLongStruct)); + + scdr.jump((array_size - 1) * sizeof(KeyedLongStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedLongStruct& data) @@ -298,6 +545,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_KeyedULongStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -344,6 +599,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyedULongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedULongStruct_cdr_plain(data_representation) && + sizeof(KeyedULongStruct) == KeyedULongStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyedULongStruct)); + + scdr.jump((array_size -1) * sizeof(KeyedULongStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -373,6 +666,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyedULongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedULongStruct_cdr_plain(data_representation) && + sizeof(KeyedULongStruct) == KeyedULongStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyedULongStruct)); + + scdr.jump((array_size - 1) * sizeof(KeyedULongStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedULongStruct& data) @@ -386,6 +715,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_KeyedLongLongStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -432,6 +769,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyedLongLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedLongLongStruct_cdr_plain(data_representation) && + sizeof(KeyedLongLongStruct) == KeyedLongLongStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyedLongLongStruct)); + + scdr.jump((array_size -1) * sizeof(KeyedLongLongStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -461,6 +836,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyedLongLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedLongLongStruct_cdr_plain(data_representation) && + sizeof(KeyedLongLongStruct) == KeyedLongLongStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyedLongLongStruct)); + + scdr.jump((array_size - 1) * sizeof(KeyedLongLongStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedLongLongStruct& data) @@ -474,6 +885,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_KeyedULongLongStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -520,6 +939,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyedULongLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedULongLongStruct_cdr_plain(data_representation) && + sizeof(KeyedULongLongStruct) == KeyedULongLongStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyedULongLongStruct)); + + scdr.jump((array_size -1) * sizeof(KeyedULongLongStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -549,6 +1006,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyedULongLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedULongLongStruct_cdr_plain(data_representation) && + sizeof(KeyedULongLongStruct) == KeyedULongLongStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyedULongLongStruct)); + + scdr.jump((array_size - 1) * sizeof(KeyedULongLongStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedULongLongStruct& data) @@ -562,6 +1055,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_KeyedFloatStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -608,6 +1109,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyedFloatStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedFloatStruct_cdr_plain(data_representation) && + sizeof(KeyedFloatStruct) == KeyedFloatStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyedFloatStruct)); + + scdr.jump((array_size -1) * sizeof(KeyedFloatStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -637,6 +1176,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyedFloatStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedFloatStruct_cdr_plain(data_representation) && + sizeof(KeyedFloatStruct) == KeyedFloatStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyedFloatStruct)); + + scdr.jump((array_size - 1) * sizeof(KeyedFloatStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedFloatStruct& data) @@ -650,6 +1225,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_KeyedDoubleStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -696,6 +1279,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyedDoubleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedDoubleStruct_cdr_plain(data_representation) && + sizeof(KeyedDoubleStruct) == KeyedDoubleStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyedDoubleStruct)); + + scdr.jump((array_size -1) * sizeof(KeyedDoubleStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -725,6 +1346,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyedDoubleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedDoubleStruct_cdr_plain(data_representation) && + sizeof(KeyedDoubleStruct) == KeyedDoubleStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyedDoubleStruct)); + + scdr.jump((array_size - 1) * sizeof(KeyedDoubleStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedDoubleStruct& data) @@ -738,6 +1395,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_KeyedLongDoubleStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -784,6 +1449,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyedLongDoubleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedLongDoubleStruct_cdr_plain(data_representation) && + sizeof(KeyedLongDoubleStruct) == KeyedLongDoubleStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyedLongDoubleStruct)); + + scdr.jump((array_size -1) * sizeof(KeyedLongDoubleStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -813,6 +1516,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyedLongDoubleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedLongDoubleStruct_cdr_plain(data_representation) && + sizeof(KeyedLongDoubleStruct) == KeyedLongDoubleStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyedLongDoubleStruct)); + + scdr.jump((array_size - 1) * sizeof(KeyedLongDoubleStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedLongDoubleStruct& data) @@ -826,6 +1565,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_KeyedBooleanStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -872,6 +1619,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyedBooleanStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedBooleanStruct_cdr_plain(data_representation) && + sizeof(KeyedBooleanStruct) == KeyedBooleanStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyedBooleanStruct)); + + scdr.jump((array_size -1) * sizeof(KeyedBooleanStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -901,6 +1686,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyedBooleanStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedBooleanStruct_cdr_plain(data_representation) && + sizeof(KeyedBooleanStruct) == KeyedBooleanStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyedBooleanStruct)); + + scdr.jump((array_size - 1) * sizeof(KeyedBooleanStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedBooleanStruct& data) @@ -914,6 +1735,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_KeyedOctetStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -960,6 +1789,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyedOctetStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedOctetStruct_cdr_plain(data_representation) && + sizeof(KeyedOctetStruct) == KeyedOctetStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyedOctetStruct)); + + scdr.jump((array_size -1) * sizeof(KeyedOctetStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -989,6 +1856,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyedOctetStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedOctetStruct_cdr_plain(data_representation) && + sizeof(KeyedOctetStruct) == KeyedOctetStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyedOctetStruct)); + + scdr.jump((array_size - 1) * sizeof(KeyedOctetStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedOctetStruct& data) @@ -1002,6 +1905,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_KeyedCharStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1048,6 +1959,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyedCharStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedCharStruct_cdr_plain(data_representation) && + sizeof(KeyedCharStruct) == KeyedCharStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyedCharStruct)); + + scdr.jump((array_size -1) * sizeof(KeyedCharStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1077,6 +2026,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyedCharStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedCharStruct_cdr_plain(data_representation) && + sizeof(KeyedCharStruct) == KeyedCharStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyedCharStruct)); + + scdr.jump((array_size - 1) * sizeof(KeyedCharStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedCharStruct& data) @@ -1090,6 +2075,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_KeyedWCharStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1136,6 +2129,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyedWCharStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedWCharStruct_cdr_plain(data_representation) && + sizeof(KeyedWCharStruct) == KeyedWCharStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyedWCharStruct)); + + scdr.jump((array_size -1) * sizeof(KeyedWCharStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1165,6 +2196,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyedWCharStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedWCharStruct_cdr_plain(data_representation) && + sizeof(KeyedWCharStruct) == KeyedWCharStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyedWCharStruct)); + + scdr.jump((array_size - 1) * sizeof(KeyedWCharStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedWCharStruct& data) @@ -1178,6 +2245,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_KeyedEmptyStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1220,6 +2295,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyedEmptyStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedEmptyStruct_cdr_plain(data_representation) && + sizeof(KeyedEmptyStruct) == KeyedEmptyStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyedEmptyStruct)); + + scdr.jump((array_size -1) * sizeof(KeyedEmptyStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1245,6 +2358,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyedEmptyStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedEmptyStruct_cdr_plain(data_representation) && + sizeof(KeyedEmptyStruct) == KeyedEmptyStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyedEmptyStruct)); + + scdr.jump((array_size - 1) * sizeof(KeyedEmptyStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedEmptyStruct& data) @@ -1257,6 +2406,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_KeyedEmptyInheritanceStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1307,6 +2464,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyedEmptyInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedEmptyInheritanceStruct_cdr_plain(data_representation) && + sizeof(KeyedEmptyInheritanceStruct) == KeyedEmptyInheritanceStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyedEmptyInheritanceStruct)); + + scdr.jump((array_size -1) * sizeof(KeyedEmptyInheritanceStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1340,6 +2535,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyedEmptyInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedEmptyInheritanceStruct_cdr_plain(data_representation) && + sizeof(KeyedEmptyInheritanceStruct) == KeyedEmptyInheritanceStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyedEmptyInheritanceStruct)); + + scdr.jump((array_size - 1) * sizeof(KeyedEmptyInheritanceStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedEmptyInheritanceStruct& data) @@ -1351,6 +2582,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_KeyedInheritanceStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1405,6 +2644,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyedInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedInheritanceStruct_cdr_plain(data_representation) && + sizeof(KeyedInheritanceStruct) == KeyedInheritanceStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyedInheritanceStruct)); + + scdr.jump((array_size -1) * sizeof(KeyedInheritanceStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1442,6 +2719,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyedInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedInheritanceStruct_cdr_plain(data_representation) && + sizeof(KeyedInheritanceStruct) == KeyedInheritanceStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyedInheritanceStruct)); + + scdr.jump((array_size - 1) * sizeof(KeyedInheritanceStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedInheritanceStruct& data) @@ -1453,6 +2766,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_InheritanceKeyedEmptyStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1499,6 +2820,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InheritanceKeyedEmptyStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InheritanceKeyedEmptyStruct_cdr_plain(data_representation) && + sizeof(InheritanceKeyedEmptyStruct) == InheritanceKeyedEmptyStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(InheritanceKeyedEmptyStruct)); + + scdr.jump((array_size -1) * sizeof(InheritanceKeyedEmptyStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1528,6 +2887,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InheritanceKeyedEmptyStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InheritanceKeyedEmptyStruct_cdr_plain(data_representation) && + sizeof(InheritanceKeyedEmptyStruct) == InheritanceKeyedEmptyStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(InheritanceKeyedEmptyStruct)); + + scdr.jump((array_size - 1) * sizeof(InheritanceKeyedEmptyStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const InheritanceKeyedEmptyStruct& data) @@ -1539,6 +2934,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_KeyedFinal_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1589,6 +2992,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyedFinal* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedFinal_cdr_plain(data_representation) && + sizeof(KeyedFinal) == KeyedFinal_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyedFinal)); + + scdr.jump((array_size -1) * sizeof(KeyedFinal)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1622,6 +3063,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyedFinal* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedFinal_cdr_plain(data_representation) && + sizeof(KeyedFinal) == KeyedFinal_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyedFinal)); + + scdr.jump((array_size - 1) * sizeof(KeyedFinal)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedFinal& data) @@ -1638,6 +3115,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_KeyedAppendable_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1688,6 +3173,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyedAppendable* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedAppendable_cdr_plain(data_representation) && + sizeof(KeyedAppendable) == KeyedAppendable_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyedAppendable)); + + scdr.jump((array_size -1) * sizeof(KeyedAppendable)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1721,6 +3244,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyedAppendable* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedAppendable_cdr_plain(data_representation) && + sizeof(KeyedAppendable) == KeyedAppendable_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyedAppendable)); + + scdr.jump((array_size - 1) * sizeof(KeyedAppendable)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedAppendable& data) @@ -1737,6 +3296,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_KeyedMutable_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1787,6 +3354,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyedMutable* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedMutable_cdr_plain(data_representation) && + sizeof(KeyedMutable) == KeyedMutable_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyedMutable)); + + scdr.jump((array_size -1) * sizeof(KeyedMutable)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1820,6 +3425,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyedMutable* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyedMutable_cdr_plain(data_representation) && + sizeof(KeyedMutable) == KeyedMutable_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyedMutable)); + + scdr.jump((array_size - 1) * sizeof(KeyedMutable)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyedMutable& data) diff --git a/test/dds-types-test/keyPubSubTypes.cxx b/test/dds-types-test/keyPubSubTypes.cxx index 64640a3455d..2f00360fd3d 100644 --- a/test/dds-types-test/keyPubSubTypes.cxx +++ b/test/dds-types-test/keyPubSubTypes.cxx @@ -31,6 +31,72 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_KeyedMutable_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_KeyedShortStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_KeyedEmptyStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_KeyedULongLongStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_KeyedDoubleStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_KeyedAppendable_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_KeyedBooleanStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_KeyedWCharStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_KeyedFinal_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_KeyedInheritanceStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_KeyedOctetStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_KeyedCharStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_KeyedFloatStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_KeyedLongStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_KeyedUShortStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_KeyedULongStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_InheritanceKeyedEmptyStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_KeyedLongLongStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_KeyedEmptyInheritanceStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_KeyedLongDoubleStruct_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + KeyedShortStructPubSubType::KeyedShortStructPubSubType() { set_name("KeyedShortStruct"); @@ -149,6 +215,17 @@ void KeyedShortStructPubSubType::delete_data( delete(reinterpret_cast<::KeyedShortStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyedShortStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyedShortStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +408,17 @@ void KeyedUShortStructPubSubType::delete_data( delete(reinterpret_cast<::KeyedUShortStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyedUShortStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyedUShortStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +601,17 @@ void KeyedLongStructPubSubType::delete_data( delete(reinterpret_cast<::KeyedLongStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyedLongStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyedLongStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -695,6 +794,17 @@ void KeyedULongStructPubSubType::delete_data( delete(reinterpret_cast<::KeyedULongStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyedULongStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyedULongStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -877,6 +987,17 @@ void KeyedLongLongStructPubSubType::delete_data( delete(reinterpret_cast<::KeyedLongLongStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyedLongLongStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyedLongLongStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1059,6 +1180,17 @@ void KeyedULongLongStructPubSubType::delete_data( delete(reinterpret_cast<::KeyedULongLongStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyedULongLongStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyedULongLongStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1241,6 +1373,17 @@ void KeyedFloatStructPubSubType::delete_data( delete(reinterpret_cast<::KeyedFloatStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyedFloatStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyedFloatStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1423,6 +1566,17 @@ void KeyedDoubleStructPubSubType::delete_data( delete(reinterpret_cast<::KeyedDoubleStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyedDoubleStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyedDoubleStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1605,6 +1759,17 @@ void KeyedLongDoubleStructPubSubType::delete_data( delete(reinterpret_cast<::KeyedLongDoubleStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyedLongDoubleStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyedLongDoubleStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1787,6 +1952,17 @@ void KeyedBooleanStructPubSubType::delete_data( delete(reinterpret_cast<::KeyedBooleanStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyedBooleanStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyedBooleanStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1969,6 +2145,17 @@ void KeyedOctetStructPubSubType::delete_data( delete(reinterpret_cast<::KeyedOctetStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyedOctetStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyedOctetStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2151,6 +2338,17 @@ void KeyedCharStructPubSubType::delete_data( delete(reinterpret_cast<::KeyedCharStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyedCharStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyedCharStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2333,6 +2531,17 @@ void KeyedWCharStructPubSubType::delete_data( delete(reinterpret_cast<::KeyedWCharStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyedWCharStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyedWCharStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2515,6 +2724,17 @@ void KeyedEmptyStructPubSubType::delete_data( delete(reinterpret_cast<::KeyedEmptyStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyedEmptyStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyedEmptyStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2697,6 +2917,17 @@ void KeyedEmptyInheritanceStructPubSubType::delete_data( delete(reinterpret_cast<::KeyedEmptyInheritanceStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyedEmptyInheritanceStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyedEmptyInheritanceStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2879,6 +3110,17 @@ void KeyedInheritanceStructPubSubType::delete_data( delete(reinterpret_cast<::KeyedInheritanceStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyedInheritanceStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyedInheritanceStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3061,6 +3303,17 @@ void InheritanceKeyedEmptyStructPubSubType::delete_data( delete(reinterpret_cast<::InheritanceKeyedEmptyStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool InheritanceKeyedEmptyStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool InheritanceKeyedEmptyStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3243,6 +3496,17 @@ void KeyedFinalPubSubType::delete_data( delete(reinterpret_cast<::KeyedFinal*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyedFinalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyedFinalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3425,6 +3689,17 @@ void KeyedAppendablePubSubType::delete_data( delete(reinterpret_cast<::KeyedAppendable*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyedAppendablePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyedAppendablePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3607,6 +3882,17 @@ void KeyedMutablePubSubType::delete_data( delete(reinterpret_cast<::KeyedMutable*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyedMutablePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyedMutablePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds-types-test/keyPubSubTypes.hpp b/test/dds-types-test/keyPubSubTypes.hpp index 901cefd2638..a8ba707f7f7 100644 --- a/test/dds-types-test/keyPubSubTypes.hpp +++ b/test/dds-types-test/keyPubSubTypes.hpp @@ -93,12 +93,8 @@ class KeyedShortStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -175,12 +171,8 @@ class KeyedUShortStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -257,12 +249,8 @@ class KeyedLongStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -339,12 +327,8 @@ class KeyedULongStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -421,12 +405,8 @@ class KeyedLongLongStructPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -503,12 +483,8 @@ class KeyedULongLongStructPubSubType : public eprosima::fastdds::dds::TopicDataT #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -585,12 +561,8 @@ class KeyedFloatStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -667,12 +639,8 @@ class KeyedDoubleStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -749,12 +717,8 @@ class KeyedLongDoubleStructPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -831,12 +795,8 @@ class KeyedBooleanStructPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -913,12 +873,8 @@ class KeyedOctetStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -995,12 +951,8 @@ class KeyedCharStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1077,12 +1029,8 @@ class KeyedWCharStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1159,12 +1107,8 @@ class KeyedEmptyStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1241,12 +1185,8 @@ class KeyedEmptyInheritanceStructPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1323,12 +1263,8 @@ class KeyedInheritanceStructPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1405,12 +1341,8 @@ class InheritanceKeyedEmptyStructPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1487,12 +1419,8 @@ class KeyedFinalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1569,12 +1497,8 @@ class KeyedAppendablePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1651,12 +1575,8 @@ class KeyedMutablePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds-types-test/mapsCdrAux.hpp b/test/dds-types-test/mapsCdrAux.hpp index ef7dcf7b4b9..07791581e9c 100644 --- a/test/dds-types-test/mapsCdrAux.hpp +++ b/test/dds-types-test/mapsCdrAux.hpp @@ -285,6 +285,7 @@ constexpr uint32_t MapULongLongLongDouble_max_key_cdr_typesize {0UL}; constexpr uint32_t MapStringInnerAliasMapHelper_max_cdr_typesize {12UL}; constexpr uint32_t MapStringInnerAliasMapHelper_max_key_cdr_typesize {0UL}; + constexpr uint32_t MapLongKeyLongDoubleValue_max_cdr_typesize {8UL}; constexpr uint32_t MapLongKeyLongDoubleValue_max_key_cdr_typesize {0UL}; @@ -785,6 +786,7 @@ constexpr uint32_t MapULongInnerBitsetHelper_max_key_cdr_typesize {0UL}; constexpr uint32_t MapUShortInnerAliasBoundedWStringHelper_max_cdr_typesize {12UL}; constexpr uint32_t MapUShortInnerAliasBoundedWStringHelper_max_key_cdr_typesize {0UL}; + constexpr uint32_t MapLongLongBoolean_max_cdr_typesize {8UL}; constexpr uint32_t MapLongLongBoolean_max_key_cdr_typesize {0UL}; @@ -835,1051 +837,1313 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortUShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortULong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortLongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortULongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortFloat& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortLongDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortBoolean& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortOctet& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortWChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerAliasBoundedStringHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerAliasBoundedWStringHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerEnumHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerBitMaskHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerAliasHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerAliasArrayHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerAliasSequenceHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerAliasMapHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerUnionHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerStructureHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerBitsetHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortUShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortULong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortLongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortULongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortFloat& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortLongDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortBoolean& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortOctet& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortWChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerAliasBoundedStringHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerAliasBoundedWStringHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerEnumHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerBitMaskHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerAliasHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerAliasArrayHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerAliasSequenceHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerAliasMapHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerUnionHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerStructureHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerBitsetHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongUShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongULong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongKeyLongLongValue& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongULongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongFloat& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongKeyLongDoubleValue& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongBoolean& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongOctet& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongWChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerAliasBoundedStringHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerAliasBoundedWStringHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerEnumHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerBitMaskHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerAliasHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerAliasArrayHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerAliasSequenceHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerAliasMapHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerUnionHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerStructureHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerBitsetHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongUShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongULong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapKeyULongValueLongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongULongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongFloat& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapKeyULongValueLongDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongBoolean& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongOctet& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongWChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerAliasBoundedStringHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerAliasBoundedWStringHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerEnumHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerBitMaskHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerAliasHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerAliasArrayHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerAliasSequenceHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerAliasMapHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerUnionHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerStructureHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerBitsetHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongUShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongKeyLongValue& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongULong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongLongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongULongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongFloat& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongKeyDoubleValue& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongLongDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongBoolean& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongOctet& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongWChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerAliasBoundedStringHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerAliasBoundedWStringHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerEnumHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerBitMaskHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerAliasHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerAliasArrayHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerAliasSequenceHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerAliasMapHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerUnionHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerStructureHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerBitsetHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongUShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongULong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongLongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongULongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongFloat& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapKeyULongLongValueDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongLongDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongBoolean& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongOctet& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongWChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerAliasBoundedStringHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerAliasBoundedWStringHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerEnumHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerBitMaskHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerAliasHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerAliasArrayHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerAliasSequenceHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerAliasMapHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerUnionHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerStructureHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerBitsetHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringUShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringULong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringLongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringULongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringFloat& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringLongDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringBoolean& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringOctet& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringWChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerAliasBoundedStringHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerAliasBoundedWStringHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerEnumHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerBitMaskHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerAliasHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerAliasArrayHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerAliasSequenceHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerAliasMapHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerUnionHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerStructureHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerBitsetHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringUShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringULong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringLongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringULongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringFloat& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringLongDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringBoolean& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringOctet& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringWChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerAliasBoundedStringHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerAliasBoundedWStringHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerEnumHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerBitMaskHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerAliasHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerAliasArrayHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerAliasSequenceHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerAliasMapHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerUnionHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerStructureHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerBitsetHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperUShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperULong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperLongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperULongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperFloat& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperLongDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperBoolean& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperOctet& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperWChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerAliasBoundedStringHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerAliasBoundedWStringHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerEnumHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerBitMaskHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerAliasHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerAliasArrayHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerAliasSequenceHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerAliasMapHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerUnionHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerStructureHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerBitsetHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperUShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperULong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperLongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperULongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperFloat& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperLongDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperBoolean& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperOctet& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperWChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerAliasBoundedStringHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerAliasBoundedWStringHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerEnumHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerBitMaskHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerAliasHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerAliasArrayHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerAliasSequenceHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerAliasMapHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerUnionHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerStructureHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerBitsetHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const BoundedSmallMap& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const BoundedLargeMap& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/mapsCdrAux.ipp b/test/dds-types-test/mapsCdrAux.ipp index 3f0a87b40ea..36aec1c56d9 100644 --- a/test/dds-types-test/mapsCdrAux.ipp +++ b/test/dds-types-test/mapsCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_MapShortShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortShort_cdr_plain(data_representation) && + sizeof(MapShortShort) == MapShortShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortShort)); + + scdr.jump((array_size -1) * sizeof(MapShortShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortShort_cdr_plain(data_representation) && + sizeof(MapShortShort) == MapShortShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortShort)); + + scdr.jump((array_size - 1) * sizeof(MapShortShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortShort& data) @@ -113,6 +196,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortUShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -155,6 +246,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortUShort_cdr_plain(data_representation) && + sizeof(MapShortUShort) == MapShortUShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortUShort)); + + scdr.jump((array_size -1) * sizeof(MapShortUShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -180,6 +309,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortUShort_cdr_plain(data_representation) && + sizeof(MapShortUShort) == MapShortUShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortUShort)); + + scdr.jump((array_size - 1) * sizeof(MapShortUShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortUShort& data) @@ -192,6 +357,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -234,6 +407,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortLong_cdr_plain(data_representation) && + sizeof(MapShortLong) == MapShortLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortLong)); + + scdr.jump((array_size -1) * sizeof(MapShortLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -259,6 +470,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortLong_cdr_plain(data_representation) && + sizeof(MapShortLong) == MapShortLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortLong)); + + scdr.jump((array_size - 1) * sizeof(MapShortLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortLong& data) @@ -271,6 +518,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortULong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -313,6 +568,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortULong_cdr_plain(data_representation) && + sizeof(MapShortULong) == MapShortULong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortULong)); + + scdr.jump((array_size -1) * sizeof(MapShortULong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -338,6 +631,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortULong_cdr_plain(data_representation) && + sizeof(MapShortULong) == MapShortULong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortULong)); + + scdr.jump((array_size - 1) * sizeof(MapShortULong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortULong& data) @@ -350,6 +679,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortLongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -392,6 +729,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortLongLong_cdr_plain(data_representation) && + sizeof(MapShortLongLong) == MapShortLongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortLongLong)); + + scdr.jump((array_size -1) * sizeof(MapShortLongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -417,6 +792,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortLongLong_cdr_plain(data_representation) && + sizeof(MapShortLongLong) == MapShortLongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortLongLong)); + + scdr.jump((array_size - 1) * sizeof(MapShortLongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortLongLong& data) @@ -429,6 +840,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortULongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -471,6 +890,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortULongLong_cdr_plain(data_representation) && + sizeof(MapShortULongLong) == MapShortULongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortULongLong)); + + scdr.jump((array_size -1) * sizeof(MapShortULongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -496,6 +953,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortULongLong_cdr_plain(data_representation) && + sizeof(MapShortULongLong) == MapShortULongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortULongLong)); + + scdr.jump((array_size - 1) * sizeof(MapShortULongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortULongLong& data) @@ -508,6 +1001,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortFloat_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -550,6 +1051,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortFloat_cdr_plain(data_representation) && + sizeof(MapShortFloat) == MapShortFloat_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortFloat)); + + scdr.jump((array_size -1) * sizeof(MapShortFloat)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -575,6 +1114,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortFloat_cdr_plain(data_representation) && + sizeof(MapShortFloat) == MapShortFloat_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortFloat)); + + scdr.jump((array_size - 1) * sizeof(MapShortFloat)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortFloat& data) @@ -587,6 +1162,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -629,6 +1212,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortDouble_cdr_plain(data_representation) && + sizeof(MapShortDouble) == MapShortDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortDouble)); + + scdr.jump((array_size -1) * sizeof(MapShortDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -654,6 +1275,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortDouble_cdr_plain(data_representation) && + sizeof(MapShortDouble) == MapShortDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortDouble)); + + scdr.jump((array_size - 1) * sizeof(MapShortDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortDouble& data) @@ -666,6 +1323,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortLongDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -708,6 +1373,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortLongDouble_cdr_plain(data_representation) && + sizeof(MapShortLongDouble) == MapShortLongDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortLongDouble)); + + scdr.jump((array_size -1) * sizeof(MapShortLongDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -733,6 +1436,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortLongDouble_cdr_plain(data_representation) && + sizeof(MapShortLongDouble) == MapShortLongDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortLongDouble)); + + scdr.jump((array_size - 1) * sizeof(MapShortLongDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortLongDouble& data) @@ -745,6 +1484,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortBoolean_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -787,6 +1534,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortBoolean_cdr_plain(data_representation) && + sizeof(MapShortBoolean) == MapShortBoolean_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortBoolean)); + + scdr.jump((array_size -1) * sizeof(MapShortBoolean)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -812,6 +1597,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortBoolean_cdr_plain(data_representation) && + sizeof(MapShortBoolean) == MapShortBoolean_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortBoolean)); + + scdr.jump((array_size - 1) * sizeof(MapShortBoolean)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortBoolean& data) @@ -824,6 +1645,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortOctet_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -866,6 +1695,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortOctet_cdr_plain(data_representation) && + sizeof(MapShortOctet) == MapShortOctet_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortOctet)); + + scdr.jump((array_size -1) * sizeof(MapShortOctet)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -891,6 +1758,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortOctet_cdr_plain(data_representation) && + sizeof(MapShortOctet) == MapShortOctet_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortOctet)); + + scdr.jump((array_size - 1) * sizeof(MapShortOctet)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortOctet& data) @@ -903,6 +1806,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -945,6 +1856,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortChar_cdr_plain(data_representation) && + sizeof(MapShortChar) == MapShortChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortChar)); + + scdr.jump((array_size -1) * sizeof(MapShortChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -970,6 +1919,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortChar_cdr_plain(data_representation) && + sizeof(MapShortChar) == MapShortChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortChar)); + + scdr.jump((array_size - 1) * sizeof(MapShortChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortChar& data) @@ -982,6 +1967,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortWChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1024,6 +2017,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortWChar_cdr_plain(data_representation) && + sizeof(MapShortWChar) == MapShortWChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortWChar)); + + scdr.jump((array_size -1) * sizeof(MapShortWChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1049,6 +2080,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortWChar_cdr_plain(data_representation) && + sizeof(MapShortWChar) == MapShortWChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortWChar)); + + scdr.jump((array_size - 1) * sizeof(MapShortWChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortWChar& data) @@ -1061,6 +2128,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1103,6 +2178,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortString_cdr_plain(data_representation) && + sizeof(MapShortString) == MapShortString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortString)); + + scdr.jump((array_size -1) * sizeof(MapShortString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1128,6 +2241,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortString_cdr_plain(data_representation) && + sizeof(MapShortString) == MapShortString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortString)); + + scdr.jump((array_size - 1) * sizeof(MapShortString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortString& data) @@ -1140,6 +2289,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1182,6 +2339,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortWString_cdr_plain(data_representation) && + sizeof(MapShortWString) == MapShortWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortWString)); + + scdr.jump((array_size -1) * sizeof(MapShortWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1207,6 +2402,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortWString_cdr_plain(data_representation) && + sizeof(MapShortWString) == MapShortWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortWString)); + + scdr.jump((array_size - 1) * sizeof(MapShortWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortWString& data) @@ -1219,6 +2450,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortInnerAliasBoundedStringHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1261,6 +2500,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortInnerAliasBoundedStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerAliasBoundedStringHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerAliasBoundedStringHelper) == MapShortInnerAliasBoundedStringHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortInnerAliasBoundedStringHelper)); + + scdr.jump((array_size -1) * sizeof(MapShortInnerAliasBoundedStringHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1286,6 +2563,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortInnerAliasBoundedStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerAliasBoundedStringHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerAliasBoundedStringHelper) == MapShortInnerAliasBoundedStringHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortInnerAliasBoundedStringHelper)); + + scdr.jump((array_size - 1) * sizeof(MapShortInnerAliasBoundedStringHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerAliasBoundedStringHelper& data) @@ -1298,6 +2611,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortInnerAliasBoundedWStringHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1340,6 +2661,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortInnerAliasBoundedWStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerAliasBoundedWStringHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerAliasBoundedWStringHelper) == MapShortInnerAliasBoundedWStringHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortInnerAliasBoundedWStringHelper)); + + scdr.jump((array_size -1) * sizeof(MapShortInnerAliasBoundedWStringHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1365,6 +2724,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortInnerAliasBoundedWStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerAliasBoundedWStringHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerAliasBoundedWStringHelper) == MapShortInnerAliasBoundedWStringHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortInnerAliasBoundedWStringHelper)); + + scdr.jump((array_size - 1) * sizeof(MapShortInnerAliasBoundedWStringHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerAliasBoundedWStringHelper& data) @@ -1377,6 +2772,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortInnerEnumHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1419,6 +2822,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerEnumHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerEnumHelper) == MapShortInnerEnumHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortInnerEnumHelper)); + + scdr.jump((array_size -1) * sizeof(MapShortInnerEnumHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1444,6 +2885,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerEnumHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerEnumHelper) == MapShortInnerEnumHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortInnerEnumHelper)); + + scdr.jump((array_size - 1) * sizeof(MapShortInnerEnumHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerEnumHelper& data) @@ -1456,6 +2933,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortInnerBitMaskHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1498,6 +2983,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerBitMaskHelper) == MapShortInnerBitMaskHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortInnerBitMaskHelper)); + + scdr.jump((array_size -1) * sizeof(MapShortInnerBitMaskHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1523,6 +3046,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerBitMaskHelper) == MapShortInnerBitMaskHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortInnerBitMaskHelper)); + + scdr.jump((array_size - 1) * sizeof(MapShortInnerBitMaskHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerBitMaskHelper& data) @@ -1535,6 +3094,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortInnerAliasHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1577,6 +3144,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerAliasHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerAliasHelper) == MapShortInnerAliasHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortInnerAliasHelper)); + + scdr.jump((array_size -1) * sizeof(MapShortInnerAliasHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1602,6 +3207,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerAliasHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerAliasHelper) == MapShortInnerAliasHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortInnerAliasHelper)); + + scdr.jump((array_size - 1) * sizeof(MapShortInnerAliasHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerAliasHelper& data) @@ -1614,6 +3255,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortInnerAliasArrayHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1656,6 +3305,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortInnerAliasArrayHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerAliasArrayHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerAliasArrayHelper) == MapShortInnerAliasArrayHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortInnerAliasArrayHelper)); + + scdr.jump((array_size -1) * sizeof(MapShortInnerAliasArrayHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1681,6 +3368,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortInnerAliasArrayHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerAliasArrayHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerAliasArrayHelper) == MapShortInnerAliasArrayHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortInnerAliasArrayHelper)); + + scdr.jump((array_size - 1) * sizeof(MapShortInnerAliasArrayHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerAliasArrayHelper& data) @@ -1693,6 +3416,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortInnerAliasSequenceHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1735,6 +3466,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortInnerAliasSequenceHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerAliasSequenceHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerAliasSequenceHelper) == MapShortInnerAliasSequenceHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortInnerAliasSequenceHelper)); + + scdr.jump((array_size -1) * sizeof(MapShortInnerAliasSequenceHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1760,6 +3529,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortInnerAliasSequenceHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerAliasSequenceHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerAliasSequenceHelper) == MapShortInnerAliasSequenceHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortInnerAliasSequenceHelper)); + + scdr.jump((array_size - 1) * sizeof(MapShortInnerAliasSequenceHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerAliasSequenceHelper& data) @@ -1772,6 +3577,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortInnerAliasMapHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1814,6 +3627,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortInnerAliasMapHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerAliasMapHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerAliasMapHelper) == MapShortInnerAliasMapHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortInnerAliasMapHelper)); + + scdr.jump((array_size -1) * sizeof(MapShortInnerAliasMapHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1839,6 +3690,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortInnerAliasMapHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerAliasMapHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerAliasMapHelper) == MapShortInnerAliasMapHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortInnerAliasMapHelper)); + + scdr.jump((array_size - 1) * sizeof(MapShortInnerAliasMapHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerAliasMapHelper& data) @@ -1851,6 +3738,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortInnerUnionHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1893,6 +3788,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerUnionHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerUnionHelper) == MapShortInnerUnionHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortInnerUnionHelper)); + + scdr.jump((array_size -1) * sizeof(MapShortInnerUnionHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1918,6 +3851,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerUnionHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerUnionHelper) == MapShortInnerUnionHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortInnerUnionHelper)); + + scdr.jump((array_size - 1) * sizeof(MapShortInnerUnionHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerUnionHelper& data) @@ -1930,6 +3899,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortInnerStructureHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1972,10 +3949,48 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, - MapShortInnerStructureHelper& data) +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerStructureHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerStructureHelper) == MapShortInnerStructureHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortInnerStructureHelper)); + + scdr.jump((array_size -1) * sizeof(MapShortInnerStructureHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, + MapShortInnerStructureHelper& data) { cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : @@ -1997,6 +4012,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerStructureHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerStructureHelper) == MapShortInnerStructureHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortInnerStructureHelper)); + + scdr.jump((array_size - 1) * sizeof(MapShortInnerStructureHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerStructureHelper& data) @@ -2009,6 +4060,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapShortInnerBitsetHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2051,6 +4110,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapShortInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerBitsetHelper) == MapShortInnerBitsetHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapShortInnerBitsetHelper)); + + scdr.jump((array_size -1) * sizeof(MapShortInnerBitsetHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2076,6 +4173,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapShortInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapShortInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(MapShortInnerBitsetHelper) == MapShortInnerBitsetHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapShortInnerBitsetHelper)); + + scdr.jump((array_size - 1) * sizeof(MapShortInnerBitsetHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapShortInnerBitsetHelper& data) @@ -2088,6 +4221,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2130,6 +4271,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortShort_cdr_plain(data_representation) && + sizeof(MapUShortShort) == MapUShortShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortShort)); + + scdr.jump((array_size -1) * sizeof(MapUShortShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2155,6 +4334,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortShort_cdr_plain(data_representation) && + sizeof(MapUShortShort) == MapUShortShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortShort)); + + scdr.jump((array_size - 1) * sizeof(MapUShortShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortShort& data) @@ -2167,6 +4382,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortUShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2209,6 +4432,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortUShort_cdr_plain(data_representation) && + sizeof(MapUShortUShort) == MapUShortUShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortUShort)); + + scdr.jump((array_size -1) * sizeof(MapUShortUShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2234,6 +4495,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortUShort_cdr_plain(data_representation) && + sizeof(MapUShortUShort) == MapUShortUShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortUShort)); + + scdr.jump((array_size - 1) * sizeof(MapUShortUShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortUShort& data) @@ -2246,6 +4543,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2288,6 +4593,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortLong_cdr_plain(data_representation) && + sizeof(MapUShortLong) == MapUShortLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortLong)); + + scdr.jump((array_size -1) * sizeof(MapUShortLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2313,6 +4656,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortLong_cdr_plain(data_representation) && + sizeof(MapUShortLong) == MapUShortLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortLong)); + + scdr.jump((array_size - 1) * sizeof(MapUShortLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortLong& data) @@ -2325,6 +4704,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortULong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2367,6 +4754,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortULong_cdr_plain(data_representation) && + sizeof(MapUShortULong) == MapUShortULong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortULong)); + + scdr.jump((array_size -1) * sizeof(MapUShortULong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2392,6 +4817,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortULong_cdr_plain(data_representation) && + sizeof(MapUShortULong) == MapUShortULong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortULong)); + + scdr.jump((array_size - 1) * sizeof(MapUShortULong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortULong& data) @@ -2404,6 +4865,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortLongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2446,6 +4915,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortLongLong_cdr_plain(data_representation) && + sizeof(MapUShortLongLong) == MapUShortLongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortLongLong)); + + scdr.jump((array_size -1) * sizeof(MapUShortLongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2471,6 +4978,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortLongLong_cdr_plain(data_representation) && + sizeof(MapUShortLongLong) == MapUShortLongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortLongLong)); + + scdr.jump((array_size - 1) * sizeof(MapUShortLongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortLongLong& data) @@ -2483,6 +5026,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortULongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2525,6 +5076,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortULongLong_cdr_plain(data_representation) && + sizeof(MapUShortULongLong) == MapUShortULongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortULongLong)); + + scdr.jump((array_size -1) * sizeof(MapUShortULongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2550,6 +5139,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortULongLong_cdr_plain(data_representation) && + sizeof(MapUShortULongLong) == MapUShortULongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortULongLong)); + + scdr.jump((array_size - 1) * sizeof(MapUShortULongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortULongLong& data) @@ -2562,6 +5187,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortFloat_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2604,6 +5237,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortFloat_cdr_plain(data_representation) && + sizeof(MapUShortFloat) == MapUShortFloat_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortFloat)); + + scdr.jump((array_size -1) * sizeof(MapUShortFloat)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2629,6 +5300,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortFloat_cdr_plain(data_representation) && + sizeof(MapUShortFloat) == MapUShortFloat_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortFloat)); + + scdr.jump((array_size - 1) * sizeof(MapUShortFloat)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortFloat& data) @@ -2641,6 +5348,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2683,6 +5398,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortDouble_cdr_plain(data_representation) && + sizeof(MapUShortDouble) == MapUShortDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortDouble)); + + scdr.jump((array_size -1) * sizeof(MapUShortDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2708,6 +5461,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortDouble_cdr_plain(data_representation) && + sizeof(MapUShortDouble) == MapUShortDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortDouble)); + + scdr.jump((array_size - 1) * sizeof(MapUShortDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortDouble& data) @@ -2720,6 +5509,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortLongDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2762,6 +5559,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortLongDouble_cdr_plain(data_representation) && + sizeof(MapUShortLongDouble) == MapUShortLongDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortLongDouble)); + + scdr.jump((array_size -1) * sizeof(MapUShortLongDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2787,6 +5622,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortLongDouble_cdr_plain(data_representation) && + sizeof(MapUShortLongDouble) == MapUShortLongDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortLongDouble)); + + scdr.jump((array_size - 1) * sizeof(MapUShortLongDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortLongDouble& data) @@ -2799,6 +5670,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortBoolean_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2841,6 +5720,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortBoolean_cdr_plain(data_representation) && + sizeof(MapUShortBoolean) == MapUShortBoolean_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortBoolean)); + + scdr.jump((array_size -1) * sizeof(MapUShortBoolean)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2866,6 +5783,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortBoolean_cdr_plain(data_representation) && + sizeof(MapUShortBoolean) == MapUShortBoolean_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortBoolean)); + + scdr.jump((array_size - 1) * sizeof(MapUShortBoolean)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortBoolean& data) @@ -2878,6 +5831,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortOctet_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2920,9 +5881,47 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortOctet_cdr_plain(data_representation) && + sizeof(MapUShortOctet) == MapUShortOctet_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortOctet)); + + scdr.jump((array_size -1) * sizeof(MapUShortOctet)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, MapUShortOctet& data) { cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? @@ -2945,6 +5944,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortOctet_cdr_plain(data_representation) && + sizeof(MapUShortOctet) == MapUShortOctet_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortOctet)); + + scdr.jump((array_size - 1) * sizeof(MapUShortOctet)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortOctet& data) @@ -2957,6 +5992,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2999,6 +6042,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortChar_cdr_plain(data_representation) && + sizeof(MapUShortChar) == MapUShortChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortChar)); + + scdr.jump((array_size -1) * sizeof(MapUShortChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3024,6 +6105,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortChar_cdr_plain(data_representation) && + sizeof(MapUShortChar) == MapUShortChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortChar)); + + scdr.jump((array_size - 1) * sizeof(MapUShortChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortChar& data) @@ -3036,6 +6153,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortWChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3078,6 +6203,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortWChar_cdr_plain(data_representation) && + sizeof(MapUShortWChar) == MapUShortWChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortWChar)); + + scdr.jump((array_size -1) * sizeof(MapUShortWChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3103,6 +6266,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortWChar_cdr_plain(data_representation) && + sizeof(MapUShortWChar) == MapUShortWChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortWChar)); + + scdr.jump((array_size - 1) * sizeof(MapUShortWChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortWChar& data) @@ -3115,6 +6314,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3157,6 +6364,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortString_cdr_plain(data_representation) && + sizeof(MapUShortString) == MapUShortString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortString)); + + scdr.jump((array_size -1) * sizeof(MapUShortString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3182,6 +6427,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortString_cdr_plain(data_representation) && + sizeof(MapUShortString) == MapUShortString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortString)); + + scdr.jump((array_size - 1) * sizeof(MapUShortString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortString& data) @@ -3194,6 +6475,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3236,6 +6525,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortWString_cdr_plain(data_representation) && + sizeof(MapUShortWString) == MapUShortWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortWString)); + + scdr.jump((array_size -1) * sizeof(MapUShortWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3261,6 +6588,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortWString_cdr_plain(data_representation) && + sizeof(MapUShortWString) == MapUShortWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortWString)); + + scdr.jump((array_size - 1) * sizeof(MapUShortWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortWString& data) @@ -3273,6 +6636,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortInnerAliasBoundedStringHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3315,6 +6686,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortInnerAliasBoundedStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerAliasBoundedStringHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerAliasBoundedStringHelper) == MapUShortInnerAliasBoundedStringHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortInnerAliasBoundedStringHelper)); + + scdr.jump((array_size -1) * sizeof(MapUShortInnerAliasBoundedStringHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3340,6 +6749,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortInnerAliasBoundedStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerAliasBoundedStringHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerAliasBoundedStringHelper) == MapUShortInnerAliasBoundedStringHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortInnerAliasBoundedStringHelper)); + + scdr.jump((array_size - 1) * sizeof(MapUShortInnerAliasBoundedStringHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerAliasBoundedStringHelper& data) @@ -3352,6 +6797,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortInnerAliasBoundedWStringHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3394,6 +6847,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortInnerAliasBoundedWStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerAliasBoundedWStringHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerAliasBoundedWStringHelper) == MapUShortInnerAliasBoundedWStringHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortInnerAliasBoundedWStringHelper)); + + scdr.jump((array_size -1) * sizeof(MapUShortInnerAliasBoundedWStringHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3419,6 +6910,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortInnerAliasBoundedWStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerAliasBoundedWStringHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerAliasBoundedWStringHelper) == MapUShortInnerAliasBoundedWStringHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortInnerAliasBoundedWStringHelper)); + + scdr.jump((array_size - 1) * sizeof(MapUShortInnerAliasBoundedWStringHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerAliasBoundedWStringHelper& data) @@ -3431,6 +6958,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortInnerEnumHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3473,6 +7008,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerEnumHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerEnumHelper) == MapUShortInnerEnumHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortInnerEnumHelper)); + + scdr.jump((array_size -1) * sizeof(MapUShortInnerEnumHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3498,6 +7071,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerEnumHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerEnumHelper) == MapUShortInnerEnumHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortInnerEnumHelper)); + + scdr.jump((array_size - 1) * sizeof(MapUShortInnerEnumHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerEnumHelper& data) @@ -3510,6 +7119,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortInnerBitMaskHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3552,6 +7169,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerBitMaskHelper) == MapUShortInnerBitMaskHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortInnerBitMaskHelper)); + + scdr.jump((array_size -1) * sizeof(MapUShortInnerBitMaskHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3577,6 +7232,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerBitMaskHelper) == MapUShortInnerBitMaskHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortInnerBitMaskHelper)); + + scdr.jump((array_size - 1) * sizeof(MapUShortInnerBitMaskHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerBitMaskHelper& data) @@ -3589,6 +7280,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortInnerAliasHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3631,6 +7330,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerAliasHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerAliasHelper) == MapUShortInnerAliasHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortInnerAliasHelper)); + + scdr.jump((array_size -1) * sizeof(MapUShortInnerAliasHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3656,6 +7393,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerAliasHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerAliasHelper) == MapUShortInnerAliasHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortInnerAliasHelper)); + + scdr.jump((array_size - 1) * sizeof(MapUShortInnerAliasHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerAliasHelper& data) @@ -3668,6 +7441,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortInnerAliasArrayHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3710,6 +7491,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortInnerAliasArrayHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerAliasArrayHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerAliasArrayHelper) == MapUShortInnerAliasArrayHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortInnerAliasArrayHelper)); + + scdr.jump((array_size -1) * sizeof(MapUShortInnerAliasArrayHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3735,6 +7554,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortInnerAliasArrayHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerAliasArrayHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerAliasArrayHelper) == MapUShortInnerAliasArrayHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortInnerAliasArrayHelper)); + + scdr.jump((array_size - 1) * sizeof(MapUShortInnerAliasArrayHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerAliasArrayHelper& data) @@ -3747,6 +7602,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortInnerAliasSequenceHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3789,6 +7652,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortInnerAliasSequenceHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerAliasSequenceHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerAliasSequenceHelper) == MapUShortInnerAliasSequenceHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortInnerAliasSequenceHelper)); + + scdr.jump((array_size -1) * sizeof(MapUShortInnerAliasSequenceHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3814,6 +7715,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortInnerAliasSequenceHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerAliasSequenceHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerAliasSequenceHelper) == MapUShortInnerAliasSequenceHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortInnerAliasSequenceHelper)); + + scdr.jump((array_size - 1) * sizeof(MapUShortInnerAliasSequenceHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerAliasSequenceHelper& data) @@ -3826,6 +7763,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortInnerAliasMapHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3868,9 +7813,47 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortInnerAliasMapHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerAliasMapHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerAliasMapHelper) == MapUShortInnerAliasMapHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortInnerAliasMapHelper)); + + scdr.jump((array_size -1) * sizeof(MapUShortInnerAliasMapHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, MapUShortInnerAliasMapHelper& data) { cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? @@ -3893,6 +7876,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortInnerAliasMapHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerAliasMapHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerAliasMapHelper) == MapUShortInnerAliasMapHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortInnerAliasMapHelper)); + + scdr.jump((array_size - 1) * sizeof(MapUShortInnerAliasMapHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerAliasMapHelper& data) @@ -3905,6 +7924,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortInnerUnionHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3947,6 +7974,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerUnionHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerUnionHelper) == MapUShortInnerUnionHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortInnerUnionHelper)); + + scdr.jump((array_size -1) * sizeof(MapUShortInnerUnionHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3972,6 +8037,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerUnionHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerUnionHelper) == MapUShortInnerUnionHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortInnerUnionHelper)); + + scdr.jump((array_size - 1) * sizeof(MapUShortInnerUnionHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerUnionHelper& data) @@ -3984,6 +8085,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortInnerStructureHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4026,6 +8135,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerStructureHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerStructureHelper) == MapUShortInnerStructureHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortInnerStructureHelper)); + + scdr.jump((array_size -1) * sizeof(MapUShortInnerStructureHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4051,6 +8198,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerStructureHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerStructureHelper) == MapUShortInnerStructureHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortInnerStructureHelper)); + + scdr.jump((array_size - 1) * sizeof(MapUShortInnerStructureHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerStructureHelper& data) @@ -4063,6 +8246,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapUShortInnerBitsetHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4105,6 +8296,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapUShortInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerBitsetHelper) == MapUShortInnerBitsetHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapUShortInnerBitsetHelper)); + + scdr.jump((array_size -1) * sizeof(MapUShortInnerBitsetHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4130,6 +8359,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapUShortInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapUShortInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(MapUShortInnerBitsetHelper) == MapUShortInnerBitsetHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapUShortInnerBitsetHelper)); + + scdr.jump((array_size - 1) * sizeof(MapUShortInnerBitsetHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapUShortInnerBitsetHelper& data) @@ -4142,6 +8407,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4184,6 +8457,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongShort_cdr_plain(data_representation) && + sizeof(MapLongShort) == MapLongShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongShort)); + + scdr.jump((array_size -1) * sizeof(MapLongShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4209,6 +8520,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongShort_cdr_plain(data_representation) && + sizeof(MapLongShort) == MapLongShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongShort)); + + scdr.jump((array_size - 1) * sizeof(MapLongShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongShort& data) @@ -4221,6 +8568,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongUShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4263,6 +8618,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongUShort_cdr_plain(data_representation) && + sizeof(MapLongUShort) == MapLongUShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongUShort)); + + scdr.jump((array_size -1) * sizeof(MapLongUShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4288,6 +8681,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongUShort_cdr_plain(data_representation) && + sizeof(MapLongUShort) == MapLongUShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongUShort)); + + scdr.jump((array_size - 1) * sizeof(MapLongUShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongUShort& data) @@ -4300,6 +8729,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4342,6 +8779,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLong_cdr_plain(data_representation) && + sizeof(MapLongLong) == MapLongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLong)); + + scdr.jump((array_size -1) * sizeof(MapLongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4367,6 +8842,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLong_cdr_plain(data_representation) && + sizeof(MapLongLong) == MapLongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLong)); + + scdr.jump((array_size - 1) * sizeof(MapLongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLong& data) @@ -4379,6 +8890,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongULong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4421,6 +8940,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongULong_cdr_plain(data_representation) && + sizeof(MapLongULong) == MapLongULong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongULong)); + + scdr.jump((array_size -1) * sizeof(MapLongULong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4446,6 +9003,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongULong_cdr_plain(data_representation) && + sizeof(MapLongULong) == MapLongULong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongULong)); + + scdr.jump((array_size - 1) * sizeof(MapLongULong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongULong& data) @@ -4458,6 +9051,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongKeyLongLongValue_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4500,6 +9101,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongKeyLongLongValue* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongKeyLongLongValue_cdr_plain(data_representation) && + sizeof(MapLongKeyLongLongValue) == MapLongKeyLongLongValue_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongKeyLongLongValue)); + + scdr.jump((array_size -1) * sizeof(MapLongKeyLongLongValue)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4525,6 +9164,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongKeyLongLongValue* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongKeyLongLongValue_cdr_plain(data_representation) && + sizeof(MapLongKeyLongLongValue) == MapLongKeyLongLongValue_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongKeyLongLongValue)); + + scdr.jump((array_size - 1) * sizeof(MapLongKeyLongLongValue)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongKeyLongLongValue& data) @@ -4537,6 +9212,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongULongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4579,6 +9262,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongULongLong_cdr_plain(data_representation) && + sizeof(MapLongULongLong) == MapLongULongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongULongLong)); + + scdr.jump((array_size -1) * sizeof(MapLongULongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4604,6 +9325,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongULongLong_cdr_plain(data_representation) && + sizeof(MapLongULongLong) == MapLongULongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongULongLong)); + + scdr.jump((array_size - 1) * sizeof(MapLongULongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongULongLong& data) @@ -4616,6 +9373,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongFloat_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4658,6 +9423,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongFloat_cdr_plain(data_representation) && + sizeof(MapLongFloat) == MapLongFloat_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongFloat)); + + scdr.jump((array_size -1) * sizeof(MapLongFloat)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4683,6 +9486,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongFloat_cdr_plain(data_representation) && + sizeof(MapLongFloat) == MapLongFloat_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongFloat)); + + scdr.jump((array_size - 1) * sizeof(MapLongFloat)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongFloat& data) @@ -4695,6 +9534,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4737,6 +9584,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongDouble_cdr_plain(data_representation) && + sizeof(MapLongDouble) == MapLongDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongDouble)); + + scdr.jump((array_size -1) * sizeof(MapLongDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4762,6 +9647,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongDouble_cdr_plain(data_representation) && + sizeof(MapLongDouble) == MapLongDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongDouble)); + + scdr.jump((array_size - 1) * sizeof(MapLongDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongDouble& data) @@ -4774,6 +9695,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongKeyLongDoubleValue_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4816,9 +9745,47 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongKeyLongDoubleValue* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongKeyLongDoubleValue_cdr_plain(data_representation) && + sizeof(MapLongKeyLongDoubleValue) == MapLongKeyLongDoubleValue_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongKeyLongDoubleValue)); + + scdr.jump((array_size -1) * sizeof(MapLongKeyLongDoubleValue)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, MapLongKeyLongDoubleValue& data) { cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? @@ -4841,6 +9808,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongKeyLongDoubleValue* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongKeyLongDoubleValue_cdr_plain(data_representation) && + sizeof(MapLongKeyLongDoubleValue) == MapLongKeyLongDoubleValue_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongKeyLongDoubleValue)); + + scdr.jump((array_size - 1) * sizeof(MapLongKeyLongDoubleValue)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongKeyLongDoubleValue& data) @@ -4853,6 +9856,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongBoolean_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4895,6 +9906,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongBoolean_cdr_plain(data_representation) && + sizeof(MapLongBoolean) == MapLongBoolean_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongBoolean)); + + scdr.jump((array_size -1) * sizeof(MapLongBoolean)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4920,6 +9969,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongBoolean_cdr_plain(data_representation) && + sizeof(MapLongBoolean) == MapLongBoolean_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongBoolean)); + + scdr.jump((array_size - 1) * sizeof(MapLongBoolean)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongBoolean& data) @@ -4932,6 +10017,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongOctet_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4974,6 +10067,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongOctet_cdr_plain(data_representation) && + sizeof(MapLongOctet) == MapLongOctet_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongOctet)); + + scdr.jump((array_size -1) * sizeof(MapLongOctet)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4999,6 +10130,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongOctet_cdr_plain(data_representation) && + sizeof(MapLongOctet) == MapLongOctet_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongOctet)); + + scdr.jump((array_size - 1) * sizeof(MapLongOctet)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongOctet& data) @@ -5011,6 +10178,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5053,6 +10228,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongChar_cdr_plain(data_representation) && + sizeof(MapLongChar) == MapLongChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongChar)); + + scdr.jump((array_size -1) * sizeof(MapLongChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5078,6 +10291,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongChar_cdr_plain(data_representation) && + sizeof(MapLongChar) == MapLongChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongChar)); + + scdr.jump((array_size - 1) * sizeof(MapLongChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongChar& data) @@ -5090,6 +10339,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongWChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5132,6 +10389,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongWChar_cdr_plain(data_representation) && + sizeof(MapLongWChar) == MapLongWChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongWChar)); + + scdr.jump((array_size -1) * sizeof(MapLongWChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5157,6 +10452,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongWChar_cdr_plain(data_representation) && + sizeof(MapLongWChar) == MapLongWChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongWChar)); + + scdr.jump((array_size - 1) * sizeof(MapLongWChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongWChar& data) @@ -5169,6 +10500,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5211,6 +10550,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongString_cdr_plain(data_representation) && + sizeof(MapLongString) == MapLongString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongString)); + + scdr.jump((array_size -1) * sizeof(MapLongString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5236,6 +10613,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongString_cdr_plain(data_representation) && + sizeof(MapLongString) == MapLongString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongString)); + + scdr.jump((array_size - 1) * sizeof(MapLongString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongString& data) @@ -5248,6 +10661,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5290,6 +10711,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongWString_cdr_plain(data_representation) && + sizeof(MapLongWString) == MapLongWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongWString)); + + scdr.jump((array_size -1) * sizeof(MapLongWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5315,6 +10774,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongWString_cdr_plain(data_representation) && + sizeof(MapLongWString) == MapLongWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongWString)); + + scdr.jump((array_size - 1) * sizeof(MapLongWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongWString& data) @@ -5327,6 +10822,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongInnerAliasBoundedStringHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5369,6 +10872,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongInnerAliasBoundedStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerAliasBoundedStringHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerAliasBoundedStringHelper) == MapLongInnerAliasBoundedStringHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongInnerAliasBoundedStringHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongInnerAliasBoundedStringHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5394,6 +10935,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongInnerAliasBoundedStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerAliasBoundedStringHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerAliasBoundedStringHelper) == MapLongInnerAliasBoundedStringHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongInnerAliasBoundedStringHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongInnerAliasBoundedStringHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerAliasBoundedStringHelper& data) @@ -5406,6 +10983,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongInnerAliasBoundedWStringHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5448,6 +11033,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongInnerAliasBoundedWStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerAliasBoundedWStringHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerAliasBoundedWStringHelper) == MapLongInnerAliasBoundedWStringHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongInnerAliasBoundedWStringHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongInnerAliasBoundedWStringHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5473,6 +11096,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongInnerAliasBoundedWStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerAliasBoundedWStringHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerAliasBoundedWStringHelper) == MapLongInnerAliasBoundedWStringHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongInnerAliasBoundedWStringHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongInnerAliasBoundedWStringHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerAliasBoundedWStringHelper& data) @@ -5485,6 +11144,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongInnerEnumHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5527,6 +11194,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerEnumHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerEnumHelper) == MapLongInnerEnumHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongInnerEnumHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongInnerEnumHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5552,6 +11257,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerEnumHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerEnumHelper) == MapLongInnerEnumHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongInnerEnumHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongInnerEnumHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerEnumHelper& data) @@ -5564,6 +11305,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongInnerBitMaskHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5606,6 +11355,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerBitMaskHelper) == MapLongInnerBitMaskHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongInnerBitMaskHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongInnerBitMaskHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5631,6 +11418,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerBitMaskHelper) == MapLongInnerBitMaskHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongInnerBitMaskHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongInnerBitMaskHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerBitMaskHelper& data) @@ -5643,6 +11466,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongInnerAliasHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5685,6 +11516,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerAliasHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerAliasHelper) == MapLongInnerAliasHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongInnerAliasHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongInnerAliasHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5710,6 +11579,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerAliasHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerAliasHelper) == MapLongInnerAliasHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongInnerAliasHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongInnerAliasHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerAliasHelper& data) @@ -5722,6 +11627,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongInnerAliasArrayHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5764,9 +11677,47 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongInnerAliasArrayHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerAliasArrayHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerAliasArrayHelper) == MapLongInnerAliasArrayHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongInnerAliasArrayHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongInnerAliasArrayHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, MapLongInnerAliasArrayHelper& data) { cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? @@ -5789,6 +11740,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongInnerAliasArrayHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerAliasArrayHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerAliasArrayHelper) == MapLongInnerAliasArrayHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongInnerAliasArrayHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongInnerAliasArrayHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerAliasArrayHelper& data) @@ -5801,6 +11788,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongInnerAliasSequenceHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5843,6 +11838,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongInnerAliasSequenceHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerAliasSequenceHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerAliasSequenceHelper) == MapLongInnerAliasSequenceHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongInnerAliasSequenceHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongInnerAliasSequenceHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5868,6 +11901,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongInnerAliasSequenceHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerAliasSequenceHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerAliasSequenceHelper) == MapLongInnerAliasSequenceHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongInnerAliasSequenceHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongInnerAliasSequenceHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerAliasSequenceHelper& data) @@ -5880,6 +11949,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongInnerAliasMapHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5922,6 +11999,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongInnerAliasMapHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerAliasMapHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerAliasMapHelper) == MapLongInnerAliasMapHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongInnerAliasMapHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongInnerAliasMapHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5947,6 +12062,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongInnerAliasMapHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerAliasMapHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerAliasMapHelper) == MapLongInnerAliasMapHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongInnerAliasMapHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongInnerAliasMapHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerAliasMapHelper& data) @@ -5959,6 +12110,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongInnerUnionHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6001,6 +12160,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerUnionHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerUnionHelper) == MapLongInnerUnionHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongInnerUnionHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongInnerUnionHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6026,6 +12223,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerUnionHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerUnionHelper) == MapLongInnerUnionHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongInnerUnionHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongInnerUnionHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerUnionHelper& data) @@ -6038,6 +12271,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongInnerStructureHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6080,6 +12321,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerStructureHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerStructureHelper) == MapLongInnerStructureHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongInnerStructureHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongInnerStructureHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6105,6 +12384,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerStructureHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerStructureHelper) == MapLongInnerStructureHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongInnerStructureHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongInnerStructureHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerStructureHelper& data) @@ -6117,6 +12432,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongInnerBitsetHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6159,6 +12482,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerBitsetHelper) == MapLongInnerBitsetHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongInnerBitsetHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongInnerBitsetHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6184,6 +12545,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(MapLongInnerBitsetHelper) == MapLongInnerBitsetHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongInnerBitsetHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongInnerBitsetHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongInnerBitsetHelper& data) @@ -6196,6 +12593,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6238,6 +12643,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongShort_cdr_plain(data_representation) && + sizeof(MapULongShort) == MapULongShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongShort)); + + scdr.jump((array_size -1) * sizeof(MapULongShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6263,6 +12706,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongShort_cdr_plain(data_representation) && + sizeof(MapULongShort) == MapULongShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongShort)); + + scdr.jump((array_size - 1) * sizeof(MapULongShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongShort& data) @@ -6275,6 +12754,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongUShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6317,6 +12804,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongUShort_cdr_plain(data_representation) && + sizeof(MapULongUShort) == MapULongUShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongUShort)); + + scdr.jump((array_size -1) * sizeof(MapULongUShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6342,6 +12867,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongUShort_cdr_plain(data_representation) && + sizeof(MapULongUShort) == MapULongUShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongUShort)); + + scdr.jump((array_size - 1) * sizeof(MapULongUShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongUShort& data) @@ -6354,6 +12915,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6396,6 +12965,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLong_cdr_plain(data_representation) && + sizeof(MapULongLong) == MapULongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLong)); + + scdr.jump((array_size -1) * sizeof(MapULongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6421,6 +13028,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLong_cdr_plain(data_representation) && + sizeof(MapULongLong) == MapULongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLong)); + + scdr.jump((array_size - 1) * sizeof(MapULongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLong& data) @@ -6433,6 +13076,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongULong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6475,6 +13126,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongULong_cdr_plain(data_representation) && + sizeof(MapULongULong) == MapULongULong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongULong)); + + scdr.jump((array_size -1) * sizeof(MapULongULong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6500,6 +13189,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongULong_cdr_plain(data_representation) && + sizeof(MapULongULong) == MapULongULong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongULong)); + + scdr.jump((array_size - 1) * sizeof(MapULongULong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongULong& data) @@ -6512,6 +13237,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapKeyULongValueLongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6554,6 +13287,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapKeyULongValueLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapKeyULongValueLongLong_cdr_plain(data_representation) && + sizeof(MapKeyULongValueLongLong) == MapKeyULongValueLongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapKeyULongValueLongLong)); + + scdr.jump((array_size -1) * sizeof(MapKeyULongValueLongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6579,6 +13350,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapKeyULongValueLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapKeyULongValueLongLong_cdr_plain(data_representation) && + sizeof(MapKeyULongValueLongLong) == MapKeyULongValueLongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapKeyULongValueLongLong)); + + scdr.jump((array_size - 1) * sizeof(MapKeyULongValueLongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapKeyULongValueLongLong& data) @@ -6591,6 +13398,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongULongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6633,6 +13448,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongULongLong_cdr_plain(data_representation) && + sizeof(MapULongULongLong) == MapULongULongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongULongLong)); + + scdr.jump((array_size -1) * sizeof(MapULongULongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6658,6 +13511,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongULongLong_cdr_plain(data_representation) && + sizeof(MapULongULongLong) == MapULongULongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongULongLong)); + + scdr.jump((array_size - 1) * sizeof(MapULongULongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongULongLong& data) @@ -6670,6 +13559,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongFloat_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6712,9 +13609,47 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongFloat_cdr_plain(data_representation) && + sizeof(MapULongFloat) == MapULongFloat_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongFloat)); + + scdr.jump((array_size -1) * sizeof(MapULongFloat)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, MapULongFloat& data) { cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? @@ -6737,6 +13672,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongFloat_cdr_plain(data_representation) && + sizeof(MapULongFloat) == MapULongFloat_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongFloat)); + + scdr.jump((array_size - 1) * sizeof(MapULongFloat)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongFloat& data) @@ -6749,6 +13720,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6791,6 +13770,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongDouble_cdr_plain(data_representation) && + sizeof(MapULongDouble) == MapULongDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongDouble)); + + scdr.jump((array_size -1) * sizeof(MapULongDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6816,6 +13833,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongDouble_cdr_plain(data_representation) && + sizeof(MapULongDouble) == MapULongDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongDouble)); + + scdr.jump((array_size - 1) * sizeof(MapULongDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongDouble& data) @@ -6828,6 +13881,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapKeyULongValueLongDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6870,6 +13931,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapKeyULongValueLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapKeyULongValueLongDouble_cdr_plain(data_representation) && + sizeof(MapKeyULongValueLongDouble) == MapKeyULongValueLongDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapKeyULongValueLongDouble)); + + scdr.jump((array_size -1) * sizeof(MapKeyULongValueLongDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6895,6 +13994,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapKeyULongValueLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapKeyULongValueLongDouble_cdr_plain(data_representation) && + sizeof(MapKeyULongValueLongDouble) == MapKeyULongValueLongDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapKeyULongValueLongDouble)); + + scdr.jump((array_size - 1) * sizeof(MapKeyULongValueLongDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapKeyULongValueLongDouble& data) @@ -6907,6 +14042,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongBoolean_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6949,6 +14092,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongBoolean_cdr_plain(data_representation) && + sizeof(MapULongBoolean) == MapULongBoolean_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongBoolean)); + + scdr.jump((array_size -1) * sizeof(MapULongBoolean)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6974,6 +14155,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongBoolean_cdr_plain(data_representation) && + sizeof(MapULongBoolean) == MapULongBoolean_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongBoolean)); + + scdr.jump((array_size - 1) * sizeof(MapULongBoolean)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongBoolean& data) @@ -6986,6 +14203,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongOctet_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7028,6 +14253,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongOctet_cdr_plain(data_representation) && + sizeof(MapULongOctet) == MapULongOctet_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongOctet)); + + scdr.jump((array_size -1) * sizeof(MapULongOctet)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7053,6 +14316,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongOctet_cdr_plain(data_representation) && + sizeof(MapULongOctet) == MapULongOctet_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongOctet)); + + scdr.jump((array_size - 1) * sizeof(MapULongOctet)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongOctet& data) @@ -7065,6 +14364,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7107,6 +14414,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongChar_cdr_plain(data_representation) && + sizeof(MapULongChar) == MapULongChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongChar)); + + scdr.jump((array_size -1) * sizeof(MapULongChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7132,6 +14477,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongChar_cdr_plain(data_representation) && + sizeof(MapULongChar) == MapULongChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongChar)); + + scdr.jump((array_size - 1) * sizeof(MapULongChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongChar& data) @@ -7144,6 +14525,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongWChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7186,6 +14575,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongWChar_cdr_plain(data_representation) && + sizeof(MapULongWChar) == MapULongWChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongWChar)); + + scdr.jump((array_size -1) * sizeof(MapULongWChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7211,6 +14638,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongWChar_cdr_plain(data_representation) && + sizeof(MapULongWChar) == MapULongWChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongWChar)); + + scdr.jump((array_size - 1) * sizeof(MapULongWChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongWChar& data) @@ -7223,6 +14686,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7265,6 +14736,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongString_cdr_plain(data_representation) && + sizeof(MapULongString) == MapULongString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongString)); + + scdr.jump((array_size -1) * sizeof(MapULongString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7290,6 +14799,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongString_cdr_plain(data_representation) && + sizeof(MapULongString) == MapULongString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongString)); + + scdr.jump((array_size - 1) * sizeof(MapULongString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongString& data) @@ -7302,6 +14847,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7344,6 +14897,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongWString_cdr_plain(data_representation) && + sizeof(MapULongWString) == MapULongWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongWString)); + + scdr.jump((array_size -1) * sizeof(MapULongWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7369,6 +14960,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongWString_cdr_plain(data_representation) && + sizeof(MapULongWString) == MapULongWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongWString)); + + scdr.jump((array_size - 1) * sizeof(MapULongWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongWString& data) @@ -7381,6 +15008,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongInnerAliasBoundedStringHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7423,6 +15058,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongInnerAliasBoundedStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerAliasBoundedStringHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerAliasBoundedStringHelper) == MapULongInnerAliasBoundedStringHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongInnerAliasBoundedStringHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongInnerAliasBoundedStringHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7448,6 +15121,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongInnerAliasBoundedStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerAliasBoundedStringHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerAliasBoundedStringHelper) == MapULongInnerAliasBoundedStringHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongInnerAliasBoundedStringHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongInnerAliasBoundedStringHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerAliasBoundedStringHelper& data) @@ -7460,6 +15169,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongInnerAliasBoundedWStringHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7502,6 +15219,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongInnerAliasBoundedWStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerAliasBoundedWStringHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerAliasBoundedWStringHelper) == MapULongInnerAliasBoundedWStringHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongInnerAliasBoundedWStringHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongInnerAliasBoundedWStringHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7527,6 +15282,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongInnerAliasBoundedWStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerAliasBoundedWStringHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerAliasBoundedWStringHelper) == MapULongInnerAliasBoundedWStringHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongInnerAliasBoundedWStringHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongInnerAliasBoundedWStringHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerAliasBoundedWStringHelper& data) @@ -7539,6 +15330,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongInnerEnumHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7581,6 +15380,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerEnumHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerEnumHelper) == MapULongInnerEnumHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongInnerEnumHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongInnerEnumHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7606,6 +15443,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerEnumHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerEnumHelper) == MapULongInnerEnumHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongInnerEnumHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongInnerEnumHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerEnumHelper& data) @@ -7618,6 +15491,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongInnerBitMaskHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7660,9 +15541,47 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerBitMaskHelper) == MapULongInnerBitMaskHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongInnerBitMaskHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongInnerBitMaskHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, MapULongInnerBitMaskHelper& data) { cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? @@ -7685,6 +15604,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerBitMaskHelper) == MapULongInnerBitMaskHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongInnerBitMaskHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongInnerBitMaskHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerBitMaskHelper& data) @@ -7697,6 +15652,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongInnerAliasHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7739,6 +15702,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerAliasHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerAliasHelper) == MapULongInnerAliasHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongInnerAliasHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongInnerAliasHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7764,6 +15765,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerAliasHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerAliasHelper) == MapULongInnerAliasHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongInnerAliasHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongInnerAliasHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerAliasHelper& data) @@ -7776,6 +15813,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongInnerAliasArrayHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7818,6 +15863,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongInnerAliasArrayHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerAliasArrayHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerAliasArrayHelper) == MapULongInnerAliasArrayHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongInnerAliasArrayHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongInnerAliasArrayHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7843,6 +15926,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongInnerAliasArrayHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerAliasArrayHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerAliasArrayHelper) == MapULongInnerAliasArrayHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongInnerAliasArrayHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongInnerAliasArrayHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerAliasArrayHelper& data) @@ -7855,6 +15974,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongInnerAliasSequenceHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7897,6 +16024,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongInnerAliasSequenceHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerAliasSequenceHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerAliasSequenceHelper) == MapULongInnerAliasSequenceHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongInnerAliasSequenceHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongInnerAliasSequenceHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7922,6 +16087,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongInnerAliasSequenceHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerAliasSequenceHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerAliasSequenceHelper) == MapULongInnerAliasSequenceHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongInnerAliasSequenceHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongInnerAliasSequenceHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerAliasSequenceHelper& data) @@ -7934,6 +16135,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongInnerAliasMapHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7976,6 +16185,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongInnerAliasMapHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerAliasMapHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerAliasMapHelper) == MapULongInnerAliasMapHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongInnerAliasMapHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongInnerAliasMapHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8001,6 +16248,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongInnerAliasMapHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerAliasMapHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerAliasMapHelper) == MapULongInnerAliasMapHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongInnerAliasMapHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongInnerAliasMapHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerAliasMapHelper& data) @@ -8013,6 +16296,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongInnerUnionHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8055,6 +16346,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerUnionHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerUnionHelper) == MapULongInnerUnionHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongInnerUnionHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongInnerUnionHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8080,6 +16409,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerUnionHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerUnionHelper) == MapULongInnerUnionHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongInnerUnionHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongInnerUnionHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerUnionHelper& data) @@ -8092,6 +16457,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongInnerStructureHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8134,6 +16507,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerStructureHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerStructureHelper) == MapULongInnerStructureHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongInnerStructureHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongInnerStructureHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8159,6 +16570,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerStructureHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerStructureHelper) == MapULongInnerStructureHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongInnerStructureHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongInnerStructureHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerStructureHelper& data) @@ -8171,6 +16618,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongInnerBitsetHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8213,6 +16668,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerBitsetHelper) == MapULongInnerBitsetHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongInnerBitsetHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongInnerBitsetHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8238,6 +16731,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(MapULongInnerBitsetHelper) == MapULongInnerBitsetHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongInnerBitsetHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongInnerBitsetHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongInnerBitsetHelper& data) @@ -8250,6 +16779,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8292,6 +16829,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongShort_cdr_plain(data_representation) && + sizeof(MapLongLongShort) == MapLongLongShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongShort)); + + scdr.jump((array_size -1) * sizeof(MapLongLongShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8317,6 +16892,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongShort_cdr_plain(data_representation) && + sizeof(MapLongLongShort) == MapLongLongShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongShort)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongShort& data) @@ -8329,6 +16940,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongUShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8371,6 +16990,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongUShort_cdr_plain(data_representation) && + sizeof(MapLongLongUShort) == MapLongLongUShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongUShort)); + + scdr.jump((array_size -1) * sizeof(MapLongLongUShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8396,6 +17053,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongUShort_cdr_plain(data_representation) && + sizeof(MapLongLongUShort) == MapLongLongUShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongUShort)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongUShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongUShort& data) @@ -8408,6 +17101,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongKeyLongValue_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8450,6 +17151,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongKeyLongValue* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongKeyLongValue_cdr_plain(data_representation) && + sizeof(MapLongLongKeyLongValue) == MapLongLongKeyLongValue_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongKeyLongValue)); + + scdr.jump((array_size -1) * sizeof(MapLongLongKeyLongValue)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8475,6 +17214,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongKeyLongValue* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongKeyLongValue_cdr_plain(data_representation) && + sizeof(MapLongLongKeyLongValue) == MapLongLongKeyLongValue_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongKeyLongValue)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongKeyLongValue)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongKeyLongValue& data) @@ -8487,6 +17262,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongULong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8529,6 +17312,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongULong_cdr_plain(data_representation) && + sizeof(MapLongLongULong) == MapLongLongULong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongULong)); + + scdr.jump((array_size -1) * sizeof(MapLongLongULong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8554,6 +17375,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongULong_cdr_plain(data_representation) && + sizeof(MapLongLongULong) == MapLongLongULong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongULong)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongULong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongULong& data) @@ -8566,6 +17423,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongLongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8608,9 +17473,47 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongLongLong_cdr_plain(data_representation) && + sizeof(MapLongLongLongLong) == MapLongLongLongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongLongLong)); + + scdr.jump((array_size -1) * sizeof(MapLongLongLongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, MapLongLongLongLong& data) { cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? @@ -8633,6 +17536,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongLongLong_cdr_plain(data_representation) && + sizeof(MapLongLongLongLong) == MapLongLongLongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongLongLong)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongLongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongLongLong& data) @@ -8645,6 +17584,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongULongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8687,6 +17634,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongULongLong_cdr_plain(data_representation) && + sizeof(MapLongLongULongLong) == MapLongLongULongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongULongLong)); + + scdr.jump((array_size -1) * sizeof(MapLongLongULongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8712,6 +17697,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongULongLong_cdr_plain(data_representation) && + sizeof(MapLongLongULongLong) == MapLongLongULongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongULongLong)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongULongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongULongLong& data) @@ -8724,6 +17745,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongFloat_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8766,6 +17795,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongFloat_cdr_plain(data_representation) && + sizeof(MapLongLongFloat) == MapLongLongFloat_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongFloat)); + + scdr.jump((array_size -1) * sizeof(MapLongLongFloat)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8791,6 +17858,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongFloat_cdr_plain(data_representation) && + sizeof(MapLongLongFloat) == MapLongLongFloat_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongFloat)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongFloat)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongFloat& data) @@ -8803,6 +17906,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongKeyDoubleValue_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8845,6 +17956,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongKeyDoubleValue* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongKeyDoubleValue_cdr_plain(data_representation) && + sizeof(MapLongLongKeyDoubleValue) == MapLongLongKeyDoubleValue_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongKeyDoubleValue)); + + scdr.jump((array_size -1) * sizeof(MapLongLongKeyDoubleValue)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8870,6 +18019,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongKeyDoubleValue* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongKeyDoubleValue_cdr_plain(data_representation) && + sizeof(MapLongLongKeyDoubleValue) == MapLongLongKeyDoubleValue_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongKeyDoubleValue)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongKeyDoubleValue)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongKeyDoubleValue& data) @@ -8882,6 +18067,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongLongDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8924,6 +18117,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongLongDouble_cdr_plain(data_representation) && + sizeof(MapLongLongLongDouble) == MapLongLongLongDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongLongDouble)); + + scdr.jump((array_size -1) * sizeof(MapLongLongLongDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8949,6 +18180,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongLongDouble_cdr_plain(data_representation) && + sizeof(MapLongLongLongDouble) == MapLongLongLongDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongLongDouble)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongLongDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongLongDouble& data) @@ -8961,6 +18228,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongBoolean_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9003,6 +18278,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongBoolean_cdr_plain(data_representation) && + sizeof(MapLongLongBoolean) == MapLongLongBoolean_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongBoolean)); + + scdr.jump((array_size -1) * sizeof(MapLongLongBoolean)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9028,6 +18341,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongBoolean_cdr_plain(data_representation) && + sizeof(MapLongLongBoolean) == MapLongLongBoolean_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongBoolean)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongBoolean)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongBoolean& data) @@ -9040,6 +18389,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongOctet_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9082,6 +18439,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongOctet_cdr_plain(data_representation) && + sizeof(MapLongLongOctet) == MapLongLongOctet_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongOctet)); + + scdr.jump((array_size -1) * sizeof(MapLongLongOctet)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9107,6 +18502,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongOctet_cdr_plain(data_representation) && + sizeof(MapLongLongOctet) == MapLongLongOctet_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongOctet)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongOctet)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongOctet& data) @@ -9119,6 +18550,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9161,6 +18600,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongChar_cdr_plain(data_representation) && + sizeof(MapLongLongChar) == MapLongLongChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongChar)); + + scdr.jump((array_size -1) * sizeof(MapLongLongChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9186,6 +18663,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongChar_cdr_plain(data_representation) && + sizeof(MapLongLongChar) == MapLongLongChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongChar)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongChar& data) @@ -9198,6 +18711,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongWChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9240,6 +18761,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongWChar_cdr_plain(data_representation) && + sizeof(MapLongLongWChar) == MapLongLongWChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongWChar)); + + scdr.jump((array_size -1) * sizeof(MapLongLongWChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9265,6 +18824,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongWChar_cdr_plain(data_representation) && + sizeof(MapLongLongWChar) == MapLongLongWChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongWChar)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongWChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongWChar& data) @@ -9277,6 +18872,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9319,6 +18922,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongString_cdr_plain(data_representation) && + sizeof(MapLongLongString) == MapLongLongString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongString)); + + scdr.jump((array_size -1) * sizeof(MapLongLongString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9344,6 +18985,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongString_cdr_plain(data_representation) && + sizeof(MapLongLongString) == MapLongLongString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongString)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongString& data) @@ -9356,6 +19033,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9398,6 +19083,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongWString_cdr_plain(data_representation) && + sizeof(MapLongLongWString) == MapLongLongWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongWString)); + + scdr.jump((array_size -1) * sizeof(MapLongLongWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9423,6 +19146,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongWString_cdr_plain(data_representation) && + sizeof(MapLongLongWString) == MapLongLongWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongWString)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongWString& data) @@ -9435,6 +19194,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongInnerAliasBoundedStringHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9477,6 +19244,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongInnerAliasBoundedStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerAliasBoundedStringHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerAliasBoundedStringHelper) == MapLongLongInnerAliasBoundedStringHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongInnerAliasBoundedStringHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongLongInnerAliasBoundedStringHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9502,6 +19307,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongInnerAliasBoundedStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerAliasBoundedStringHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerAliasBoundedStringHelper) == MapLongLongInnerAliasBoundedStringHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongInnerAliasBoundedStringHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongInnerAliasBoundedStringHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerAliasBoundedStringHelper& data) @@ -9514,6 +19355,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongInnerAliasBoundedWStringHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9556,9 +19405,47 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongInnerAliasBoundedWStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerAliasBoundedWStringHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerAliasBoundedWStringHelper) == MapLongLongInnerAliasBoundedWStringHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongInnerAliasBoundedWStringHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongLongInnerAliasBoundedWStringHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, MapLongLongInnerAliasBoundedWStringHelper& data) { cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? @@ -9581,6 +19468,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongInnerAliasBoundedWStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerAliasBoundedWStringHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerAliasBoundedWStringHelper) == MapLongLongInnerAliasBoundedWStringHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongInnerAliasBoundedWStringHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongInnerAliasBoundedWStringHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerAliasBoundedWStringHelper& data) @@ -9593,6 +19516,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongInnerEnumHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9635,6 +19566,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerEnumHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerEnumHelper) == MapLongLongInnerEnumHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongInnerEnumHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongLongInnerEnumHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9660,6 +19629,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerEnumHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerEnumHelper) == MapLongLongInnerEnumHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongInnerEnumHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongInnerEnumHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerEnumHelper& data) @@ -9672,6 +19677,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongInnerBitMaskHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9714,6 +19727,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerBitMaskHelper) == MapLongLongInnerBitMaskHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongInnerBitMaskHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongLongInnerBitMaskHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9739,6 +19790,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerBitMaskHelper) == MapLongLongInnerBitMaskHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongInnerBitMaskHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongInnerBitMaskHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerBitMaskHelper& data) @@ -9751,6 +19838,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongInnerAliasHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9793,6 +19888,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerAliasHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerAliasHelper) == MapLongLongInnerAliasHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongInnerAliasHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongLongInnerAliasHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9818,6 +19951,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerAliasHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerAliasHelper) == MapLongLongInnerAliasHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongInnerAliasHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongInnerAliasHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerAliasHelper& data) @@ -9830,6 +19999,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongInnerAliasArrayHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9872,6 +20049,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongInnerAliasArrayHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerAliasArrayHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerAliasArrayHelper) == MapLongLongInnerAliasArrayHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongInnerAliasArrayHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongLongInnerAliasArrayHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9897,6 +20112,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongInnerAliasArrayHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerAliasArrayHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerAliasArrayHelper) == MapLongLongInnerAliasArrayHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongInnerAliasArrayHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongInnerAliasArrayHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerAliasArrayHelper& data) @@ -9909,6 +20160,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongInnerAliasSequenceHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -9951,6 +20210,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongInnerAliasSequenceHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerAliasSequenceHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerAliasSequenceHelper) == MapLongLongInnerAliasSequenceHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongInnerAliasSequenceHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongLongInnerAliasSequenceHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -9976,6 +20273,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongInnerAliasSequenceHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerAliasSequenceHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerAliasSequenceHelper) == MapLongLongInnerAliasSequenceHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongInnerAliasSequenceHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongInnerAliasSequenceHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerAliasSequenceHelper& data) @@ -9988,6 +20321,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongInnerAliasMapHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -10030,6 +20371,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongInnerAliasMapHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerAliasMapHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerAliasMapHelper) == MapLongLongInnerAliasMapHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongInnerAliasMapHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongLongInnerAliasMapHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -10055,6 +20434,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongInnerAliasMapHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerAliasMapHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerAliasMapHelper) == MapLongLongInnerAliasMapHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongInnerAliasMapHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongInnerAliasMapHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerAliasMapHelper& data) @@ -10067,6 +20482,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongInnerUnionHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -10109,6 +20532,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerUnionHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerUnionHelper) == MapLongLongInnerUnionHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongInnerUnionHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongLongInnerUnionHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -10134,6 +20595,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerUnionHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerUnionHelper) == MapLongLongInnerUnionHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongInnerUnionHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongInnerUnionHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerUnionHelper& data) @@ -10146,6 +20643,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongInnerStructureHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -10188,6 +20693,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerStructureHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerStructureHelper) == MapLongLongInnerStructureHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongInnerStructureHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongLongInnerStructureHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -10213,6 +20756,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerStructureHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerStructureHelper) == MapLongLongInnerStructureHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongInnerStructureHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongInnerStructureHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerStructureHelper& data) @@ -10225,6 +20804,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapLongLongInnerBitsetHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -10267,6 +20854,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapLongLongInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerBitsetHelper) == MapLongLongInnerBitsetHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapLongLongInnerBitsetHelper)); + + scdr.jump((array_size -1) * sizeof(MapLongLongInnerBitsetHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -10292,6 +20917,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapLongLongInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapLongLongInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(MapLongLongInnerBitsetHelper) == MapLongLongInnerBitsetHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapLongLongInnerBitsetHelper)); + + scdr.jump((array_size - 1) * sizeof(MapLongLongInnerBitsetHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapLongLongInnerBitsetHelper& data) @@ -10304,6 +20965,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -10346,6 +21015,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongShort_cdr_plain(data_representation) && + sizeof(MapULongLongShort) == MapULongLongShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongShort)); + + scdr.jump((array_size -1) * sizeof(MapULongLongShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -10371,6 +21078,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongShort_cdr_plain(data_representation) && + sizeof(MapULongLongShort) == MapULongLongShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongShort)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongShort& data) @@ -10383,6 +21126,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongUShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -10425,6 +21176,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongUShort_cdr_plain(data_representation) && + sizeof(MapULongLongUShort) == MapULongLongUShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongUShort)); + + scdr.jump((array_size -1) * sizeof(MapULongLongUShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -10450,6 +21239,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongUShort_cdr_plain(data_representation) && + sizeof(MapULongLongUShort) == MapULongLongUShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongUShort)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongUShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongUShort& data) @@ -10462,6 +21287,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -10504,9 +21337,47 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongLong_cdr_plain(data_representation) && + sizeof(MapULongLongLong) == MapULongLongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongLong)); + + scdr.jump((array_size -1) * sizeof(MapULongLongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, MapULongLongLong& data) { cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? @@ -10529,6 +21400,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongLong_cdr_plain(data_representation) && + sizeof(MapULongLongLong) == MapULongLongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongLong)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongLong& data) @@ -10541,6 +21448,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongULong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -10583,6 +21498,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongULong_cdr_plain(data_representation) && + sizeof(MapULongLongULong) == MapULongLongULong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongULong)); + + scdr.jump((array_size -1) * sizeof(MapULongLongULong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -10608,6 +21561,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongULong_cdr_plain(data_representation) && + sizeof(MapULongLongULong) == MapULongLongULong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongULong)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongULong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongULong& data) @@ -10620,6 +21609,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongLongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -10662,6 +21659,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongLongLong_cdr_plain(data_representation) && + sizeof(MapULongLongLongLong) == MapULongLongLongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongLongLong)); + + scdr.jump((array_size -1) * sizeof(MapULongLongLongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -10687,6 +21722,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongLongLong_cdr_plain(data_representation) && + sizeof(MapULongLongLongLong) == MapULongLongLongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongLongLong)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongLongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongLongLong& data) @@ -10699,6 +21770,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongULongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -10741,6 +21820,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongULongLong_cdr_plain(data_representation) && + sizeof(MapULongLongULongLong) == MapULongLongULongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongULongLong)); + + scdr.jump((array_size -1) * sizeof(MapULongLongULongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -10766,6 +21883,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongULongLong_cdr_plain(data_representation) && + sizeof(MapULongLongULongLong) == MapULongLongULongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongULongLong)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongULongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongULongLong& data) @@ -10778,6 +21931,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongFloat_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -10820,6 +21981,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongFloat_cdr_plain(data_representation) && + sizeof(MapULongLongFloat) == MapULongLongFloat_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongFloat)); + + scdr.jump((array_size -1) * sizeof(MapULongLongFloat)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -10845,6 +22044,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongFloat_cdr_plain(data_representation) && + sizeof(MapULongLongFloat) == MapULongLongFloat_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongFloat)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongFloat)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongFloat& data) @@ -10857,6 +22092,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapKeyULongLongValueDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -10899,6 +22142,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapKeyULongLongValueDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapKeyULongLongValueDouble_cdr_plain(data_representation) && + sizeof(MapKeyULongLongValueDouble) == MapKeyULongLongValueDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapKeyULongLongValueDouble)); + + scdr.jump((array_size -1) * sizeof(MapKeyULongLongValueDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -10924,6 +22205,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapKeyULongLongValueDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapKeyULongLongValueDouble_cdr_plain(data_representation) && + sizeof(MapKeyULongLongValueDouble) == MapKeyULongLongValueDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapKeyULongLongValueDouble)); + + scdr.jump((array_size - 1) * sizeof(MapKeyULongLongValueDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapKeyULongLongValueDouble& data) @@ -10936,6 +22253,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongLongDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -10978,6 +22303,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongLongDouble_cdr_plain(data_representation) && + sizeof(MapULongLongLongDouble) == MapULongLongLongDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongLongDouble)); + + scdr.jump((array_size -1) * sizeof(MapULongLongLongDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -11003,6 +22366,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongLongDouble_cdr_plain(data_representation) && + sizeof(MapULongLongLongDouble) == MapULongLongLongDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongLongDouble)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongLongDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongLongDouble& data) @@ -11015,6 +22414,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongBoolean_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -11057,6 +22464,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongBoolean_cdr_plain(data_representation) && + sizeof(MapULongLongBoolean) == MapULongLongBoolean_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongBoolean)); + + scdr.jump((array_size -1) * sizeof(MapULongLongBoolean)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -11082,6 +22527,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongBoolean_cdr_plain(data_representation) && + sizeof(MapULongLongBoolean) == MapULongLongBoolean_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongBoolean)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongBoolean)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongBoolean& data) @@ -11094,6 +22575,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongOctet_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -11136,6 +22625,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongOctet_cdr_plain(data_representation) && + sizeof(MapULongLongOctet) == MapULongLongOctet_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongOctet)); + + scdr.jump((array_size -1) * sizeof(MapULongLongOctet)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -11161,6 +22688,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongOctet_cdr_plain(data_representation) && + sizeof(MapULongLongOctet) == MapULongLongOctet_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongOctet)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongOctet)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongOctet& data) @@ -11173,6 +22736,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -11215,6 +22786,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongChar_cdr_plain(data_representation) && + sizeof(MapULongLongChar) == MapULongLongChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongChar)); + + scdr.jump((array_size -1) * sizeof(MapULongLongChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -11240,6 +22849,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongChar_cdr_plain(data_representation) && + sizeof(MapULongLongChar) == MapULongLongChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongChar)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongChar& data) @@ -11252,6 +22897,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongWChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -11294,6 +22947,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongWChar_cdr_plain(data_representation) && + sizeof(MapULongLongWChar) == MapULongLongWChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongWChar)); + + scdr.jump((array_size -1) * sizeof(MapULongLongWChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -11319,6 +23010,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongWChar_cdr_plain(data_representation) && + sizeof(MapULongLongWChar) == MapULongLongWChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongWChar)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongWChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongWChar& data) @@ -11331,6 +23058,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -11373,6 +23108,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongString_cdr_plain(data_representation) && + sizeof(MapULongLongString) == MapULongLongString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongString)); + + scdr.jump((array_size -1) * sizeof(MapULongLongString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -11398,6 +23171,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongString_cdr_plain(data_representation) && + sizeof(MapULongLongString) == MapULongLongString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongString)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongString& data) @@ -11410,6 +23219,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -11452,9 +23269,47 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongWString_cdr_plain(data_representation) && + sizeof(MapULongLongWString) == MapULongLongWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongWString)); + + scdr.jump((array_size -1) * sizeof(MapULongLongWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, MapULongLongWString& data) { cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? @@ -11477,6 +23332,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongWString_cdr_plain(data_representation) && + sizeof(MapULongLongWString) == MapULongLongWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongWString)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongWString& data) @@ -11489,6 +23380,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongInnerAliasBoundedStringHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -11531,6 +23430,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongInnerAliasBoundedStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerAliasBoundedStringHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerAliasBoundedStringHelper) == MapULongLongInnerAliasBoundedStringHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongInnerAliasBoundedStringHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongLongInnerAliasBoundedStringHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -11556,6 +23493,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongInnerAliasBoundedStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerAliasBoundedStringHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerAliasBoundedStringHelper) == MapULongLongInnerAliasBoundedStringHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongInnerAliasBoundedStringHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongInnerAliasBoundedStringHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerAliasBoundedStringHelper& data) @@ -11568,6 +23541,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongInnerAliasBoundedWStringHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -11610,6 +23591,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongInnerAliasBoundedWStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerAliasBoundedWStringHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerAliasBoundedWStringHelper) == MapULongLongInnerAliasBoundedWStringHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongInnerAliasBoundedWStringHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongLongInnerAliasBoundedWStringHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -11635,6 +23654,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongInnerAliasBoundedWStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerAliasBoundedWStringHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerAliasBoundedWStringHelper) == MapULongLongInnerAliasBoundedWStringHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongInnerAliasBoundedWStringHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongInnerAliasBoundedWStringHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerAliasBoundedWStringHelper& data) @@ -11647,6 +23702,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongInnerEnumHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -11689,6 +23752,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerEnumHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerEnumHelper) == MapULongLongInnerEnumHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongInnerEnumHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongLongInnerEnumHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -11714,6 +23815,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerEnumHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerEnumHelper) == MapULongLongInnerEnumHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongInnerEnumHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongInnerEnumHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerEnumHelper& data) @@ -11726,6 +23863,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongInnerBitMaskHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -11768,6 +23913,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerBitMaskHelper) == MapULongLongInnerBitMaskHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongInnerBitMaskHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongLongInnerBitMaskHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -11793,6 +23976,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerBitMaskHelper) == MapULongLongInnerBitMaskHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongInnerBitMaskHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongInnerBitMaskHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerBitMaskHelper& data) @@ -11805,6 +24024,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongInnerAliasHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -11847,6 +24074,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerAliasHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerAliasHelper) == MapULongLongInnerAliasHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongInnerAliasHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongLongInnerAliasHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -11872,6 +24137,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerAliasHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerAliasHelper) == MapULongLongInnerAliasHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongInnerAliasHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongInnerAliasHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerAliasHelper& data) @@ -11884,6 +24185,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongInnerAliasArrayHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -11926,6 +24235,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongInnerAliasArrayHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerAliasArrayHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerAliasArrayHelper) == MapULongLongInnerAliasArrayHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongInnerAliasArrayHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongLongInnerAliasArrayHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -11951,6 +24298,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongInnerAliasArrayHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerAliasArrayHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerAliasArrayHelper) == MapULongLongInnerAliasArrayHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongInnerAliasArrayHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongInnerAliasArrayHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerAliasArrayHelper& data) @@ -11963,6 +24346,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongInnerAliasSequenceHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -12005,6 +24396,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongInnerAliasSequenceHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerAliasSequenceHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerAliasSequenceHelper) == MapULongLongInnerAliasSequenceHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongInnerAliasSequenceHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongLongInnerAliasSequenceHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -12030,6 +24459,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongInnerAliasSequenceHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerAliasSequenceHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerAliasSequenceHelper) == MapULongLongInnerAliasSequenceHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongInnerAliasSequenceHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongInnerAliasSequenceHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerAliasSequenceHelper& data) @@ -12042,6 +24507,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongInnerAliasMapHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -12084,6 +24557,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongInnerAliasMapHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerAliasMapHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerAliasMapHelper) == MapULongLongInnerAliasMapHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongInnerAliasMapHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongLongInnerAliasMapHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -12109,6 +24620,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongInnerAliasMapHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerAliasMapHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerAliasMapHelper) == MapULongLongInnerAliasMapHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongInnerAliasMapHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongInnerAliasMapHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerAliasMapHelper& data) @@ -12121,6 +24668,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongInnerUnionHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -12163,6 +24718,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerUnionHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerUnionHelper) == MapULongLongInnerUnionHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongInnerUnionHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongLongInnerUnionHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -12188,6 +24781,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerUnionHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerUnionHelper) == MapULongLongInnerUnionHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongInnerUnionHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongInnerUnionHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerUnionHelper& data) @@ -12200,6 +24829,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongInnerStructureHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -12242,6 +24879,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerStructureHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerStructureHelper) == MapULongLongInnerStructureHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongInnerStructureHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongLongInnerStructureHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -12267,6 +24942,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerStructureHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerStructureHelper) == MapULongLongInnerStructureHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongInnerStructureHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongInnerStructureHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerStructureHelper& data) @@ -12279,6 +24990,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapULongLongInnerBitsetHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -12321,6 +25040,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapULongLongInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerBitsetHelper) == MapULongLongInnerBitsetHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapULongLongInnerBitsetHelper)); + + scdr.jump((array_size -1) * sizeof(MapULongLongInnerBitsetHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -12346,6 +25103,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapULongLongInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapULongLongInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(MapULongLongInnerBitsetHelper) == MapULongLongInnerBitsetHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapULongLongInnerBitsetHelper)); + + scdr.jump((array_size - 1) * sizeof(MapULongLongInnerBitsetHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapULongLongInnerBitsetHelper& data) @@ -12358,6 +25151,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -12400,9 +25201,47 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringShort_cdr_plain(data_representation) && + sizeof(MapStringShort) == MapStringShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringShort)); + + scdr.jump((array_size -1) * sizeof(MapStringShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, MapStringShort& data) { cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? @@ -12425,6 +25264,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringShort_cdr_plain(data_representation) && + sizeof(MapStringShort) == MapStringShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringShort)); + + scdr.jump((array_size - 1) * sizeof(MapStringShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringShort& data) @@ -12437,6 +25312,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringUShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -12479,6 +25362,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringUShort_cdr_plain(data_representation) && + sizeof(MapStringUShort) == MapStringUShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringUShort)); + + scdr.jump((array_size -1) * sizeof(MapStringUShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -12504,6 +25425,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringUShort_cdr_plain(data_representation) && + sizeof(MapStringUShort) == MapStringUShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringUShort)); + + scdr.jump((array_size - 1) * sizeof(MapStringUShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringUShort& data) @@ -12516,6 +25473,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -12558,6 +25523,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringLong_cdr_plain(data_representation) && + sizeof(MapStringLong) == MapStringLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringLong)); + + scdr.jump((array_size -1) * sizeof(MapStringLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -12583,6 +25586,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringLong_cdr_plain(data_representation) && + sizeof(MapStringLong) == MapStringLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringLong)); + + scdr.jump((array_size - 1) * sizeof(MapStringLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringLong& data) @@ -12595,6 +25634,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringULong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -12637,6 +25684,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringULong_cdr_plain(data_representation) && + sizeof(MapStringULong) == MapStringULong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringULong)); + + scdr.jump((array_size -1) * sizeof(MapStringULong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -12662,6 +25747,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringULong_cdr_plain(data_representation) && + sizeof(MapStringULong) == MapStringULong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringULong)); + + scdr.jump((array_size - 1) * sizeof(MapStringULong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringULong& data) @@ -12674,6 +25795,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringLongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -12716,6 +25845,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringLongLong_cdr_plain(data_representation) && + sizeof(MapStringLongLong) == MapStringLongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringLongLong)); + + scdr.jump((array_size -1) * sizeof(MapStringLongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -12741,6 +25908,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringLongLong_cdr_plain(data_representation) && + sizeof(MapStringLongLong) == MapStringLongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringLongLong)); + + scdr.jump((array_size - 1) * sizeof(MapStringLongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringLongLong& data) @@ -12753,6 +25956,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringULongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -12795,6 +26006,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringULongLong_cdr_plain(data_representation) && + sizeof(MapStringULongLong) == MapStringULongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringULongLong)); + + scdr.jump((array_size -1) * sizeof(MapStringULongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -12820,6 +26069,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringULongLong_cdr_plain(data_representation) && + sizeof(MapStringULongLong) == MapStringULongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringULongLong)); + + scdr.jump((array_size - 1) * sizeof(MapStringULongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringULongLong& data) @@ -12832,6 +26117,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringFloat_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -12874,6 +26167,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringFloat_cdr_plain(data_representation) && + sizeof(MapStringFloat) == MapStringFloat_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringFloat)); + + scdr.jump((array_size -1) * sizeof(MapStringFloat)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -12899,6 +26230,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringFloat_cdr_plain(data_representation) && + sizeof(MapStringFloat) == MapStringFloat_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringFloat)); + + scdr.jump((array_size - 1) * sizeof(MapStringFloat)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringFloat& data) @@ -12911,6 +26278,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -12953,6 +26328,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringDouble_cdr_plain(data_representation) && + sizeof(MapStringDouble) == MapStringDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringDouble)); + + scdr.jump((array_size -1) * sizeof(MapStringDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -12978,6 +26391,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringDouble_cdr_plain(data_representation) && + sizeof(MapStringDouble) == MapStringDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringDouble)); + + scdr.jump((array_size - 1) * sizeof(MapStringDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringDouble& data) @@ -12990,6 +26439,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringLongDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -13032,6 +26489,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringLongDouble_cdr_plain(data_representation) && + sizeof(MapStringLongDouble) == MapStringLongDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringLongDouble)); + + scdr.jump((array_size -1) * sizeof(MapStringLongDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -13057,6 +26552,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringLongDouble_cdr_plain(data_representation) && + sizeof(MapStringLongDouble) == MapStringLongDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringLongDouble)); + + scdr.jump((array_size - 1) * sizeof(MapStringLongDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringLongDouble& data) @@ -13069,6 +26600,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringBoolean_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -13111,6 +26650,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringBoolean_cdr_plain(data_representation) && + sizeof(MapStringBoolean) == MapStringBoolean_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringBoolean)); + + scdr.jump((array_size -1) * sizeof(MapStringBoolean)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -13136,6 +26713,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringBoolean_cdr_plain(data_representation) && + sizeof(MapStringBoolean) == MapStringBoolean_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringBoolean)); + + scdr.jump((array_size - 1) * sizeof(MapStringBoolean)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringBoolean& data) @@ -13148,6 +26761,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringOctet_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -13190,6 +26811,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringOctet_cdr_plain(data_representation) && + sizeof(MapStringOctet) == MapStringOctet_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringOctet)); + + scdr.jump((array_size -1) * sizeof(MapStringOctet)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -13215,6 +26874,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringOctet_cdr_plain(data_representation) && + sizeof(MapStringOctet) == MapStringOctet_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringOctet)); + + scdr.jump((array_size - 1) * sizeof(MapStringOctet)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringOctet& data) @@ -13227,6 +26922,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -13269,6 +26972,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringChar_cdr_plain(data_representation) && + sizeof(MapStringChar) == MapStringChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringChar)); + + scdr.jump((array_size -1) * sizeof(MapStringChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -13294,6 +27035,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringChar_cdr_plain(data_representation) && + sizeof(MapStringChar) == MapStringChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringChar)); + + scdr.jump((array_size - 1) * sizeof(MapStringChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringChar& data) @@ -13306,6 +27083,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringWChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -13348,9 +27133,47 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringWChar_cdr_plain(data_representation) && + sizeof(MapStringWChar) == MapStringWChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringWChar)); + + scdr.jump((array_size -1) * sizeof(MapStringWChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, MapStringWChar& data) { cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? @@ -13373,6 +27196,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringWChar_cdr_plain(data_representation) && + sizeof(MapStringWChar) == MapStringWChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringWChar)); + + scdr.jump((array_size - 1) * sizeof(MapStringWChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringWChar& data) @@ -13385,6 +27244,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -13427,6 +27294,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringString_cdr_plain(data_representation) && + sizeof(MapStringString) == MapStringString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringString)); + + scdr.jump((array_size -1) * sizeof(MapStringString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -13452,6 +27357,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringString_cdr_plain(data_representation) && + sizeof(MapStringString) == MapStringString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringString)); + + scdr.jump((array_size - 1) * sizeof(MapStringString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringString& data) @@ -13464,6 +27405,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -13506,6 +27455,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringWString_cdr_plain(data_representation) && + sizeof(MapStringWString) == MapStringWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringWString)); + + scdr.jump((array_size -1) * sizeof(MapStringWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -13531,6 +27518,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringWString_cdr_plain(data_representation) && + sizeof(MapStringWString) == MapStringWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringWString)); + + scdr.jump((array_size - 1) * sizeof(MapStringWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringWString& data) @@ -13543,6 +27566,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringInnerAliasBoundedStringHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -13585,6 +27616,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringInnerAliasBoundedStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerAliasBoundedStringHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerAliasBoundedStringHelper) == MapStringInnerAliasBoundedStringHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringInnerAliasBoundedStringHelper)); + + scdr.jump((array_size -1) * sizeof(MapStringInnerAliasBoundedStringHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -13610,6 +27679,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringInnerAliasBoundedStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerAliasBoundedStringHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerAliasBoundedStringHelper) == MapStringInnerAliasBoundedStringHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringInnerAliasBoundedStringHelper)); + + scdr.jump((array_size - 1) * sizeof(MapStringInnerAliasBoundedStringHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerAliasBoundedStringHelper& data) @@ -13622,6 +27727,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringInnerAliasBoundedWStringHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -13664,6 +27777,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringInnerAliasBoundedWStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerAliasBoundedWStringHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerAliasBoundedWStringHelper) == MapStringInnerAliasBoundedWStringHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringInnerAliasBoundedWStringHelper)); + + scdr.jump((array_size -1) * sizeof(MapStringInnerAliasBoundedWStringHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -13689,6 +27840,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringInnerAliasBoundedWStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerAliasBoundedWStringHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerAliasBoundedWStringHelper) == MapStringInnerAliasBoundedWStringHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringInnerAliasBoundedWStringHelper)); + + scdr.jump((array_size - 1) * sizeof(MapStringInnerAliasBoundedWStringHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerAliasBoundedWStringHelper& data) @@ -13701,6 +27888,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringInnerEnumHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -13743,6 +27938,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerEnumHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerEnumHelper) == MapStringInnerEnumHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringInnerEnumHelper)); + + scdr.jump((array_size -1) * sizeof(MapStringInnerEnumHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -13768,6 +28001,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerEnumHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerEnumHelper) == MapStringInnerEnumHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringInnerEnumHelper)); + + scdr.jump((array_size - 1) * sizeof(MapStringInnerEnumHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerEnumHelper& data) @@ -13780,6 +28049,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringInnerBitMaskHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -13822,6 +28099,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerBitMaskHelper) == MapStringInnerBitMaskHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringInnerBitMaskHelper)); + + scdr.jump((array_size -1) * sizeof(MapStringInnerBitMaskHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -13847,6 +28162,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerBitMaskHelper) == MapStringInnerBitMaskHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringInnerBitMaskHelper)); + + scdr.jump((array_size - 1) * sizeof(MapStringInnerBitMaskHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerBitMaskHelper& data) @@ -13859,6 +28210,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringInnerAliasHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -13901,6 +28260,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerAliasHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerAliasHelper) == MapStringInnerAliasHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringInnerAliasHelper)); + + scdr.jump((array_size -1) * sizeof(MapStringInnerAliasHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -13926,6 +28323,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerAliasHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerAliasHelper) == MapStringInnerAliasHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringInnerAliasHelper)); + + scdr.jump((array_size - 1) * sizeof(MapStringInnerAliasHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerAliasHelper& data) @@ -13938,6 +28371,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringInnerAliasArrayHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -13980,6 +28421,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringInnerAliasArrayHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerAliasArrayHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerAliasArrayHelper) == MapStringInnerAliasArrayHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringInnerAliasArrayHelper)); + + scdr.jump((array_size -1) * sizeof(MapStringInnerAliasArrayHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -14005,6 +28484,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringInnerAliasArrayHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerAliasArrayHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerAliasArrayHelper) == MapStringInnerAliasArrayHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringInnerAliasArrayHelper)); + + scdr.jump((array_size - 1) * sizeof(MapStringInnerAliasArrayHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerAliasArrayHelper& data) @@ -14017,6 +28532,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringInnerAliasSequenceHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -14059,6 +28582,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringInnerAliasSequenceHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerAliasSequenceHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerAliasSequenceHelper) == MapStringInnerAliasSequenceHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringInnerAliasSequenceHelper)); + + scdr.jump((array_size -1) * sizeof(MapStringInnerAliasSequenceHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -14084,6 +28645,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringInnerAliasSequenceHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerAliasSequenceHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerAliasSequenceHelper) == MapStringInnerAliasSequenceHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringInnerAliasSequenceHelper)); + + scdr.jump((array_size - 1) * sizeof(MapStringInnerAliasSequenceHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerAliasSequenceHelper& data) @@ -14096,6 +28693,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringInnerAliasMapHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -14138,6 +28743,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringInnerAliasMapHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerAliasMapHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerAliasMapHelper) == MapStringInnerAliasMapHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringInnerAliasMapHelper)); + + scdr.jump((array_size -1) * sizeof(MapStringInnerAliasMapHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -14163,6 +28806,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringInnerAliasMapHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerAliasMapHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerAliasMapHelper) == MapStringInnerAliasMapHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringInnerAliasMapHelper)); + + scdr.jump((array_size - 1) * sizeof(MapStringInnerAliasMapHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerAliasMapHelper& data) @@ -14175,6 +28854,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringInnerUnionHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -14217,6 +28904,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerUnionHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerUnionHelper) == MapStringInnerUnionHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringInnerUnionHelper)); + + scdr.jump((array_size -1) * sizeof(MapStringInnerUnionHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -14242,6 +28967,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerUnionHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerUnionHelper) == MapStringInnerUnionHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringInnerUnionHelper)); + + scdr.jump((array_size - 1) * sizeof(MapStringInnerUnionHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerUnionHelper& data) @@ -14254,6 +29015,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringInnerStructureHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -14296,9 +29065,47 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerStructureHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerStructureHelper) == MapStringInnerStructureHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringInnerStructureHelper)); + + scdr.jump((array_size -1) * sizeof(MapStringInnerStructureHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, MapStringInnerStructureHelper& data) { cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? @@ -14321,6 +29128,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerStructureHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerStructureHelper) == MapStringInnerStructureHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringInnerStructureHelper)); + + scdr.jump((array_size - 1) * sizeof(MapStringInnerStructureHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerStructureHelper& data) @@ -14333,6 +29176,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStringInnerBitsetHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -14375,6 +29226,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStringInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerBitsetHelper) == MapStringInnerBitsetHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStringInnerBitsetHelper)); + + scdr.jump((array_size -1) * sizeof(MapStringInnerBitsetHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -14400,6 +29289,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStringInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStringInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(MapStringInnerBitsetHelper) == MapStringInnerBitsetHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStringInnerBitsetHelper)); + + scdr.jump((array_size - 1) * sizeof(MapStringInnerBitsetHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStringInnerBitsetHelper& data) @@ -14412,6 +29337,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -14454,6 +29387,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringShort_cdr_plain(data_representation) && + sizeof(MapWStringShort) == MapWStringShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringShort)); + + scdr.jump((array_size -1) * sizeof(MapWStringShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -14479,6 +29450,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringShort_cdr_plain(data_representation) && + sizeof(MapWStringShort) == MapWStringShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringShort)); + + scdr.jump((array_size - 1) * sizeof(MapWStringShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringShort& data) @@ -14491,6 +29498,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringUShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -14533,6 +29548,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringUShort_cdr_plain(data_representation) && + sizeof(MapWStringUShort) == MapWStringUShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringUShort)); + + scdr.jump((array_size -1) * sizeof(MapWStringUShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -14558,6 +29611,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringUShort_cdr_plain(data_representation) && + sizeof(MapWStringUShort) == MapWStringUShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringUShort)); + + scdr.jump((array_size - 1) * sizeof(MapWStringUShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringUShort& data) @@ -14570,6 +29659,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -14612,6 +29709,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringLong_cdr_plain(data_representation) && + sizeof(MapWStringLong) == MapWStringLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringLong)); + + scdr.jump((array_size -1) * sizeof(MapWStringLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -14637,6 +29772,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringLong_cdr_plain(data_representation) && + sizeof(MapWStringLong) == MapWStringLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringLong)); + + scdr.jump((array_size - 1) * sizeof(MapWStringLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringLong& data) @@ -14649,6 +29820,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringULong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -14691,6 +29870,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringULong_cdr_plain(data_representation) && + sizeof(MapWStringULong) == MapWStringULong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringULong)); + + scdr.jump((array_size -1) * sizeof(MapWStringULong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -14716,6 +29933,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringULong_cdr_plain(data_representation) && + sizeof(MapWStringULong) == MapWStringULong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringULong)); + + scdr.jump((array_size - 1) * sizeof(MapWStringULong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringULong& data) @@ -14728,6 +29981,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringLongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -14770,6 +30031,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringLongLong_cdr_plain(data_representation) && + sizeof(MapWStringLongLong) == MapWStringLongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringLongLong)); + + scdr.jump((array_size -1) * sizeof(MapWStringLongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -14795,6 +30094,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringLongLong_cdr_plain(data_representation) && + sizeof(MapWStringLongLong) == MapWStringLongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringLongLong)); + + scdr.jump((array_size - 1) * sizeof(MapWStringLongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringLongLong& data) @@ -14807,6 +30142,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringULongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -14849,6 +30192,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringULongLong_cdr_plain(data_representation) && + sizeof(MapWStringULongLong) == MapWStringULongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringULongLong)); + + scdr.jump((array_size -1) * sizeof(MapWStringULongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -14874,6 +30255,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringULongLong_cdr_plain(data_representation) && + sizeof(MapWStringULongLong) == MapWStringULongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringULongLong)); + + scdr.jump((array_size - 1) * sizeof(MapWStringULongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringULongLong& data) @@ -14886,6 +30303,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringFloat_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -14928,6 +30353,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringFloat_cdr_plain(data_representation) && + sizeof(MapWStringFloat) == MapWStringFloat_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringFloat)); + + scdr.jump((array_size -1) * sizeof(MapWStringFloat)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -14953,6 +30416,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringFloat_cdr_plain(data_representation) && + sizeof(MapWStringFloat) == MapWStringFloat_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringFloat)); + + scdr.jump((array_size - 1) * sizeof(MapWStringFloat)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringFloat& data) @@ -14965,6 +30464,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -15007,6 +30514,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringDouble_cdr_plain(data_representation) && + sizeof(MapWStringDouble) == MapWStringDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringDouble)); + + scdr.jump((array_size -1) * sizeof(MapWStringDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -15032,6 +30577,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringDouble_cdr_plain(data_representation) && + sizeof(MapWStringDouble) == MapWStringDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringDouble)); + + scdr.jump((array_size - 1) * sizeof(MapWStringDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringDouble& data) @@ -15044,6 +30625,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringLongDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -15086,6 +30675,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringLongDouble_cdr_plain(data_representation) && + sizeof(MapWStringLongDouble) == MapWStringLongDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringLongDouble)); + + scdr.jump((array_size -1) * sizeof(MapWStringLongDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -15111,6 +30738,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringLongDouble_cdr_plain(data_representation) && + sizeof(MapWStringLongDouble) == MapWStringLongDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringLongDouble)); + + scdr.jump((array_size - 1) * sizeof(MapWStringLongDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringLongDouble& data) @@ -15123,6 +30786,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringBoolean_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -15165,6 +30836,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringBoolean_cdr_plain(data_representation) && + sizeof(MapWStringBoolean) == MapWStringBoolean_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringBoolean)); + + scdr.jump((array_size -1) * sizeof(MapWStringBoolean)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -15190,6 +30899,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringBoolean_cdr_plain(data_representation) && + sizeof(MapWStringBoolean) == MapWStringBoolean_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringBoolean)); + + scdr.jump((array_size - 1) * sizeof(MapWStringBoolean)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringBoolean& data) @@ -15202,6 +30947,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringOctet_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -15244,9 +30997,47 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringOctet_cdr_plain(data_representation) && + sizeof(MapWStringOctet) == MapWStringOctet_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringOctet)); + + scdr.jump((array_size -1) * sizeof(MapWStringOctet)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, MapWStringOctet& data) { cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? @@ -15269,6 +31060,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringOctet_cdr_plain(data_representation) && + sizeof(MapWStringOctet) == MapWStringOctet_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringOctet)); + + scdr.jump((array_size - 1) * sizeof(MapWStringOctet)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringOctet& data) @@ -15281,6 +31108,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -15323,6 +31158,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringChar_cdr_plain(data_representation) && + sizeof(MapWStringChar) == MapWStringChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringChar)); + + scdr.jump((array_size -1) * sizeof(MapWStringChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -15348,6 +31221,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringChar_cdr_plain(data_representation) && + sizeof(MapWStringChar) == MapWStringChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringChar)); + + scdr.jump((array_size - 1) * sizeof(MapWStringChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringChar& data) @@ -15360,6 +31269,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringWChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -15402,6 +31319,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringWChar_cdr_plain(data_representation) && + sizeof(MapWStringWChar) == MapWStringWChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringWChar)); + + scdr.jump((array_size -1) * sizeof(MapWStringWChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -15427,6 +31382,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringWChar_cdr_plain(data_representation) && + sizeof(MapWStringWChar) == MapWStringWChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringWChar)); + + scdr.jump((array_size - 1) * sizeof(MapWStringWChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringWChar& data) @@ -15439,6 +31430,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -15481,6 +31480,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringString_cdr_plain(data_representation) && + sizeof(MapWStringString) == MapWStringString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringString)); + + scdr.jump((array_size -1) * sizeof(MapWStringString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -15506,6 +31543,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringString_cdr_plain(data_representation) && + sizeof(MapWStringString) == MapWStringString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringString)); + + scdr.jump((array_size - 1) * sizeof(MapWStringString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringString& data) @@ -15518,6 +31591,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -15560,6 +31641,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringWString_cdr_plain(data_representation) && + sizeof(MapWStringWString) == MapWStringWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringWString)); + + scdr.jump((array_size -1) * sizeof(MapWStringWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -15585,6 +31704,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringWString_cdr_plain(data_representation) && + sizeof(MapWStringWString) == MapWStringWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringWString)); + + scdr.jump((array_size - 1) * sizeof(MapWStringWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringWString& data) @@ -15597,6 +31752,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringInnerAliasBoundedStringHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -15639,6 +31802,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringInnerAliasBoundedStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerAliasBoundedStringHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerAliasBoundedStringHelper) == MapWStringInnerAliasBoundedStringHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringInnerAliasBoundedStringHelper)); + + scdr.jump((array_size -1) * sizeof(MapWStringInnerAliasBoundedStringHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -15664,6 +31865,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringInnerAliasBoundedStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerAliasBoundedStringHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerAliasBoundedStringHelper) == MapWStringInnerAliasBoundedStringHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringInnerAliasBoundedStringHelper)); + + scdr.jump((array_size - 1) * sizeof(MapWStringInnerAliasBoundedStringHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerAliasBoundedStringHelper& data) @@ -15676,6 +31913,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringInnerAliasBoundedWStringHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -15718,6 +31963,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringInnerAliasBoundedWStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerAliasBoundedWStringHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerAliasBoundedWStringHelper) == MapWStringInnerAliasBoundedWStringHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringInnerAliasBoundedWStringHelper)); + + scdr.jump((array_size -1) * sizeof(MapWStringInnerAliasBoundedWStringHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -15743,6 +32026,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringInnerAliasBoundedWStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerAliasBoundedWStringHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerAliasBoundedWStringHelper) == MapWStringInnerAliasBoundedWStringHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringInnerAliasBoundedWStringHelper)); + + scdr.jump((array_size - 1) * sizeof(MapWStringInnerAliasBoundedWStringHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerAliasBoundedWStringHelper& data) @@ -15755,6 +32074,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringInnerEnumHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -15797,6 +32124,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerEnumHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerEnumHelper) == MapWStringInnerEnumHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringInnerEnumHelper)); + + scdr.jump((array_size -1) * sizeof(MapWStringInnerEnumHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -15822,6 +32187,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerEnumHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerEnumHelper) == MapWStringInnerEnumHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringInnerEnumHelper)); + + scdr.jump((array_size - 1) * sizeof(MapWStringInnerEnumHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerEnumHelper& data) @@ -15834,6 +32235,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringInnerBitMaskHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -15876,6 +32285,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerBitMaskHelper) == MapWStringInnerBitMaskHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringInnerBitMaskHelper)); + + scdr.jump((array_size -1) * sizeof(MapWStringInnerBitMaskHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -15901,6 +32348,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerBitMaskHelper) == MapWStringInnerBitMaskHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringInnerBitMaskHelper)); + + scdr.jump((array_size - 1) * sizeof(MapWStringInnerBitMaskHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerBitMaskHelper& data) @@ -15913,6 +32396,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringInnerAliasHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -15955,6 +32446,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerAliasHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerAliasHelper) == MapWStringInnerAliasHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringInnerAliasHelper)); + + scdr.jump((array_size -1) * sizeof(MapWStringInnerAliasHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -15980,6 +32509,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerAliasHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerAliasHelper) == MapWStringInnerAliasHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringInnerAliasHelper)); + + scdr.jump((array_size - 1) * sizeof(MapWStringInnerAliasHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerAliasHelper& data) @@ -15992,6 +32557,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringInnerAliasArrayHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -16034,6 +32607,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringInnerAliasArrayHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerAliasArrayHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerAliasArrayHelper) == MapWStringInnerAliasArrayHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringInnerAliasArrayHelper)); + + scdr.jump((array_size -1) * sizeof(MapWStringInnerAliasArrayHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -16059,6 +32670,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringInnerAliasArrayHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerAliasArrayHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerAliasArrayHelper) == MapWStringInnerAliasArrayHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringInnerAliasArrayHelper)); + + scdr.jump((array_size - 1) * sizeof(MapWStringInnerAliasArrayHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerAliasArrayHelper& data) @@ -16071,6 +32718,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringInnerAliasSequenceHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -16113,6 +32768,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringInnerAliasSequenceHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerAliasSequenceHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerAliasSequenceHelper) == MapWStringInnerAliasSequenceHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringInnerAliasSequenceHelper)); + + scdr.jump((array_size -1) * sizeof(MapWStringInnerAliasSequenceHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -16138,6 +32831,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringInnerAliasSequenceHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerAliasSequenceHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerAliasSequenceHelper) == MapWStringInnerAliasSequenceHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringInnerAliasSequenceHelper)); + + scdr.jump((array_size - 1) * sizeof(MapWStringInnerAliasSequenceHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerAliasSequenceHelper& data) @@ -16150,6 +32879,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringInnerAliasMapHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -16192,9 +32929,47 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringInnerAliasMapHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerAliasMapHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerAliasMapHelper) == MapWStringInnerAliasMapHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringInnerAliasMapHelper)); + + scdr.jump((array_size -1) * sizeof(MapWStringInnerAliasMapHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, MapWStringInnerAliasMapHelper& data) { cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? @@ -16217,6 +32992,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringInnerAliasMapHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerAliasMapHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerAliasMapHelper) == MapWStringInnerAliasMapHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringInnerAliasMapHelper)); + + scdr.jump((array_size - 1) * sizeof(MapWStringInnerAliasMapHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerAliasMapHelper& data) @@ -16229,6 +33040,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringInnerUnionHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -16271,6 +33090,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerUnionHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerUnionHelper) == MapWStringInnerUnionHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringInnerUnionHelper)); + + scdr.jump((array_size -1) * sizeof(MapWStringInnerUnionHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -16296,6 +33153,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerUnionHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerUnionHelper) == MapWStringInnerUnionHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringInnerUnionHelper)); + + scdr.jump((array_size - 1) * sizeof(MapWStringInnerUnionHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerUnionHelper& data) @@ -16308,6 +33201,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringInnerStructureHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -16350,6 +33251,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerStructureHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerStructureHelper) == MapWStringInnerStructureHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringInnerStructureHelper)); + + scdr.jump((array_size -1) * sizeof(MapWStringInnerStructureHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -16375,6 +33314,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerStructureHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerStructureHelper) == MapWStringInnerStructureHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringInnerStructureHelper)); + + scdr.jump((array_size - 1) * sizeof(MapWStringInnerStructureHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerStructureHelper& data) @@ -16387,6 +33362,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapWStringInnerBitsetHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -16429,6 +33412,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapWStringInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerBitsetHelper) == MapWStringInnerBitsetHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapWStringInnerBitsetHelper)); + + scdr.jump((array_size -1) * sizeof(MapWStringInnerBitsetHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -16454,6 +33475,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapWStringInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapWStringInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(MapWStringInnerBitsetHelper) == MapWStringInnerBitsetHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapWStringInnerBitsetHelper)); + + scdr.jump((array_size - 1) * sizeof(MapWStringInnerBitsetHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapWStringInnerBitsetHelper& data) @@ -16466,6 +33523,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -16508,6 +33573,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperShort_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperShort) == MapInnerAliasBoundedStringHelperShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperShort)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -16533,6 +33636,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperShort_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperShort) == MapInnerAliasBoundedStringHelperShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperShort)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperShort& data) @@ -16545,6 +33684,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperUShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -16587,6 +33734,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperUShort_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperUShort) == MapInnerAliasBoundedStringHelperUShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperUShort)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperUShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -16612,6 +33797,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperUShort_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperUShort) == MapInnerAliasBoundedStringHelperUShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperUShort)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperUShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperUShort& data) @@ -16624,6 +33845,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -16666,6 +33895,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperLong_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperLong) == MapInnerAliasBoundedStringHelperLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperLong)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -16691,6 +33958,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperLong_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperLong) == MapInnerAliasBoundedStringHelperLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperLong)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperLong& data) @@ -16703,6 +34006,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperULong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -16745,6 +34056,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperULong_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperULong) == MapInnerAliasBoundedStringHelperULong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperULong)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperULong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -16770,6 +34119,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperULong_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperULong) == MapInnerAliasBoundedStringHelperULong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperULong)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperULong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperULong& data) @@ -16782,6 +34167,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperLongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -16824,6 +34217,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperLongLong_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperLongLong) == MapInnerAliasBoundedStringHelperLongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperLongLong)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperLongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -16849,6 +34280,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperLongLong_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperLongLong) == MapInnerAliasBoundedStringHelperLongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperLongLong)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperLongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperLongLong& data) @@ -16861,6 +34328,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperULongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -16903,6 +34378,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperULongLong_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperULongLong) == MapInnerAliasBoundedStringHelperULongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperULongLong)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperULongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -16928,6 +34441,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperULongLong_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperULongLong) == MapInnerAliasBoundedStringHelperULongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperULongLong)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperULongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperULongLong& data) @@ -16940,6 +34489,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperFloat_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -16982,6 +34539,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperFloat_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperFloat) == MapInnerAliasBoundedStringHelperFloat_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperFloat)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperFloat)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -17007,6 +34602,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperFloat_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperFloat) == MapInnerAliasBoundedStringHelperFloat_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperFloat)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperFloat)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperFloat& data) @@ -17019,6 +34650,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -17061,6 +34700,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperDouble_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperDouble) == MapInnerAliasBoundedStringHelperDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperDouble)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -17086,6 +34763,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperDouble_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperDouble) == MapInnerAliasBoundedStringHelperDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperDouble)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperDouble& data) @@ -17098,6 +34811,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperLongDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -17140,6 +34861,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperLongDouble_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperLongDouble) == MapInnerAliasBoundedStringHelperLongDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperLongDouble)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperLongDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -17165,6 +34924,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperLongDouble_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperLongDouble) == MapInnerAliasBoundedStringHelperLongDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperLongDouble)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperLongDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperLongDouble& data) @@ -17177,6 +34972,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperBoolean_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -17219,6 +35022,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperBoolean_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperBoolean) == MapInnerAliasBoundedStringHelperBoolean_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperBoolean)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperBoolean)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -17244,6 +35085,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperBoolean_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperBoolean) == MapInnerAliasBoundedStringHelperBoolean_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperBoolean)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperBoolean)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperBoolean& data) @@ -17256,6 +35133,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperOctet_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -17298,6 +35183,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperOctet_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperOctet) == MapInnerAliasBoundedStringHelperOctet_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperOctet)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperOctet)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -17323,6 +35246,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperOctet_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperOctet) == MapInnerAliasBoundedStringHelperOctet_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperOctet)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperOctet)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperOctet& data) @@ -17335,6 +35294,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -17377,6 +35344,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperChar_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperChar) == MapInnerAliasBoundedStringHelperChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperChar)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -17402,6 +35407,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperChar_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperChar) == MapInnerAliasBoundedStringHelperChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperChar)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperChar& data) @@ -17414,6 +35455,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperWChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -17456,6 +35505,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperWChar_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperWChar) == MapInnerAliasBoundedStringHelperWChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperWChar)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperWChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -17481,6 +35568,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperWChar_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperWChar) == MapInnerAliasBoundedStringHelperWChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperWChar)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperWChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperWChar& data) @@ -17493,6 +35616,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -17535,6 +35666,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperString_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperString) == MapInnerAliasBoundedStringHelperString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperString)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -17560,6 +35729,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperString_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperString) == MapInnerAliasBoundedStringHelperString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperString)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperString& data) @@ -17572,6 +35777,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -17614,6 +35827,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperWString_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperWString) == MapInnerAliasBoundedStringHelperWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperWString)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -17639,6 +35890,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperWString_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperWString) == MapInnerAliasBoundedStringHelperWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperWString)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperWString& data) @@ -17651,6 +35938,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperInnerAliasBoundedStringHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -17693,6 +35988,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperInnerAliasBoundedStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerAliasBoundedStringHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerAliasBoundedStringHelper) == MapInnerAliasBoundedStringHelperInnerAliasBoundedStringHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasBoundedStringHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasBoundedStringHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -17718,6 +36051,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperInnerAliasBoundedStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerAliasBoundedStringHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerAliasBoundedStringHelper) == MapInnerAliasBoundedStringHelperInnerAliasBoundedStringHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasBoundedStringHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasBoundedStringHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerAliasBoundedStringHelper& data) @@ -17730,6 +36099,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperInnerAliasBoundedWStringHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -17772,6 +36149,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperInnerAliasBoundedWStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerAliasBoundedWStringHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerAliasBoundedWStringHelper) == MapInnerAliasBoundedStringHelperInnerAliasBoundedWStringHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasBoundedWStringHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasBoundedWStringHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -17797,6 +36212,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperInnerAliasBoundedWStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerAliasBoundedWStringHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerAliasBoundedWStringHelper) == MapInnerAliasBoundedStringHelperInnerAliasBoundedWStringHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasBoundedWStringHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasBoundedWStringHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerAliasBoundedWStringHelper& data) @@ -17809,6 +36260,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperInnerEnumHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -17845,11 +36304,49 @@ eProsima_user_DllExport void serialize( eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); - scdr - << eprosima::fastcdr::MemberId(0) << data.var_map_inneraliasboundedstringhelper_innerenumhelper() -; - scdr.end_serialize_type(current_state); + scdr + << eprosima::fastcdr::MemberId(0) << data.var_map_inneraliasboundedstringhelper_innerenumhelper() +; + scdr.end_serialize_type(current_state); +} + +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerEnumHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerEnumHelper) == MapInnerAliasBoundedStringHelperInnerEnumHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerEnumHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperInnerEnumHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } } +#endif // FASTCDR_VERSION_MAJOR > 2 template<> eProsima_user_DllExport void deserialize( @@ -17876,6 +36373,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerEnumHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerEnumHelper) == MapInnerAliasBoundedStringHelperInnerEnumHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerEnumHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerEnumHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerEnumHelper& data) @@ -17888,6 +36421,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperInnerBitMaskHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -17930,6 +36471,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerBitMaskHelper) == MapInnerAliasBoundedStringHelperInnerBitMaskHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerBitMaskHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperInnerBitMaskHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -17955,6 +36534,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerBitMaskHelper) == MapInnerAliasBoundedStringHelperInnerBitMaskHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerBitMaskHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerBitMaskHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerBitMaskHelper& data) @@ -17967,6 +36582,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperInnerAliasHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -18009,6 +36632,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerAliasHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerAliasHelper) == MapInnerAliasBoundedStringHelperInnerAliasHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -18034,6 +36695,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerAliasHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerAliasHelper) == MapInnerAliasBoundedStringHelperInnerAliasHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerAliasHelper& data) @@ -18046,6 +36743,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperInnerAliasArrayHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -18088,6 +36793,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperInnerAliasArrayHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerAliasArrayHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerAliasArrayHelper) == MapInnerAliasBoundedStringHelperInnerAliasArrayHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasArrayHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasArrayHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -18113,6 +36856,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperInnerAliasArrayHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerAliasArrayHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerAliasArrayHelper) == MapInnerAliasBoundedStringHelperInnerAliasArrayHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasArrayHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasArrayHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerAliasArrayHelper& data) @@ -18125,6 +36904,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperInnerAliasSequenceHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -18167,6 +36954,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperInnerAliasSequenceHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerAliasSequenceHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerAliasSequenceHelper) == MapInnerAliasBoundedStringHelperInnerAliasSequenceHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasSequenceHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasSequenceHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -18192,6 +37017,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperInnerAliasSequenceHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerAliasSequenceHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerAliasSequenceHelper) == MapInnerAliasBoundedStringHelperInnerAliasSequenceHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasSequenceHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasSequenceHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerAliasSequenceHelper& data) @@ -18204,6 +37065,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperInnerAliasMapHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -18246,6 +37115,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperInnerAliasMapHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerAliasMapHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerAliasMapHelper) == MapInnerAliasBoundedStringHelperInnerAliasMapHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasMapHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasMapHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -18271,6 +37178,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperInnerAliasMapHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerAliasMapHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerAliasMapHelper) == MapInnerAliasBoundedStringHelperInnerAliasMapHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasMapHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerAliasMapHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerAliasMapHelper& data) @@ -18283,6 +37226,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperInnerUnionHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -18325,6 +37276,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerUnionHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerUnionHelper) == MapInnerAliasBoundedStringHelperInnerUnionHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerUnionHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperInnerUnionHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -18350,6 +37339,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerUnionHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerUnionHelper) == MapInnerAliasBoundedStringHelperInnerUnionHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerUnionHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerUnionHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerUnionHelper& data) @@ -18362,6 +37387,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperInnerStructureHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -18404,6 +37437,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerStructureHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerStructureHelper) == MapInnerAliasBoundedStringHelperInnerStructureHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerStructureHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperInnerStructureHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -18429,6 +37500,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerStructureHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerStructureHelper) == MapInnerAliasBoundedStringHelperInnerStructureHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerStructureHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerStructureHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerStructureHelper& data) @@ -18441,6 +37548,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedStringHelperInnerBitsetHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -18483,6 +37598,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedStringHelperInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerBitsetHelper) == MapInnerAliasBoundedStringHelperInnerBitsetHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerBitsetHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedStringHelperInnerBitsetHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -18508,6 +37661,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedStringHelperInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedStringHelperInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedStringHelperInnerBitsetHelper) == MapInnerAliasBoundedStringHelperInnerBitsetHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerBitsetHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedStringHelperInnerBitsetHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedStringHelperInnerBitsetHelper& data) @@ -18520,6 +37709,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -18562,6 +37759,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperShort_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperShort) == MapInnerAliasBoundedWStringHelperShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperShort)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -18587,6 +37822,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperShort_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperShort) == MapInnerAliasBoundedWStringHelperShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperShort)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperShort& data) @@ -18599,6 +37870,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperUShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -18641,6 +37920,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperUShort_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperUShort) == MapInnerAliasBoundedWStringHelperUShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperUShort)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperUShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -18666,6 +37983,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperUShort_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperUShort) == MapInnerAliasBoundedWStringHelperUShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperUShort)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperUShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperUShort& data) @@ -18678,6 +38031,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -18720,6 +38081,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperLong_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperLong) == MapInnerAliasBoundedWStringHelperLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperLong)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -18745,6 +38144,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperLong_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperLong) == MapInnerAliasBoundedWStringHelperLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperLong)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperLong& data) @@ -18757,6 +38192,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperULong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -18799,6 +38242,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperULong_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperULong) == MapInnerAliasBoundedWStringHelperULong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperULong)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperULong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -18824,6 +38305,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperULong_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperULong) == MapInnerAliasBoundedWStringHelperULong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperULong)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperULong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperULong& data) @@ -18836,6 +38353,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperLongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -18878,6 +38403,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperLongLong_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperLongLong) == MapInnerAliasBoundedWStringHelperLongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperLongLong)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperLongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -18903,6 +38466,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperLongLong_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperLongLong) == MapInnerAliasBoundedWStringHelperLongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperLongLong)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperLongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperLongLong& data) @@ -18915,6 +38514,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperULongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -18957,6 +38564,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperULongLong_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperULongLong) == MapInnerAliasBoundedWStringHelperULongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperULongLong)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperULongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -18982,6 +38627,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperULongLong_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperULongLong) == MapInnerAliasBoundedWStringHelperULongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperULongLong)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperULongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperULongLong& data) @@ -18994,6 +38675,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperFloat_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -19036,6 +38725,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperFloat_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperFloat) == MapInnerAliasBoundedWStringHelperFloat_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperFloat)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperFloat)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -19061,6 +38788,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperFloat_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperFloat) == MapInnerAliasBoundedWStringHelperFloat_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperFloat)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperFloat)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperFloat& data) @@ -19073,6 +38836,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -19115,6 +38886,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperDouble_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperDouble) == MapInnerAliasBoundedWStringHelperDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperDouble)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -19140,6 +38949,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperDouble_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperDouble) == MapInnerAliasBoundedWStringHelperDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperDouble)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperDouble& data) @@ -19152,6 +38997,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperLongDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -19194,6 +39047,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperLongDouble_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperLongDouble) == MapInnerAliasBoundedWStringHelperLongDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperLongDouble)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperLongDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -19219,6 +39110,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperLongDouble_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperLongDouble) == MapInnerAliasBoundedWStringHelperLongDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperLongDouble)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperLongDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperLongDouble& data) @@ -19231,6 +39158,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperBoolean_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -19273,6 +39208,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperBoolean_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperBoolean) == MapInnerAliasBoundedWStringHelperBoolean_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperBoolean)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperBoolean)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -19298,6 +39271,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperBoolean_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperBoolean) == MapInnerAliasBoundedWStringHelperBoolean_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperBoolean)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperBoolean)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperBoolean& data) @@ -19310,6 +39319,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperOctet_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -19352,6 +39369,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperOctet_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperOctet) == MapInnerAliasBoundedWStringHelperOctet_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperOctet)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperOctet)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -19377,6 +39432,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperOctet_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperOctet) == MapInnerAliasBoundedWStringHelperOctet_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperOctet)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperOctet)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperOctet& data) @@ -19389,6 +39480,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -19431,6 +39530,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperChar_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperChar) == MapInnerAliasBoundedWStringHelperChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperChar)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -19456,6 +39593,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperChar_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperChar) == MapInnerAliasBoundedWStringHelperChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperChar)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperChar& data) @@ -19468,6 +39641,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperWChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -19510,6 +39691,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperWChar_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperWChar) == MapInnerAliasBoundedWStringHelperWChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperWChar)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperWChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -19535,6 +39754,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperWChar_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperWChar) == MapInnerAliasBoundedWStringHelperWChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperWChar)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperWChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperWChar& data) @@ -19547,6 +39802,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -19589,6 +39852,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperString_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperString) == MapInnerAliasBoundedWStringHelperString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperString)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -19614,6 +39915,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperString_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperString) == MapInnerAliasBoundedWStringHelperString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperString)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperString& data) @@ -19626,6 +39963,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -19668,6 +40013,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperWString_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperWString) == MapInnerAliasBoundedWStringHelperWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperWString)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -19693,6 +40076,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperWString_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperWString) == MapInnerAliasBoundedWStringHelperWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperWString)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperWString& data) @@ -19705,6 +40124,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperInnerAliasBoundedStringHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -19747,6 +40174,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperInnerAliasBoundedStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerAliasBoundedStringHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerAliasBoundedStringHelper) == MapInnerAliasBoundedWStringHelperInnerAliasBoundedStringHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasBoundedStringHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasBoundedStringHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -19772,6 +40237,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperInnerAliasBoundedStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerAliasBoundedStringHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerAliasBoundedStringHelper) == MapInnerAliasBoundedWStringHelperInnerAliasBoundedStringHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasBoundedStringHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasBoundedStringHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerAliasBoundedStringHelper& data) @@ -19784,6 +40285,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperInnerAliasBoundedWStringHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -19826,6 +40335,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperInnerAliasBoundedWStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerAliasBoundedWStringHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerAliasBoundedWStringHelper) == MapInnerAliasBoundedWStringHelperInnerAliasBoundedWStringHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasBoundedWStringHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasBoundedWStringHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -19851,6 +40398,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperInnerAliasBoundedWStringHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerAliasBoundedWStringHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerAliasBoundedWStringHelper) == MapInnerAliasBoundedWStringHelperInnerAliasBoundedWStringHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasBoundedWStringHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasBoundedWStringHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerAliasBoundedWStringHelper& data) @@ -19863,6 +40446,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperInnerEnumHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -19905,6 +40496,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerEnumHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerEnumHelper) == MapInnerAliasBoundedWStringHelperInnerEnumHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerEnumHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperInnerEnumHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -19930,6 +40559,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerEnumHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerEnumHelper) == MapInnerAliasBoundedWStringHelperInnerEnumHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerEnumHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerEnumHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerEnumHelper& data) @@ -19942,6 +40607,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperInnerBitMaskHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -19984,6 +40657,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerBitMaskHelper) == MapInnerAliasBoundedWStringHelperInnerBitMaskHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerBitMaskHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperInnerBitMaskHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -20009,6 +40720,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerBitMaskHelper) == MapInnerAliasBoundedWStringHelperInnerBitMaskHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerBitMaskHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerBitMaskHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerBitMaskHelper& data) @@ -20021,6 +40768,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperInnerAliasHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -20063,6 +40818,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerAliasHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerAliasHelper) == MapInnerAliasBoundedWStringHelperInnerAliasHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -20088,6 +40881,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerAliasHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerAliasHelper) == MapInnerAliasBoundedWStringHelperInnerAliasHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerAliasHelper& data) @@ -20100,6 +40929,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperInnerAliasArrayHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -20142,6 +40979,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperInnerAliasArrayHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerAliasArrayHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerAliasArrayHelper) == MapInnerAliasBoundedWStringHelperInnerAliasArrayHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasArrayHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasArrayHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -20167,6 +41042,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperInnerAliasArrayHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerAliasArrayHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerAliasArrayHelper) == MapInnerAliasBoundedWStringHelperInnerAliasArrayHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasArrayHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasArrayHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerAliasArrayHelper& data) @@ -20179,6 +41090,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperInnerAliasSequenceHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -20221,6 +41140,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperInnerAliasSequenceHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerAliasSequenceHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerAliasSequenceHelper) == MapInnerAliasBoundedWStringHelperInnerAliasSequenceHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasSequenceHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasSequenceHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -20246,6 +41203,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperInnerAliasSequenceHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerAliasSequenceHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerAliasSequenceHelper) == MapInnerAliasBoundedWStringHelperInnerAliasSequenceHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasSequenceHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasSequenceHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerAliasSequenceHelper& data) @@ -20258,6 +41251,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperInnerAliasMapHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -20300,6 +41301,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperInnerAliasMapHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerAliasMapHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerAliasMapHelper) == MapInnerAliasBoundedWStringHelperInnerAliasMapHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasMapHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasMapHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -20325,6 +41364,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperInnerAliasMapHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerAliasMapHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerAliasMapHelper) == MapInnerAliasBoundedWStringHelperInnerAliasMapHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasMapHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerAliasMapHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerAliasMapHelper& data) @@ -20337,6 +41412,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperInnerUnionHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -20379,6 +41462,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerUnionHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerUnionHelper) == MapInnerAliasBoundedWStringHelperInnerUnionHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerUnionHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperInnerUnionHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -20404,6 +41525,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerUnionHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerUnionHelper) == MapInnerAliasBoundedWStringHelperInnerUnionHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerUnionHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerUnionHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerUnionHelper& data) @@ -20416,6 +41573,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperInnerStructureHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -20458,6 +41623,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerStructureHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerStructureHelper) == MapInnerAliasBoundedWStringHelperInnerStructureHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerStructureHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperInnerStructureHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -20483,6 +41686,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerStructureHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerStructureHelper) == MapInnerAliasBoundedWStringHelperInnerStructureHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerStructureHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerStructureHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerStructureHelper& data) @@ -20495,6 +41734,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapInnerAliasBoundedWStringHelperInnerBitsetHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -20537,6 +41784,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapInnerAliasBoundedWStringHelperInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerBitsetHelper) == MapInnerAliasBoundedWStringHelperInnerBitsetHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerBitsetHelper)); + + scdr.jump((array_size -1) * sizeof(MapInnerAliasBoundedWStringHelperInnerBitsetHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -20562,6 +41847,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapInnerAliasBoundedWStringHelperInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapInnerAliasBoundedWStringHelperInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(MapInnerAliasBoundedWStringHelperInnerBitsetHelper) == MapInnerAliasBoundedWStringHelperInnerBitsetHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerBitsetHelper)); + + scdr.jump((array_size - 1) * sizeof(MapInnerAliasBoundedWStringHelperInnerBitsetHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapInnerAliasBoundedWStringHelperInnerBitsetHelper& data) @@ -20574,6 +41895,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_BoundedSmallMap_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -20624,6 +41953,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const BoundedSmallMap* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BoundedSmallMap_cdr_plain(data_representation) && + sizeof(BoundedSmallMap) == BoundedSmallMap_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(BoundedSmallMap)); + + scdr.jump((array_size -1) * sizeof(BoundedSmallMap)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -20657,6 +42024,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + BoundedSmallMap* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BoundedSmallMap_cdr_plain(data_representation) && + sizeof(BoundedSmallMap) == BoundedSmallMap_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(BoundedSmallMap)); + + scdr.jump((array_size - 1) * sizeof(BoundedSmallMap)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const BoundedSmallMap& data) @@ -20673,6 +42076,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_BoundedLargeMap_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -20723,6 +42134,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const BoundedLargeMap* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BoundedLargeMap_cdr_plain(data_representation) && + sizeof(BoundedLargeMap) == BoundedLargeMap_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(BoundedLargeMap)); + + scdr.jump((array_size -1) * sizeof(BoundedLargeMap)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -20756,6 +42205,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + BoundedLargeMap* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BoundedLargeMap_cdr_plain(data_representation) && + sizeof(BoundedLargeMap) == BoundedLargeMap_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(BoundedLargeMap)); + + scdr.jump((array_size - 1) * sizeof(BoundedLargeMap)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const BoundedLargeMap& data) diff --git a/test/dds-types-test/mapsPubSubTypes.cxx b/test/dds-types-test/mapsPubSubTypes.cxx index dd191efaeac..6774d0bbcae 100644 --- a/test/dds-types-test/mapsPubSubTypes.cxx +++ b/test/dds-types-test/mapsPubSubTypes.cxx @@ -31,6 +31,815 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_MapLongULongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortOctet_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperBoolean_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongInnerEnumHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongWString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongWChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperInnerUnionHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringInnerAliasMapHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringULong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortLongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringLongDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperInnerAliasSequenceHelper_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_MapInnerAliasBoundedWStringHelperInnerUnionHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongInnerBitsetHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongKeyDoubleValue_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortLongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringDouble_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_MapInnerAliasBoundedWStringHelperULong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongInnerUnionHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongFloat_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperWString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperULongLong_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_MapLongULong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringInnerEnumHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongWString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongInnerBitMaskHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongInnerUnionHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongBoolean_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongInnerAliasSequenceHelper_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_MapKeyULongLongValueDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperInnerBitsetHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringInnerUnionHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongULong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringInnerAliasArrayHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortInnerEnumHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongInnerAliasHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringInnerAliasArrayHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringWString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongOctet_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperInnerBitMaskHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongInnerAliasSequenceHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringUShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortULong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortULongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongFloat_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperInnerBitMaskHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperUShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortOctet_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortWChar_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_MapStringInnerAliasBoundedStringHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringUShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongInnerAliasMapHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperOctet_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongInnerStructureHelper_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_MapULongWString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringULongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortULong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperULongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperWChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringInnerAliasSequenceHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongUShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongInnerAliasBoundedStringHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongInnerStructureHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperLongDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortULongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongBoolean_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortInnerAliasBoundedWStringHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperOctet_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperWString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringInnerAliasBoundedWStringHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperFloat_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_MapULongLongUShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongLongDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringInnerAliasMapHelper_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_MapLongKeyLongDoubleValue_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongWChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongInnerEnumHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperInnerEnumHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortInnerUnionHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortInnerAliasHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongInnerAliasArrayHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_BoundedSmallMap_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortWChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongInnerUnionHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongWString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongInnerBitsetHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperLongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_BoundedLargeMap_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortInnerAliasHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongInnerAliasBoundedStringHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapKeyULongValueLongDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperInnerAliasBoundedWStringHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringWChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongULongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringInnerBitsetHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortUShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortInnerBitsetHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortInnerAliasMapHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongInnerAliasSequenceHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortInnerAliasSequenceHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringOctet_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortInnerBitMaskHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringInnerAliasBoundedWStringHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongULongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringFloat_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringLong_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_MapULongInnerAliasBoundedStringHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongLongDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortWString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongInnerBitMaskHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongInnerAliasHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongWChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongInnerAliasArrayHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongInnerStructureHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongLongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperInnerAliasHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortInnerAliasArrayHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortFloat_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperInnerAliasArrayHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringWString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortInnerAliasMapHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortBoolean_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringInnerBitMaskHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperInnerAliasHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringInnerAliasSequenceHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortUShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongInnerAliasArrayHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongInnerAliasBoundedWStringHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortInnerEnumHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperLongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringBoolean_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_MapUShortBoolean_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_MapShortLongDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongKeyLongValue_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongInnerUnionHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongULong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongInnerAliasHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperULong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortInnerUnionHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongInnerBitsetHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongOctet_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongInnerBitMaskHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortInnerAliasArrayHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapKeyULongValueLongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongInnerBitMaskHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperFloat_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperInnerAliasMapHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongInnerEnumHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongWChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperInnerAliasSequenceHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortWString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongInnerAliasBoundedWStringHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongInnerAliasBoundedWStringHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongInnerAliasMapHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortString_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_MapInnerAliasBoundedWStringHelperInnerAliasBoundedWStringHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringULongLong_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_MapLongLongChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperInnerAliasMapHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongULongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringLongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongInnerAliasBoundedStringHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongULong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperInnerAliasArrayHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortLongDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongInnerAliasMapHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongFloat_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortFloat_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortInnerAliasSequenceHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortInnerAliasBoundedStringHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringFloat_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortInnerBitsetHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongFloat_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringLongDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperInnerAliasBoundedStringHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortInnerBitMaskHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringInnerBitsetHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringOctet_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongOctet_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperLongDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringInnerAliasHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperInnerEnumHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringInnerUnionHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongUShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortInnerStructureHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperUShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongInnerAliasArrayHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperInnerStructureHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongUShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperInnerBitsetHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongOctet_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongInnerEnumHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortInnerStructureHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongInnerStructureHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringInnerEnumHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringInnerAliasHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringInnerBitMaskHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortInnerAliasBoundedStringHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongInnerAliasHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperBoolean_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongLongLongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongInnerAliasSequenceHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongBoolean_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapShortChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringInnerStructureHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperInnerStructureHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringInnerAliasBoundedStringHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperWChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongInnerAliasBoundedWStringHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringLongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongInnerBitsetHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortInnerAliasBoundedWStringHelper_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_MapLongLongBoolean_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringBoolean_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapUShortChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperInnerAliasBoundedStringHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapLongKeyLongLongValue_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringWChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedStringHelperLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapInnerAliasBoundedWStringHelperShort_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_MapLongChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapWStringInnerStructureHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapULongLongInnerAliasMapHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStringULong_cdr_plain( + DataRepresentationId_t data_representation); + + +} // namespace fastcdr +} // namespace eprosima + MapShortShortPubSubType::MapShortShortPubSubType() { set_name("MapShortShort"); @@ -149,6 +958,17 @@ void MapShortShortPubSubType::delete_data( delete(reinterpret_cast<::MapShortShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +1151,17 @@ void MapShortUShortPubSubType::delete_data( delete(reinterpret_cast<::MapShortUShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortUShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortUShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +1344,17 @@ void MapShortLongPubSubType::delete_data( delete(reinterpret_cast<::MapShortLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -695,6 +1537,17 @@ void MapShortULongPubSubType::delete_data( delete(reinterpret_cast<::MapShortULong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortULongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortULongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -877,6 +1730,17 @@ void MapShortLongLongPubSubType::delete_data( delete(reinterpret_cast<::MapShortLongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortLongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortLongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1059,6 +1923,17 @@ void MapShortULongLongPubSubType::delete_data( delete(reinterpret_cast<::MapShortULongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortULongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortULongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1241,6 +2116,17 @@ void MapShortFloatPubSubType::delete_data( delete(reinterpret_cast<::MapShortFloat*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortFloatPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortFloatPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1423,6 +2309,17 @@ void MapShortDoublePubSubType::delete_data( delete(reinterpret_cast<::MapShortDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1605,6 +2502,17 @@ void MapShortLongDoublePubSubType::delete_data( delete(reinterpret_cast<::MapShortLongDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortLongDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortLongDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1787,6 +2695,17 @@ void MapShortBooleanPubSubType::delete_data( delete(reinterpret_cast<::MapShortBoolean*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortBooleanPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortBooleanPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1969,6 +2888,17 @@ void MapShortOctetPubSubType::delete_data( delete(reinterpret_cast<::MapShortOctet*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortOctetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortOctetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2151,6 +3081,17 @@ void MapShortCharPubSubType::delete_data( delete(reinterpret_cast<::MapShortChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2333,6 +3274,17 @@ void MapShortWCharPubSubType::delete_data( delete(reinterpret_cast<::MapShortWChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortWCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortWCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2515,6 +3467,17 @@ void MapShortStringPubSubType::delete_data( delete(reinterpret_cast<::MapShortString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2697,6 +3660,17 @@ void MapShortWStringPubSubType::delete_data( delete(reinterpret_cast<::MapShortWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2879,6 +3853,17 @@ void MapShortInnerAliasBoundedStringHelperPubSubType::delete_data( delete(reinterpret_cast<::MapShortInnerAliasBoundedStringHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortInnerAliasBoundedStringHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortInnerAliasBoundedStringHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3061,6 +4046,17 @@ void MapShortInnerAliasBoundedWStringHelperPubSubType::delete_data( delete(reinterpret_cast<::MapShortInnerAliasBoundedWStringHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortInnerAliasBoundedWStringHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortInnerAliasBoundedWStringHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3243,6 +4239,17 @@ void MapShortInnerEnumHelperPubSubType::delete_data( delete(reinterpret_cast<::MapShortInnerEnumHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortInnerEnumHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortInnerEnumHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3425,6 +4432,17 @@ void MapShortInnerBitMaskHelperPubSubType::delete_data( delete(reinterpret_cast<::MapShortInnerBitMaskHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortInnerBitMaskHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortInnerBitMaskHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3607,6 +4625,17 @@ void MapShortInnerAliasHelperPubSubType::delete_data( delete(reinterpret_cast<::MapShortInnerAliasHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortInnerAliasHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortInnerAliasHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3789,6 +4818,17 @@ void MapShortInnerAliasArrayHelperPubSubType::delete_data( delete(reinterpret_cast<::MapShortInnerAliasArrayHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortInnerAliasArrayHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortInnerAliasArrayHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3971,6 +5011,17 @@ void MapShortInnerAliasSequenceHelperPubSubType::delete_data( delete(reinterpret_cast<::MapShortInnerAliasSequenceHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortInnerAliasSequenceHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortInnerAliasSequenceHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4153,6 +5204,17 @@ void MapShortInnerAliasMapHelperPubSubType::delete_data( delete(reinterpret_cast<::MapShortInnerAliasMapHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortInnerAliasMapHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortInnerAliasMapHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4335,6 +5397,17 @@ void MapShortInnerUnionHelperPubSubType::delete_data( delete(reinterpret_cast<::MapShortInnerUnionHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortInnerUnionHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortInnerUnionHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4517,6 +5590,17 @@ void MapShortInnerStructureHelperPubSubType::delete_data( delete(reinterpret_cast<::MapShortInnerStructureHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortInnerStructureHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortInnerStructureHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4699,6 +5783,17 @@ void MapShortInnerBitsetHelperPubSubType::delete_data( delete(reinterpret_cast<::MapShortInnerBitsetHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapShortInnerBitsetHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapShortInnerBitsetHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4881,6 +5976,17 @@ void MapUShortShortPubSubType::delete_data( delete(reinterpret_cast<::MapUShortShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5063,6 +6169,17 @@ void MapUShortUShortPubSubType::delete_data( delete(reinterpret_cast<::MapUShortUShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortUShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortUShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5245,6 +6362,17 @@ void MapUShortLongPubSubType::delete_data( delete(reinterpret_cast<::MapUShortLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5427,6 +6555,17 @@ void MapUShortULongPubSubType::delete_data( delete(reinterpret_cast<::MapUShortULong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortULongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortULongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5609,6 +6748,17 @@ void MapUShortLongLongPubSubType::delete_data( delete(reinterpret_cast<::MapUShortLongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortLongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortLongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5791,6 +6941,17 @@ void MapUShortULongLongPubSubType::delete_data( delete(reinterpret_cast<::MapUShortULongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortULongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortULongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5973,6 +7134,17 @@ void MapUShortFloatPubSubType::delete_data( delete(reinterpret_cast<::MapUShortFloat*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortFloatPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortFloatPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6155,6 +7327,17 @@ void MapUShortDoublePubSubType::delete_data( delete(reinterpret_cast<::MapUShortDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6337,6 +7520,17 @@ void MapUShortLongDoublePubSubType::delete_data( delete(reinterpret_cast<::MapUShortLongDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortLongDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortLongDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6519,6 +7713,17 @@ void MapUShortBooleanPubSubType::delete_data( delete(reinterpret_cast<::MapUShortBoolean*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortBooleanPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortBooleanPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6701,6 +7906,17 @@ void MapUShortOctetPubSubType::delete_data( delete(reinterpret_cast<::MapUShortOctet*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortOctetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortOctetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6883,6 +8099,17 @@ void MapUShortCharPubSubType::delete_data( delete(reinterpret_cast<::MapUShortChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7065,6 +8292,17 @@ void MapUShortWCharPubSubType::delete_data( delete(reinterpret_cast<::MapUShortWChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortWCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortWCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7247,6 +8485,17 @@ void MapUShortStringPubSubType::delete_data( delete(reinterpret_cast<::MapUShortString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7429,6 +8678,17 @@ void MapUShortWStringPubSubType::delete_data( delete(reinterpret_cast<::MapUShortWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7611,6 +8871,17 @@ void MapUShortInnerAliasBoundedStringHelperPubSubType::delete_data( delete(reinterpret_cast<::MapUShortInnerAliasBoundedStringHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortInnerAliasBoundedStringHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortInnerAliasBoundedStringHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7793,6 +9064,17 @@ void MapUShortInnerAliasBoundedWStringHelperPubSubType::delete_data( delete(reinterpret_cast<::MapUShortInnerAliasBoundedWStringHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortInnerAliasBoundedWStringHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortInnerAliasBoundedWStringHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7975,6 +9257,17 @@ void MapUShortInnerEnumHelperPubSubType::delete_data( delete(reinterpret_cast<::MapUShortInnerEnumHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortInnerEnumHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortInnerEnumHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -8157,6 +9450,17 @@ void MapUShortInnerBitMaskHelperPubSubType::delete_data( delete(reinterpret_cast<::MapUShortInnerBitMaskHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortInnerBitMaskHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortInnerBitMaskHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -8339,6 +9643,17 @@ void MapUShortInnerAliasHelperPubSubType::delete_data( delete(reinterpret_cast<::MapUShortInnerAliasHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortInnerAliasHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortInnerAliasHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -8521,6 +9836,17 @@ void MapUShortInnerAliasArrayHelperPubSubType::delete_data( delete(reinterpret_cast<::MapUShortInnerAliasArrayHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortInnerAliasArrayHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortInnerAliasArrayHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -8703,6 +10029,17 @@ void MapUShortInnerAliasSequenceHelperPubSubType::delete_data( delete(reinterpret_cast<::MapUShortInnerAliasSequenceHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortInnerAliasSequenceHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortInnerAliasSequenceHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -8885,6 +10222,17 @@ void MapUShortInnerAliasMapHelperPubSubType::delete_data( delete(reinterpret_cast<::MapUShortInnerAliasMapHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortInnerAliasMapHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortInnerAliasMapHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9067,6 +10415,17 @@ void MapUShortInnerUnionHelperPubSubType::delete_data( delete(reinterpret_cast<::MapUShortInnerUnionHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortInnerUnionHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortInnerUnionHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9249,6 +10608,17 @@ void MapUShortInnerStructureHelperPubSubType::delete_data( delete(reinterpret_cast<::MapUShortInnerStructureHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortInnerStructureHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortInnerStructureHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9431,6 +10801,17 @@ void MapUShortInnerBitsetHelperPubSubType::delete_data( delete(reinterpret_cast<::MapUShortInnerBitsetHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapUShortInnerBitsetHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapUShortInnerBitsetHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9613,6 +10994,17 @@ void MapLongShortPubSubType::delete_data( delete(reinterpret_cast<::MapLongShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9795,6 +11187,17 @@ void MapLongUShortPubSubType::delete_data( delete(reinterpret_cast<::MapLongUShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongUShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongUShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9977,6 +11380,17 @@ void MapLongLongPubSubType::delete_data( delete(reinterpret_cast<::MapLongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -10159,6 +11573,17 @@ void MapLongULongPubSubType::delete_data( delete(reinterpret_cast<::MapLongULong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongULongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongULongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -10341,6 +11766,17 @@ void MapLongKeyLongLongValuePubSubType::delete_data( delete(reinterpret_cast<::MapLongKeyLongLongValue*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongKeyLongLongValuePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongKeyLongLongValuePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -10523,6 +11959,17 @@ void MapLongULongLongPubSubType::delete_data( delete(reinterpret_cast<::MapLongULongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongULongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongULongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -10705,6 +12152,17 @@ void MapLongFloatPubSubType::delete_data( delete(reinterpret_cast<::MapLongFloat*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongFloatPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongFloatPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -10887,6 +12345,17 @@ void MapLongDoublePubSubType::delete_data( delete(reinterpret_cast<::MapLongDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11069,6 +12538,17 @@ void MapLongKeyLongDoubleValuePubSubType::delete_data( delete(reinterpret_cast<::MapLongKeyLongDoubleValue*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongKeyLongDoubleValuePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongKeyLongDoubleValuePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11251,6 +12731,17 @@ void MapLongBooleanPubSubType::delete_data( delete(reinterpret_cast<::MapLongBoolean*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongBooleanPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongBooleanPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11433,6 +12924,17 @@ void MapLongOctetPubSubType::delete_data( delete(reinterpret_cast<::MapLongOctet*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongOctetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongOctetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11615,6 +13117,17 @@ void MapLongCharPubSubType::delete_data( delete(reinterpret_cast<::MapLongChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11797,6 +13310,17 @@ void MapLongWCharPubSubType::delete_data( delete(reinterpret_cast<::MapLongWChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongWCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongWCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11979,6 +13503,17 @@ void MapLongStringPubSubType::delete_data( delete(reinterpret_cast<::MapLongString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -12161,6 +13696,17 @@ void MapLongWStringPubSubType::delete_data( delete(reinterpret_cast<::MapLongWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -12343,6 +13889,17 @@ void MapLongInnerAliasBoundedStringHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongInnerAliasBoundedStringHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongInnerAliasBoundedStringHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongInnerAliasBoundedStringHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -12525,6 +14082,17 @@ void MapLongInnerAliasBoundedWStringHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongInnerAliasBoundedWStringHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongInnerAliasBoundedWStringHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongInnerAliasBoundedWStringHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -12707,6 +14275,17 @@ void MapLongInnerEnumHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongInnerEnumHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongInnerEnumHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongInnerEnumHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -12889,6 +14468,17 @@ void MapLongInnerBitMaskHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongInnerBitMaskHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongInnerBitMaskHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongInnerBitMaskHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13071,6 +14661,17 @@ void MapLongInnerAliasHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongInnerAliasHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongInnerAliasHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongInnerAliasHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13253,6 +14854,17 @@ void MapLongInnerAliasArrayHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongInnerAliasArrayHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongInnerAliasArrayHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongInnerAliasArrayHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13435,6 +15047,17 @@ void MapLongInnerAliasSequenceHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongInnerAliasSequenceHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongInnerAliasSequenceHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongInnerAliasSequenceHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13617,6 +15240,17 @@ void MapLongInnerAliasMapHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongInnerAliasMapHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongInnerAliasMapHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongInnerAliasMapHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13799,6 +15433,17 @@ void MapLongInnerUnionHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongInnerUnionHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongInnerUnionHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongInnerUnionHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13981,6 +15626,17 @@ void MapLongInnerStructureHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongInnerStructureHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongInnerStructureHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongInnerStructureHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -14163,6 +15819,17 @@ void MapLongInnerBitsetHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongInnerBitsetHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongInnerBitsetHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongInnerBitsetHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -14345,6 +16012,17 @@ void MapULongShortPubSubType::delete_data( delete(reinterpret_cast<::MapULongShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -14527,6 +16205,17 @@ void MapULongUShortPubSubType::delete_data( delete(reinterpret_cast<::MapULongUShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongUShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongUShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -14709,6 +16398,17 @@ void MapULongLongPubSubType::delete_data( delete(reinterpret_cast<::MapULongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -14891,6 +16591,17 @@ void MapULongULongPubSubType::delete_data( delete(reinterpret_cast<::MapULongULong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongULongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongULongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -15073,6 +16784,17 @@ void MapKeyULongValueLongLongPubSubType::delete_data( delete(reinterpret_cast<::MapKeyULongValueLongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapKeyULongValueLongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapKeyULongValueLongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -15255,6 +16977,17 @@ void MapULongULongLongPubSubType::delete_data( delete(reinterpret_cast<::MapULongULongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongULongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongULongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -15437,6 +17170,17 @@ void MapULongFloatPubSubType::delete_data( delete(reinterpret_cast<::MapULongFloat*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongFloatPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongFloatPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -15619,6 +17363,17 @@ void MapULongDoublePubSubType::delete_data( delete(reinterpret_cast<::MapULongDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -15801,6 +17556,17 @@ void MapKeyULongValueLongDoublePubSubType::delete_data( delete(reinterpret_cast<::MapKeyULongValueLongDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapKeyULongValueLongDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapKeyULongValueLongDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -15983,6 +17749,17 @@ void MapULongBooleanPubSubType::delete_data( delete(reinterpret_cast<::MapULongBoolean*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongBooleanPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongBooleanPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -16165,6 +17942,17 @@ void MapULongOctetPubSubType::delete_data( delete(reinterpret_cast<::MapULongOctet*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongOctetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongOctetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -16347,6 +18135,17 @@ void MapULongCharPubSubType::delete_data( delete(reinterpret_cast<::MapULongChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -16529,6 +18328,17 @@ void MapULongWCharPubSubType::delete_data( delete(reinterpret_cast<::MapULongWChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongWCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongWCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -16711,6 +18521,17 @@ void MapULongStringPubSubType::delete_data( delete(reinterpret_cast<::MapULongString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -16893,6 +18714,17 @@ void MapULongWStringPubSubType::delete_data( delete(reinterpret_cast<::MapULongWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -17075,6 +18907,17 @@ void MapULongInnerAliasBoundedStringHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongInnerAliasBoundedStringHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongInnerAliasBoundedStringHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongInnerAliasBoundedStringHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -17257,6 +19100,17 @@ void MapULongInnerAliasBoundedWStringHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongInnerAliasBoundedWStringHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongInnerAliasBoundedWStringHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongInnerAliasBoundedWStringHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -17439,6 +19293,17 @@ void MapULongInnerEnumHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongInnerEnumHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongInnerEnumHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongInnerEnumHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -17621,6 +19486,17 @@ void MapULongInnerBitMaskHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongInnerBitMaskHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongInnerBitMaskHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongInnerBitMaskHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -17803,6 +19679,17 @@ void MapULongInnerAliasHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongInnerAliasHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongInnerAliasHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongInnerAliasHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -17985,6 +19872,17 @@ void MapULongInnerAliasArrayHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongInnerAliasArrayHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongInnerAliasArrayHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongInnerAliasArrayHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -18167,6 +20065,17 @@ void MapULongInnerAliasSequenceHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongInnerAliasSequenceHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongInnerAliasSequenceHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongInnerAliasSequenceHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -18349,6 +20258,17 @@ void MapULongInnerAliasMapHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongInnerAliasMapHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongInnerAliasMapHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongInnerAliasMapHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -18531,6 +20451,17 @@ void MapULongInnerUnionHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongInnerUnionHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongInnerUnionHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongInnerUnionHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -18713,6 +20644,17 @@ void MapULongInnerStructureHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongInnerStructureHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongInnerStructureHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongInnerStructureHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -18895,6 +20837,17 @@ void MapULongInnerBitsetHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongInnerBitsetHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongInnerBitsetHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongInnerBitsetHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -19077,6 +21030,17 @@ void MapLongLongShortPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -19259,6 +21223,17 @@ void MapLongLongUShortPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongUShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongUShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongUShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -19441,6 +21416,17 @@ void MapLongLongKeyLongValuePubSubType::delete_data( delete(reinterpret_cast<::MapLongLongKeyLongValue*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongKeyLongValuePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongKeyLongValuePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -19623,6 +21609,17 @@ void MapLongLongULongPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongULong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongULongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongULongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -19805,6 +21802,17 @@ void MapLongLongLongLongPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongLongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongLongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongLongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -19987,6 +21995,17 @@ void MapLongLongULongLongPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongULongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongULongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongULongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -20169,6 +22188,17 @@ void MapLongLongFloatPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongFloat*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongFloatPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongFloatPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -20351,6 +22381,17 @@ void MapLongLongKeyDoubleValuePubSubType::delete_data( delete(reinterpret_cast<::MapLongLongKeyDoubleValue*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongKeyDoubleValuePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongKeyDoubleValuePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -20533,6 +22574,17 @@ void MapLongLongLongDoublePubSubType::delete_data( delete(reinterpret_cast<::MapLongLongLongDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongLongDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongLongDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -20715,6 +22767,17 @@ void MapLongLongBooleanPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongBoolean*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongBooleanPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongBooleanPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -20897,6 +22960,17 @@ void MapLongLongOctetPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongOctet*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongOctetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongOctetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -21079,6 +23153,17 @@ void MapLongLongCharPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -21261,6 +23346,17 @@ void MapLongLongWCharPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongWChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongWCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongWCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -21443,6 +23539,17 @@ void MapLongLongStringPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -21625,6 +23732,17 @@ void MapLongLongWStringPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -21807,6 +23925,17 @@ void MapLongLongInnerAliasBoundedStringHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongInnerAliasBoundedStringHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongInnerAliasBoundedStringHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongInnerAliasBoundedStringHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -21989,6 +24118,17 @@ void MapLongLongInnerAliasBoundedWStringHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongInnerAliasBoundedWStringHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongInnerAliasBoundedWStringHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongInnerAliasBoundedWStringHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -22171,6 +24311,17 @@ void MapLongLongInnerEnumHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongInnerEnumHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongInnerEnumHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongInnerEnumHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -22353,6 +24504,17 @@ void MapLongLongInnerBitMaskHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongInnerBitMaskHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongInnerBitMaskHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongInnerBitMaskHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -22535,6 +24697,17 @@ void MapLongLongInnerAliasHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongInnerAliasHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongInnerAliasHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongInnerAliasHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -22717,6 +24890,17 @@ void MapLongLongInnerAliasArrayHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongInnerAliasArrayHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongInnerAliasArrayHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongInnerAliasArrayHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -22899,6 +25083,17 @@ void MapLongLongInnerAliasSequenceHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongInnerAliasSequenceHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongInnerAliasSequenceHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongInnerAliasSequenceHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -23081,6 +25276,17 @@ void MapLongLongInnerAliasMapHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongInnerAliasMapHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongInnerAliasMapHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongInnerAliasMapHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -23263,6 +25469,17 @@ void MapLongLongInnerUnionHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongInnerUnionHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongInnerUnionHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongInnerUnionHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -23445,6 +25662,17 @@ void MapLongLongInnerStructureHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongInnerStructureHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongInnerStructureHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongInnerStructureHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -23627,6 +25855,17 @@ void MapLongLongInnerBitsetHelperPubSubType::delete_data( delete(reinterpret_cast<::MapLongLongInnerBitsetHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapLongLongInnerBitsetHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapLongLongInnerBitsetHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -23809,6 +26048,17 @@ void MapULongLongShortPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -23991,6 +26241,17 @@ void MapULongLongUShortPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongUShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongUShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongUShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -24173,6 +26434,17 @@ void MapULongLongLongPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -24355,6 +26627,17 @@ void MapULongLongULongPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongULong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongULongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongULongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -24537,6 +26820,17 @@ void MapULongLongLongLongPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongLongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongLongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongLongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -24719,6 +27013,17 @@ void MapULongLongULongLongPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongULongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongULongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongULongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -24901,6 +27206,17 @@ void MapULongLongFloatPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongFloat*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongFloatPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongFloatPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -25083,6 +27399,17 @@ void MapKeyULongLongValueDoublePubSubType::delete_data( delete(reinterpret_cast<::MapKeyULongLongValueDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapKeyULongLongValueDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapKeyULongLongValueDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -25265,6 +27592,17 @@ void MapULongLongLongDoublePubSubType::delete_data( delete(reinterpret_cast<::MapULongLongLongDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongLongDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongLongDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -25447,6 +27785,17 @@ void MapULongLongBooleanPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongBoolean*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongBooleanPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongBooleanPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -25629,6 +27978,17 @@ void MapULongLongOctetPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongOctet*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongOctetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongOctetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -25811,6 +28171,17 @@ void MapULongLongCharPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -25993,6 +28364,17 @@ void MapULongLongWCharPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongWChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongWCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongWCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -26175,6 +28557,17 @@ void MapULongLongStringPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -26357,6 +28750,17 @@ void MapULongLongWStringPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -26539,6 +28943,17 @@ void MapULongLongInnerAliasBoundedStringHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongInnerAliasBoundedStringHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongInnerAliasBoundedStringHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongInnerAliasBoundedStringHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -26721,6 +29136,17 @@ void MapULongLongInnerAliasBoundedWStringHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongInnerAliasBoundedWStringHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongInnerAliasBoundedWStringHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongInnerAliasBoundedWStringHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -26903,6 +29329,17 @@ void MapULongLongInnerEnumHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongInnerEnumHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongInnerEnumHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongInnerEnumHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -27085,6 +29522,17 @@ void MapULongLongInnerBitMaskHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongInnerBitMaskHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongInnerBitMaskHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongInnerBitMaskHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -27267,6 +29715,17 @@ void MapULongLongInnerAliasHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongInnerAliasHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongInnerAliasHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongInnerAliasHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -27449,6 +29908,17 @@ void MapULongLongInnerAliasArrayHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongInnerAliasArrayHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongInnerAliasArrayHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongInnerAliasArrayHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -27631,6 +30101,17 @@ void MapULongLongInnerAliasSequenceHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongInnerAliasSequenceHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongInnerAliasSequenceHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongInnerAliasSequenceHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -27813,6 +30294,17 @@ void MapULongLongInnerAliasMapHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongInnerAliasMapHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongInnerAliasMapHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongInnerAliasMapHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -27995,6 +30487,17 @@ void MapULongLongInnerUnionHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongInnerUnionHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongInnerUnionHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongInnerUnionHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -28177,6 +30680,17 @@ void MapULongLongInnerStructureHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongInnerStructureHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongInnerStructureHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongInnerStructureHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -28359,6 +30873,17 @@ void MapULongLongInnerBitsetHelperPubSubType::delete_data( delete(reinterpret_cast<::MapULongLongInnerBitsetHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapULongLongInnerBitsetHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapULongLongInnerBitsetHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -28541,6 +31066,17 @@ void MapStringShortPubSubType::delete_data( delete(reinterpret_cast<::MapStringShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -28723,6 +31259,17 @@ void MapStringUShortPubSubType::delete_data( delete(reinterpret_cast<::MapStringUShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringUShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringUShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -28905,6 +31452,17 @@ void MapStringLongPubSubType::delete_data( delete(reinterpret_cast<::MapStringLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -29087,6 +31645,17 @@ void MapStringULongPubSubType::delete_data( delete(reinterpret_cast<::MapStringULong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringULongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringULongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -29269,6 +31838,17 @@ void MapStringLongLongPubSubType::delete_data( delete(reinterpret_cast<::MapStringLongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringLongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringLongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -29451,6 +32031,17 @@ void MapStringULongLongPubSubType::delete_data( delete(reinterpret_cast<::MapStringULongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringULongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringULongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -29633,6 +32224,17 @@ void MapStringFloatPubSubType::delete_data( delete(reinterpret_cast<::MapStringFloat*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringFloatPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringFloatPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -29815,6 +32417,17 @@ void MapStringDoublePubSubType::delete_data( delete(reinterpret_cast<::MapStringDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -29997,6 +32610,17 @@ void MapStringLongDoublePubSubType::delete_data( delete(reinterpret_cast<::MapStringLongDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringLongDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringLongDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -30179,6 +32803,17 @@ void MapStringBooleanPubSubType::delete_data( delete(reinterpret_cast<::MapStringBoolean*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringBooleanPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringBooleanPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -30361,6 +32996,17 @@ void MapStringOctetPubSubType::delete_data( delete(reinterpret_cast<::MapStringOctet*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringOctetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringOctetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -30543,6 +33189,17 @@ void MapStringCharPubSubType::delete_data( delete(reinterpret_cast<::MapStringChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -30725,6 +33382,17 @@ void MapStringWCharPubSubType::delete_data( delete(reinterpret_cast<::MapStringWChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringWCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringWCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -30907,6 +33575,17 @@ void MapStringStringPubSubType::delete_data( delete(reinterpret_cast<::MapStringString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -31089,6 +33768,17 @@ void MapStringWStringPubSubType::delete_data( delete(reinterpret_cast<::MapStringWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -31271,6 +33961,17 @@ void MapStringInnerAliasBoundedStringHelperPubSubType::delete_data( delete(reinterpret_cast<::MapStringInnerAliasBoundedStringHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringInnerAliasBoundedStringHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringInnerAliasBoundedStringHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -31453,6 +34154,17 @@ void MapStringInnerAliasBoundedWStringHelperPubSubType::delete_data( delete(reinterpret_cast<::MapStringInnerAliasBoundedWStringHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringInnerAliasBoundedWStringHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringInnerAliasBoundedWStringHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -31635,6 +34347,17 @@ void MapStringInnerEnumHelperPubSubType::delete_data( delete(reinterpret_cast<::MapStringInnerEnumHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringInnerEnumHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringInnerEnumHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -31817,6 +34540,17 @@ void MapStringInnerBitMaskHelperPubSubType::delete_data( delete(reinterpret_cast<::MapStringInnerBitMaskHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringInnerBitMaskHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringInnerBitMaskHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -31999,6 +34733,17 @@ void MapStringInnerAliasHelperPubSubType::delete_data( delete(reinterpret_cast<::MapStringInnerAliasHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringInnerAliasHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringInnerAliasHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -32181,6 +34926,17 @@ void MapStringInnerAliasArrayHelperPubSubType::delete_data( delete(reinterpret_cast<::MapStringInnerAliasArrayHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringInnerAliasArrayHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringInnerAliasArrayHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -32363,6 +35119,17 @@ void MapStringInnerAliasSequenceHelperPubSubType::delete_data( delete(reinterpret_cast<::MapStringInnerAliasSequenceHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringInnerAliasSequenceHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringInnerAliasSequenceHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -32545,6 +35312,17 @@ void MapStringInnerAliasMapHelperPubSubType::delete_data( delete(reinterpret_cast<::MapStringInnerAliasMapHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringInnerAliasMapHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringInnerAliasMapHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -32727,6 +35505,17 @@ void MapStringInnerUnionHelperPubSubType::delete_data( delete(reinterpret_cast<::MapStringInnerUnionHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringInnerUnionHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringInnerUnionHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -32909,6 +35698,17 @@ void MapStringInnerStructureHelperPubSubType::delete_data( delete(reinterpret_cast<::MapStringInnerStructureHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringInnerStructureHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringInnerStructureHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -33091,6 +35891,17 @@ void MapStringInnerBitsetHelperPubSubType::delete_data( delete(reinterpret_cast<::MapStringInnerBitsetHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStringInnerBitsetHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStringInnerBitsetHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -33273,6 +36084,17 @@ void MapWStringShortPubSubType::delete_data( delete(reinterpret_cast<::MapWStringShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -33455,6 +36277,17 @@ void MapWStringUShortPubSubType::delete_data( delete(reinterpret_cast<::MapWStringUShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringUShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringUShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -33637,6 +36470,17 @@ void MapWStringLongPubSubType::delete_data( delete(reinterpret_cast<::MapWStringLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -33819,6 +36663,17 @@ void MapWStringULongPubSubType::delete_data( delete(reinterpret_cast<::MapWStringULong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringULongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringULongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -34001,6 +36856,17 @@ void MapWStringLongLongPubSubType::delete_data( delete(reinterpret_cast<::MapWStringLongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringLongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringLongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -34183,6 +37049,17 @@ void MapWStringULongLongPubSubType::delete_data( delete(reinterpret_cast<::MapWStringULongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringULongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringULongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -34365,6 +37242,17 @@ void MapWStringFloatPubSubType::delete_data( delete(reinterpret_cast<::MapWStringFloat*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringFloatPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringFloatPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -34547,6 +37435,17 @@ void MapWStringDoublePubSubType::delete_data( delete(reinterpret_cast<::MapWStringDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -34729,6 +37628,17 @@ void MapWStringLongDoublePubSubType::delete_data( delete(reinterpret_cast<::MapWStringLongDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringLongDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringLongDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -34911,6 +37821,17 @@ void MapWStringBooleanPubSubType::delete_data( delete(reinterpret_cast<::MapWStringBoolean*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringBooleanPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringBooleanPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -35093,6 +38014,17 @@ void MapWStringOctetPubSubType::delete_data( delete(reinterpret_cast<::MapWStringOctet*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringOctetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringOctetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -35275,6 +38207,17 @@ void MapWStringCharPubSubType::delete_data( delete(reinterpret_cast<::MapWStringChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -35457,6 +38400,17 @@ void MapWStringWCharPubSubType::delete_data( delete(reinterpret_cast<::MapWStringWChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringWCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringWCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -35639,6 +38593,17 @@ void MapWStringStringPubSubType::delete_data( delete(reinterpret_cast<::MapWStringString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -35821,6 +38786,17 @@ void MapWStringWStringPubSubType::delete_data( delete(reinterpret_cast<::MapWStringWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -36003,6 +38979,17 @@ void MapWStringInnerAliasBoundedStringHelperPubSubType::delete_data( delete(reinterpret_cast<::MapWStringInnerAliasBoundedStringHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringInnerAliasBoundedStringHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringInnerAliasBoundedStringHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -36185,6 +39172,17 @@ void MapWStringInnerAliasBoundedWStringHelperPubSubType::delete_data( delete(reinterpret_cast<::MapWStringInnerAliasBoundedWStringHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringInnerAliasBoundedWStringHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringInnerAliasBoundedWStringHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -36367,6 +39365,17 @@ void MapWStringInnerEnumHelperPubSubType::delete_data( delete(reinterpret_cast<::MapWStringInnerEnumHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringInnerEnumHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringInnerEnumHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -36549,6 +39558,17 @@ void MapWStringInnerBitMaskHelperPubSubType::delete_data( delete(reinterpret_cast<::MapWStringInnerBitMaskHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringInnerBitMaskHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringInnerBitMaskHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -36731,6 +39751,17 @@ void MapWStringInnerAliasHelperPubSubType::delete_data( delete(reinterpret_cast<::MapWStringInnerAliasHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringInnerAliasHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringInnerAliasHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -36913,6 +39944,17 @@ void MapWStringInnerAliasArrayHelperPubSubType::delete_data( delete(reinterpret_cast<::MapWStringInnerAliasArrayHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringInnerAliasArrayHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringInnerAliasArrayHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -37095,6 +40137,17 @@ void MapWStringInnerAliasSequenceHelperPubSubType::delete_data( delete(reinterpret_cast<::MapWStringInnerAliasSequenceHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringInnerAliasSequenceHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringInnerAliasSequenceHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -37277,6 +40330,17 @@ void MapWStringInnerAliasMapHelperPubSubType::delete_data( delete(reinterpret_cast<::MapWStringInnerAliasMapHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringInnerAliasMapHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringInnerAliasMapHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -37459,6 +40523,17 @@ void MapWStringInnerUnionHelperPubSubType::delete_data( delete(reinterpret_cast<::MapWStringInnerUnionHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringInnerUnionHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringInnerUnionHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -37641,6 +40716,17 @@ void MapWStringInnerStructureHelperPubSubType::delete_data( delete(reinterpret_cast<::MapWStringInnerStructureHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringInnerStructureHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringInnerStructureHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -37823,6 +40909,17 @@ void MapWStringInnerBitsetHelperPubSubType::delete_data( delete(reinterpret_cast<::MapWStringInnerBitsetHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapWStringInnerBitsetHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapWStringInnerBitsetHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -38005,6 +41102,17 @@ void MapInnerAliasBoundedStringHelperShortPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -38187,6 +41295,17 @@ void MapInnerAliasBoundedStringHelperUShortPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperUShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperUShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperUShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -38369,6 +41488,17 @@ void MapInnerAliasBoundedStringHelperLongPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -38551,6 +41681,17 @@ void MapInnerAliasBoundedStringHelperULongPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperULong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperULongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperULongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -38733,6 +41874,17 @@ void MapInnerAliasBoundedStringHelperLongLongPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperLongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperLongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperLongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -38915,6 +42067,17 @@ void MapInnerAliasBoundedStringHelperULongLongPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperULongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperULongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperULongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -39097,6 +42260,17 @@ void MapInnerAliasBoundedStringHelperFloatPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperFloat*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperFloatPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperFloatPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -39279,6 +42453,17 @@ void MapInnerAliasBoundedStringHelperDoublePubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -39461,6 +42646,17 @@ void MapInnerAliasBoundedStringHelperLongDoublePubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperLongDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperLongDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperLongDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -39643,6 +42839,17 @@ void MapInnerAliasBoundedStringHelperBooleanPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperBoolean*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperBooleanPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperBooleanPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -39825,6 +43032,17 @@ void MapInnerAliasBoundedStringHelperOctetPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperOctet*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperOctetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperOctetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -40007,6 +43225,17 @@ void MapInnerAliasBoundedStringHelperCharPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -40189,6 +43418,17 @@ void MapInnerAliasBoundedStringHelperWCharPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperWChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperWCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperWCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -40371,6 +43611,17 @@ void MapInnerAliasBoundedStringHelperStringPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -40553,6 +43804,17 @@ void MapInnerAliasBoundedStringHelperWStringPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -40735,6 +43997,17 @@ void MapInnerAliasBoundedStringHelperInnerAliasBoundedStringHelperPubSubType::de delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperInnerAliasBoundedStringHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperInnerAliasBoundedStringHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperInnerAliasBoundedStringHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -40917,6 +44190,17 @@ void MapInnerAliasBoundedStringHelperInnerAliasBoundedWStringHelperPubSubType::d delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperInnerAliasBoundedWStringHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperInnerAliasBoundedWStringHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperInnerAliasBoundedWStringHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -41099,6 +44383,17 @@ void MapInnerAliasBoundedStringHelperInnerEnumHelperPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperInnerEnumHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperInnerEnumHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperInnerEnumHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -41281,6 +44576,17 @@ void MapInnerAliasBoundedStringHelperInnerBitMaskHelperPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperInnerBitMaskHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperInnerBitMaskHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperInnerBitMaskHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -41463,6 +44769,17 @@ void MapInnerAliasBoundedStringHelperInnerAliasHelperPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperInnerAliasHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperInnerAliasHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperInnerAliasHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -41645,6 +44962,17 @@ void MapInnerAliasBoundedStringHelperInnerAliasArrayHelperPubSubType::delete_dat delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperInnerAliasArrayHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperInnerAliasArrayHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperInnerAliasArrayHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -41827,6 +45155,17 @@ void MapInnerAliasBoundedStringHelperInnerAliasSequenceHelperPubSubType::delete_ delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperInnerAliasSequenceHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperInnerAliasSequenceHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperInnerAliasSequenceHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -42009,6 +45348,17 @@ void MapInnerAliasBoundedStringHelperInnerAliasMapHelperPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperInnerAliasMapHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperInnerAliasMapHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperInnerAliasMapHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -42191,6 +45541,17 @@ void MapInnerAliasBoundedStringHelperInnerUnionHelperPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperInnerUnionHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperInnerUnionHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperInnerUnionHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -42373,6 +45734,17 @@ void MapInnerAliasBoundedStringHelperInnerStructureHelperPubSubType::delete_data delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperInnerStructureHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperInnerStructureHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperInnerStructureHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -42555,6 +45927,17 @@ void MapInnerAliasBoundedStringHelperInnerBitsetHelperPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedStringHelperInnerBitsetHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedStringHelperInnerBitsetHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedStringHelperInnerBitsetHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -42737,6 +46120,17 @@ void MapInnerAliasBoundedWStringHelperShortPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -42919,6 +46313,17 @@ void MapInnerAliasBoundedWStringHelperUShortPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperUShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperUShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperUShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -43101,6 +46506,17 @@ void MapInnerAliasBoundedWStringHelperLongPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -43283,6 +46699,17 @@ void MapInnerAliasBoundedWStringHelperULongPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperULong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperULongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperULongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -43465,6 +46892,17 @@ void MapInnerAliasBoundedWStringHelperLongLongPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperLongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperLongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperLongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -43647,6 +47085,17 @@ void MapInnerAliasBoundedWStringHelperULongLongPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperULongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperULongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperULongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -43829,6 +47278,17 @@ void MapInnerAliasBoundedWStringHelperFloatPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperFloat*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperFloatPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperFloatPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -44011,6 +47471,17 @@ void MapInnerAliasBoundedWStringHelperDoublePubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -44193,6 +47664,17 @@ void MapInnerAliasBoundedWStringHelperLongDoublePubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperLongDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperLongDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperLongDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -44375,6 +47857,17 @@ void MapInnerAliasBoundedWStringHelperBooleanPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperBoolean*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperBooleanPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperBooleanPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -44557,6 +48050,17 @@ void MapInnerAliasBoundedWStringHelperOctetPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperOctet*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperOctetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperOctetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -44739,6 +48243,17 @@ void MapInnerAliasBoundedWStringHelperCharPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -44921,6 +48436,17 @@ void MapInnerAliasBoundedWStringHelperWCharPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperWChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperWCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperWCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -45103,6 +48629,17 @@ void MapInnerAliasBoundedWStringHelperStringPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -45285,6 +48822,17 @@ void MapInnerAliasBoundedWStringHelperWStringPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -45467,6 +49015,17 @@ void MapInnerAliasBoundedWStringHelperInnerAliasBoundedStringHelperPubSubType::d delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperInnerAliasBoundedStringHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperInnerAliasBoundedStringHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperInnerAliasBoundedStringHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -45649,6 +49208,17 @@ void MapInnerAliasBoundedWStringHelperInnerAliasBoundedWStringHelperPubSubType:: delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperInnerAliasBoundedWStringHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperInnerAliasBoundedWStringHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperInnerAliasBoundedWStringHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -45831,6 +49401,17 @@ void MapInnerAliasBoundedWStringHelperInnerEnumHelperPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperInnerEnumHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperInnerEnumHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperInnerEnumHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -46013,6 +49594,17 @@ void MapInnerAliasBoundedWStringHelperInnerBitMaskHelperPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperInnerBitMaskHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperInnerBitMaskHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperInnerBitMaskHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -46195,6 +49787,17 @@ void MapInnerAliasBoundedWStringHelperInnerAliasHelperPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperInnerAliasHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperInnerAliasHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperInnerAliasHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -46377,6 +49980,17 @@ void MapInnerAliasBoundedWStringHelperInnerAliasArrayHelperPubSubType::delete_da delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperInnerAliasArrayHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperInnerAliasArrayHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperInnerAliasArrayHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -46559,6 +50173,17 @@ void MapInnerAliasBoundedWStringHelperInnerAliasSequenceHelperPubSubType::delete delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperInnerAliasSequenceHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperInnerAliasSequenceHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperInnerAliasSequenceHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -46741,6 +50366,17 @@ void MapInnerAliasBoundedWStringHelperInnerAliasMapHelperPubSubType::delete_data delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperInnerAliasMapHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperInnerAliasMapHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperInnerAliasMapHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -46923,6 +50559,17 @@ void MapInnerAliasBoundedWStringHelperInnerUnionHelperPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperInnerUnionHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperInnerUnionHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperInnerUnionHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -47105,6 +50752,17 @@ void MapInnerAliasBoundedWStringHelperInnerStructureHelperPubSubType::delete_dat delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperInnerStructureHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperInnerStructureHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperInnerStructureHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -47287,6 +50945,17 @@ void MapInnerAliasBoundedWStringHelperInnerBitsetHelperPubSubType::delete_data( delete(reinterpret_cast<::MapInnerAliasBoundedWStringHelperInnerBitsetHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapInnerAliasBoundedWStringHelperInnerBitsetHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapInnerAliasBoundedWStringHelperInnerBitsetHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -47469,6 +51138,17 @@ void BoundedSmallMapPubSubType::delete_data( delete(reinterpret_cast<::BoundedSmallMap*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool BoundedSmallMapPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool BoundedSmallMapPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -47651,6 +51331,17 @@ void BoundedLargeMapPubSubType::delete_data( delete(reinterpret_cast<::BoundedLargeMap*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool BoundedLargeMapPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool BoundedLargeMapPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds-types-test/mapsPubSubTypes.hpp b/test/dds-types-test/mapsPubSubTypes.hpp index a5dbe16ed56..66438fcd233 100644 --- a/test/dds-types-test/mapsPubSubTypes.hpp +++ b/test/dds-types-test/mapsPubSubTypes.hpp @@ -94,12 +94,8 @@ class MapShortShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -176,12 +172,8 @@ class MapShortUShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -258,12 +250,8 @@ class MapShortLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -340,12 +328,8 @@ class MapShortULongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -422,12 +406,8 @@ class MapShortLongLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -504,12 +484,8 @@ class MapShortULongLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -586,12 +562,8 @@ class MapShortFloatPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -668,12 +640,8 @@ class MapShortDoublePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -750,12 +718,8 @@ class MapShortLongDoublePubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -832,12 +796,8 @@ class MapShortBooleanPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -914,12 +874,8 @@ class MapShortOctetPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -996,12 +952,8 @@ class MapShortCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1078,12 +1030,8 @@ class MapShortWCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1160,12 +1108,8 @@ class MapShortStringPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1242,12 +1186,8 @@ class MapShortWStringPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1324,12 +1264,8 @@ class MapShortInnerAliasBoundedStringHelperPubSubType : public eprosima::fastdds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1406,12 +1342,8 @@ class MapShortInnerAliasBoundedWStringHelperPubSubType : public eprosima::fastdd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1488,12 +1420,8 @@ class MapShortInnerEnumHelperPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1570,12 +1498,8 @@ class MapShortInnerBitMaskHelperPubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1652,12 +1576,8 @@ class MapShortInnerAliasHelperPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1734,12 +1654,8 @@ class MapShortInnerAliasArrayHelperPubSubType : public eprosima::fastdds::dds::T #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1816,12 +1732,8 @@ class MapShortInnerAliasSequenceHelperPubSubType : public eprosima::fastdds::dds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1898,12 +1810,8 @@ class MapShortInnerAliasMapHelperPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1980,12 +1888,8 @@ class MapShortInnerUnionHelperPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2062,12 +1966,8 @@ class MapShortInnerStructureHelperPubSubType : public eprosima::fastdds::dds::To #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2144,12 +2044,8 @@ class MapShortInnerBitsetHelperPubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2226,12 +2122,8 @@ class MapUShortShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2308,12 +2200,8 @@ class MapUShortUShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2390,12 +2278,8 @@ class MapUShortLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2472,12 +2356,8 @@ class MapUShortULongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2554,12 +2434,8 @@ class MapUShortLongLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2636,12 +2512,8 @@ class MapUShortULongLongPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2718,12 +2590,8 @@ class MapUShortFloatPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2800,12 +2668,8 @@ class MapUShortDoublePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2882,12 +2746,8 @@ class MapUShortLongDoublePubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2964,12 +2824,8 @@ class MapUShortBooleanPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3046,12 +2902,8 @@ class MapUShortOctetPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3128,12 +2980,8 @@ class MapUShortCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3210,12 +3058,8 @@ class MapUShortWCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3292,12 +3136,8 @@ class MapUShortStringPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3374,12 +3214,8 @@ class MapUShortWStringPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3456,12 +3292,8 @@ class MapUShortInnerAliasBoundedStringHelperPubSubType : public eprosima::fastdd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3538,12 +3370,8 @@ class MapUShortInnerAliasBoundedWStringHelperPubSubType : public eprosima::fastd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3620,12 +3448,8 @@ class MapUShortInnerEnumHelperPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3702,12 +3526,8 @@ class MapUShortInnerBitMaskHelperPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3784,12 +3604,8 @@ class MapUShortInnerAliasHelperPubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3866,12 +3682,8 @@ class MapUShortInnerAliasArrayHelperPubSubType : public eprosima::fastdds::dds:: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3948,12 +3760,8 @@ class MapUShortInnerAliasSequenceHelperPubSubType : public eprosima::fastdds::dd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4030,12 +3838,8 @@ class MapUShortInnerAliasMapHelperPubSubType : public eprosima::fastdds::dds::To #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4112,12 +3916,8 @@ class MapUShortInnerUnionHelperPubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4194,12 +3994,8 @@ class MapUShortInnerStructureHelperPubSubType : public eprosima::fastdds::dds::T #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4276,12 +4072,8 @@ class MapUShortInnerBitsetHelperPubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4358,12 +4150,8 @@ class MapLongShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4440,12 +4228,8 @@ class MapLongUShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4522,12 +4306,8 @@ class MapLongLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4604,12 +4384,8 @@ class MapLongULongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4686,12 +4462,8 @@ class MapLongKeyLongLongValuePubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4768,12 +4540,8 @@ class MapLongULongLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4850,12 +4618,8 @@ class MapLongFloatPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4932,12 +4696,8 @@ class MapLongDoublePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5014,12 +4774,8 @@ class MapLongKeyLongDoubleValuePubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5096,12 +4852,8 @@ class MapLongBooleanPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5178,12 +4930,8 @@ class MapLongOctetPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5260,12 +5008,8 @@ class MapLongCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5342,12 +5086,8 @@ class MapLongWCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5424,12 +5164,8 @@ class MapLongStringPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5506,12 +5242,8 @@ class MapLongWStringPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5588,12 +5320,8 @@ class MapLongInnerAliasBoundedStringHelperPubSubType : public eprosima::fastdds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5670,12 +5398,8 @@ class MapLongInnerAliasBoundedWStringHelperPubSubType : public eprosima::fastdds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5752,12 +5476,8 @@ class MapLongInnerEnumHelperPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5834,12 +5554,8 @@ class MapLongInnerBitMaskHelperPubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5916,12 +5632,8 @@ class MapLongInnerAliasHelperPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5998,12 +5710,8 @@ class MapLongInnerAliasArrayHelperPubSubType : public eprosima::fastdds::dds::To #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6080,12 +5788,8 @@ class MapLongInnerAliasSequenceHelperPubSubType : public eprosima::fastdds::dds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6162,12 +5866,8 @@ class MapLongInnerAliasMapHelperPubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6244,12 +5944,8 @@ class MapLongInnerUnionHelperPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6326,12 +6022,8 @@ class MapLongInnerStructureHelperPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6408,12 +6100,8 @@ class MapLongInnerBitsetHelperPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6490,12 +6178,8 @@ class MapULongShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6572,12 +6256,8 @@ class MapULongUShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6654,12 +6334,8 @@ class MapULongLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6736,12 +6412,8 @@ class MapULongULongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6818,12 +6490,8 @@ class MapKeyULongValueLongLongPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6900,12 +6568,8 @@ class MapULongULongLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6982,12 +6646,8 @@ class MapULongFloatPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7064,12 +6724,8 @@ class MapULongDoublePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7146,12 +6802,8 @@ class MapKeyULongValueLongDoublePubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7228,12 +6880,8 @@ class MapULongBooleanPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7310,12 +6958,8 @@ class MapULongOctetPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7392,12 +7036,8 @@ class MapULongCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7474,12 +7114,8 @@ class MapULongWCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7556,12 +7192,8 @@ class MapULongStringPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7638,12 +7270,8 @@ class MapULongWStringPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7720,12 +7348,8 @@ class MapULongInnerAliasBoundedStringHelperPubSubType : public eprosima::fastdds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7802,12 +7426,8 @@ class MapULongInnerAliasBoundedWStringHelperPubSubType : public eprosima::fastdd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7884,12 +7504,8 @@ class MapULongInnerEnumHelperPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7966,12 +7582,8 @@ class MapULongInnerBitMaskHelperPubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -8048,12 +7660,8 @@ class MapULongInnerAliasHelperPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -8130,12 +7738,8 @@ class MapULongInnerAliasArrayHelperPubSubType : public eprosima::fastdds::dds::T #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -8212,12 +7816,8 @@ class MapULongInnerAliasSequenceHelperPubSubType : public eprosima::fastdds::dds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -8294,12 +7894,8 @@ class MapULongInnerAliasMapHelperPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -8376,12 +7972,8 @@ class MapULongInnerUnionHelperPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -8458,12 +8050,8 @@ class MapULongInnerStructureHelperPubSubType : public eprosima::fastdds::dds::To #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -8540,12 +8128,8 @@ class MapULongInnerBitsetHelperPubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -8622,12 +8206,8 @@ class MapLongLongShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -8704,12 +8284,8 @@ class MapLongLongUShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -8786,12 +8362,8 @@ class MapLongLongKeyLongValuePubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -8868,12 +8440,8 @@ class MapLongLongULongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -8950,12 +8518,8 @@ class MapLongLongLongLongPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -9032,12 +8596,8 @@ class MapLongLongULongLongPubSubType : public eprosima::fastdds::dds::TopicDataT #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -9114,12 +8674,8 @@ class MapLongLongFloatPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -9196,12 +8752,8 @@ class MapLongLongKeyDoubleValuePubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -9278,12 +8830,8 @@ class MapLongLongLongDoublePubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -9360,12 +8908,8 @@ class MapLongLongBooleanPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -9442,12 +8986,8 @@ class MapLongLongOctetPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -9524,12 +9064,8 @@ class MapLongLongCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -9606,12 +9142,8 @@ class MapLongLongWCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -9688,12 +9220,8 @@ class MapLongLongStringPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -9770,12 +9298,8 @@ class MapLongLongWStringPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -9852,12 +9376,8 @@ class MapLongLongInnerAliasBoundedStringHelperPubSubType : public eprosima::fast #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -9934,12 +9454,8 @@ class MapLongLongInnerAliasBoundedWStringHelperPubSubType : public eprosima::fas #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -10016,12 +9532,8 @@ class MapLongLongInnerEnumHelperPubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -10098,12 +9610,8 @@ class MapLongLongInnerBitMaskHelperPubSubType : public eprosima::fastdds::dds::T #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -10180,12 +9688,8 @@ class MapLongLongInnerAliasHelperPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -10262,12 +9766,8 @@ class MapLongLongInnerAliasArrayHelperPubSubType : public eprosima::fastdds::dds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -10344,12 +9844,8 @@ class MapLongLongInnerAliasSequenceHelperPubSubType : public eprosima::fastdds:: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -10426,12 +9922,8 @@ class MapLongLongInnerAliasMapHelperPubSubType : public eprosima::fastdds::dds:: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -10508,12 +10000,8 @@ class MapLongLongInnerUnionHelperPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -10590,12 +10078,8 @@ class MapLongLongInnerStructureHelperPubSubType : public eprosima::fastdds::dds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -10672,12 +10156,8 @@ class MapLongLongInnerBitsetHelperPubSubType : public eprosima::fastdds::dds::To #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -10754,12 +10234,8 @@ class MapULongLongShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -10836,12 +10312,8 @@ class MapULongLongUShortPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -10918,12 +10390,8 @@ class MapULongLongLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -11000,12 +10468,8 @@ class MapULongLongULongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -11082,12 +10546,8 @@ class MapULongLongLongLongPubSubType : public eprosima::fastdds::dds::TopicDataT #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -11164,12 +10624,8 @@ class MapULongLongULongLongPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -11246,12 +10702,8 @@ class MapULongLongFloatPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -11328,12 +10780,8 @@ class MapKeyULongLongValueDoublePubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -11410,12 +10858,8 @@ class MapULongLongLongDoublePubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -11492,12 +10936,8 @@ class MapULongLongBooleanPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -11574,12 +11014,8 @@ class MapULongLongOctetPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -11656,12 +11092,8 @@ class MapULongLongCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -11738,12 +11170,8 @@ class MapULongLongWCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -11820,12 +11248,8 @@ class MapULongLongStringPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -11902,12 +11326,8 @@ class MapULongLongWStringPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -11984,12 +11404,8 @@ class MapULongLongInnerAliasBoundedStringHelperPubSubType : public eprosima::fas #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -12066,12 +11482,8 @@ class MapULongLongInnerAliasBoundedWStringHelperPubSubType : public eprosima::fa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -12148,12 +11560,8 @@ class MapULongLongInnerEnumHelperPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -12230,12 +11638,8 @@ class MapULongLongInnerBitMaskHelperPubSubType : public eprosima::fastdds::dds:: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -12312,12 +11716,8 @@ class MapULongLongInnerAliasHelperPubSubType : public eprosima::fastdds::dds::To #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -12394,12 +11794,8 @@ class MapULongLongInnerAliasArrayHelperPubSubType : public eprosima::fastdds::dd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -12476,12 +11872,8 @@ class MapULongLongInnerAliasSequenceHelperPubSubType : public eprosima::fastdds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -12558,12 +11950,8 @@ class MapULongLongInnerAliasMapHelperPubSubType : public eprosima::fastdds::dds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -12640,12 +12028,8 @@ class MapULongLongInnerUnionHelperPubSubType : public eprosima::fastdds::dds::To #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -12722,12 +12106,8 @@ class MapULongLongInnerStructureHelperPubSubType : public eprosima::fastdds::dds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -12804,12 +12184,8 @@ class MapULongLongInnerBitsetHelperPubSubType : public eprosima::fastdds::dds::T #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -12886,12 +12262,8 @@ class MapStringShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -12968,12 +12340,8 @@ class MapStringUShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -13050,12 +12418,8 @@ class MapStringLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -13132,12 +12496,8 @@ class MapStringULongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -13214,12 +12574,8 @@ class MapStringLongLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -13296,12 +12652,8 @@ class MapStringULongLongPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -13378,12 +12730,8 @@ class MapStringFloatPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -13460,12 +12808,8 @@ class MapStringDoublePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -13542,12 +12886,8 @@ class MapStringLongDoublePubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -13624,12 +12964,8 @@ class MapStringBooleanPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -13706,12 +13042,8 @@ class MapStringOctetPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -13788,12 +13120,8 @@ class MapStringCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -13870,12 +13198,8 @@ class MapStringWCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -13952,12 +13276,8 @@ class MapStringStringPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -14034,12 +13354,8 @@ class MapStringWStringPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -14116,12 +13432,8 @@ class MapStringInnerAliasBoundedStringHelperPubSubType : public eprosima::fastdd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -14198,12 +13510,8 @@ class MapStringInnerAliasBoundedWStringHelperPubSubType : public eprosima::fastd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -14280,12 +13588,8 @@ class MapStringInnerEnumHelperPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -14362,12 +13666,8 @@ class MapStringInnerBitMaskHelperPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -14444,12 +13744,8 @@ class MapStringInnerAliasHelperPubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -14526,13 +13822,9 @@ class MapStringInnerAliasArrayHelperPubSubType : public eprosima::fastdds::dds:: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } - + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN #ifdef TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE @@ -14608,12 +13900,8 @@ class MapStringInnerAliasSequenceHelperPubSubType : public eprosima::fastdds::dd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -14690,12 +13978,8 @@ class MapStringInnerAliasMapHelperPubSubType : public eprosima::fastdds::dds::To #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -14772,12 +14056,8 @@ class MapStringInnerUnionHelperPubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -14854,12 +14134,8 @@ class MapStringInnerStructureHelperPubSubType : public eprosima::fastdds::dds::T #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -14936,12 +14212,8 @@ class MapStringInnerBitsetHelperPubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -15018,12 +14290,8 @@ class MapWStringShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -15100,12 +14368,8 @@ class MapWStringUShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -15182,12 +14446,8 @@ class MapWStringLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -15264,12 +14524,8 @@ class MapWStringULongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -15346,12 +14602,8 @@ class MapWStringLongLongPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -15428,12 +14680,8 @@ class MapWStringULongLongPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -15510,12 +14758,8 @@ class MapWStringFloatPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -15592,12 +14836,8 @@ class MapWStringDoublePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -15674,12 +14914,8 @@ class MapWStringLongDoublePubSubType : public eprosima::fastdds::dds::TopicDataT #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -15756,12 +14992,8 @@ class MapWStringBooleanPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -15838,12 +15070,8 @@ class MapWStringOctetPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -15920,12 +15148,8 @@ class MapWStringCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -16002,12 +15226,8 @@ class MapWStringWCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -16084,12 +15304,8 @@ class MapWStringStringPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -16166,12 +15382,8 @@ class MapWStringWStringPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -16248,12 +15460,8 @@ class MapWStringInnerAliasBoundedStringHelperPubSubType : public eprosima::fastd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -16330,12 +15538,8 @@ class MapWStringInnerAliasBoundedWStringHelperPubSubType : public eprosima::fast #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -16412,12 +15616,8 @@ class MapWStringInnerEnumHelperPubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -16494,12 +15694,8 @@ class MapWStringInnerBitMaskHelperPubSubType : public eprosima::fastdds::dds::To #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -16576,12 +15772,8 @@ class MapWStringInnerAliasHelperPubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -16658,12 +15850,8 @@ class MapWStringInnerAliasArrayHelperPubSubType : public eprosima::fastdds::dds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -16740,12 +15928,8 @@ class MapWStringInnerAliasSequenceHelperPubSubType : public eprosima::fastdds::d #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -16822,12 +16006,8 @@ class MapWStringInnerAliasMapHelperPubSubType : public eprosima::fastdds::dds::T #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -16904,12 +16084,8 @@ class MapWStringInnerUnionHelperPubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -16986,12 +16162,8 @@ class MapWStringInnerStructureHelperPubSubType : public eprosima::fastdds::dds:: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -17068,12 +16240,8 @@ class MapWStringInnerBitsetHelperPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -17150,12 +16318,8 @@ class MapInnerAliasBoundedStringHelperShortPubSubType : public eprosima::fastdds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -17232,12 +16396,8 @@ class MapInnerAliasBoundedStringHelperUShortPubSubType : public eprosima::fastdd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -17314,12 +16474,8 @@ class MapInnerAliasBoundedStringHelperLongPubSubType : public eprosima::fastdds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -17396,12 +16552,8 @@ class MapInnerAliasBoundedStringHelperULongPubSubType : public eprosima::fastdds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -17478,12 +16630,8 @@ class MapInnerAliasBoundedStringHelperLongLongPubSubType : public eprosima::fast #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -17560,12 +16708,8 @@ class MapInnerAliasBoundedStringHelperULongLongPubSubType : public eprosima::fas #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -17642,12 +16786,8 @@ class MapInnerAliasBoundedStringHelperFloatPubSubType : public eprosima::fastdds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -17724,12 +16864,8 @@ class MapInnerAliasBoundedStringHelperDoublePubSubType : public eprosima::fastdd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -17806,12 +16942,8 @@ class MapInnerAliasBoundedStringHelperLongDoublePubSubType : public eprosima::fa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -17888,12 +17020,8 @@ class MapInnerAliasBoundedStringHelperBooleanPubSubType : public eprosima::fastd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -17970,12 +17098,8 @@ class MapInnerAliasBoundedStringHelperOctetPubSubType : public eprosima::fastdds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -18052,12 +17176,8 @@ class MapInnerAliasBoundedStringHelperCharPubSubType : public eprosima::fastdds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -18134,12 +17254,8 @@ class MapInnerAliasBoundedStringHelperWCharPubSubType : public eprosima::fastdds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -18216,12 +17332,8 @@ class MapInnerAliasBoundedStringHelperStringPubSubType : public eprosima::fastdd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -18298,12 +17410,8 @@ class MapInnerAliasBoundedStringHelperWStringPubSubType : public eprosima::fastd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -18380,12 +17488,8 @@ class MapInnerAliasBoundedStringHelperInnerAliasBoundedStringHelperPubSubType : #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -18462,12 +17566,8 @@ class MapInnerAliasBoundedStringHelperInnerAliasBoundedWStringHelperPubSubType : #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -18544,12 +17644,8 @@ class MapInnerAliasBoundedStringHelperInnerEnumHelperPubSubType : public eprosim #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -18626,12 +17722,8 @@ class MapInnerAliasBoundedStringHelperInnerBitMaskHelperPubSubType : public epro #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -18708,12 +17800,8 @@ class MapInnerAliasBoundedStringHelperInnerAliasHelperPubSubType : public eprosi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -18790,12 +17878,8 @@ class MapInnerAliasBoundedStringHelperInnerAliasArrayHelperPubSubType : public e #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -18872,12 +17956,8 @@ class MapInnerAliasBoundedStringHelperInnerAliasSequenceHelperPubSubType : publi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -18954,12 +18034,8 @@ class MapInnerAliasBoundedStringHelperInnerAliasMapHelperPubSubType : public epr #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -19036,12 +18112,8 @@ class MapInnerAliasBoundedStringHelperInnerUnionHelperPubSubType : public eprosi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -19118,12 +18190,8 @@ class MapInnerAliasBoundedStringHelperInnerStructureHelperPubSubType : public ep #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -19200,12 +18268,8 @@ class MapInnerAliasBoundedStringHelperInnerBitsetHelperPubSubType : public epros #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -19282,12 +18346,8 @@ class MapInnerAliasBoundedWStringHelperShortPubSubType : public eprosima::fastdd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -19364,12 +18424,8 @@ class MapInnerAliasBoundedWStringHelperUShortPubSubType : public eprosima::fastd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -19446,12 +18502,8 @@ class MapInnerAliasBoundedWStringHelperLongPubSubType : public eprosima::fastdds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -19528,12 +18580,8 @@ class MapInnerAliasBoundedWStringHelperULongPubSubType : public eprosima::fastdd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -19610,12 +18658,8 @@ class MapInnerAliasBoundedWStringHelperLongLongPubSubType : public eprosima::fas #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -19692,12 +18736,8 @@ class MapInnerAliasBoundedWStringHelperULongLongPubSubType : public eprosima::fa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -19774,12 +18814,8 @@ class MapInnerAliasBoundedWStringHelperFloatPubSubType : public eprosima::fastdd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -19856,12 +18892,8 @@ class MapInnerAliasBoundedWStringHelperDoublePubSubType : public eprosima::fastd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -19938,12 +18970,8 @@ class MapInnerAliasBoundedWStringHelperLongDoublePubSubType : public eprosima::f #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -20020,12 +19048,8 @@ class MapInnerAliasBoundedWStringHelperBooleanPubSubType : public eprosima::fast #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -20102,12 +19126,8 @@ class MapInnerAliasBoundedWStringHelperOctetPubSubType : public eprosima::fastdd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -20184,12 +19204,8 @@ class MapInnerAliasBoundedWStringHelperCharPubSubType : public eprosima::fastdds #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -20266,12 +19282,8 @@ class MapInnerAliasBoundedWStringHelperWCharPubSubType : public eprosima::fastdd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -20348,12 +19360,8 @@ class MapInnerAliasBoundedWStringHelperStringPubSubType : public eprosima::fastd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -20430,12 +19438,8 @@ class MapInnerAliasBoundedWStringHelperWStringPubSubType : public eprosima::fast #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -20512,12 +19516,8 @@ class MapInnerAliasBoundedWStringHelperInnerAliasBoundedStringHelperPubSubType : #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -20594,12 +19594,8 @@ class MapInnerAliasBoundedWStringHelperInnerAliasBoundedWStringHelperPubSubType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -20676,12 +19672,8 @@ class MapInnerAliasBoundedWStringHelperInnerEnumHelperPubSubType : public eprosi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -20758,12 +19750,8 @@ class MapInnerAliasBoundedWStringHelperInnerBitMaskHelperPubSubType : public epr #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -20840,12 +19828,8 @@ class MapInnerAliasBoundedWStringHelperInnerAliasHelperPubSubType : public epros #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -20922,12 +19906,8 @@ class MapInnerAliasBoundedWStringHelperInnerAliasArrayHelperPubSubType : public #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -21004,12 +19984,8 @@ class MapInnerAliasBoundedWStringHelperInnerAliasSequenceHelperPubSubType : publ #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -21086,12 +20062,8 @@ class MapInnerAliasBoundedWStringHelperInnerAliasMapHelperPubSubType : public ep #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -21168,12 +20140,8 @@ class MapInnerAliasBoundedWStringHelperInnerUnionHelperPubSubType : public epros #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -21250,12 +20218,8 @@ class MapInnerAliasBoundedWStringHelperInnerStructureHelperPubSubType : public e #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -21332,12 +20296,8 @@ class MapInnerAliasBoundedWStringHelperInnerBitsetHelperPubSubType : public epro #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -21414,12 +20374,8 @@ class BoundedSmallMapPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -21496,12 +20452,8 @@ class BoundedLargeMapPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds-types-test/member_idCdrAux.hpp b/test/dds-types-test/member_idCdrAux.hpp index 95b50273435..b77df520ef5 100644 --- a/test/dds-types-test/member_idCdrAux.hpp +++ b/test/dds-types-test/member_idCdrAux.hpp @@ -70,51 +70,63 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FixId& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FixHexId& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FixHashidDefault& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FixHashid& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FixMix& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AutoidDefault& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AutoidSequential& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AutoidHash& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const DerivedAutoidDefault& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const DerivedEmptyAutoidSequential& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const DerivedAutoidSequential& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const DerivedAutoidHash& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/member_idCdrAux.ipp b/test/dds-types-test/member_idCdrAux.ipp index 43df3fbfb64..24a1fdd6463 100644 --- a/test/dds-types-test/member_idCdrAux.ipp +++ b/test/dds-types-test/member_idCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_FixId_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -88,6 +97,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FixId* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FixId_cdr_plain(data_representation) && + sizeof(FixId) == FixId_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FixId)); + + scdr.jump((array_size -1) * sizeof(FixId)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -125,6 +172,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FixId* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FixId_cdr_plain(data_representation) && + sizeof(FixId) == FixId_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FixId)); + + scdr.jump((array_size - 1) * sizeof(FixId)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FixId& data) @@ -143,6 +226,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FixHexId_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -197,6 +288,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FixHexId* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FixHexId_cdr_plain(data_representation) && + sizeof(FixHexId) == FixHexId_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FixHexId)); + + scdr.jump((array_size -1) * sizeof(FixHexId)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -234,6 +363,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FixHexId* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FixHexId_cdr_plain(data_representation) && + sizeof(FixHexId) == FixHexId_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FixHexId)); + + scdr.jump((array_size - 1) * sizeof(FixHexId)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FixHexId& data) @@ -252,6 +417,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FixHashidDefault_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -306,6 +479,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FixHashidDefault* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FixHashidDefault_cdr_plain(data_representation) && + sizeof(FixHashidDefault) == FixHashidDefault_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FixHashidDefault)); + + scdr.jump((array_size -1) * sizeof(FixHashidDefault)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -343,6 +554,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FixHashidDefault* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FixHashidDefault_cdr_plain(data_representation) && + sizeof(FixHashidDefault) == FixHashidDefault_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FixHashidDefault)); + + scdr.jump((array_size - 1) * sizeof(FixHashidDefault)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FixHashidDefault& data) @@ -361,6 +608,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FixHashid_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -415,6 +670,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FixHashid* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FixHashid_cdr_plain(data_representation) && + sizeof(FixHashid) == FixHashid_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FixHashid)); + + scdr.jump((array_size -1) * sizeof(FixHashid)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -452,6 +745,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FixHashid* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FixHashid_cdr_plain(data_representation) && + sizeof(FixHashid) == FixHashid_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FixHashid)); + + scdr.jump((array_size - 1) * sizeof(FixHashid)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FixHashid& data) @@ -470,6 +799,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FixMix_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -528,6 +865,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FixMix* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FixMix_cdr_plain(data_representation) && + sizeof(FixMix) == FixMix_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FixMix)); + + scdr.jump((array_size -1) * sizeof(FixMix)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -569,6 +944,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FixMix* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FixMix_cdr_plain(data_representation) && + sizeof(FixMix) == FixMix_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FixMix)); + + scdr.jump((array_size - 1) * sizeof(FixMix)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FixMix& data) @@ -589,6 +1000,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AutoidDefault_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -647,6 +1066,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AutoidDefault* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AutoidDefault_cdr_plain(data_representation) && + sizeof(AutoidDefault) == AutoidDefault_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AutoidDefault)); + + scdr.jump((array_size -1) * sizeof(AutoidDefault)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -688,6 +1145,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AutoidDefault* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AutoidDefault_cdr_plain(data_representation) && + sizeof(AutoidDefault) == AutoidDefault_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AutoidDefault)); + + scdr.jump((array_size - 1) * sizeof(AutoidDefault)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AutoidDefault& data) @@ -708,6 +1201,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AutoidSequential_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -766,6 +1267,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AutoidSequential* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AutoidSequential_cdr_plain(data_representation) && + sizeof(AutoidSequential) == AutoidSequential_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AutoidSequential)); + + scdr.jump((array_size -1) * sizeof(AutoidSequential)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -807,6 +1346,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AutoidSequential* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AutoidSequential_cdr_plain(data_representation) && + sizeof(AutoidSequential) == AutoidSequential_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AutoidSequential)); + + scdr.jump((array_size - 1) * sizeof(AutoidSequential)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AutoidSequential& data) @@ -827,6 +1402,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AutoidHash_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -885,6 +1468,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AutoidHash* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AutoidHash_cdr_plain(data_representation) && + sizeof(AutoidHash) == AutoidHash_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AutoidHash)); + + scdr.jump((array_size -1) * sizeof(AutoidHash)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -926,6 +1547,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AutoidHash* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AutoidHash_cdr_plain(data_representation) && + sizeof(AutoidHash) == AutoidHash_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AutoidHash)); + + scdr.jump((array_size - 1) * sizeof(AutoidHash)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AutoidHash& data) @@ -946,6 +1603,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_DerivedAutoidDefault_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1024,6 +1689,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const DerivedAutoidDefault* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_DerivedAutoidDefault_cdr_plain(data_representation) && + sizeof(DerivedAutoidDefault) == DerivedAutoidDefault_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(DerivedAutoidDefault)); + + scdr.jump((array_size -1) * sizeof(DerivedAutoidDefault)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1085,6 +1788,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + DerivedAutoidDefault* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_DerivedAutoidDefault_cdr_plain(data_representation) && + sizeof(DerivedAutoidDefault) == DerivedAutoidDefault_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(DerivedAutoidDefault)); + + scdr.jump((array_size - 1) * sizeof(DerivedAutoidDefault)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const DerivedAutoidDefault& data) @@ -1096,6 +1835,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_DerivedEmptyAutoidSequential_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1154,6 +1901,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const DerivedEmptyAutoidSequential* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_DerivedEmptyAutoidSequential_cdr_plain(data_representation) && + sizeof(DerivedEmptyAutoidSequential) == DerivedEmptyAutoidSequential_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(DerivedEmptyAutoidSequential)); + + scdr.jump((array_size -1) * sizeof(DerivedEmptyAutoidSequential)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1195,6 +1980,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + DerivedEmptyAutoidSequential* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_DerivedEmptyAutoidSequential_cdr_plain(data_representation) && + sizeof(DerivedEmptyAutoidSequential) == DerivedEmptyAutoidSequential_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(DerivedEmptyAutoidSequential)); + + scdr.jump((array_size - 1) * sizeof(DerivedEmptyAutoidSequential)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const DerivedEmptyAutoidSequential& data) @@ -1206,6 +2027,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_DerivedAutoidSequential_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1284,6 +2113,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const DerivedAutoidSequential* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_DerivedAutoidSequential_cdr_plain(data_representation) && + sizeof(DerivedAutoidSequential) == DerivedAutoidSequential_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(DerivedAutoidSequential)); + + scdr.jump((array_size -1) * sizeof(DerivedAutoidSequential)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1345,6 +2212,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + DerivedAutoidSequential* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_DerivedAutoidSequential_cdr_plain(data_representation) && + sizeof(DerivedAutoidSequential) == DerivedAutoidSequential_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(DerivedAutoidSequential)); + + scdr.jump((array_size - 1) * sizeof(DerivedAutoidSequential)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const DerivedAutoidSequential& data) @@ -1356,6 +2259,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_DerivedAutoidHash_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1434,6 +2345,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const DerivedAutoidHash* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_DerivedAutoidHash_cdr_plain(data_representation) && + sizeof(DerivedAutoidHash) == DerivedAutoidHash_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(DerivedAutoidHash)); + + scdr.jump((array_size -1) * sizeof(DerivedAutoidHash)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1495,6 +2444,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + DerivedAutoidHash* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_DerivedAutoidHash_cdr_plain(data_representation) && + sizeof(DerivedAutoidHash) == DerivedAutoidHash_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(DerivedAutoidHash)); + + scdr.jump((array_size - 1) * sizeof(DerivedAutoidHash)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const DerivedAutoidHash& data) diff --git a/test/dds-types-test/member_idPubSubTypes.cxx b/test/dds-types-test/member_idPubSubTypes.cxx index 5a8df5346c9..19df56fff4c 100644 --- a/test/dds-types-test/member_idPubSubTypes.cxx +++ b/test/dds-types-test/member_idPubSubTypes.cxx @@ -31,6 +31,48 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_AutoidHash_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_DerivedAutoidDefault_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AutoidSequential_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_DerivedEmptyAutoidSequential_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_FixHashidDefault_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_FixMix_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AutoidDefault_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_DerivedAutoidHash_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_FixHashid_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_FixId_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_DerivedAutoidSequential_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_FixHexId_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + FixIdPubSubType::FixIdPubSubType() { set_name("FixId"); @@ -149,6 +191,17 @@ void FixIdPubSubType::delete_data( delete(reinterpret_cast<::FixId*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FixIdPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FixIdPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +384,17 @@ void FixHexIdPubSubType::delete_data( delete(reinterpret_cast<::FixHexId*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FixHexIdPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FixHexIdPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +577,17 @@ void FixHashidDefaultPubSubType::delete_data( delete(reinterpret_cast<::FixHashidDefault*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FixHashidDefaultPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FixHashidDefaultPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -695,6 +770,17 @@ void FixHashidPubSubType::delete_data( delete(reinterpret_cast<::FixHashid*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FixHashidPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FixHashidPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -877,6 +963,17 @@ void FixMixPubSubType::delete_data( delete(reinterpret_cast<::FixMix*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FixMixPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FixMixPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1059,6 +1156,17 @@ void AutoidDefaultPubSubType::delete_data( delete(reinterpret_cast<::AutoidDefault*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AutoidDefaultPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AutoidDefaultPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1241,6 +1349,17 @@ void AutoidSequentialPubSubType::delete_data( delete(reinterpret_cast<::AutoidSequential*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AutoidSequentialPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AutoidSequentialPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1423,6 +1542,17 @@ void AutoidHashPubSubType::delete_data( delete(reinterpret_cast<::AutoidHash*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AutoidHashPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AutoidHashPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1605,6 +1735,17 @@ void DerivedAutoidDefaultPubSubType::delete_data( delete(reinterpret_cast<::DerivedAutoidDefault*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool DerivedAutoidDefaultPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool DerivedAutoidDefaultPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1787,6 +1928,17 @@ void DerivedEmptyAutoidSequentialPubSubType::delete_data( delete(reinterpret_cast<::DerivedEmptyAutoidSequential*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool DerivedEmptyAutoidSequentialPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool DerivedEmptyAutoidSequentialPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1969,6 +2121,17 @@ void DerivedAutoidSequentialPubSubType::delete_data( delete(reinterpret_cast<::DerivedAutoidSequential*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool DerivedAutoidSequentialPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool DerivedAutoidSequentialPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2151,6 +2314,17 @@ void DerivedAutoidHashPubSubType::delete_data( delete(reinterpret_cast<::DerivedAutoidHash*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool DerivedAutoidHashPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool DerivedAutoidHashPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds-types-test/member_idPubSubTypes.hpp b/test/dds-types-test/member_idPubSubTypes.hpp index e25bf45ea5a..2c7d3105451 100644 --- a/test/dds-types-test/member_idPubSubTypes.hpp +++ b/test/dds-types-test/member_idPubSubTypes.hpp @@ -93,12 +93,8 @@ class FixIdPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -175,12 +171,8 @@ class FixHexIdPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -257,12 +249,8 @@ class FixHashidDefaultPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -339,12 +327,8 @@ class FixHashidPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -421,12 +405,8 @@ class FixMixPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -503,12 +483,8 @@ class AutoidDefaultPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -585,12 +561,8 @@ class AutoidSequentialPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -667,12 +639,8 @@ class AutoidHashPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -749,12 +717,8 @@ class DerivedAutoidDefaultPubSubType : public eprosima::fastdds::dds::TopicDataT #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -831,12 +795,8 @@ class DerivedEmptyAutoidSequentialPubSubType : public eprosima::fastdds::dds::To #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -913,12 +873,8 @@ class DerivedAutoidSequentialPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -995,12 +951,8 @@ class DerivedAutoidHashPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds-types-test/mutableCdrAux.hpp b/test/dds-types-test/mutableCdrAux.hpp index 4f0abdcb7c8..4348f2c365b 100644 --- a/test/dds-types-test/mutableCdrAux.hpp +++ b/test/dds-types-test/mutableCdrAux.hpp @@ -46,6 +46,7 @@ constexpr uint32_t MutableLongLongStruct_max_key_cdr_typesize {0UL}; + constexpr uint32_t MutableWCharStruct_max_cdr_typesize {12UL}; constexpr uint32_t MutableWCharStruct_max_key_cdr_typesize {0UL}; @@ -65,6 +66,7 @@ constexpr uint32_t MutableEmptyStruct_max_cdr_typesize {4UL}; constexpr uint32_t MutableEmptyStruct_max_key_cdr_typesize {0UL}; + constexpr uint32_t MutableLongStruct_max_cdr_typesize {12UL}; constexpr uint32_t MutableLongStruct_max_key_cdr_typesize {0UL}; @@ -105,79 +107,98 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableShortStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableUShortStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableLongStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableULongStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableLongLongStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableULongLongStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableFloatStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableDoubleStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableLongDoubleStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableBooleanStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableOctetStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableCharStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableWCharStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableUnionStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableEmptyStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableEmptyInheritanceStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableInheritanceStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableInheritanceEmptyStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableExtensibilityInheritance& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/mutableCdrAux.ipp b/test/dds-types-test/mutableCdrAux.ipp index 255aa65bbb1..fa8c53aee1b 100644 --- a/test/dds-types-test/mutableCdrAux.ipp +++ b/test/dds-types-test/mutableCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_MutableShortStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MutableShortStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableShortStruct_cdr_plain(data_representation) && + sizeof(MutableShortStruct) == MutableShortStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MutableShortStruct)); + + scdr.jump((array_size -1) * sizeof(MutableShortStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MutableShortStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableShortStruct_cdr_plain(data_representation) && + sizeof(MutableShortStruct) == MutableShortStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MutableShortStruct)); + + scdr.jump((array_size - 1) * sizeof(MutableShortStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableShortStruct& data) @@ -113,6 +196,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MutableUShortStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -155,6 +246,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MutableUShortStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableUShortStruct_cdr_plain(data_representation) && + sizeof(MutableUShortStruct) == MutableUShortStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MutableUShortStruct)); + + scdr.jump((array_size -1) * sizeof(MutableUShortStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -180,6 +309,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MutableUShortStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableUShortStruct_cdr_plain(data_representation) && + sizeof(MutableUShortStruct) == MutableUShortStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MutableUShortStruct)); + + scdr.jump((array_size - 1) * sizeof(MutableUShortStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableUShortStruct& data) @@ -192,6 +357,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MutableLongStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -234,6 +407,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MutableLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableLongStruct_cdr_plain(data_representation) && + sizeof(MutableLongStruct) == MutableLongStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MutableLongStruct)); + + scdr.jump((array_size -1) * sizeof(MutableLongStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -259,6 +470,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MutableLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableLongStruct_cdr_plain(data_representation) && + sizeof(MutableLongStruct) == MutableLongStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MutableLongStruct)); + + scdr.jump((array_size - 1) * sizeof(MutableLongStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableLongStruct& data) @@ -271,6 +518,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MutableULongStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -313,6 +568,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MutableULongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableULongStruct_cdr_plain(data_representation) && + sizeof(MutableULongStruct) == MutableULongStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MutableULongStruct)); + + scdr.jump((array_size -1) * sizeof(MutableULongStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -338,6 +631,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MutableULongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableULongStruct_cdr_plain(data_representation) && + sizeof(MutableULongStruct) == MutableULongStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MutableULongStruct)); + + scdr.jump((array_size - 1) * sizeof(MutableULongStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableULongStruct& data) @@ -350,6 +679,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MutableLongLongStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -392,6 +729,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MutableLongLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableLongLongStruct_cdr_plain(data_representation) && + sizeof(MutableLongLongStruct) == MutableLongLongStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MutableLongLongStruct)); + + scdr.jump((array_size -1) * sizeof(MutableLongLongStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -417,6 +792,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MutableLongLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableLongLongStruct_cdr_plain(data_representation) && + sizeof(MutableLongLongStruct) == MutableLongLongStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MutableLongLongStruct)); + + scdr.jump((array_size - 1) * sizeof(MutableLongLongStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableLongLongStruct& data) @@ -429,6 +840,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MutableULongLongStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -471,6 +890,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MutableULongLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableULongLongStruct_cdr_plain(data_representation) && + sizeof(MutableULongLongStruct) == MutableULongLongStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MutableULongLongStruct)); + + scdr.jump((array_size -1) * sizeof(MutableULongLongStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -496,6 +953,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MutableULongLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableULongLongStruct_cdr_plain(data_representation) && + sizeof(MutableULongLongStruct) == MutableULongLongStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MutableULongLongStruct)); + + scdr.jump((array_size - 1) * sizeof(MutableULongLongStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableULongLongStruct& data) @@ -508,6 +1001,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MutableFloatStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -550,6 +1051,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MutableFloatStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableFloatStruct_cdr_plain(data_representation) && + sizeof(MutableFloatStruct) == MutableFloatStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MutableFloatStruct)); + + scdr.jump((array_size -1) * sizeof(MutableFloatStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -575,6 +1114,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MutableFloatStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableFloatStruct_cdr_plain(data_representation) && + sizeof(MutableFloatStruct) == MutableFloatStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MutableFloatStruct)); + + scdr.jump((array_size - 1) * sizeof(MutableFloatStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableFloatStruct& data) @@ -587,6 +1162,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MutableDoubleStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -629,6 +1212,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MutableDoubleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableDoubleStruct_cdr_plain(data_representation) && + sizeof(MutableDoubleStruct) == MutableDoubleStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MutableDoubleStruct)); + + scdr.jump((array_size -1) * sizeof(MutableDoubleStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -654,6 +1275,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MutableDoubleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableDoubleStruct_cdr_plain(data_representation) && + sizeof(MutableDoubleStruct) == MutableDoubleStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MutableDoubleStruct)); + + scdr.jump((array_size - 1) * sizeof(MutableDoubleStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableDoubleStruct& data) @@ -666,6 +1323,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MutableLongDoubleStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -708,6 +1373,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MutableLongDoubleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableLongDoubleStruct_cdr_plain(data_representation) && + sizeof(MutableLongDoubleStruct) == MutableLongDoubleStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MutableLongDoubleStruct)); + + scdr.jump((array_size -1) * sizeof(MutableLongDoubleStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -733,6 +1436,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MutableLongDoubleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableLongDoubleStruct_cdr_plain(data_representation) && + sizeof(MutableLongDoubleStruct) == MutableLongDoubleStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MutableLongDoubleStruct)); + + scdr.jump((array_size - 1) * sizeof(MutableLongDoubleStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableLongDoubleStruct& data) @@ -745,6 +1484,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MutableBooleanStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -787,6 +1534,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MutableBooleanStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableBooleanStruct_cdr_plain(data_representation) && + sizeof(MutableBooleanStruct) == MutableBooleanStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MutableBooleanStruct)); + + scdr.jump((array_size -1) * sizeof(MutableBooleanStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -812,6 +1597,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MutableBooleanStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableBooleanStruct_cdr_plain(data_representation) && + sizeof(MutableBooleanStruct) == MutableBooleanStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MutableBooleanStruct)); + + scdr.jump((array_size - 1) * sizeof(MutableBooleanStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableBooleanStruct& data) @@ -824,6 +1645,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MutableOctetStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -866,6 +1695,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MutableOctetStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableOctetStruct_cdr_plain(data_representation) && + sizeof(MutableOctetStruct) == MutableOctetStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MutableOctetStruct)); + + scdr.jump((array_size -1) * sizeof(MutableOctetStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -891,6 +1758,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MutableOctetStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableOctetStruct_cdr_plain(data_representation) && + sizeof(MutableOctetStruct) == MutableOctetStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MutableOctetStruct)); + + scdr.jump((array_size - 1) * sizeof(MutableOctetStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableOctetStruct& data) @@ -903,6 +1806,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MutableCharStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -945,6 +1856,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MutableCharStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableCharStruct_cdr_plain(data_representation) && + sizeof(MutableCharStruct) == MutableCharStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MutableCharStruct)); + + scdr.jump((array_size -1) * sizeof(MutableCharStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -970,6 +1919,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MutableCharStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableCharStruct_cdr_plain(data_representation) && + sizeof(MutableCharStruct) == MutableCharStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MutableCharStruct)); + + scdr.jump((array_size - 1) * sizeof(MutableCharStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableCharStruct& data) @@ -982,6 +1967,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MutableWCharStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1024,6 +2017,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MutableWCharStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableWCharStruct_cdr_plain(data_representation) && + sizeof(MutableWCharStruct) == MutableWCharStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MutableWCharStruct)); + + scdr.jump((array_size -1) * sizeof(MutableWCharStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1049,6 +2080,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MutableWCharStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableWCharStruct_cdr_plain(data_representation) && + sizeof(MutableWCharStruct) == MutableWCharStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MutableWCharStruct)); + + scdr.jump((array_size - 1) * sizeof(MutableWCharStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableWCharStruct& data) @@ -1061,6 +2128,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MutableUnionStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1103,6 +2178,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MutableUnionStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableUnionStruct_cdr_plain(data_representation) && + sizeof(MutableUnionStruct) == MutableUnionStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MutableUnionStruct)); + + scdr.jump((array_size -1) * sizeof(MutableUnionStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1128,6 +2241,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MutableUnionStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableUnionStruct_cdr_plain(data_representation) && + sizeof(MutableUnionStruct) == MutableUnionStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MutableUnionStruct)); + + scdr.jump((array_size - 1) * sizeof(MutableUnionStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableUnionStruct& data) @@ -1140,6 +2289,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MutableEmptyStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1178,6 +2335,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MutableEmptyStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableEmptyStruct_cdr_plain(data_representation) && + sizeof(MutableEmptyStruct) == MutableEmptyStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MutableEmptyStruct)); + + scdr.jump((array_size -1) * sizeof(MutableEmptyStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1195,6 +2390,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MutableEmptyStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableEmptyStruct_cdr_plain(data_representation) && + sizeof(MutableEmptyStruct) == MutableEmptyStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MutableEmptyStruct)); + + scdr.jump((array_size - 1) * sizeof(MutableEmptyStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableEmptyStruct& data) @@ -1205,6 +2436,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MutableEmptyInheritanceStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1247,6 +2486,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MutableEmptyInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableEmptyInheritanceStruct_cdr_plain(data_representation) && + sizeof(MutableEmptyInheritanceStruct) == MutableEmptyInheritanceStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MutableEmptyInheritanceStruct)); + + scdr.jump((array_size -1) * sizeof(MutableEmptyInheritanceStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1272,6 +2549,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MutableEmptyInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableEmptyInheritanceStruct_cdr_plain(data_representation) && + sizeof(MutableEmptyInheritanceStruct) == MutableEmptyInheritanceStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MutableEmptyInheritanceStruct)); + + scdr.jump((array_size - 1) * sizeof(MutableEmptyInheritanceStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableEmptyInheritanceStruct& data) @@ -1283,6 +2596,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MutableInheritanceStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1329,6 +2650,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MutableInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableInheritanceStruct_cdr_plain(data_representation) && + sizeof(MutableInheritanceStruct) == MutableInheritanceStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MutableInheritanceStruct)); + + scdr.jump((array_size -1) * sizeof(MutableInheritanceStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1358,6 +2717,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MutableInheritanceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableInheritanceStruct_cdr_plain(data_representation) && + sizeof(MutableInheritanceStruct) == MutableInheritanceStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MutableInheritanceStruct)); + + scdr.jump((array_size - 1) * sizeof(MutableInheritanceStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableInheritanceStruct& data) @@ -1369,6 +2764,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MutableInheritanceEmptyStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1411,6 +2814,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MutableInheritanceEmptyStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableInheritanceEmptyStruct_cdr_plain(data_representation) && + sizeof(MutableInheritanceEmptyStruct) == MutableInheritanceEmptyStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MutableInheritanceEmptyStruct)); + + scdr.jump((array_size -1) * sizeof(MutableInheritanceEmptyStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1436,6 +2877,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MutableInheritanceEmptyStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableInheritanceEmptyStruct_cdr_plain(data_representation) && + sizeof(MutableInheritanceEmptyStruct) == MutableInheritanceEmptyStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MutableInheritanceEmptyStruct)); + + scdr.jump((array_size - 1) * sizeof(MutableInheritanceEmptyStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableInheritanceEmptyStruct& data) @@ -1447,6 +2924,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MutableExtensibilityInheritance_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1493,6 +2978,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MutableExtensibilityInheritance* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableExtensibilityInheritance_cdr_plain(data_representation) && + sizeof(MutableExtensibilityInheritance) == MutableExtensibilityInheritance_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MutableExtensibilityInheritance)); + + scdr.jump((array_size -1) * sizeof(MutableExtensibilityInheritance)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1522,6 +3045,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MutableExtensibilityInheritance* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableExtensibilityInheritance_cdr_plain(data_representation) && + sizeof(MutableExtensibilityInheritance) == MutableExtensibilityInheritance_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MutableExtensibilityInheritance)); + + scdr.jump((array_size - 1) * sizeof(MutableExtensibilityInheritance)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableExtensibilityInheritance& data) diff --git a/test/dds-types-test/mutablePubSubTypes.cxx b/test/dds-types-test/mutablePubSubTypes.cxx index 742797edcce..6424459cef0 100644 --- a/test/dds-types-test/mutablePubSubTypes.cxx +++ b/test/dds-types-test/mutablePubSubTypes.cxx @@ -31,6 +31,85 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_MutableUShortStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MutableUnionStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MutableExtensibilityInheritance_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MutableInheritanceStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MutableCharStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MutableLongDoubleStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MutableLongLongStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_MutableWCharStruct_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_MutableULongStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_MutableEmptyInheritanceStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MutableBooleanStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MutableEmptyStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_MutableLongStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MutableInheritanceEmptyStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_MutableShortStruct_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_MutableFloatStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MutableULongLongStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MutableDoubleStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MutableOctetStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + +} // namespace fastcdr +} // namespace eprosima + MutableShortStructPubSubType::MutableShortStructPubSubType() { set_name("MutableShortStruct"); @@ -149,6 +228,17 @@ void MutableShortStructPubSubType::delete_data( delete(reinterpret_cast<::MutableShortStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MutableShortStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MutableShortStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +421,17 @@ void MutableUShortStructPubSubType::delete_data( delete(reinterpret_cast<::MutableUShortStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MutableUShortStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MutableUShortStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +614,17 @@ void MutableLongStructPubSubType::delete_data( delete(reinterpret_cast<::MutableLongStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MutableLongStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MutableLongStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -695,6 +807,17 @@ void MutableULongStructPubSubType::delete_data( delete(reinterpret_cast<::MutableULongStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MutableULongStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MutableULongStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -877,6 +1000,17 @@ void MutableLongLongStructPubSubType::delete_data( delete(reinterpret_cast<::MutableLongLongStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MutableLongLongStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MutableLongLongStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1059,6 +1193,17 @@ void MutableULongLongStructPubSubType::delete_data( delete(reinterpret_cast<::MutableULongLongStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MutableULongLongStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MutableULongLongStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1241,6 +1386,17 @@ void MutableFloatStructPubSubType::delete_data( delete(reinterpret_cast<::MutableFloatStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MutableFloatStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MutableFloatStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1423,6 +1579,17 @@ void MutableDoubleStructPubSubType::delete_data( delete(reinterpret_cast<::MutableDoubleStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MutableDoubleStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MutableDoubleStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1605,6 +1772,17 @@ void MutableLongDoubleStructPubSubType::delete_data( delete(reinterpret_cast<::MutableLongDoubleStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MutableLongDoubleStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MutableLongDoubleStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1787,6 +1965,17 @@ void MutableBooleanStructPubSubType::delete_data( delete(reinterpret_cast<::MutableBooleanStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MutableBooleanStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MutableBooleanStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1969,6 +2158,17 @@ void MutableOctetStructPubSubType::delete_data( delete(reinterpret_cast<::MutableOctetStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MutableOctetStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MutableOctetStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2151,6 +2351,17 @@ void MutableCharStructPubSubType::delete_data( delete(reinterpret_cast<::MutableCharStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MutableCharStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MutableCharStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2333,6 +2544,17 @@ void MutableWCharStructPubSubType::delete_data( delete(reinterpret_cast<::MutableWCharStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MutableWCharStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MutableWCharStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2515,6 +2737,17 @@ void MutableUnionStructPubSubType::delete_data( delete(reinterpret_cast<::MutableUnionStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MutableUnionStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MutableUnionStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2697,6 +2930,17 @@ void MutableEmptyStructPubSubType::delete_data( delete(reinterpret_cast<::MutableEmptyStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MutableEmptyStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MutableEmptyStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2879,6 +3123,17 @@ void MutableEmptyInheritanceStructPubSubType::delete_data( delete(reinterpret_cast<::MutableEmptyInheritanceStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MutableEmptyInheritanceStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MutableEmptyInheritanceStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3061,6 +3316,17 @@ void MutableInheritanceStructPubSubType::delete_data( delete(reinterpret_cast<::MutableInheritanceStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MutableInheritanceStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MutableInheritanceStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3243,6 +3509,17 @@ void MutableInheritanceEmptyStructPubSubType::delete_data( delete(reinterpret_cast<::MutableInheritanceEmptyStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MutableInheritanceEmptyStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MutableInheritanceEmptyStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3425,6 +3702,17 @@ void MutableExtensibilityInheritancePubSubType::delete_data( delete(reinterpret_cast<::MutableExtensibilityInheritance*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MutableExtensibilityInheritancePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MutableExtensibilityInheritancePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds-types-test/mutablePubSubTypes.hpp b/test/dds-types-test/mutablePubSubTypes.hpp index 651fb06f793..bc63678568d 100644 --- a/test/dds-types-test/mutablePubSubTypes.hpp +++ b/test/dds-types-test/mutablePubSubTypes.hpp @@ -94,12 +94,8 @@ class MutableShortStructPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -176,12 +172,8 @@ class MutableUShortStructPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -258,12 +250,8 @@ class MutableLongStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -340,12 +328,8 @@ class MutableULongStructPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -422,12 +406,8 @@ class MutableLongLongStructPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -504,12 +484,8 @@ class MutableULongLongStructPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -586,12 +562,8 @@ class MutableFloatStructPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -668,12 +640,8 @@ class MutableDoubleStructPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -750,12 +718,8 @@ class MutableLongDoubleStructPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -832,12 +796,8 @@ class MutableBooleanStructPubSubType : public eprosima::fastdds::dds::TopicDataT #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -914,12 +874,8 @@ class MutableOctetStructPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -996,12 +952,8 @@ class MutableCharStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1078,12 +1030,8 @@ class MutableWCharStructPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1160,12 +1108,8 @@ class MutableUnionStructPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1242,12 +1186,8 @@ class MutableEmptyStructPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1324,12 +1264,8 @@ class MutableEmptyInheritanceStructPubSubType : public eprosima::fastdds::dds::T #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1406,12 +1342,8 @@ class MutableInheritanceStructPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1488,12 +1420,8 @@ class MutableInheritanceEmptyStructPubSubType : public eprosima::fastdds::dds::T #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1570,12 +1498,8 @@ class MutableExtensibilityInheritancePubSubType : public eprosima::fastdds::dds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds-types-test/optionalCdrAux.hpp b/test/dds-types-test/optionalCdrAux.hpp index ac26809657d..e28743be4b1 100644 --- a/test/dds-types-test/optionalCdrAux.hpp +++ b/test/dds-types-test/optionalCdrAux.hpp @@ -23,55 +23,22 @@ #define FAST_DDS_GENERATED__OPTIONALCDRAUX_HPP #include "optional.hpp" -constexpr uint32_t ushort_optional_max_cdr_typesize {10UL}; -constexpr uint32_t ushort_optional_max_key_cdr_typesize {0UL}; - constexpr uint32_t boolean_align_2_optional_max_cdr_typesize {13UL}; constexpr uint32_t boolean_align_2_optional_max_key_cdr_typesize {0UL}; -constexpr uint32_t double_align_2_optional_max_cdr_typesize {32UL}; -constexpr uint32_t double_align_2_optional_max_key_cdr_typesize {0UL}; - -constexpr uint32_t ulong_align_4_optional_max_cdr_typesize {16UL}; -constexpr uint32_t ulong_align_4_optional_max_key_cdr_typesize {0UL}; - -constexpr uint32_t char_align_4_optional_max_cdr_typesize {13UL}; -constexpr uint32_t char_align_4_optional_max_key_cdr_typesize {0UL}; - constexpr uint32_t map_short_align_1_optional_max_cdr_typesize {24UL}; constexpr uint32_t map_short_align_1_optional_max_key_cdr_typesize {0UL}; constexpr uint32_t float_align_4_optional_max_cdr_typesize {16UL}; constexpr uint32_t float_align_4_optional_max_key_cdr_typesize {0UL}; -constexpr uint32_t struct_optional_max_cdr_typesize {28UL}; -constexpr uint32_t struct_optional_max_key_cdr_typesize {0UL}; - -constexpr uint32_t opt_struct_align_2_optional_max_cdr_typesize {36UL}; -constexpr uint32_t opt_struct_align_2_optional_max_key_cdr_typesize {0UL}; - -constexpr uint32_t short_align_2_optional_max_cdr_typesize {14UL}; -constexpr uint32_t short_align_2_optional_max_key_cdr_typesize {0UL}; - constexpr uint32_t long_optional_max_cdr_typesize {12UL}; constexpr uint32_t long_optional_max_key_cdr_typesize {0UL}; -constexpr uint32_t ushort_align_2_optional_max_cdr_typesize {14UL}; -constexpr uint32_t ushort_align_2_optional_max_key_cdr_typesize {0UL}; - -constexpr uint32_t float_align_1_optional_max_cdr_typesize {16UL}; -constexpr uint32_t float_align_1_optional_max_key_cdr_typesize {0UL}; - constexpr uint32_t ulong_align_1_optional_max_cdr_typesize {16UL}; constexpr uint32_t ulong_align_1_optional_max_key_cdr_typesize {0UL}; -constexpr uint32_t map_short_align_4_optional_max_cdr_typesize {24UL}; -constexpr uint32_t map_short_align_4_optional_max_key_cdr_typesize {0UL}; - -constexpr uint32_t long_align_1_optional_max_cdr_typesize {16UL}; -constexpr uint32_t long_align_1_optional_max_key_cdr_typesize {0UL}; - constexpr uint32_t ulonglong_optional_max_cdr_typesize {24UL}; constexpr uint32_t ulonglong_optional_max_key_cdr_typesize {0UL}; @@ -90,45 +57,20 @@ constexpr uint32_t ulonglong_align_1_optional_max_key_cdr_typesize {0UL}; constexpr uint32_t octet_align_2_optional_max_cdr_typesize {13UL}; constexpr uint32_t octet_align_2_optional_max_key_cdr_typesize {0UL}; -constexpr uint32_t sequence_short_align_1_optional_max_cdr_typesize {24UL}; -constexpr uint32_t sequence_short_align_1_optional_max_key_cdr_typesize {0UL}; - constexpr uint32_t opt_struct_align_4_optional_max_cdr_typesize {36UL}; constexpr uint32_t opt_struct_align_4_optional_max_key_cdr_typesize {0UL}; -constexpr uint32_t float_align_2_optional_max_cdr_typesize {16UL}; -constexpr uint32_t float_align_2_optional_max_key_cdr_typesize {0UL}; - -constexpr uint32_t longdouble_optional_max_cdr_typesize {32UL}; -constexpr uint32_t longdouble_optional_max_key_cdr_typesize {0UL}; - constexpr uint32_t char_align_2_optional_max_cdr_typesize {13UL}; constexpr uint32_t char_align_2_optional_max_key_cdr_typesize {0UL}; -constexpr uint32_t wchar_align_2_optional_max_cdr_typesize {14UL}; -constexpr uint32_t wchar_align_2_optional_max_key_cdr_typesize {0UL}; - -constexpr uint32_t float_optional_max_cdr_typesize {12UL}; -constexpr uint32_t float_optional_max_key_cdr_typesize {0UL}; - -constexpr uint32_t string_unbounded_align_1_optional_max_cdr_typesize {280UL}; -constexpr uint32_t string_unbounded_align_1_optional_max_key_cdr_typesize {0UL}; - - constexpr uint32_t longdouble_align_1_optional_max_cdr_typesize {40UL}; constexpr uint32_t longdouble_align_1_optional_max_key_cdr_typesize {0UL}; -constexpr uint32_t boolean_align_4_optional_max_cdr_typesize {13UL}; -constexpr uint32_t boolean_align_4_optional_max_key_cdr_typesize {0UL}; - constexpr uint32_t double_align_4_optional_max_cdr_typesize {32UL}; constexpr uint32_t double_align_4_optional_max_key_cdr_typesize {0UL}; -constexpr uint32_t array_short_align_4_optional_max_cdr_typesize {40UL}; -constexpr uint32_t array_short_align_4_optional_max_key_cdr_typesize {0UL}; - constexpr uint32_t opt_struct_optional_max_cdr_typesize {32UL}; constexpr uint32_t opt_struct_optional_max_key_cdr_typesize {0UL}; @@ -136,9 +78,6 @@ constexpr uint32_t string_unbounded_align_2_optional_max_cdr_typesize {280UL}; constexpr uint32_t string_unbounded_align_2_optional_max_key_cdr_typesize {0UL}; -constexpr uint32_t longdouble_align_2_optional_max_cdr_typesize {40UL}; -constexpr uint32_t longdouble_align_2_optional_max_key_cdr_typesize {0UL}; - constexpr uint32_t ulonglong_align_2_optional_max_cdr_typesize {32UL}; constexpr uint32_t ulonglong_align_2_optional_max_key_cdr_typesize {0UL}; @@ -148,12 +87,114 @@ constexpr uint32_t longlong_align_2_optional_max_cdr_typesize {32UL}; constexpr uint32_t longlong_align_2_optional_max_key_cdr_typesize {0UL}; -constexpr uint32_t string_bounded_optional_max_cdr_typesize {29UL}; -constexpr uint32_t string_bounded_optional_max_key_cdr_typesize {0UL}; - constexpr uint32_t ulong_optional_max_cdr_typesize {12UL}; constexpr uint32_t ulong_optional_max_key_cdr_typesize {0UL}; +constexpr uint32_t short_align_4_optional_max_cdr_typesize {14UL}; +constexpr uint32_t short_align_4_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t array_short_align_1_optional_max_cdr_typesize {40UL}; +constexpr uint32_t array_short_align_1_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t octet_optional_max_cdr_typesize {9UL}; +constexpr uint32_t octet_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t short_align_1_optional_max_cdr_typesize {14UL}; +constexpr uint32_t short_align_1_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t string_bounded_align_4_optional_max_cdr_typesize {33UL}; +constexpr uint32_t string_bounded_align_4_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t sequence_short_align_2_optional_max_cdr_typesize {24UL}; +constexpr uint32_t sequence_short_align_2_optional_max_key_cdr_typesize {0UL}; + + +constexpr uint32_t ulonglong_align_4_optional_max_cdr_typesize {32UL}; +constexpr uint32_t ulonglong_align_4_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t sequence_short_align_4_optional_max_cdr_typesize {24UL}; +constexpr uint32_t sequence_short_align_4_optional_max_key_cdr_typesize {0UL}; + + +constexpr uint32_t boolean_align_1_optional_max_cdr_typesize {13UL}; +constexpr uint32_t boolean_align_1_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t string_bounded_align_2_optional_max_cdr_typesize {33UL}; +constexpr uint32_t string_bounded_align_2_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t map_short_optional_max_cdr_typesize {20UL}; +constexpr uint32_t map_short_optional_max_key_cdr_typesize {0UL}; + + +constexpr uint32_t short_optional_max_cdr_typesize {10UL}; +constexpr uint32_t short_optional_max_key_cdr_typesize {0UL}; + + +constexpr uint32_t ushort_optional_max_cdr_typesize {10UL}; +constexpr uint32_t ushort_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t double_align_2_optional_max_cdr_typesize {32UL}; +constexpr uint32_t double_align_2_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t ulong_align_4_optional_max_cdr_typesize {16UL}; +constexpr uint32_t ulong_align_4_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t char_align_4_optional_max_cdr_typesize {13UL}; +constexpr uint32_t char_align_4_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t struct_optional_max_cdr_typesize {28UL}; +constexpr uint32_t struct_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t opt_struct_align_2_optional_max_cdr_typesize {36UL}; +constexpr uint32_t opt_struct_align_2_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t short_align_2_optional_max_cdr_typesize {14UL}; +constexpr uint32_t short_align_2_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t ushort_align_2_optional_max_cdr_typesize {14UL}; +constexpr uint32_t ushort_align_2_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t float_align_1_optional_max_cdr_typesize {16UL}; +constexpr uint32_t float_align_1_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t map_short_align_4_optional_max_cdr_typesize {24UL}; +constexpr uint32_t map_short_align_4_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t long_align_1_optional_max_cdr_typesize {16UL}; +constexpr uint32_t long_align_1_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t sequence_short_align_1_optional_max_cdr_typesize {24UL}; +constexpr uint32_t sequence_short_align_1_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t float_align_2_optional_max_cdr_typesize {16UL}; +constexpr uint32_t float_align_2_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t longdouble_optional_max_cdr_typesize {32UL}; +constexpr uint32_t longdouble_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t wchar_align_2_optional_max_cdr_typesize {14UL}; +constexpr uint32_t wchar_align_2_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t float_optional_max_cdr_typesize {12UL}; +constexpr uint32_t float_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t string_unbounded_align_1_optional_max_cdr_typesize {280UL}; +constexpr uint32_t string_unbounded_align_1_optional_max_key_cdr_typesize {0UL}; + + +constexpr uint32_t boolean_align_4_optional_max_cdr_typesize {13UL}; +constexpr uint32_t boolean_align_4_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t array_short_align_4_optional_max_cdr_typesize {40UL}; +constexpr uint32_t array_short_align_4_optional_max_key_cdr_typesize {0UL}; + + +constexpr uint32_t longdouble_align_2_optional_max_cdr_typesize {40UL}; +constexpr uint32_t longdouble_align_2_optional_max_key_cdr_typesize {0UL}; + +constexpr uint32_t string_bounded_optional_max_cdr_typesize {29UL}; +constexpr uint32_t string_bounded_optional_max_key_cdr_typesize {0UL}; + constexpr uint32_t wchar_align_4_optional_max_cdr_typesize {14UL}; constexpr uint32_t wchar_align_4_optional_max_key_cdr_typesize {0UL}; @@ -184,9 +225,6 @@ constexpr uint32_t longlong_align_4_optional_max_key_cdr_typesize {0UL}; constexpr uint32_t wchar_align_1_optional_max_cdr_typesize {14UL}; constexpr uint32_t wchar_align_1_optional_max_key_cdr_typesize {0UL}; -constexpr uint32_t short_align_4_optional_max_cdr_typesize {14UL}; -constexpr uint32_t short_align_4_optional_max_key_cdr_typesize {0UL}; - constexpr uint32_t InnerStructOptional_max_cdr_typesize {16UL}; constexpr uint32_t InnerStructOptional_max_key_cdr_typesize {0UL}; @@ -196,34 +234,13 @@ constexpr uint32_t octet_align_4_optional_max_key_cdr_typesize {0UL}; constexpr uint32_t octet_align_1_optional_max_cdr_typesize {13UL}; constexpr uint32_t octet_align_1_optional_max_key_cdr_typesize {0UL}; -constexpr uint32_t array_short_align_1_optional_max_cdr_typesize {40UL}; -constexpr uint32_t array_short_align_1_optional_max_key_cdr_typesize {0UL}; - -constexpr uint32_t octet_optional_max_cdr_typesize {9UL}; -constexpr uint32_t octet_optional_max_key_cdr_typesize {0UL}; - constexpr uint32_t ulong_align_2_optional_max_cdr_typesize {16UL}; constexpr uint32_t ulong_align_2_optional_max_key_cdr_typesize {0UL}; -constexpr uint32_t short_align_1_optional_max_cdr_typesize {14UL}; -constexpr uint32_t short_align_1_optional_max_key_cdr_typesize {0UL}; - -constexpr uint32_t string_bounded_align_4_optional_max_cdr_typesize {33UL}; -constexpr uint32_t string_bounded_align_4_optional_max_key_cdr_typesize {0UL}; - -constexpr uint32_t sequence_short_align_2_optional_max_cdr_typesize {24UL}; -constexpr uint32_t sequence_short_align_2_optional_max_key_cdr_typesize {0UL}; - constexpr uint32_t struct_align_4_optional_max_cdr_typesize {32UL}; constexpr uint32_t struct_align_4_optional_max_key_cdr_typesize {0UL}; -constexpr uint32_t ulonglong_align_4_optional_max_cdr_typesize {32UL}; -constexpr uint32_t ulonglong_align_4_optional_max_key_cdr_typesize {0UL}; - -constexpr uint32_t sequence_short_align_4_optional_max_cdr_typesize {24UL}; -constexpr uint32_t sequence_short_align_4_optional_max_key_cdr_typesize {0UL}; - constexpr uint32_t opt_struct_align_1_optional_max_cdr_typesize {36UL}; constexpr uint32_t opt_struct_align_1_optional_max_key_cdr_typesize {0UL}; @@ -236,26 +253,12 @@ constexpr uint32_t double_optional_max_key_cdr_typesize {0UL}; constexpr uint32_t wchar_optional_max_cdr_typesize {10UL}; constexpr uint32_t wchar_optional_max_key_cdr_typesize {0UL}; - -constexpr uint32_t boolean_align_1_optional_max_cdr_typesize {13UL}; -constexpr uint32_t boolean_align_1_optional_max_key_cdr_typesize {0UL}; - -constexpr uint32_t string_bounded_align_2_optional_max_cdr_typesize {33UL}; -constexpr uint32_t string_bounded_align_2_optional_max_key_cdr_typesize {0UL}; - -constexpr uint32_t map_short_optional_max_cdr_typesize {20UL}; -constexpr uint32_t map_short_optional_max_key_cdr_typesize {0UL}; - - constexpr uint32_t boolean_optional_max_cdr_typesize {9UL}; constexpr uint32_t boolean_optional_max_key_cdr_typesize {0UL}; constexpr uint32_t double_align_1_optional_max_cdr_typesize {32UL}; constexpr uint32_t double_align_1_optional_max_key_cdr_typesize {0UL}; -constexpr uint32_t short_optional_max_cdr_typesize {10UL}; -constexpr uint32_t short_optional_max_key_cdr_typesize {0UL}; - constexpr uint32_t ushort_align_4_optional_max_cdr_typesize {14UL}; @@ -277,7 +280,6 @@ constexpr uint32_t string_unbounded_optional_max_cdr_typesize {276UL}; constexpr uint32_t string_unbounded_optional_max_key_cdr_typesize {0UL}; - constexpr uint32_t map_short_align_2_optional_max_cdr_typesize {24UL}; constexpr uint32_t map_short_align_2_optional_max_key_cdr_typesize {0UL}; @@ -292,327 +294,408 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const short_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ushort_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const long_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ulong_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const longlong_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ulonglong_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const float_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const double_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const longdouble_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const boolean_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const octet_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const char_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const wchar_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const short_align_1_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const short_align_2_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const short_align_4_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ushort_align_1_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ushort_align_2_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ushort_align_4_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const long_align_1_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const long_align_2_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const long_align_4_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ulong_align_1_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ulong_align_2_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ulong_align_4_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const longlong_align_1_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const longlong_align_2_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const longlong_align_4_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ulonglong_align_1_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ulonglong_align_2_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ulonglong_align_4_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const float_align_1_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const float_align_2_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const float_align_4_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const double_align_1_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const double_align_2_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const double_align_4_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const longdouble_align_1_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const longdouble_align_2_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const longdouble_align_4_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const boolean_align_1_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const boolean_align_2_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const boolean_align_4_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const octet_align_1_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const octet_align_2_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const octet_align_4_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const char_align_1_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const char_align_2_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const char_align_4_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const wchar_align_1_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const wchar_align_2_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const wchar_align_4_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const sequence_short_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const sequence_short_align_1_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const sequence_short_align_2_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const sequence_short_align_4_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const string_unbounded_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const string_unbounded_align_1_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const string_unbounded_align_2_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const string_unbounded_align_4_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const string_bounded_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const string_bounded_align_1_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const string_bounded_align_2_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const string_bounded_align_4_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const map_short_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const map_short_align_1_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const map_short_align_2_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const map_short_align_4_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const array_short_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const array_short_align_1_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const array_short_align_2_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const array_short_align_4_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const struct_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const struct_align_1_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const struct_align_2_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const struct_align_4_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const InnerStructOptional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const opt_struct_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const opt_struct_align_1_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const opt_struct_align_2_optional& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const opt_struct_align_4_optional& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/optionalCdrAux.ipp b/test/dds-types-test/optionalCdrAux.ipp index 30414b19ac0..e50c3d349b0 100644 --- a/test/dds-types-test/optionalCdrAux.ipp +++ b/test/dds-types-test/optionalCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_short_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const short_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_short_optional_cdr_plain(data_representation) && + sizeof(short_optional) == short_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(short_optional)); + + scdr.jump((array_size -1) * sizeof(short_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + short_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_short_optional_cdr_plain(data_representation) && + sizeof(short_optional) == short_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(short_optional)); + + scdr.jump((array_size - 1) * sizeof(short_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const short_optional& data) @@ -116,6 +199,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ushort_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -158,6 +249,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ushort_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ushort_optional_cdr_plain(data_representation) && + sizeof(ushort_optional) == ushort_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ushort_optional)); + + scdr.jump((array_size -1) * sizeof(ushort_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -183,6 +312,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ushort_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ushort_optional_cdr_plain(data_representation) && + sizeof(ushort_optional) == ushort_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ushort_optional)); + + scdr.jump((array_size - 1) * sizeof(ushort_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ushort_optional& data) @@ -198,6 +363,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_long_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -240,6 +413,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const long_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_long_optional_cdr_plain(data_representation) && + sizeof(long_optional) == long_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(long_optional)); + + scdr.jump((array_size -1) * sizeof(long_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -265,6 +476,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + long_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_long_optional_cdr_plain(data_representation) && + sizeof(long_optional) == long_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(long_optional)); + + scdr.jump((array_size - 1) * sizeof(long_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const long_optional& data) @@ -280,6 +527,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ulong_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -322,6 +577,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ulong_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ulong_optional_cdr_plain(data_representation) && + sizeof(ulong_optional) == ulong_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ulong_optional)); + + scdr.jump((array_size -1) * sizeof(ulong_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -347,6 +640,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ulong_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ulong_optional_cdr_plain(data_representation) && + sizeof(ulong_optional) == ulong_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ulong_optional)); + + scdr.jump((array_size - 1) * sizeof(ulong_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ulong_optional& data) @@ -362,6 +691,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_longlong_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -404,6 +741,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const longlong_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_longlong_optional_cdr_plain(data_representation) && + sizeof(longlong_optional) == longlong_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(longlong_optional)); + + scdr.jump((array_size -1) * sizeof(longlong_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -429,6 +804,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + longlong_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_longlong_optional_cdr_plain(data_representation) && + sizeof(longlong_optional) == longlong_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(longlong_optional)); + + scdr.jump((array_size - 1) * sizeof(longlong_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const longlong_optional& data) @@ -444,6 +855,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ulonglong_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -486,6 +905,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ulonglong_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ulonglong_optional_cdr_plain(data_representation) && + sizeof(ulonglong_optional) == ulonglong_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ulonglong_optional)); + + scdr.jump((array_size -1) * sizeof(ulonglong_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -511,6 +968,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ulonglong_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ulonglong_optional_cdr_plain(data_representation) && + sizeof(ulonglong_optional) == ulonglong_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ulonglong_optional)); + + scdr.jump((array_size - 1) * sizeof(ulonglong_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ulonglong_optional& data) @@ -526,6 +1019,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_float_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -568,6 +1069,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const float_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_float_optional_cdr_plain(data_representation) && + sizeof(float_optional) == float_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(float_optional)); + + scdr.jump((array_size -1) * sizeof(float_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -593,6 +1132,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + float_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_float_optional_cdr_plain(data_representation) && + sizeof(float_optional) == float_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(float_optional)); + + scdr.jump((array_size - 1) * sizeof(float_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const float_optional& data) @@ -608,6 +1183,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_double_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -650,6 +1233,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const double_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_double_optional_cdr_plain(data_representation) && + sizeof(double_optional) == double_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(double_optional)); + + scdr.jump((array_size -1) * sizeof(double_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -675,6 +1296,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + double_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_double_optional_cdr_plain(data_representation) && + sizeof(double_optional) == double_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(double_optional)); + + scdr.jump((array_size - 1) * sizeof(double_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const double_optional& data) @@ -690,6 +1347,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_longdouble_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -732,6 +1397,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const longdouble_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_longdouble_optional_cdr_plain(data_representation) && + sizeof(longdouble_optional) == longdouble_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(longdouble_optional)); + + scdr.jump((array_size -1) * sizeof(longdouble_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -757,6 +1460,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + longdouble_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_longdouble_optional_cdr_plain(data_representation) && + sizeof(longdouble_optional) == longdouble_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(longdouble_optional)); + + scdr.jump((array_size - 1) * sizeof(longdouble_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const longdouble_optional& data) @@ -772,6 +1511,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_boolean_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -814,6 +1561,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const boolean_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_boolean_optional_cdr_plain(data_representation) && + sizeof(boolean_optional) == boolean_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(boolean_optional)); + + scdr.jump((array_size -1) * sizeof(boolean_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -839,6 +1624,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + boolean_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_boolean_optional_cdr_plain(data_representation) && + sizeof(boolean_optional) == boolean_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(boolean_optional)); + + scdr.jump((array_size - 1) * sizeof(boolean_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const boolean_optional& data) @@ -854,6 +1675,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_octet_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -896,6 +1725,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const octet_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_octet_optional_cdr_plain(data_representation) && + sizeof(octet_optional) == octet_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(octet_optional)); + + scdr.jump((array_size -1) * sizeof(octet_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -921,6 +1788,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + octet_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_octet_optional_cdr_plain(data_representation) && + sizeof(octet_optional) == octet_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(octet_optional)); + + scdr.jump((array_size - 1) * sizeof(octet_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const octet_optional& data) @@ -936,6 +1839,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_char_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -978,6 +1889,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const char_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_char_optional_cdr_plain(data_representation) && + sizeof(char_optional) == char_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(char_optional)); + + scdr.jump((array_size -1) * sizeof(char_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1003,6 +1952,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + char_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_char_optional_cdr_plain(data_representation) && + sizeof(char_optional) == char_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(char_optional)); + + scdr.jump((array_size - 1) * sizeof(char_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const char_optional& data) @@ -1018,6 +2003,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_wchar_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1060,6 +2053,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const wchar_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_wchar_optional_cdr_plain(data_representation) && + sizeof(wchar_optional) == wchar_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(wchar_optional)); + + scdr.jump((array_size -1) * sizeof(wchar_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1085,6 +2116,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + wchar_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_wchar_optional_cdr_plain(data_representation) && + sizeof(wchar_optional) == wchar_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(wchar_optional)); + + scdr.jump((array_size - 1) * sizeof(wchar_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const wchar_optional& data) @@ -1100,6 +2167,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_short_align_1_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1146,6 +2221,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const short_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_short_align_1_optional_cdr_plain(data_representation) && + sizeof(short_align_1_optional) == short_align_1_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(short_align_1_optional)); + + scdr.jump((array_size -1) * sizeof(short_align_1_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1175,6 +2288,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + short_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_short_align_1_optional_cdr_plain(data_representation) && + sizeof(short_align_1_optional) == short_align_1_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(short_align_1_optional)); + + scdr.jump((array_size - 1) * sizeof(short_align_1_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const short_align_1_optional& data) @@ -1192,6 +2341,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_short_align_2_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1238,6 +2395,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const short_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_short_align_2_optional_cdr_plain(data_representation) && + sizeof(short_align_2_optional) == short_align_2_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(short_align_2_optional)); + + scdr.jump((array_size -1) * sizeof(short_align_2_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1267,6 +2462,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + short_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_short_align_2_optional_cdr_plain(data_representation) && + sizeof(short_align_2_optional) == short_align_2_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(short_align_2_optional)); + + scdr.jump((array_size - 1) * sizeof(short_align_2_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const short_align_2_optional& data) @@ -1284,6 +2515,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_short_align_4_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1330,6 +2569,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const short_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_short_align_4_optional_cdr_plain(data_representation) && + sizeof(short_align_4_optional) == short_align_4_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(short_align_4_optional)); + + scdr.jump((array_size -1) * sizeof(short_align_4_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1359,6 +2636,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + short_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_short_align_4_optional_cdr_plain(data_representation) && + sizeof(short_align_4_optional) == short_align_4_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(short_align_4_optional)); + + scdr.jump((array_size - 1) * sizeof(short_align_4_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const short_align_4_optional& data) @@ -1376,6 +2689,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ushort_align_1_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1422,6 +2743,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ushort_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ushort_align_1_optional_cdr_plain(data_representation) && + sizeof(ushort_align_1_optional) == ushort_align_1_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ushort_align_1_optional)); + + scdr.jump((array_size -1) * sizeof(ushort_align_1_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1451,6 +2810,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ushort_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ushort_align_1_optional_cdr_plain(data_representation) && + sizeof(ushort_align_1_optional) == ushort_align_1_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ushort_align_1_optional)); + + scdr.jump((array_size - 1) * sizeof(ushort_align_1_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ushort_align_1_optional& data) @@ -1468,6 +2863,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ushort_align_2_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1514,6 +2917,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ushort_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ushort_align_2_optional_cdr_plain(data_representation) && + sizeof(ushort_align_2_optional) == ushort_align_2_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ushort_align_2_optional)); + + scdr.jump((array_size -1) * sizeof(ushort_align_2_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1543,6 +2984,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ushort_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ushort_align_2_optional_cdr_plain(data_representation) && + sizeof(ushort_align_2_optional) == ushort_align_2_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ushort_align_2_optional)); + + scdr.jump((array_size - 1) * sizeof(ushort_align_2_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ushort_align_2_optional& data) @@ -1560,6 +3037,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ushort_align_4_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1606,6 +3091,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ushort_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ushort_align_4_optional_cdr_plain(data_representation) && + sizeof(ushort_align_4_optional) == ushort_align_4_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ushort_align_4_optional)); + + scdr.jump((array_size -1) * sizeof(ushort_align_4_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1635,6 +3158,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ushort_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ushort_align_4_optional_cdr_plain(data_representation) && + sizeof(ushort_align_4_optional) == ushort_align_4_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ushort_align_4_optional)); + + scdr.jump((array_size - 1) * sizeof(ushort_align_4_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ushort_align_4_optional& data) @@ -1652,6 +3211,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_long_align_1_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1698,6 +3265,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const long_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_long_align_1_optional_cdr_plain(data_representation) && + sizeof(long_align_1_optional) == long_align_1_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(long_align_1_optional)); + + scdr.jump((array_size -1) * sizeof(long_align_1_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1727,6 +3332,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + long_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_long_align_1_optional_cdr_plain(data_representation) && + sizeof(long_align_1_optional) == long_align_1_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(long_align_1_optional)); + + scdr.jump((array_size - 1) * sizeof(long_align_1_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const long_align_1_optional& data) @@ -1744,6 +3385,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_long_align_2_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1790,6 +3439,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const long_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_long_align_2_optional_cdr_plain(data_representation) && + sizeof(long_align_2_optional) == long_align_2_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(long_align_2_optional)); + + scdr.jump((array_size -1) * sizeof(long_align_2_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1819,6 +3506,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + long_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_long_align_2_optional_cdr_plain(data_representation) && + sizeof(long_align_2_optional) == long_align_2_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(long_align_2_optional)); + + scdr.jump((array_size - 1) * sizeof(long_align_2_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const long_align_2_optional& data) @@ -1836,6 +3559,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_long_align_4_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1882,6 +3613,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const long_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_long_align_4_optional_cdr_plain(data_representation) && + sizeof(long_align_4_optional) == long_align_4_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(long_align_4_optional)); + + scdr.jump((array_size -1) * sizeof(long_align_4_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1911,6 +3680,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + long_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_long_align_4_optional_cdr_plain(data_representation) && + sizeof(long_align_4_optional) == long_align_4_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(long_align_4_optional)); + + scdr.jump((array_size - 1) * sizeof(long_align_4_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const long_align_4_optional& data) @@ -1928,6 +3733,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ulong_align_1_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1974,6 +3787,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ulong_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ulong_align_1_optional_cdr_plain(data_representation) && + sizeof(ulong_align_1_optional) == ulong_align_1_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ulong_align_1_optional)); + + scdr.jump((array_size -1) * sizeof(ulong_align_1_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2003,6 +3854,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ulong_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ulong_align_1_optional_cdr_plain(data_representation) && + sizeof(ulong_align_1_optional) == ulong_align_1_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ulong_align_1_optional)); + + scdr.jump((array_size - 1) * sizeof(ulong_align_1_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ulong_align_1_optional& data) @@ -2020,6 +3907,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ulong_align_2_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2066,6 +3961,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ulong_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ulong_align_2_optional_cdr_plain(data_representation) && + sizeof(ulong_align_2_optional) == ulong_align_2_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ulong_align_2_optional)); + + scdr.jump((array_size -1) * sizeof(ulong_align_2_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2095,6 +4028,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ulong_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ulong_align_2_optional_cdr_plain(data_representation) && + sizeof(ulong_align_2_optional) == ulong_align_2_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ulong_align_2_optional)); + + scdr.jump((array_size - 1) * sizeof(ulong_align_2_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ulong_align_2_optional& data) @@ -2112,6 +4081,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ulong_align_4_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2158,6 +4135,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ulong_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ulong_align_4_optional_cdr_plain(data_representation) && + sizeof(ulong_align_4_optional) == ulong_align_4_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ulong_align_4_optional)); + + scdr.jump((array_size -1) * sizeof(ulong_align_4_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2187,6 +4202,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ulong_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ulong_align_4_optional_cdr_plain(data_representation) && + sizeof(ulong_align_4_optional) == ulong_align_4_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ulong_align_4_optional)); + + scdr.jump((array_size - 1) * sizeof(ulong_align_4_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ulong_align_4_optional& data) @@ -2204,6 +4255,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_longlong_align_1_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2250,6 +4309,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const longlong_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_longlong_align_1_optional_cdr_plain(data_representation) && + sizeof(longlong_align_1_optional) == longlong_align_1_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(longlong_align_1_optional)); + + scdr.jump((array_size -1) * sizeof(longlong_align_1_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2279,6 +4376,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + longlong_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_longlong_align_1_optional_cdr_plain(data_representation) && + sizeof(longlong_align_1_optional) == longlong_align_1_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(longlong_align_1_optional)); + + scdr.jump((array_size - 1) * sizeof(longlong_align_1_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const longlong_align_1_optional& data) @@ -2296,6 +4429,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_longlong_align_2_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2342,6 +4483,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const longlong_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_longlong_align_2_optional_cdr_plain(data_representation) && + sizeof(longlong_align_2_optional) == longlong_align_2_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(longlong_align_2_optional)); + + scdr.jump((array_size -1) * sizeof(longlong_align_2_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2371,6 +4550,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + longlong_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_longlong_align_2_optional_cdr_plain(data_representation) && + sizeof(longlong_align_2_optional) == longlong_align_2_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(longlong_align_2_optional)); + + scdr.jump((array_size - 1) * sizeof(longlong_align_2_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const longlong_align_2_optional& data) @@ -2388,6 +4603,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_longlong_align_4_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2434,6 +4657,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const longlong_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_longlong_align_4_optional_cdr_plain(data_representation) && + sizeof(longlong_align_4_optional) == longlong_align_4_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(longlong_align_4_optional)); + + scdr.jump((array_size -1) * sizeof(longlong_align_4_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2463,6 +4724,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + longlong_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_longlong_align_4_optional_cdr_plain(data_representation) && + sizeof(longlong_align_4_optional) == longlong_align_4_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(longlong_align_4_optional)); + + scdr.jump((array_size - 1) * sizeof(longlong_align_4_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const longlong_align_4_optional& data) @@ -2480,6 +4777,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ulonglong_align_1_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2526,6 +4831,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ulonglong_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ulonglong_align_1_optional_cdr_plain(data_representation) && + sizeof(ulonglong_align_1_optional) == ulonglong_align_1_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ulonglong_align_1_optional)); + + scdr.jump((array_size -1) * sizeof(ulonglong_align_1_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2555,6 +4898,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ulonglong_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ulonglong_align_1_optional_cdr_plain(data_representation) && + sizeof(ulonglong_align_1_optional) == ulonglong_align_1_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ulonglong_align_1_optional)); + + scdr.jump((array_size - 1) * sizeof(ulonglong_align_1_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ulonglong_align_1_optional& data) @@ -2572,6 +4951,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ulonglong_align_2_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2618,6 +5005,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ulonglong_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ulonglong_align_2_optional_cdr_plain(data_representation) && + sizeof(ulonglong_align_2_optional) == ulonglong_align_2_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ulonglong_align_2_optional)); + + scdr.jump((array_size -1) * sizeof(ulonglong_align_2_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2647,6 +5072,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ulonglong_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ulonglong_align_2_optional_cdr_plain(data_representation) && + sizeof(ulonglong_align_2_optional) == ulonglong_align_2_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ulonglong_align_2_optional)); + + scdr.jump((array_size - 1) * sizeof(ulonglong_align_2_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ulonglong_align_2_optional& data) @@ -2664,6 +5125,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ulonglong_align_4_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2710,6 +5179,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ulonglong_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ulonglong_align_4_optional_cdr_plain(data_representation) && + sizeof(ulonglong_align_4_optional) == ulonglong_align_4_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ulonglong_align_4_optional)); + + scdr.jump((array_size -1) * sizeof(ulonglong_align_4_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2739,6 +5246,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ulonglong_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ulonglong_align_4_optional_cdr_plain(data_representation) && + sizeof(ulonglong_align_4_optional) == ulonglong_align_4_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ulonglong_align_4_optional)); + + scdr.jump((array_size - 1) * sizeof(ulonglong_align_4_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ulonglong_align_4_optional& data) @@ -2756,6 +5299,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_float_align_1_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2802,6 +5353,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const float_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_float_align_1_optional_cdr_plain(data_representation) && + sizeof(float_align_1_optional) == float_align_1_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(float_align_1_optional)); + + scdr.jump((array_size -1) * sizeof(float_align_1_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2831,6 +5420,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + float_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_float_align_1_optional_cdr_plain(data_representation) && + sizeof(float_align_1_optional) == float_align_1_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(float_align_1_optional)); + + scdr.jump((array_size - 1) * sizeof(float_align_1_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const float_align_1_optional& data) @@ -2848,6 +5473,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_float_align_2_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2887,12 +5520,50 @@ eProsima_user_DllExport void serialize( eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); - scdr - << eprosima::fastcdr::MemberId(0) << data.align() - << eprosima::fastcdr::MemberId(1) << data.value() -; - scdr.end_serialize_type(current_state); + scdr + << eprosima::fastcdr::MemberId(0) << data.align() + << eprosima::fastcdr::MemberId(1) << data.value() +; + scdr.end_serialize_type(current_state); +} + +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const float_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_float_align_2_optional_cdr_plain(data_representation) && + sizeof(float_align_2_optional) == float_align_2_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(float_align_2_optional)); + + scdr.jump((array_size -1) * sizeof(float_align_2_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } } +#endif // FASTCDR_VERSION_MAJOR > 2 template<> eProsima_user_DllExport void deserialize( @@ -2923,6 +5594,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + float_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_float_align_2_optional_cdr_plain(data_representation) && + sizeof(float_align_2_optional) == float_align_2_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(float_align_2_optional)); + + scdr.jump((array_size - 1) * sizeof(float_align_2_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const float_align_2_optional& data) @@ -2940,6 +5647,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_float_align_4_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2986,6 +5701,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const float_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_float_align_4_optional_cdr_plain(data_representation) && + sizeof(float_align_4_optional) == float_align_4_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(float_align_4_optional)); + + scdr.jump((array_size -1) * sizeof(float_align_4_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3015,6 +5768,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + float_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_float_align_4_optional_cdr_plain(data_representation) && + sizeof(float_align_4_optional) == float_align_4_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(float_align_4_optional)); + + scdr.jump((array_size - 1) * sizeof(float_align_4_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const float_align_4_optional& data) @@ -3032,6 +5821,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_double_align_1_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3078,6 +5875,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const double_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_double_align_1_optional_cdr_plain(data_representation) && + sizeof(double_align_1_optional) == double_align_1_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(double_align_1_optional)); + + scdr.jump((array_size -1) * sizeof(double_align_1_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3107,6 +5942,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + double_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_double_align_1_optional_cdr_plain(data_representation) && + sizeof(double_align_1_optional) == double_align_1_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(double_align_1_optional)); + + scdr.jump((array_size - 1) * sizeof(double_align_1_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const double_align_1_optional& data) @@ -3124,6 +5995,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_double_align_2_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3170,6 +6049,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const double_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_double_align_2_optional_cdr_plain(data_representation) && + sizeof(double_align_2_optional) == double_align_2_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(double_align_2_optional)); + + scdr.jump((array_size -1) * sizeof(double_align_2_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3199,6 +6116,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + double_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_double_align_2_optional_cdr_plain(data_representation) && + sizeof(double_align_2_optional) == double_align_2_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(double_align_2_optional)); + + scdr.jump((array_size - 1) * sizeof(double_align_2_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const double_align_2_optional& data) @@ -3216,6 +6169,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_double_align_4_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3262,6 +6223,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const double_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_double_align_4_optional_cdr_plain(data_representation) && + sizeof(double_align_4_optional) == double_align_4_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(double_align_4_optional)); + + scdr.jump((array_size -1) * sizeof(double_align_4_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3291,6 +6290,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + double_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_double_align_4_optional_cdr_plain(data_representation) && + sizeof(double_align_4_optional) == double_align_4_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(double_align_4_optional)); + + scdr.jump((array_size - 1) * sizeof(double_align_4_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const double_align_4_optional& data) @@ -3308,6 +6343,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_longdouble_align_1_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3354,6 +6397,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const longdouble_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_longdouble_align_1_optional_cdr_plain(data_representation) && + sizeof(longdouble_align_1_optional) == longdouble_align_1_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(longdouble_align_1_optional)); + + scdr.jump((array_size -1) * sizeof(longdouble_align_1_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3383,6 +6464,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + longdouble_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_longdouble_align_1_optional_cdr_plain(data_representation) && + sizeof(longdouble_align_1_optional) == longdouble_align_1_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(longdouble_align_1_optional)); + + scdr.jump((array_size - 1) * sizeof(longdouble_align_1_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const longdouble_align_1_optional& data) @@ -3400,6 +6517,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_longdouble_align_2_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3446,6 +6571,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const longdouble_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_longdouble_align_2_optional_cdr_plain(data_representation) && + sizeof(longdouble_align_2_optional) == longdouble_align_2_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(longdouble_align_2_optional)); + + scdr.jump((array_size -1) * sizeof(longdouble_align_2_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3475,6 +6638,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + longdouble_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_longdouble_align_2_optional_cdr_plain(data_representation) && + sizeof(longdouble_align_2_optional) == longdouble_align_2_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(longdouble_align_2_optional)); + + scdr.jump((array_size - 1) * sizeof(longdouble_align_2_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const longdouble_align_2_optional& data) @@ -3492,6 +6691,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_longdouble_align_4_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3538,6 +6745,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const longdouble_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_longdouble_align_4_optional_cdr_plain(data_representation) && + sizeof(longdouble_align_4_optional) == longdouble_align_4_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(longdouble_align_4_optional)); + + scdr.jump((array_size -1) * sizeof(longdouble_align_4_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3567,6 +6812,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + longdouble_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_longdouble_align_4_optional_cdr_plain(data_representation) && + sizeof(longdouble_align_4_optional) == longdouble_align_4_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(longdouble_align_4_optional)); + + scdr.jump((array_size - 1) * sizeof(longdouble_align_4_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const longdouble_align_4_optional& data) @@ -3584,6 +6865,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_boolean_align_1_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3630,6 +6919,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const boolean_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_boolean_align_1_optional_cdr_plain(data_representation) && + sizeof(boolean_align_1_optional) == boolean_align_1_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(boolean_align_1_optional)); + + scdr.jump((array_size -1) * sizeof(boolean_align_1_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3659,6 +6986,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + boolean_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_boolean_align_1_optional_cdr_plain(data_representation) && + sizeof(boolean_align_1_optional) == boolean_align_1_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(boolean_align_1_optional)); + + scdr.jump((array_size - 1) * sizeof(boolean_align_1_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const boolean_align_1_optional& data) @@ -3676,6 +7039,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_boolean_align_2_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3722,6 +7093,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const boolean_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_boolean_align_2_optional_cdr_plain(data_representation) && + sizeof(boolean_align_2_optional) == boolean_align_2_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(boolean_align_2_optional)); + + scdr.jump((array_size -1) * sizeof(boolean_align_2_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3751,6 +7160,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + boolean_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_boolean_align_2_optional_cdr_plain(data_representation) && + sizeof(boolean_align_2_optional) == boolean_align_2_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(boolean_align_2_optional)); + + scdr.jump((array_size - 1) * sizeof(boolean_align_2_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const boolean_align_2_optional& data) @@ -3768,6 +7213,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_boolean_align_4_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3814,6 +7267,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const boolean_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_boolean_align_4_optional_cdr_plain(data_representation) && + sizeof(boolean_align_4_optional) == boolean_align_4_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(boolean_align_4_optional)); + + scdr.jump((array_size -1) * sizeof(boolean_align_4_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3843,6 +7334,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + boolean_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_boolean_align_4_optional_cdr_plain(data_representation) && + sizeof(boolean_align_4_optional) == boolean_align_4_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(boolean_align_4_optional)); + + scdr.jump((array_size - 1) * sizeof(boolean_align_4_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const boolean_align_4_optional& data) @@ -3860,6 +7387,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_octet_align_1_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3906,6 +7441,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const octet_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_octet_align_1_optional_cdr_plain(data_representation) && + sizeof(octet_align_1_optional) == octet_align_1_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(octet_align_1_optional)); + + scdr.jump((array_size -1) * sizeof(octet_align_1_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3935,6 +7508,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + octet_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_octet_align_1_optional_cdr_plain(data_representation) && + sizeof(octet_align_1_optional) == octet_align_1_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(octet_align_1_optional)); + + scdr.jump((array_size - 1) * sizeof(octet_align_1_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const octet_align_1_optional& data) @@ -3952,6 +7561,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_octet_align_2_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3998,6 +7615,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const octet_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_octet_align_2_optional_cdr_plain(data_representation) && + sizeof(octet_align_2_optional) == octet_align_2_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(octet_align_2_optional)); + + scdr.jump((array_size -1) * sizeof(octet_align_2_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4027,6 +7682,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + octet_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_octet_align_2_optional_cdr_plain(data_representation) && + sizeof(octet_align_2_optional) == octet_align_2_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(octet_align_2_optional)); + + scdr.jump((array_size - 1) * sizeof(octet_align_2_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const octet_align_2_optional& data) @@ -4044,6 +7735,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_octet_align_4_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4090,6 +7789,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const octet_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_octet_align_4_optional_cdr_plain(data_representation) && + sizeof(octet_align_4_optional) == octet_align_4_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(octet_align_4_optional)); + + scdr.jump((array_size -1) * sizeof(octet_align_4_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4119,6 +7856,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + octet_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_octet_align_4_optional_cdr_plain(data_representation) && + sizeof(octet_align_4_optional) == octet_align_4_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(octet_align_4_optional)); + + scdr.jump((array_size - 1) * sizeof(octet_align_4_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const octet_align_4_optional& data) @@ -4136,6 +7909,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_char_align_1_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4182,6 +7963,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const char_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_char_align_1_optional_cdr_plain(data_representation) && + sizeof(char_align_1_optional) == char_align_1_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(char_align_1_optional)); + + scdr.jump((array_size -1) * sizeof(char_align_1_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4211,6 +8030,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + char_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_char_align_1_optional_cdr_plain(data_representation) && + sizeof(char_align_1_optional) == char_align_1_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(char_align_1_optional)); + + scdr.jump((array_size - 1) * sizeof(char_align_1_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const char_align_1_optional& data) @@ -4228,6 +8083,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_char_align_2_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4274,6 +8137,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const char_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_char_align_2_optional_cdr_plain(data_representation) && + sizeof(char_align_2_optional) == char_align_2_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(char_align_2_optional)); + + scdr.jump((array_size -1) * sizeof(char_align_2_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4303,6 +8204,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + char_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_char_align_2_optional_cdr_plain(data_representation) && + sizeof(char_align_2_optional) == char_align_2_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(char_align_2_optional)); + + scdr.jump((array_size - 1) * sizeof(char_align_2_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const char_align_2_optional& data) @@ -4320,6 +8257,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_char_align_4_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4366,6 +8311,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const char_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_char_align_4_optional_cdr_plain(data_representation) && + sizeof(char_align_4_optional) == char_align_4_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(char_align_4_optional)); + + scdr.jump((array_size -1) * sizeof(char_align_4_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4395,6 +8378,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + char_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_char_align_4_optional_cdr_plain(data_representation) && + sizeof(char_align_4_optional) == char_align_4_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(char_align_4_optional)); + + scdr.jump((array_size - 1) * sizeof(char_align_4_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const char_align_4_optional& data) @@ -4412,6 +8431,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_wchar_align_1_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4458,6 +8485,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const wchar_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_wchar_align_1_optional_cdr_plain(data_representation) && + sizeof(wchar_align_1_optional) == wchar_align_1_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(wchar_align_1_optional)); + + scdr.jump((array_size -1) * sizeof(wchar_align_1_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4487,6 +8552,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + wchar_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_wchar_align_1_optional_cdr_plain(data_representation) && + sizeof(wchar_align_1_optional) == wchar_align_1_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(wchar_align_1_optional)); + + scdr.jump((array_size - 1) * sizeof(wchar_align_1_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const wchar_align_1_optional& data) @@ -4504,6 +8605,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_wchar_align_2_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4550,6 +8659,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const wchar_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_wchar_align_2_optional_cdr_plain(data_representation) && + sizeof(wchar_align_2_optional) == wchar_align_2_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(wchar_align_2_optional)); + + scdr.jump((array_size -1) * sizeof(wchar_align_2_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4579,6 +8726,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + wchar_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_wchar_align_2_optional_cdr_plain(data_representation) && + sizeof(wchar_align_2_optional) == wchar_align_2_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(wchar_align_2_optional)); + + scdr.jump((array_size - 1) * sizeof(wchar_align_2_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const wchar_align_2_optional& data) @@ -4596,6 +8779,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_wchar_align_4_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4642,6 +8833,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const wchar_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_wchar_align_4_optional_cdr_plain(data_representation) && + sizeof(wchar_align_4_optional) == wchar_align_4_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(wchar_align_4_optional)); + + scdr.jump((array_size -1) * sizeof(wchar_align_4_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4671,6 +8900,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + wchar_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_wchar_align_4_optional_cdr_plain(data_representation) && + sizeof(wchar_align_4_optional) == wchar_align_4_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(wchar_align_4_optional)); + + scdr.jump((array_size - 1) * sizeof(wchar_align_4_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const wchar_align_4_optional& data) @@ -4688,6 +8953,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_sequence_short_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4730,6 +9003,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const sequence_short_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_sequence_short_optional_cdr_plain(data_representation) && + sizeof(sequence_short_optional) == sequence_short_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(sequence_short_optional)); + + scdr.jump((array_size -1) * sizeof(sequence_short_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4755,6 +9066,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + sequence_short_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_sequence_short_optional_cdr_plain(data_representation) && + sizeof(sequence_short_optional) == sequence_short_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(sequence_short_optional)); + + scdr.jump((array_size - 1) * sizeof(sequence_short_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const sequence_short_optional& data) @@ -4770,6 +9117,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_sequence_short_align_1_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4816,6 +9171,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const sequence_short_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_sequence_short_align_1_optional_cdr_plain(data_representation) && + sizeof(sequence_short_align_1_optional) == sequence_short_align_1_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(sequence_short_align_1_optional)); + + scdr.jump((array_size -1) * sizeof(sequence_short_align_1_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4845,6 +9238,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + sequence_short_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_sequence_short_align_1_optional_cdr_plain(data_representation) && + sizeof(sequence_short_align_1_optional) == sequence_short_align_1_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(sequence_short_align_1_optional)); + + scdr.jump((array_size - 1) * sizeof(sequence_short_align_1_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const sequence_short_align_1_optional& data) @@ -4862,6 +9291,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_sequence_short_align_2_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4908,6 +9345,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const sequence_short_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_sequence_short_align_2_optional_cdr_plain(data_representation) && + sizeof(sequence_short_align_2_optional) == sequence_short_align_2_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(sequence_short_align_2_optional)); + + scdr.jump((array_size -1) * sizeof(sequence_short_align_2_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4937,6 +9412,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + sequence_short_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_sequence_short_align_2_optional_cdr_plain(data_representation) && + sizeof(sequence_short_align_2_optional) == sequence_short_align_2_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(sequence_short_align_2_optional)); + + scdr.jump((array_size - 1) * sizeof(sequence_short_align_2_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const sequence_short_align_2_optional& data) @@ -4954,6 +9465,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_sequence_short_align_4_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5000,6 +9519,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const sequence_short_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_sequence_short_align_4_optional_cdr_plain(data_representation) && + sizeof(sequence_short_align_4_optional) == sequence_short_align_4_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(sequence_short_align_4_optional)); + + scdr.jump((array_size -1) * sizeof(sequence_short_align_4_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5029,6 +9586,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + sequence_short_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_sequence_short_align_4_optional_cdr_plain(data_representation) && + sizeof(sequence_short_align_4_optional) == sequence_short_align_4_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(sequence_short_align_4_optional)); + + scdr.jump((array_size - 1) * sizeof(sequence_short_align_4_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const sequence_short_align_4_optional& data) @@ -5046,6 +9639,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_string_unbounded_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5088,6 +9689,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const string_unbounded_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_string_unbounded_optional_cdr_plain(data_representation) && + sizeof(string_unbounded_optional) == string_unbounded_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(string_unbounded_optional)); + + scdr.jump((array_size -1) * sizeof(string_unbounded_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5113,6 +9752,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + string_unbounded_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_string_unbounded_optional_cdr_plain(data_representation) && + sizeof(string_unbounded_optional) == string_unbounded_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(string_unbounded_optional)); + + scdr.jump((array_size - 1) * sizeof(string_unbounded_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const string_unbounded_optional& data) @@ -5128,6 +9803,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_string_unbounded_align_1_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5174,6 +9857,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const string_unbounded_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_string_unbounded_align_1_optional_cdr_plain(data_representation) && + sizeof(string_unbounded_align_1_optional) == string_unbounded_align_1_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(string_unbounded_align_1_optional)); + + scdr.jump((array_size -1) * sizeof(string_unbounded_align_1_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5203,6 +9924,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + string_unbounded_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_string_unbounded_align_1_optional_cdr_plain(data_representation) && + sizeof(string_unbounded_align_1_optional) == string_unbounded_align_1_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(string_unbounded_align_1_optional)); + + scdr.jump((array_size - 1) * sizeof(string_unbounded_align_1_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const string_unbounded_align_1_optional& data) @@ -5220,6 +9977,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_string_unbounded_align_2_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5266,6 +10031,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const string_unbounded_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_string_unbounded_align_2_optional_cdr_plain(data_representation) && + sizeof(string_unbounded_align_2_optional) == string_unbounded_align_2_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(string_unbounded_align_2_optional)); + + scdr.jump((array_size -1) * sizeof(string_unbounded_align_2_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5295,6 +10098,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + string_unbounded_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_string_unbounded_align_2_optional_cdr_plain(data_representation) && + sizeof(string_unbounded_align_2_optional) == string_unbounded_align_2_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(string_unbounded_align_2_optional)); + + scdr.jump((array_size - 1) * sizeof(string_unbounded_align_2_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const string_unbounded_align_2_optional& data) @@ -5312,6 +10151,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_string_unbounded_align_4_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5358,6 +10205,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const string_unbounded_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_string_unbounded_align_4_optional_cdr_plain(data_representation) && + sizeof(string_unbounded_align_4_optional) == string_unbounded_align_4_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(string_unbounded_align_4_optional)); + + scdr.jump((array_size -1) * sizeof(string_unbounded_align_4_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5387,6 +10272,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + string_unbounded_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_string_unbounded_align_4_optional_cdr_plain(data_representation) && + sizeof(string_unbounded_align_4_optional) == string_unbounded_align_4_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(string_unbounded_align_4_optional)); + + scdr.jump((array_size - 1) * sizeof(string_unbounded_align_4_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const string_unbounded_align_4_optional& data) @@ -5404,6 +10325,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_string_bounded_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5446,6 +10375,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const string_bounded_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_string_bounded_optional_cdr_plain(data_representation) && + sizeof(string_bounded_optional) == string_bounded_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(string_bounded_optional)); + + scdr.jump((array_size -1) * sizeof(string_bounded_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5471,6 +10438,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + string_bounded_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_string_bounded_optional_cdr_plain(data_representation) && + sizeof(string_bounded_optional) == string_bounded_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(string_bounded_optional)); + + scdr.jump((array_size - 1) * sizeof(string_bounded_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const string_bounded_optional& data) @@ -5486,6 +10489,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_string_bounded_align_1_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5532,6 +10543,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const string_bounded_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_string_bounded_align_1_optional_cdr_plain(data_representation) && + sizeof(string_bounded_align_1_optional) == string_bounded_align_1_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(string_bounded_align_1_optional)); + + scdr.jump((array_size -1) * sizeof(string_bounded_align_1_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5561,6 +10610,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + string_bounded_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_string_bounded_align_1_optional_cdr_plain(data_representation) && + sizeof(string_bounded_align_1_optional) == string_bounded_align_1_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(string_bounded_align_1_optional)); + + scdr.jump((array_size - 1) * sizeof(string_bounded_align_1_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const string_bounded_align_1_optional& data) @@ -5578,6 +10663,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_string_bounded_align_2_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5624,6 +10717,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const string_bounded_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_string_bounded_align_2_optional_cdr_plain(data_representation) && + sizeof(string_bounded_align_2_optional) == string_bounded_align_2_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(string_bounded_align_2_optional)); + + scdr.jump((array_size -1) * sizeof(string_bounded_align_2_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5653,6 +10784,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + string_bounded_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_string_bounded_align_2_optional_cdr_plain(data_representation) && + sizeof(string_bounded_align_2_optional) == string_bounded_align_2_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(string_bounded_align_2_optional)); + + scdr.jump((array_size - 1) * sizeof(string_bounded_align_2_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const string_bounded_align_2_optional& data) @@ -5670,6 +10837,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_string_bounded_align_4_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5716,6 +10891,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const string_bounded_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_string_bounded_align_4_optional_cdr_plain(data_representation) && + sizeof(string_bounded_align_4_optional) == string_bounded_align_4_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(string_bounded_align_4_optional)); + + scdr.jump((array_size -1) * sizeof(string_bounded_align_4_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5745,6 +10958,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + string_bounded_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_string_bounded_align_4_optional_cdr_plain(data_representation) && + sizeof(string_bounded_align_4_optional) == string_bounded_align_4_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(string_bounded_align_4_optional)); + + scdr.jump((array_size - 1) * sizeof(string_bounded_align_4_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const string_bounded_align_4_optional& data) @@ -5762,6 +11011,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_map_short_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5804,6 +11061,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const map_short_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_map_short_optional_cdr_plain(data_representation) && + sizeof(map_short_optional) == map_short_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(map_short_optional)); + + scdr.jump((array_size -1) * sizeof(map_short_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5829,6 +11124,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + map_short_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_map_short_optional_cdr_plain(data_representation) && + sizeof(map_short_optional) == map_short_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(map_short_optional)); + + scdr.jump((array_size - 1) * sizeof(map_short_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const map_short_optional& data) @@ -5844,6 +11175,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_map_short_align_1_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5890,6 +11229,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const map_short_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_map_short_align_1_optional_cdr_plain(data_representation) && + sizeof(map_short_align_1_optional) == map_short_align_1_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(map_short_align_1_optional)); + + scdr.jump((array_size -1) * sizeof(map_short_align_1_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5919,6 +11296,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + map_short_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_map_short_align_1_optional_cdr_plain(data_representation) && + sizeof(map_short_align_1_optional) == map_short_align_1_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(map_short_align_1_optional)); + + scdr.jump((array_size - 1) * sizeof(map_short_align_1_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const map_short_align_1_optional& data) @@ -5936,6 +11349,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_map_short_align_2_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5982,6 +11403,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const map_short_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_map_short_align_2_optional_cdr_plain(data_representation) && + sizeof(map_short_align_2_optional) == map_short_align_2_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(map_short_align_2_optional)); + + scdr.jump((array_size -1) * sizeof(map_short_align_2_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6011,6 +11470,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + map_short_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_map_short_align_2_optional_cdr_plain(data_representation) && + sizeof(map_short_align_2_optional) == map_short_align_2_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(map_short_align_2_optional)); + + scdr.jump((array_size - 1) * sizeof(map_short_align_2_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const map_short_align_2_optional& data) @@ -6028,6 +11523,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_map_short_align_4_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6074,6 +11577,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const map_short_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_map_short_align_4_optional_cdr_plain(data_representation) && + sizeof(map_short_align_4_optional) == map_short_align_4_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(map_short_align_4_optional)); + + scdr.jump((array_size -1) * sizeof(map_short_align_4_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6103,6 +11644,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + map_short_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_map_short_align_4_optional_cdr_plain(data_representation) && + sizeof(map_short_align_4_optional) == map_short_align_4_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(map_short_align_4_optional)); + + scdr.jump((array_size - 1) * sizeof(map_short_align_4_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const map_short_align_4_optional& data) @@ -6120,6 +11697,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_array_short_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6162,6 +11747,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const array_short_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_array_short_optional_cdr_plain(data_representation) && + sizeof(array_short_optional) == array_short_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(array_short_optional)); + + scdr.jump((array_size -1) * sizeof(array_short_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6187,6 +11810,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + array_short_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_array_short_optional_cdr_plain(data_representation) && + sizeof(array_short_optional) == array_short_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(array_short_optional)); + + scdr.jump((array_size - 1) * sizeof(array_short_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const array_short_optional& data) @@ -6202,6 +11861,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_array_short_align_1_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6248,6 +11915,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const array_short_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_array_short_align_1_optional_cdr_plain(data_representation) && + sizeof(array_short_align_1_optional) == array_short_align_1_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(array_short_align_1_optional)); + + scdr.jump((array_size -1) * sizeof(array_short_align_1_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6277,6 +11982,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + array_short_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_array_short_align_1_optional_cdr_plain(data_representation) && + sizeof(array_short_align_1_optional) == array_short_align_1_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(array_short_align_1_optional)); + + scdr.jump((array_size - 1) * sizeof(array_short_align_1_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const array_short_align_1_optional& data) @@ -6294,6 +12035,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_array_short_align_2_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6340,6 +12089,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const array_short_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_array_short_align_2_optional_cdr_plain(data_representation) && + sizeof(array_short_align_2_optional) == array_short_align_2_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(array_short_align_2_optional)); + + scdr.jump((array_size -1) * sizeof(array_short_align_2_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6369,6 +12156,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + array_short_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_array_short_align_2_optional_cdr_plain(data_representation) && + sizeof(array_short_align_2_optional) == array_short_align_2_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(array_short_align_2_optional)); + + scdr.jump((array_size - 1) * sizeof(array_short_align_2_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const array_short_align_2_optional& data) @@ -6386,6 +12209,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_array_short_align_4_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6432,6 +12263,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const array_short_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_array_short_align_4_optional_cdr_plain(data_representation) && + sizeof(array_short_align_4_optional) == array_short_align_4_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(array_short_align_4_optional)); + + scdr.jump((array_size -1) * sizeof(array_short_align_4_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6461,6 +12330,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + array_short_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_array_short_align_4_optional_cdr_plain(data_representation) && + sizeof(array_short_align_4_optional) == array_short_align_4_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(array_short_align_4_optional)); + + scdr.jump((array_size - 1) * sizeof(array_short_align_4_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const array_short_align_4_optional& data) @@ -6478,6 +12383,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_struct_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6520,6 +12433,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const struct_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_struct_optional_cdr_plain(data_representation) && + sizeof(struct_optional) == struct_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(struct_optional)); + + scdr.jump((array_size -1) * sizeof(struct_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6545,6 +12496,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + struct_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_struct_optional_cdr_plain(data_representation) && + sizeof(struct_optional) == struct_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(struct_optional)); + + scdr.jump((array_size - 1) * sizeof(struct_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const struct_optional& data) @@ -6564,6 +12551,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_struct_align_1_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6610,6 +12605,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const struct_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_struct_align_1_optional_cdr_plain(data_representation) && + sizeof(struct_align_1_optional) == struct_align_1_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(struct_align_1_optional)); + + scdr.jump((array_size -1) * sizeof(struct_align_1_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6639,6 +12672,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + struct_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_struct_align_1_optional_cdr_plain(data_representation) && + sizeof(struct_align_1_optional) == struct_align_1_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(struct_align_1_optional)); + + scdr.jump((array_size - 1) * sizeof(struct_align_1_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const struct_align_1_optional& data) @@ -6660,6 +12729,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_struct_align_2_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6706,6 +12783,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const struct_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_struct_align_2_optional_cdr_plain(data_representation) && + sizeof(struct_align_2_optional) == struct_align_2_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(struct_align_2_optional)); + + scdr.jump((array_size -1) * sizeof(struct_align_2_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6735,6 +12850,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + struct_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_struct_align_2_optional_cdr_plain(data_representation) && + sizeof(struct_align_2_optional) == struct_align_2_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(struct_align_2_optional)); + + scdr.jump((array_size - 1) * sizeof(struct_align_2_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const struct_align_2_optional& data) @@ -6756,6 +12907,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_struct_align_4_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6802,6 +12961,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const struct_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_struct_align_4_optional_cdr_plain(data_representation) && + sizeof(struct_align_4_optional) == struct_align_4_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(struct_align_4_optional)); + + scdr.jump((array_size -1) * sizeof(struct_align_4_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6831,6 +13028,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + struct_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_struct_align_4_optional_cdr_plain(data_representation) && + sizeof(struct_align_4_optional) == struct_align_4_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(struct_align_4_optional)); + + scdr.jump((array_size - 1) * sizeof(struct_align_4_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const struct_align_4_optional& data) @@ -6852,6 +13085,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_InnerStructOptional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6898,6 +13139,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerStructOptional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerStructOptional_cdr_plain(data_representation) && + sizeof(InnerStructOptional) == InnerStructOptional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(InnerStructOptional)); + + scdr.jump((array_size -1) * sizeof(InnerStructOptional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6927,6 +13206,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerStructOptional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_InnerStructOptional_cdr_plain(data_representation) && + sizeof(InnerStructOptional) == InnerStructOptional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(InnerStructOptional)); + + scdr.jump((array_size - 1) * sizeof(InnerStructOptional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const InnerStructOptional& data) @@ -6944,6 +13259,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_opt_struct_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6986,6 +13309,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const opt_struct_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_opt_struct_optional_cdr_plain(data_representation) && + sizeof(opt_struct_optional) == opt_struct_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(opt_struct_optional)); + + scdr.jump((array_size -1) * sizeof(opt_struct_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7011,6 +13372,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + opt_struct_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_opt_struct_optional_cdr_plain(data_representation) && + sizeof(opt_struct_optional) == opt_struct_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(opt_struct_optional)); + + scdr.jump((array_size - 1) * sizeof(opt_struct_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const opt_struct_optional& data) @@ -7030,6 +13427,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_opt_struct_align_1_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7076,6 +13481,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const opt_struct_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_opt_struct_align_1_optional_cdr_plain(data_representation) && + sizeof(opt_struct_align_1_optional) == opt_struct_align_1_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(opt_struct_align_1_optional)); + + scdr.jump((array_size -1) * sizeof(opt_struct_align_1_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7105,6 +13548,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + opt_struct_align_1_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_opt_struct_align_1_optional_cdr_plain(data_representation) && + sizeof(opt_struct_align_1_optional) == opt_struct_align_1_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(opt_struct_align_1_optional)); + + scdr.jump((array_size - 1) * sizeof(opt_struct_align_1_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const opt_struct_align_1_optional& data) @@ -7126,6 +13605,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_opt_struct_align_2_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7172,6 +13659,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const opt_struct_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_opt_struct_align_2_optional_cdr_plain(data_representation) && + sizeof(opt_struct_align_2_optional) == opt_struct_align_2_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(opt_struct_align_2_optional)); + + scdr.jump((array_size -1) * sizeof(opt_struct_align_2_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7201,6 +13726,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + opt_struct_align_2_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_opt_struct_align_2_optional_cdr_plain(data_representation) && + sizeof(opt_struct_align_2_optional) == opt_struct_align_2_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(opt_struct_align_2_optional)); + + scdr.jump((array_size - 1) * sizeof(opt_struct_align_2_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const opt_struct_align_2_optional& data) @@ -7222,6 +13783,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_opt_struct_align_4_optional_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7268,6 +13837,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const opt_struct_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_opt_struct_align_4_optional_cdr_plain(data_representation) && + sizeof(opt_struct_align_4_optional) == opt_struct_align_4_optional_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(opt_struct_align_4_optional)); + + scdr.jump((array_size -1) * sizeof(opt_struct_align_4_optional)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7297,6 +13904,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + opt_struct_align_4_optional* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_opt_struct_align_4_optional_cdr_plain(data_representation) && + sizeof(opt_struct_align_4_optional) == opt_struct_align_4_optional_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(opt_struct_align_4_optional)); + + scdr.jump((array_size - 1) * sizeof(opt_struct_align_4_optional)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const opt_struct_align_4_optional& data) diff --git a/test/dds-types-test/optionalPubSubTypes.cxx b/test/dds-types-test/optionalPubSubTypes.cxx index 32a627c4e6a..60b6966af42 100644 --- a/test/dds-types-test/optionalPubSubTypes.cxx +++ b/test/dds-types-test/optionalPubSubTypes.cxx @@ -31,6 +31,272 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_boolean_align_2_optional_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_map_short_align_1_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_float_align_4_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_long_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ulong_align_1_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ulonglong_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_char_align_1_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_long_align_4_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_struct_align_1_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ulonglong_align_1_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_octet_align_2_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_opt_struct_align_4_optional_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_char_align_2_optional_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_longdouble_align_1_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_double_align_4_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_opt_struct_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_string_unbounded_align_2_optional_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_ulonglong_align_2_optional_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_longlong_align_2_optional_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_ulong_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_short_align_4_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_array_short_align_1_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_octet_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_short_align_1_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_string_bounded_align_4_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_sequence_short_align_2_optional_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_ulonglong_align_4_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_sequence_short_align_4_optional_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_boolean_align_1_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_string_bounded_align_2_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_map_short_optional_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_short_optional_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_ushort_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_double_align_2_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ulong_align_4_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_char_align_4_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_struct_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_opt_struct_align_2_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_short_align_2_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ushort_align_2_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_float_align_1_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_map_short_align_4_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_long_align_1_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_sequence_short_align_1_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_float_align_2_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_longdouble_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_wchar_align_2_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_float_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_string_unbounded_align_1_optional_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_boolean_align_4_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_array_short_align_4_optional_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_longdouble_align_2_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_string_bounded_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_wchar_align_4_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ushort_align_1_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_string_bounded_align_1_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_longlong_align_1_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_sequence_short_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_char_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_struct_align_2_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_long_align_2_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_longlong_align_4_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_wchar_align_1_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_InnerStructOptional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_octet_align_4_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_octet_align_1_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ulong_align_2_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_struct_align_4_optional_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_opt_struct_align_1_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_longdouble_align_4_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_double_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_wchar_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_boolean_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_double_align_1_optional_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_ushort_align_4_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_string_unbounded_align_4_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_array_short_align_2_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_array_short_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_longlong_optional_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_string_unbounded_optional_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_map_short_align_2_optional_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + short_optionalPubSubType::short_optionalPubSubType() { set_name("short_optional"); @@ -149,6 +415,17 @@ void short_optionalPubSubType::delete_data( delete(reinterpret_cast<::short_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool short_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool short_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +608,17 @@ void ushort_optionalPubSubType::delete_data( delete(reinterpret_cast<::ushort_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ushort_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ushort_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +801,17 @@ void long_optionalPubSubType::delete_data( delete(reinterpret_cast<::long_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool long_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool long_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -695,6 +994,17 @@ void ulong_optionalPubSubType::delete_data( delete(reinterpret_cast<::ulong_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ulong_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ulong_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -877,6 +1187,17 @@ void longlong_optionalPubSubType::delete_data( delete(reinterpret_cast<::longlong_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool longlong_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool longlong_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1059,6 +1380,17 @@ void ulonglong_optionalPubSubType::delete_data( delete(reinterpret_cast<::ulonglong_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ulonglong_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ulonglong_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1241,6 +1573,17 @@ void float_optionalPubSubType::delete_data( delete(reinterpret_cast<::float_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool float_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool float_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1423,6 +1766,17 @@ void double_optionalPubSubType::delete_data( delete(reinterpret_cast<::double_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool double_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool double_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1605,6 +1959,17 @@ void longdouble_optionalPubSubType::delete_data( delete(reinterpret_cast<::longdouble_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool longdouble_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool longdouble_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1787,6 +2152,17 @@ void boolean_optionalPubSubType::delete_data( delete(reinterpret_cast<::boolean_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool boolean_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool boolean_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1969,6 +2345,17 @@ void octet_optionalPubSubType::delete_data( delete(reinterpret_cast<::octet_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool octet_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool octet_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2151,6 +2538,17 @@ void char_optionalPubSubType::delete_data( delete(reinterpret_cast<::char_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool char_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool char_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2333,6 +2731,17 @@ void wchar_optionalPubSubType::delete_data( delete(reinterpret_cast<::wchar_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool wchar_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool wchar_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2515,6 +2924,17 @@ void short_align_1_optionalPubSubType::delete_data( delete(reinterpret_cast<::short_align_1_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool short_align_1_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool short_align_1_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2697,6 +3117,17 @@ void short_align_2_optionalPubSubType::delete_data( delete(reinterpret_cast<::short_align_2_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool short_align_2_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool short_align_2_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2879,6 +3310,17 @@ void short_align_4_optionalPubSubType::delete_data( delete(reinterpret_cast<::short_align_4_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool short_align_4_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool short_align_4_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3061,6 +3503,17 @@ void ushort_align_1_optionalPubSubType::delete_data( delete(reinterpret_cast<::ushort_align_1_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ushort_align_1_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ushort_align_1_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3243,6 +3696,17 @@ void ushort_align_2_optionalPubSubType::delete_data( delete(reinterpret_cast<::ushort_align_2_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ushort_align_2_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ushort_align_2_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3425,6 +3889,17 @@ void ushort_align_4_optionalPubSubType::delete_data( delete(reinterpret_cast<::ushort_align_4_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ushort_align_4_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ushort_align_4_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3607,6 +4082,17 @@ void long_align_1_optionalPubSubType::delete_data( delete(reinterpret_cast<::long_align_1_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool long_align_1_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool long_align_1_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3789,6 +4275,17 @@ void long_align_2_optionalPubSubType::delete_data( delete(reinterpret_cast<::long_align_2_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool long_align_2_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool long_align_2_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3971,6 +4468,17 @@ void long_align_4_optionalPubSubType::delete_data( delete(reinterpret_cast<::long_align_4_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool long_align_4_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool long_align_4_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4153,6 +4661,17 @@ void ulong_align_1_optionalPubSubType::delete_data( delete(reinterpret_cast<::ulong_align_1_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ulong_align_1_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ulong_align_1_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4335,6 +4854,17 @@ void ulong_align_2_optionalPubSubType::delete_data( delete(reinterpret_cast<::ulong_align_2_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ulong_align_2_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ulong_align_2_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4517,6 +5047,17 @@ void ulong_align_4_optionalPubSubType::delete_data( delete(reinterpret_cast<::ulong_align_4_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ulong_align_4_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ulong_align_4_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4699,6 +5240,17 @@ void longlong_align_1_optionalPubSubType::delete_data( delete(reinterpret_cast<::longlong_align_1_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool longlong_align_1_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool longlong_align_1_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4881,6 +5433,17 @@ void longlong_align_2_optionalPubSubType::delete_data( delete(reinterpret_cast<::longlong_align_2_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool longlong_align_2_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool longlong_align_2_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5063,6 +5626,17 @@ void longlong_align_4_optionalPubSubType::delete_data( delete(reinterpret_cast<::longlong_align_4_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool longlong_align_4_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool longlong_align_4_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5245,6 +5819,17 @@ void ulonglong_align_1_optionalPubSubType::delete_data( delete(reinterpret_cast<::ulonglong_align_1_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ulonglong_align_1_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ulonglong_align_1_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5427,6 +6012,17 @@ void ulonglong_align_2_optionalPubSubType::delete_data( delete(reinterpret_cast<::ulonglong_align_2_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ulonglong_align_2_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ulonglong_align_2_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5609,6 +6205,17 @@ void ulonglong_align_4_optionalPubSubType::delete_data( delete(reinterpret_cast<::ulonglong_align_4_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ulonglong_align_4_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ulonglong_align_4_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5791,6 +6398,17 @@ void float_align_1_optionalPubSubType::delete_data( delete(reinterpret_cast<::float_align_1_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool float_align_1_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool float_align_1_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5973,6 +6591,17 @@ void float_align_2_optionalPubSubType::delete_data( delete(reinterpret_cast<::float_align_2_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool float_align_2_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool float_align_2_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6155,6 +6784,17 @@ void float_align_4_optionalPubSubType::delete_data( delete(reinterpret_cast<::float_align_4_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool float_align_4_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool float_align_4_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6337,6 +6977,17 @@ void double_align_1_optionalPubSubType::delete_data( delete(reinterpret_cast<::double_align_1_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool double_align_1_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool double_align_1_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6519,6 +7170,17 @@ void double_align_2_optionalPubSubType::delete_data( delete(reinterpret_cast<::double_align_2_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool double_align_2_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool double_align_2_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6701,6 +7363,17 @@ void double_align_4_optionalPubSubType::delete_data( delete(reinterpret_cast<::double_align_4_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool double_align_4_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool double_align_4_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6883,6 +7556,17 @@ void longdouble_align_1_optionalPubSubType::delete_data( delete(reinterpret_cast<::longdouble_align_1_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool longdouble_align_1_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool longdouble_align_1_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7065,6 +7749,17 @@ void longdouble_align_2_optionalPubSubType::delete_data( delete(reinterpret_cast<::longdouble_align_2_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool longdouble_align_2_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool longdouble_align_2_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7247,6 +7942,17 @@ void longdouble_align_4_optionalPubSubType::delete_data( delete(reinterpret_cast<::longdouble_align_4_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool longdouble_align_4_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool longdouble_align_4_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7429,6 +8135,17 @@ void boolean_align_1_optionalPubSubType::delete_data( delete(reinterpret_cast<::boolean_align_1_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool boolean_align_1_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool boolean_align_1_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7611,6 +8328,17 @@ void boolean_align_2_optionalPubSubType::delete_data( delete(reinterpret_cast<::boolean_align_2_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool boolean_align_2_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool boolean_align_2_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7793,6 +8521,17 @@ void boolean_align_4_optionalPubSubType::delete_data( delete(reinterpret_cast<::boolean_align_4_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool boolean_align_4_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool boolean_align_4_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7975,6 +8714,17 @@ void octet_align_1_optionalPubSubType::delete_data( delete(reinterpret_cast<::octet_align_1_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool octet_align_1_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool octet_align_1_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -8157,6 +8907,17 @@ void octet_align_2_optionalPubSubType::delete_data( delete(reinterpret_cast<::octet_align_2_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool octet_align_2_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool octet_align_2_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -8339,6 +9100,17 @@ void octet_align_4_optionalPubSubType::delete_data( delete(reinterpret_cast<::octet_align_4_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool octet_align_4_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool octet_align_4_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -8521,6 +9293,17 @@ void char_align_1_optionalPubSubType::delete_data( delete(reinterpret_cast<::char_align_1_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool char_align_1_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool char_align_1_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -8703,6 +9486,17 @@ void char_align_2_optionalPubSubType::delete_data( delete(reinterpret_cast<::char_align_2_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool char_align_2_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool char_align_2_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -8885,6 +9679,17 @@ void char_align_4_optionalPubSubType::delete_data( delete(reinterpret_cast<::char_align_4_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool char_align_4_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool char_align_4_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9067,6 +9872,17 @@ void wchar_align_1_optionalPubSubType::delete_data( delete(reinterpret_cast<::wchar_align_1_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool wchar_align_1_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool wchar_align_1_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9249,6 +10065,17 @@ void wchar_align_2_optionalPubSubType::delete_data( delete(reinterpret_cast<::wchar_align_2_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool wchar_align_2_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool wchar_align_2_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9431,6 +10258,17 @@ void wchar_align_4_optionalPubSubType::delete_data( delete(reinterpret_cast<::wchar_align_4_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool wchar_align_4_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool wchar_align_4_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9613,6 +10451,17 @@ void sequence_short_optionalPubSubType::delete_data( delete(reinterpret_cast<::sequence_short_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool sequence_short_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool sequence_short_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9795,6 +10644,17 @@ void sequence_short_align_1_optionalPubSubType::delete_data( delete(reinterpret_cast<::sequence_short_align_1_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool sequence_short_align_1_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool sequence_short_align_1_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9977,6 +10837,17 @@ void sequence_short_align_2_optionalPubSubType::delete_data( delete(reinterpret_cast<::sequence_short_align_2_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool sequence_short_align_2_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool sequence_short_align_2_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -10159,6 +11030,17 @@ void sequence_short_align_4_optionalPubSubType::delete_data( delete(reinterpret_cast<::sequence_short_align_4_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool sequence_short_align_4_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool sequence_short_align_4_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -10341,6 +11223,17 @@ void string_unbounded_optionalPubSubType::delete_data( delete(reinterpret_cast<::string_unbounded_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool string_unbounded_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool string_unbounded_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -10523,6 +11416,17 @@ void string_unbounded_align_1_optionalPubSubType::delete_data( delete(reinterpret_cast<::string_unbounded_align_1_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool string_unbounded_align_1_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool string_unbounded_align_1_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -10705,6 +11609,17 @@ void string_unbounded_align_2_optionalPubSubType::delete_data( delete(reinterpret_cast<::string_unbounded_align_2_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool string_unbounded_align_2_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool string_unbounded_align_2_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -10887,6 +11802,17 @@ void string_unbounded_align_4_optionalPubSubType::delete_data( delete(reinterpret_cast<::string_unbounded_align_4_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool string_unbounded_align_4_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool string_unbounded_align_4_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11069,6 +11995,17 @@ void string_bounded_optionalPubSubType::delete_data( delete(reinterpret_cast<::string_bounded_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool string_bounded_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool string_bounded_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11251,6 +12188,17 @@ void string_bounded_align_1_optionalPubSubType::delete_data( delete(reinterpret_cast<::string_bounded_align_1_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool string_bounded_align_1_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool string_bounded_align_1_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11433,6 +12381,17 @@ void string_bounded_align_2_optionalPubSubType::delete_data( delete(reinterpret_cast<::string_bounded_align_2_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool string_bounded_align_2_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool string_bounded_align_2_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11615,6 +12574,17 @@ void string_bounded_align_4_optionalPubSubType::delete_data( delete(reinterpret_cast<::string_bounded_align_4_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool string_bounded_align_4_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool string_bounded_align_4_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11797,6 +12767,17 @@ void map_short_optionalPubSubType::delete_data( delete(reinterpret_cast<::map_short_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool map_short_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool map_short_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11979,6 +12960,17 @@ void map_short_align_1_optionalPubSubType::delete_data( delete(reinterpret_cast<::map_short_align_1_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool map_short_align_1_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool map_short_align_1_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -12161,6 +13153,17 @@ void map_short_align_2_optionalPubSubType::delete_data( delete(reinterpret_cast<::map_short_align_2_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool map_short_align_2_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool map_short_align_2_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -12343,6 +13346,17 @@ void map_short_align_4_optionalPubSubType::delete_data( delete(reinterpret_cast<::map_short_align_4_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool map_short_align_4_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool map_short_align_4_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -12525,6 +13539,17 @@ void array_short_optionalPubSubType::delete_data( delete(reinterpret_cast<::array_short_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool array_short_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool array_short_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -12707,6 +13732,17 @@ void array_short_align_1_optionalPubSubType::delete_data( delete(reinterpret_cast<::array_short_align_1_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool array_short_align_1_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool array_short_align_1_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -12889,6 +13925,17 @@ void array_short_align_2_optionalPubSubType::delete_data( delete(reinterpret_cast<::array_short_align_2_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool array_short_align_2_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool array_short_align_2_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13071,6 +14118,17 @@ void array_short_align_4_optionalPubSubType::delete_data( delete(reinterpret_cast<::array_short_align_4_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool array_short_align_4_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool array_short_align_4_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13253,6 +14311,17 @@ void struct_optionalPubSubType::delete_data( delete(reinterpret_cast<::struct_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool struct_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool struct_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13435,6 +14504,17 @@ void struct_align_1_optionalPubSubType::delete_data( delete(reinterpret_cast<::struct_align_1_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool struct_align_1_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool struct_align_1_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13617,6 +14697,17 @@ void struct_align_2_optionalPubSubType::delete_data( delete(reinterpret_cast<::struct_align_2_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool struct_align_2_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool struct_align_2_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13799,6 +14890,17 @@ void struct_align_4_optionalPubSubType::delete_data( delete(reinterpret_cast<::struct_align_4_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool struct_align_4_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool struct_align_4_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13981,6 +15083,17 @@ void InnerStructOptionalPubSubType::delete_data( delete(reinterpret_cast<::InnerStructOptional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool InnerStructOptionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool InnerStructOptionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -14163,6 +15276,17 @@ void opt_struct_optionalPubSubType::delete_data( delete(reinterpret_cast<::opt_struct_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool opt_struct_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool opt_struct_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -14345,6 +15469,17 @@ void opt_struct_align_1_optionalPubSubType::delete_data( delete(reinterpret_cast<::opt_struct_align_1_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool opt_struct_align_1_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool opt_struct_align_1_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -14527,6 +15662,17 @@ void opt_struct_align_2_optionalPubSubType::delete_data( delete(reinterpret_cast<::opt_struct_align_2_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool opt_struct_align_2_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool opt_struct_align_2_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -14709,6 +15855,17 @@ void opt_struct_align_4_optionalPubSubType::delete_data( delete(reinterpret_cast<::opt_struct_align_4_optional*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool opt_struct_align_4_optionalPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool opt_struct_align_4_optionalPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds-types-test/optionalPubSubTypes.hpp b/test/dds-types-test/optionalPubSubTypes.hpp index 11328c23b8b..eeb610e1643 100644 --- a/test/dds-types-test/optionalPubSubTypes.hpp +++ b/test/dds-types-test/optionalPubSubTypes.hpp @@ -94,12 +94,8 @@ class short_optionalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -176,12 +172,8 @@ class ushort_optionalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -258,12 +250,8 @@ class long_optionalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -340,12 +328,8 @@ class ulong_optionalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -422,12 +406,8 @@ class longlong_optionalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -504,12 +484,8 @@ class ulonglong_optionalPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -586,12 +562,8 @@ class float_optionalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -668,12 +640,8 @@ class double_optionalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -750,12 +718,8 @@ class longdouble_optionalPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -832,12 +796,8 @@ class boolean_optionalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -914,12 +874,8 @@ class octet_optionalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -996,12 +952,8 @@ class char_optionalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1078,12 +1030,8 @@ class wchar_optionalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1160,12 +1108,8 @@ class short_align_1_optionalPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1242,12 +1186,8 @@ class short_align_2_optionalPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1324,12 +1264,8 @@ class short_align_4_optionalPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1406,12 +1342,8 @@ class ushort_align_1_optionalPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1488,12 +1420,8 @@ class ushort_align_2_optionalPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1570,12 +1498,8 @@ class ushort_align_4_optionalPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1652,12 +1576,8 @@ class long_align_1_optionalPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1734,12 +1654,8 @@ class long_align_2_optionalPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1816,12 +1732,8 @@ class long_align_4_optionalPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1898,12 +1810,8 @@ class ulong_align_1_optionalPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1980,12 +1888,8 @@ class ulong_align_2_optionalPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2062,12 +1966,8 @@ class ulong_align_4_optionalPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2144,12 +2044,8 @@ class longlong_align_1_optionalPubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2226,12 +2122,8 @@ class longlong_align_2_optionalPubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2308,12 +2200,8 @@ class longlong_align_4_optionalPubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2390,12 +2278,8 @@ class ulonglong_align_1_optionalPubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2472,12 +2356,8 @@ class ulonglong_align_2_optionalPubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2554,12 +2434,8 @@ class ulonglong_align_4_optionalPubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2636,12 +2512,8 @@ class float_align_1_optionalPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2718,12 +2590,8 @@ class float_align_2_optionalPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2800,12 +2668,8 @@ class float_align_4_optionalPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2882,12 +2746,8 @@ class double_align_1_optionalPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2964,12 +2824,8 @@ class double_align_2_optionalPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3046,12 +2902,8 @@ class double_align_4_optionalPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3128,12 +2980,8 @@ class longdouble_align_1_optionalPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3210,12 +3058,8 @@ class longdouble_align_2_optionalPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3292,12 +3136,8 @@ class longdouble_align_4_optionalPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3374,12 +3214,8 @@ class boolean_align_1_optionalPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3456,12 +3292,8 @@ class boolean_align_2_optionalPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3538,12 +3370,8 @@ class boolean_align_4_optionalPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3620,12 +3448,8 @@ class octet_align_1_optionalPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3702,12 +3526,8 @@ class octet_align_2_optionalPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3784,12 +3604,8 @@ class octet_align_4_optionalPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3866,12 +3682,8 @@ class char_align_1_optionalPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3948,12 +3760,8 @@ class char_align_2_optionalPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4030,12 +3838,8 @@ class char_align_4_optionalPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4112,12 +3916,8 @@ class wchar_align_1_optionalPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4194,12 +3994,8 @@ class wchar_align_2_optionalPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4276,12 +4072,8 @@ class wchar_align_4_optionalPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4358,12 +4150,8 @@ class sequence_short_optionalPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4440,12 +4228,8 @@ class sequence_short_align_1_optionalPubSubType : public eprosima::fastdds::dds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4522,12 +4306,8 @@ class sequence_short_align_2_optionalPubSubType : public eprosima::fastdds::dds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4604,12 +4384,8 @@ class sequence_short_align_4_optionalPubSubType : public eprosima::fastdds::dds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4686,12 +4462,8 @@ class string_unbounded_optionalPubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4768,12 +4540,8 @@ class string_unbounded_align_1_optionalPubSubType : public eprosima::fastdds::dd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4850,12 +4618,8 @@ class string_unbounded_align_2_optionalPubSubType : public eprosima::fastdds::dd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4932,12 +4696,8 @@ class string_unbounded_align_4_optionalPubSubType : public eprosima::fastdds::dd #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5014,12 +4774,8 @@ class string_bounded_optionalPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5096,12 +4852,8 @@ class string_bounded_align_1_optionalPubSubType : public eprosima::fastdds::dds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5178,12 +4930,8 @@ class string_bounded_align_2_optionalPubSubType : public eprosima::fastdds::dds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5260,12 +5008,8 @@ class string_bounded_align_4_optionalPubSubType : public eprosima::fastdds::dds: #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5342,12 +5086,8 @@ class map_short_optionalPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5424,12 +5164,8 @@ class map_short_align_1_optionalPubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5506,12 +5242,8 @@ class map_short_align_2_optionalPubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5588,12 +5320,8 @@ class map_short_align_4_optionalPubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5670,12 +5398,8 @@ class array_short_optionalPubSubType : public eprosima::fastdds::dds::TopicDataT #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5752,12 +5476,8 @@ class array_short_align_1_optionalPubSubType : public eprosima::fastdds::dds::To #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5834,12 +5554,8 @@ class array_short_align_2_optionalPubSubType : public eprosima::fastdds::dds::To #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5916,12 +5632,8 @@ class array_short_align_4_optionalPubSubType : public eprosima::fastdds::dds::To #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5998,12 +5710,8 @@ class struct_optionalPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6080,12 +5788,8 @@ class struct_align_1_optionalPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6162,12 +5866,8 @@ class struct_align_2_optionalPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6244,12 +5944,8 @@ class struct_align_4_optionalPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6326,12 +6022,8 @@ class InnerStructOptionalPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6408,12 +6100,8 @@ class opt_struct_optionalPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6490,12 +6178,8 @@ class opt_struct_align_1_optionalPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6572,12 +6256,8 @@ class opt_struct_align_2_optionalPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6654,12 +6334,8 @@ class opt_struct_align_4_optionalPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds-types-test/primitivesCdrAux.hpp b/test/dds-types-test/primitivesCdrAux.hpp index 26ac8e55da5..cfcd83ecc17 100644 --- a/test/dds-types-test/primitivesCdrAux.hpp +++ b/test/dds-types-test/primitivesCdrAux.hpp @@ -97,87 +97,108 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ShortStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UShortStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const LongStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ULongStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const LongLongStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ULongLongStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FloatStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const DoubleStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const LongDoubleStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const BooleanStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const OctetStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const CharStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const WCharStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Int8Struct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Uint8Struct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Int16Struct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Uint16Struct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Int32Struct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Uint32Struct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Int64Struct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Uint64Struct& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/primitivesCdrAux.ipp b/test/dds-types-test/primitivesCdrAux.ipp index 45fd5814188..164afcf3a58 100644 --- a/test/dds-types-test/primitivesCdrAux.ipp +++ b/test/dds-types-test/primitivesCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_ShortStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ShortStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ShortStruct_cdr_plain(data_representation) && + sizeof(ShortStruct) == ShortStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ShortStruct)); + + scdr.jump((array_size -1) * sizeof(ShortStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ShortStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ShortStruct_cdr_plain(data_representation) && + sizeof(ShortStruct) == ShortStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ShortStruct)); + + scdr.jump((array_size - 1) * sizeof(ShortStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ShortStruct& data) @@ -113,6 +196,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UShortStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -155,6 +246,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UShortStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UShortStruct_cdr_plain(data_representation) && + sizeof(UShortStruct) == UShortStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UShortStruct)); + + scdr.jump((array_size -1) * sizeof(UShortStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -180,6 +309,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UShortStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UShortStruct_cdr_plain(data_representation) && + sizeof(UShortStruct) == UShortStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UShortStruct)); + + scdr.jump((array_size - 1) * sizeof(UShortStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UShortStruct& data) @@ -192,6 +357,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_LongStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -234,6 +407,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const LongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_LongStruct_cdr_plain(data_representation) && + sizeof(LongStruct) == LongStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(LongStruct)); + + scdr.jump((array_size -1) * sizeof(LongStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -259,6 +470,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + LongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_LongStruct_cdr_plain(data_representation) && + sizeof(LongStruct) == LongStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(LongStruct)); + + scdr.jump((array_size - 1) * sizeof(LongStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const LongStruct& data) @@ -271,6 +518,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ULongStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -313,6 +568,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ULongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ULongStruct_cdr_plain(data_representation) && + sizeof(ULongStruct) == ULongStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ULongStruct)); + + scdr.jump((array_size -1) * sizeof(ULongStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -338,6 +631,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ULongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ULongStruct_cdr_plain(data_representation) && + sizeof(ULongStruct) == ULongStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ULongStruct)); + + scdr.jump((array_size - 1) * sizeof(ULongStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ULongStruct& data) @@ -350,6 +679,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_LongLongStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -392,6 +729,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const LongLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_LongLongStruct_cdr_plain(data_representation) && + sizeof(LongLongStruct) == LongLongStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(LongLongStruct)); + + scdr.jump((array_size -1) * sizeof(LongLongStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -417,6 +792,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + LongLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_LongLongStruct_cdr_plain(data_representation) && + sizeof(LongLongStruct) == LongLongStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(LongLongStruct)); + + scdr.jump((array_size - 1) * sizeof(LongLongStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const LongLongStruct& data) @@ -429,6 +840,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ULongLongStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -471,6 +890,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ULongLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ULongLongStruct_cdr_plain(data_representation) && + sizeof(ULongLongStruct) == ULongLongStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ULongLongStruct)); + + scdr.jump((array_size -1) * sizeof(ULongLongStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -496,6 +953,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ULongLongStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ULongLongStruct_cdr_plain(data_representation) && + sizeof(ULongLongStruct) == ULongLongStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ULongLongStruct)); + + scdr.jump((array_size - 1) * sizeof(ULongLongStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ULongLongStruct& data) @@ -508,6 +1001,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_FloatStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -550,6 +1051,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FloatStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FloatStruct_cdr_plain(data_representation) && + sizeof(FloatStruct) == FloatStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FloatStruct)); + + scdr.jump((array_size -1) * sizeof(FloatStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -575,6 +1114,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FloatStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FloatStruct_cdr_plain(data_representation) && + sizeof(FloatStruct) == FloatStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FloatStruct)); + + scdr.jump((array_size - 1) * sizeof(FloatStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FloatStruct& data) @@ -587,6 +1162,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_DoubleStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -629,6 +1212,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const DoubleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_DoubleStruct_cdr_plain(data_representation) && + sizeof(DoubleStruct) == DoubleStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(DoubleStruct)); + + scdr.jump((array_size -1) * sizeof(DoubleStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -654,6 +1275,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + DoubleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_DoubleStruct_cdr_plain(data_representation) && + sizeof(DoubleStruct) == DoubleStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(DoubleStruct)); + + scdr.jump((array_size - 1) * sizeof(DoubleStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const DoubleStruct& data) @@ -666,6 +1323,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_LongDoubleStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -708,6 +1373,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const LongDoubleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_LongDoubleStruct_cdr_plain(data_representation) && + sizeof(LongDoubleStruct) == LongDoubleStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(LongDoubleStruct)); + + scdr.jump((array_size -1) * sizeof(LongDoubleStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -733,6 +1436,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + LongDoubleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_LongDoubleStruct_cdr_plain(data_representation) && + sizeof(LongDoubleStruct) == LongDoubleStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(LongDoubleStruct)); + + scdr.jump((array_size - 1) * sizeof(LongDoubleStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const LongDoubleStruct& data) @@ -745,6 +1484,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_BooleanStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -787,6 +1534,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const BooleanStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BooleanStruct_cdr_plain(data_representation) && + sizeof(BooleanStruct) == BooleanStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(BooleanStruct)); + + scdr.jump((array_size -1) * sizeof(BooleanStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -812,6 +1597,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + BooleanStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BooleanStruct_cdr_plain(data_representation) && + sizeof(BooleanStruct) == BooleanStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(BooleanStruct)); + + scdr.jump((array_size - 1) * sizeof(BooleanStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const BooleanStruct& data) @@ -824,6 +1645,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_OctetStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -866,6 +1695,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const OctetStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_OctetStruct_cdr_plain(data_representation) && + sizeof(OctetStruct) == OctetStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(OctetStruct)); + + scdr.jump((array_size -1) * sizeof(OctetStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -891,6 +1758,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + OctetStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_OctetStruct_cdr_plain(data_representation) && + sizeof(OctetStruct) == OctetStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(OctetStruct)); + + scdr.jump((array_size - 1) * sizeof(OctetStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const OctetStruct& data) @@ -903,6 +1806,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_CharStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -945,6 +1856,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const CharStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_CharStruct_cdr_plain(data_representation) && + sizeof(CharStruct) == CharStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(CharStruct)); + + scdr.jump((array_size -1) * sizeof(CharStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -970,6 +1919,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + CharStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_CharStruct_cdr_plain(data_representation) && + sizeof(CharStruct) == CharStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(CharStruct)); + + scdr.jump((array_size - 1) * sizeof(CharStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const CharStruct& data) @@ -982,6 +1967,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_WCharStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1024,6 +2017,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const WCharStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_WCharStruct_cdr_plain(data_representation) && + sizeof(WCharStruct) == WCharStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(WCharStruct)); + + scdr.jump((array_size -1) * sizeof(WCharStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1049,6 +2080,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + WCharStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_WCharStruct_cdr_plain(data_representation) && + sizeof(WCharStruct) == WCharStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(WCharStruct)); + + scdr.jump((array_size - 1) * sizeof(WCharStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const WCharStruct& data) @@ -1061,6 +2128,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Int8Struct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1103,6 +2178,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Int8Struct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Int8Struct_cdr_plain(data_representation) && + sizeof(Int8Struct) == Int8Struct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Int8Struct)); + + scdr.jump((array_size -1) * sizeof(Int8Struct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1128,6 +2241,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Int8Struct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Int8Struct_cdr_plain(data_representation) && + sizeof(Int8Struct) == Int8Struct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Int8Struct)); + + scdr.jump((array_size - 1) * sizeof(Int8Struct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Int8Struct& data) @@ -1140,6 +2289,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Uint8Struct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1182,6 +2339,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Uint8Struct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Uint8Struct_cdr_plain(data_representation) && + sizeof(Uint8Struct) == Uint8Struct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Uint8Struct)); + + scdr.jump((array_size -1) * sizeof(Uint8Struct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1207,6 +2402,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Uint8Struct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Uint8Struct_cdr_plain(data_representation) && + sizeof(Uint8Struct) == Uint8Struct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Uint8Struct)); + + scdr.jump((array_size - 1) * sizeof(Uint8Struct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Uint8Struct& data) @@ -1219,6 +2450,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Int16Struct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1261,6 +2500,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Int16Struct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Int16Struct_cdr_plain(data_representation) && + sizeof(Int16Struct) == Int16Struct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Int16Struct)); + + scdr.jump((array_size -1) * sizeof(Int16Struct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1286,6 +2563,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Int16Struct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Int16Struct_cdr_plain(data_representation) && + sizeof(Int16Struct) == Int16Struct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Int16Struct)); + + scdr.jump((array_size - 1) * sizeof(Int16Struct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Int16Struct& data) @@ -1298,6 +2611,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Uint16Struct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1340,6 +2661,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Uint16Struct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Uint16Struct_cdr_plain(data_representation) && + sizeof(Uint16Struct) == Uint16Struct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Uint16Struct)); + + scdr.jump((array_size -1) * sizeof(Uint16Struct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1365,6 +2724,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Uint16Struct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Uint16Struct_cdr_plain(data_representation) && + sizeof(Uint16Struct) == Uint16Struct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Uint16Struct)); + + scdr.jump((array_size - 1) * sizeof(Uint16Struct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Uint16Struct& data) @@ -1377,6 +2772,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Int32Struct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1419,6 +2822,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Int32Struct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Int32Struct_cdr_plain(data_representation) && + sizeof(Int32Struct) == Int32Struct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Int32Struct)); + + scdr.jump((array_size -1) * sizeof(Int32Struct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1444,6 +2885,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Int32Struct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Int32Struct_cdr_plain(data_representation) && + sizeof(Int32Struct) == Int32Struct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Int32Struct)); + + scdr.jump((array_size - 1) * sizeof(Int32Struct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Int32Struct& data) @@ -1456,6 +2933,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Uint32Struct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1498,6 +2983,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Uint32Struct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Uint32Struct_cdr_plain(data_representation) && + sizeof(Uint32Struct) == Uint32Struct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Uint32Struct)); + + scdr.jump((array_size -1) * sizeof(Uint32Struct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1523,6 +3046,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Uint32Struct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Uint32Struct_cdr_plain(data_representation) && + sizeof(Uint32Struct) == Uint32Struct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Uint32Struct)); + + scdr.jump((array_size - 1) * sizeof(Uint32Struct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Uint32Struct& data) @@ -1535,6 +3094,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Int64Struct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1577,6 +3144,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Int64Struct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Int64Struct_cdr_plain(data_representation) && + sizeof(Int64Struct) == Int64Struct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Int64Struct)); + + scdr.jump((array_size -1) * sizeof(Int64Struct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1602,6 +3207,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Int64Struct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Int64Struct_cdr_plain(data_representation) && + sizeof(Int64Struct) == Int64Struct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Int64Struct)); + + scdr.jump((array_size - 1) * sizeof(Int64Struct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Int64Struct& data) @@ -1614,6 +3255,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Uint64Struct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1656,6 +3305,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Uint64Struct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Uint64Struct_cdr_plain(data_representation) && + sizeof(Uint64Struct) == Uint64Struct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Uint64Struct)); + + scdr.jump((array_size -1) * sizeof(Uint64Struct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1681,6 +3368,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Uint64Struct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Uint64Struct_cdr_plain(data_representation) && + sizeof(Uint64Struct) == Uint64Struct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Uint64Struct)); + + scdr.jump((array_size - 1) * sizeof(Uint64Struct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Uint64Struct& data) diff --git a/test/dds-types-test/primitivesPubSubTypes.cxx b/test/dds-types-test/primitivesPubSubTypes.cxx index 52ede634069..7796f0c95c1 100644 --- a/test/dds-types-test/primitivesPubSubTypes.cxx +++ b/test/dds-types-test/primitivesPubSubTypes.cxx @@ -31,6 +31,75 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_ULongStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_FloatStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_LongDoubleStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_OctetStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Uint8Struct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Int16Struct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_LongStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Int8Struct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Uint32Struct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Int64Struct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ShortStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Uint16Struct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_UShortStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_DoubleStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ULongLongStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_BooleanStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_CharStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_WCharStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Uint64Struct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Int32Struct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_LongLongStruct_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + ShortStructPubSubType::ShortStructPubSubType() { set_name("ShortStruct"); @@ -149,6 +218,17 @@ void ShortStructPubSubType::delete_data( delete(reinterpret_cast<::ShortStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ShortStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ShortStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +411,17 @@ void UShortStructPubSubType::delete_data( delete(reinterpret_cast<::UShortStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UShortStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UShortStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +604,17 @@ void LongStructPubSubType::delete_data( delete(reinterpret_cast<::LongStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool LongStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool LongStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -695,6 +797,17 @@ void ULongStructPubSubType::delete_data( delete(reinterpret_cast<::ULongStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ULongStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ULongStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -877,6 +990,17 @@ void LongLongStructPubSubType::delete_data( delete(reinterpret_cast<::LongLongStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool LongLongStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool LongLongStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1059,6 +1183,17 @@ void ULongLongStructPubSubType::delete_data( delete(reinterpret_cast<::ULongLongStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ULongLongStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ULongLongStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1241,6 +1376,17 @@ void FloatStructPubSubType::delete_data( delete(reinterpret_cast<::FloatStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FloatStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FloatStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1423,6 +1569,17 @@ void DoubleStructPubSubType::delete_data( delete(reinterpret_cast<::DoubleStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool DoubleStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool DoubleStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1605,6 +1762,17 @@ void LongDoubleStructPubSubType::delete_data( delete(reinterpret_cast<::LongDoubleStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool LongDoubleStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool LongDoubleStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1787,6 +1955,17 @@ void BooleanStructPubSubType::delete_data( delete(reinterpret_cast<::BooleanStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool BooleanStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool BooleanStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1969,6 +2148,17 @@ void OctetStructPubSubType::delete_data( delete(reinterpret_cast<::OctetStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool OctetStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool OctetStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2151,6 +2341,17 @@ void CharStructPubSubType::delete_data( delete(reinterpret_cast<::CharStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool CharStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool CharStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2333,6 +2534,17 @@ void WCharStructPubSubType::delete_data( delete(reinterpret_cast<::WCharStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool WCharStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool WCharStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2515,6 +2727,17 @@ void Int8StructPubSubType::delete_data( delete(reinterpret_cast<::Int8Struct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Int8StructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Int8StructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2697,6 +2920,17 @@ void Uint8StructPubSubType::delete_data( delete(reinterpret_cast<::Uint8Struct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Uint8StructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Uint8StructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2879,6 +3113,17 @@ void Int16StructPubSubType::delete_data( delete(reinterpret_cast<::Int16Struct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Int16StructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Int16StructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3061,6 +3306,17 @@ void Uint16StructPubSubType::delete_data( delete(reinterpret_cast<::Uint16Struct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Uint16StructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Uint16StructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3243,6 +3499,17 @@ void Int32StructPubSubType::delete_data( delete(reinterpret_cast<::Int32Struct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Int32StructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Int32StructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3425,6 +3692,17 @@ void Uint32StructPubSubType::delete_data( delete(reinterpret_cast<::Uint32Struct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Uint32StructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Uint32StructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3607,6 +3885,17 @@ void Int64StructPubSubType::delete_data( delete(reinterpret_cast<::Int64Struct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Int64StructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Int64StructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3789,6 +4078,17 @@ void Uint64StructPubSubType::delete_data( delete(reinterpret_cast<::Uint64Struct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Uint64StructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Uint64StructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds-types-test/primitivesPubSubTypes.hpp b/test/dds-types-test/primitivesPubSubTypes.hpp index 09f677cf969..11a82a48b54 100644 --- a/test/dds-types-test/primitivesPubSubTypes.hpp +++ b/test/dds-types-test/primitivesPubSubTypes.hpp @@ -93,12 +93,8 @@ class ShortStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -175,12 +171,8 @@ class UShortStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -257,12 +249,8 @@ class LongStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -339,12 +327,8 @@ class ULongStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -421,12 +405,8 @@ class LongLongStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -503,12 +483,8 @@ class ULongLongStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -585,12 +561,8 @@ class FloatStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -667,12 +639,8 @@ class DoubleStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -749,12 +717,8 @@ class LongDoubleStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -831,12 +795,8 @@ class BooleanStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -913,12 +873,8 @@ class OctetStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -995,12 +951,8 @@ class CharStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1077,12 +1029,8 @@ class WCharStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1159,12 +1107,8 @@ class Int8StructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1241,12 +1185,8 @@ class Uint8StructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1323,12 +1263,8 @@ class Int16StructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1405,12 +1341,8 @@ class Uint16StructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1487,12 +1419,8 @@ class Int32StructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1569,12 +1497,8 @@ class Uint32StructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1651,12 +1575,8 @@ class Int64StructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1733,12 +1653,8 @@ class Uint64StructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds-types-test/relative_path_include.hpp b/test/dds-types-test/relative_path_include.hpp new file mode 100644 index 00000000000..301702aa53e --- /dev/null +++ b/test/dds-types-test/relative_path_include.hpp @@ -0,0 +1,179 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file relative_path_include.hpp + * This header file contains the declaration of the described types in the IDL file. + * + * This file was generated by the tool fastddsgen (version: 4.1.0). + */ + +#ifndef FAST_DDS_GENERATED__RELATIVE_PATH_INCLUDE_HPP +#define FAST_DDS_GENERATED__RELATIVE_PATH_INCLUDE_HPP + +#include +#include +#include "../IDL/helpers/basic_inner_types.hpp" + +#if defined(_WIN32) +#if defined(EPROSIMA_USER_DLL_EXPORT) +#define eProsima_user_DllExport __declspec( dllexport ) +#else +#define eProsima_user_DllExport +#endif // EPROSIMA_USER_DLL_EXPORT +#else +#define eProsima_user_DllExport +#endif // _WIN32 + +#if defined(_WIN32) +#if defined(EPROSIMA_USER_DLL_EXPORT) +#if defined(RELATIVE_PATH_INCLUDE_SOURCE) +#define RELATIVE_PATH_INCLUDE_DllAPI __declspec( dllexport ) +#else +#define RELATIVE_PATH_INCLUDE_DllAPI __declspec( dllimport ) +#endif // RELATIVE_PATH_INCLUDE_SOURCE +#else +#define RELATIVE_PATH_INCLUDE_DllAPI +#endif // EPROSIMA_USER_DLL_EXPORT +#else +#define RELATIVE_PATH_INCLUDE_DllAPI +#endif // _WIN32 + +/*! + * @brief This class represents the structure RelativePathIncludeStruct defined by the user in the IDL file. + * @ingroup relative_path_include + */ +class RelativePathIncludeStruct +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport RelativePathIncludeStruct() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~RelativePathIncludeStruct() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object RelativePathIncludeStruct that will be copied. + */ + eProsima_user_DllExport RelativePathIncludeStruct( + const RelativePathIncludeStruct& x) + { + m_value = x.m_value; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object RelativePathIncludeStruct that will be copied. + */ + eProsima_user_DllExport RelativePathIncludeStruct( + RelativePathIncludeStruct&& x) noexcept + { + m_value = x.m_value; + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object RelativePathIncludeStruct that will be copied. + */ + eProsima_user_DllExport RelativePathIncludeStruct& operator =( + const RelativePathIncludeStruct& x) + { + + m_value = x.m_value; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object RelativePathIncludeStruct that will be copied. + */ + eProsima_user_DllExport RelativePathIncludeStruct& operator =( + RelativePathIncludeStruct&& x) noexcept + { + + m_value = x.m_value; + return *this; + } + + /*! + * @brief Comparison operator. + * @param x RelativePathIncludeStruct object to compare. + */ + eProsima_user_DllExport bool operator ==( + const RelativePathIncludeStruct& x) const + { + return (m_value == x.m_value); + } + + /*! + * @brief Comparison operator. + * @param x RelativePathIncludeStruct object to compare. + */ + eProsima_user_DllExport bool operator !=( + const RelativePathIncludeStruct& x) const + { + return !(*this == x); + } + + /*! + * @brief This function sets a value in member value + * @param _value New value for member value + */ + eProsima_user_DllExport void value( + InnerEnumHelper _value) + { + m_value = _value; + } + + /*! + * @brief This function returns the value of member value + * @return Value of member value + */ + eProsima_user_DllExport InnerEnumHelper value() const + { + return m_value; + } + + /*! + * @brief This function returns a reference to member value + * @return Reference to member value + */ + eProsima_user_DllExport InnerEnumHelper& value() + { + return m_value; + } + + + +private: + + InnerEnumHelper m_value{InnerEnumHelper::ENUM_VALUE_1}; + +}; + +#endif // _FAST_DDS_GENERATED_RELATIVE_PATH_INCLUDE_HPP_ + + diff --git a/test/dds-types-test/relative_path_includeCdrAux.hpp b/test/dds-types-test/relative_path_includeCdrAux.hpp new file mode 100644 index 00000000000..4d62d702465 --- /dev/null +++ b/test/dds-types-test/relative_path_includeCdrAux.hpp @@ -0,0 +1,55 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file relative_path_includeCdrAux.hpp + * This source file contains some definitions of CDR related functions. + * + * This file was generated by the tool fastddsgen (version: 4.1.0). + */ + +#ifndef FAST_DDS_GENERATED__RELATIVE_PATH_INCLUDECDRAUX_HPP +#define FAST_DDS_GENERATED__RELATIVE_PATH_INCLUDECDRAUX_HPP + +#include "relative_path_include.hpp" +constexpr uint32_t RelativePathIncludeStruct_max_cdr_typesize {8UL}; +constexpr uint32_t RelativePathIncludeStruct_max_key_cdr_typesize {0UL}; + + + + + + + + + + + +namespace eprosima { +namespace fastcdr { + +class Cdr; +class CdrSizeCalculator; + +eProsima_user_DllExport void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const RelativePathIncludeStruct& data); + + + +} // namespace fastcdr +} // namespace eprosima + +#endif // FAST_DDS_GENERATED__RELATIVE_PATH_INCLUDECDRAUX_HPP + diff --git a/test/dds-types-test/relative_path_includeCdrAux.ipp b/test/dds-types-test/relative_path_includeCdrAux.ipp new file mode 100644 index 00000000000..a64b3006a8d --- /dev/null +++ b/test/dds-types-test/relative_path_includeCdrAux.ipp @@ -0,0 +1,223 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file relative_path_includeCdrAux.ipp + * This source file contains some declarations of CDR related functions. + * + * This file was generated by the tool fastddsgen (version: 4.1.0). + */ + +#ifndef FAST_DDS_GENERATED__RELATIVE_PATH_INCLUDECDRAUX_IPP +#define FAST_DDS_GENERATED__RELATIVE_PATH_INCLUDECDRAUX_IPP + +#include "relative_path_includeCdrAux.hpp" + +#include +#include + +#include + +#include +using namespace eprosima::fastcdr::exception; + +namespace eprosima { +namespace fastcdr { + + +eProsima_user_DllExport bool is_RelativePathIncludeStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + +template<> +eProsima_user_DllExport size_t calculate_serialized_size( + eprosima::fastcdr::CdrSizeCalculator& calculator, + const RelativePathIncludeStruct& data, + size_t& current_alignment) +{ + static_cast(data); + + eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); + size_t calculated_size {calculator.begin_calculate_type_serialized_size( + eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + current_alignment)}; + + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0), + data.value(), current_alignment); + + + calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); + + return calculated_size; +} + +template<> +eProsima_user_DllExport void serialize( + eprosima::fastcdr::Cdr& scdr, + const RelativePathIncludeStruct& data) +{ + eprosima::fastcdr::Cdr::state current_state(scdr); + scdr.begin_serialize_type(current_state, + eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); + + scdr + << eprosima::fastcdr::MemberId(0) << data.value() +; + scdr.end_serialize_type(current_state); +} + +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const RelativePathIncludeStruct* array_ptr, + const std::size_t array_size) +{ + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_RelativePathIncludeStruct_cdr_plain(data_representation) && + sizeof(RelativePathIncludeStruct) == RelativePathIncludeStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(RelativePathIncludeStruct)); + + scdr.jump((array_size -1) * sizeof(RelativePathIncludeStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } +} + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, + RelativePathIncludeStruct& data) +{ + cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool + { + bool ret_value = true; + switch (mid.id) + { + case 0: + dcdr >> data.value(); + break; + + default: + ret_value = false; + break; + } + return ret_value; + }); +} + +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + RelativePathIncludeStruct* array_ptr, + const std::size_t array_size) +{ + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (CdrVersion::XCDRv2 == scdr.get_cdr_version()) + { + uint32_t dheader {0}; + scdr.deserialize(dheader); + auto offset = scdr.get_current_position(); + + if (is_RelativePathIncludeStruct_cdr_plain(data_representation) && + sizeof(RelativePathIncludeStruct) == RelativePathIncludeStruct_max_cdr_typesize) + { + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size) * sizeof(RelativePathIncludeStruct)); + + scdr.jump((array_size) * sizeof(RelativePathIncludeStruct)); + } + else + { + uint32_t count {0}; + while (scdr.get_current_position() - offset < dheader && count < array_size) + { + scdr.deserialize_array(&array_ptr[count], 1); + ++count; + } + } + + if (scdr.get_current_position() - offset != dheader) + { + throw exception::BadParamException("Member size greater than size specified by DHEADER"); + } + } + else + { + if (is_RelativePathIncludeStruct_cdr_plain(data_representation) && + sizeof(RelativePathIncludeStruct) == RelativePathIncludeStruct_max_cdr_typesize) + { + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size) * sizeof(RelativePathIncludeStruct)); + + scdr.jump((array_size) * sizeof(RelativePathIncludeStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} + +void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const RelativePathIncludeStruct& data) +{ + + static_cast(scdr); + static_cast(data); + scdr << data.value(); + +} + + + +} // namespace fastcdr +} // namespace eprosima + +#endif // FAST_DDS_GENERATED__RELATIVE_PATH_INCLUDECDRAUX_IPP + diff --git a/test/dds-types-test/relative_path_includePubSubTypes.cxx b/test/dds-types-test/relative_path_includePubSubTypes.cxx new file mode 100644 index 00000000000..10134f4bd72 --- /dev/null +++ b/test/dds-types-test/relative_path_includePubSubTypes.cxx @@ -0,0 +1,247 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file relative_path_includePubSubTypes.cpp + * This header file contains the implementation of the serialization functions. + * + * This file was generated by the tool fastddsgen (version: 4.1.0). + */ + +#include "relative_path_includePubSubTypes.hpp" + +#include +#include + +#include "relative_path_includeCdrAux.hpp" +#include "relative_path_includeTypeObjectSupport.hpp" + +using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; +using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; +using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; + +namespace eprosima { +namespace fastcdr { + +bool is_RelativePathIncludeStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + + + + +} // namespace fastcdr +} // namespace eprosima + +RelativePathIncludeStructPubSubType::RelativePathIncludeStructPubSubType() +{ + set_name("RelativePathIncludeStruct"); + uint32_t type_size = RelativePathIncludeStruct_max_cdr_typesize; + type_size += static_cast(eprosima::fastcdr::Cdr::alignment(type_size, 4)); /* possible submessage alignment */ + max_serialized_type_size = type_size + 4; /*encapsulation*/ + is_compute_key_provided = false; + uint32_t key_length = RelativePathIncludeStruct_max_key_cdr_typesize > 16 ? RelativePathIncludeStruct_max_key_cdr_typesize : 16; + key_buffer_ = reinterpret_cast(malloc(key_length)); + memset(key_buffer_, 0, key_length); +} + +RelativePathIncludeStructPubSubType::~RelativePathIncludeStructPubSubType() +{ + if (key_buffer_ != nullptr) + { + free(key_buffer_); + } +} + +bool RelativePathIncludeStructPubSubType::serialize( + const void* const data, + SerializedPayload_t& payload, + DataRepresentationId_t data_representation) +{ + const ::RelativePathIncludeStruct* p_type = static_cast(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.max_size); + // Object that serializes the data. + eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN, + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::CdrVersion::XCDRv1 : eprosima::fastcdr::CdrVersion::XCDRv2); + payload.encapsulation = ser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE; + ser.set_encoding_flag( + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR : + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2); + + try + { + // Serialize encapsulation + ser.serialize_encapsulation(); + // Serialize the object. + ser << *p_type; + ser.set_dds_cdr_options({0,0}); + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return false; + } + + // Get the serialized length + payload.length = static_cast(ser.get_serialized_data_length()); + return true; +} + +bool RelativePathIncludeStructPubSubType::deserialize( + SerializedPayload_t& payload, + void* data) +{ + try + { + // Convert DATA to pointer of your type + ::RelativePathIncludeStruct* p_type = static_cast<::RelativePathIncludeStruct*>(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.length); + + // Object that deserializes the data. + eprosima::fastcdr::Cdr deser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN); + + // Deserialize encapsulation. + deser.read_encapsulation(); + payload.encapsulation = deser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE; + + // Deserialize the object. + deser >> *p_type; + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return false; + } + + return true; +} + +uint32_t RelativePathIncludeStructPubSubType::calculate_serialized_size( + const void* const data, + DataRepresentationId_t data_representation) +{ + try + { + eprosima::fastcdr::CdrSizeCalculator calculator( + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::CdrVersion::XCDRv1 :eprosima::fastcdr::CdrVersion::XCDRv2); + size_t current_alignment {0}; + return static_cast(calculator.calculate_serialized_size( + *static_cast(data), current_alignment)) + + 4u /*encapsulation*/; + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return 0; + } +} + +void* RelativePathIncludeStructPubSubType::create_data() +{ + return reinterpret_cast(new ::RelativePathIncludeStruct()); +} + +void RelativePathIncludeStructPubSubType::delete_data( + void* data) +{ + delete(reinterpret_cast<::RelativePathIncludeStruct*>(data)); +} + +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool RelativePathIncludeStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + +bool RelativePathIncludeStructPubSubType::compute_key( + SerializedPayload_t& payload, + InstanceHandle_t& handle, + bool force_md5) +{ + if (!is_compute_key_provided) + { + return false; + } + + ::RelativePathIncludeStruct data; + if (deserialize(payload, static_cast(&data))) + { + return compute_key(static_cast(&data), handle, force_md5); + } + + return false; +} + +bool RelativePathIncludeStructPubSubType::compute_key( + const void* const data, + InstanceHandle_t& handle, + bool force_md5) +{ + if (!is_compute_key_provided) + { + return false; + } + + const ::RelativePathIncludeStruct* p_type = static_cast(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(key_buffer_), + RelativePathIncludeStruct_max_key_cdr_typesize); + + // Object that serializes the data. + eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS, eprosima::fastcdr::CdrVersion::XCDRv2); + ser.set_encoding_flag(eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2); + eprosima::fastcdr::serialize_key(ser, *p_type); + if (force_md5 || RelativePathIncludeStruct_max_key_cdr_typesize > 16) + { + md5_.init(); + md5_.update(key_buffer_, static_cast(ser.get_serialized_data_length())); + md5_.finalize(); + for (uint8_t i = 0; i < 16; ++i) + { + handle.value[i] = md5_.digest[i]; + } + } + else + { + for (uint8_t i = 0; i < 16; ++i) + { + handle.value[i] = key_buffer_[i]; + } + } + return true; +} + +void RelativePathIncludeStructPubSubType::register_type_object_representation() +{ + register_RelativePathIncludeStruct_type_identifier(type_identifiers_); +} + + +// Include auxiliary functions like for serializing/deserializing. +#include "relative_path_includeCdrAux.ipp" diff --git a/test/dds-types-test/relative_path_includePubSubTypes.hpp b/test/dds-types-test/relative_path_includePubSubTypes.hpp new file mode 100644 index 00000000000..fa3f808d8cf --- /dev/null +++ b/test/dds-types-test/relative_path_includePubSubTypes.hpp @@ -0,0 +1,121 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file relative_path_includePubSubTypes.hpp + * This header file contains the declaration of the serialization functions. + * + * This file was generated by the tool fastddsgen (version: 4.1.0). + */ + + +#ifndef FAST_DDS_GENERATED__RELATIVE_PATH_INCLUDE_PUBSUBTYPES_HPP +#define FAST_DDS_GENERATED__RELATIVE_PATH_INCLUDE_PUBSUBTYPES_HPP + +#include +#include +#include +#include +#include + +#include "relative_path_include.hpp" + +#include "../IDL/helpers/basic_inner_typesPubSubTypes.hpp" + +#if !defined(FASTDDS_GEN_API_VER) || (FASTDDS_GEN_API_VER != 3) +#error \ + Generated relative_path_include is not compatible with current installed Fast DDS. Please, regenerate it with fastddsgen. +#endif // FASTDDS_GEN_API_VER + + +/*! + * @brief This class represents the TopicDataType of the type RelativePathIncludeStruct defined by the user in the IDL file. + * @ingroup relative_path_include + */ +class RelativePathIncludeStructPubSubType : public eprosima::fastdds::dds::TopicDataType +{ +public: + + typedef ::RelativePathIncludeStruct type; + + eProsima_user_DllExport RelativePathIncludeStructPubSubType(); + + eProsima_user_DllExport ~RelativePathIncludeStructPubSubType() override; + + eProsima_user_DllExport bool serialize( + const void* const data, + eprosima::fastdds::rtps::SerializedPayload_t& payload, + eprosima::fastdds::dds::DataRepresentationId_t data_representation) override; + + eProsima_user_DllExport bool deserialize( + eprosima::fastdds::rtps::SerializedPayload_t& payload, + void* data) override; + + eProsima_user_DllExport uint32_t calculate_serialized_size( + const void* const data, + eprosima::fastdds::dds::DataRepresentationId_t data_representation) override; + + eProsima_user_DllExport bool compute_key( + eprosima::fastdds::rtps::SerializedPayload_t& payload, + eprosima::fastdds::rtps::InstanceHandle_t& ihandle, + bool force_md5 = false) override; + + eProsima_user_DllExport bool compute_key( + const void* const data, + eprosima::fastdds::rtps::InstanceHandle_t& ihandle, + bool force_md5 = false) override; + + eProsima_user_DllExport void* create_data() override; + + eProsima_user_DllExport void delete_data( + void* data) override; + + //Register TypeObject representation in Fast DDS TypeObjectRegistry + eProsima_user_DllExport void register_type_object_representation() override; + +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_BOUNDED + eProsima_user_DllExport inline bool is_bounded() const override + { + return true; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_BOUNDED + +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + +#ifdef TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE + eProsima_user_DllExport inline bool construct_sample( + void* memory) const override + { + static_cast(memory); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE + +private: + + eprosima::fastdds::MD5 md5_; + unsigned char* key_buffer_; + +}; + + +#endif // FAST_DDS_GENERATED__RELATIVE_PATH_INCLUDE_PUBSUBTYPES_HPP + diff --git a/test/dds-types-test/relative_path_includeTypeObjectSupport.cxx b/test/dds-types-test/relative_path_includeTypeObjectSupport.cxx new file mode 100644 index 00000000000..ec32668581b --- /dev/null +++ b/test/dds-types-test/relative_path_includeTypeObjectSupport.cxx @@ -0,0 +1,97 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file relative_path_includeTypeObjectSupport.cxx + * Source file containing the implementation to register the TypeObject representation of the described types in the IDL file + * + * This file was generated by the tool fastddsgen (version: 4.1.0). + */ + +#include "relative_path_includeTypeObjectSupport.hpp" + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include "relative_path_include.hpp" + +#include "../IDL/helpers/basic_inner_types.hpp" + +using namespace eprosima::fastdds::dds::xtypes; + +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_RelativePathIncludeStruct_type_identifier( + TypeIdentifierPair& type_ids_RelativePathIncludeStruct) +{ + + ReturnCode_t return_code_RelativePathIncludeStruct {eprosima::fastdds::dds::RETCODE_OK}; + return_code_RelativePathIncludeStruct = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "RelativePathIncludeStruct", type_ids_RelativePathIncludeStruct); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_RelativePathIncludeStruct) + { + StructTypeFlag struct_flags_RelativePathIncludeStruct = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_RelativePathIncludeStruct = "RelativePathIncludeStruct"; + eprosima::fastcdr::optional type_ann_builtin_RelativePathIncludeStruct; + eprosima::fastcdr::optional ann_custom_RelativePathIncludeStruct; + CompleteTypeDetail detail_RelativePathIncludeStruct = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_RelativePathIncludeStruct, ann_custom_RelativePathIncludeStruct, type_name_RelativePathIncludeStruct.to_string()); + CompleteStructHeader header_RelativePathIncludeStruct; + header_RelativePathIncludeStruct = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_RelativePathIncludeStruct); + CompleteStructMemberSeq member_seq_RelativePathIncludeStruct; + { + TypeIdentifierPair type_ids_value; + ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "InnerEnumHelper", type_ids_value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) + { + ::register_InnerEnumHelper_type_identifier(type_ids_value); + } + StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_value = 0x00000000; + bool common_value_ec {false}; + CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; + if (!common_value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); + return; + } + MemberName name_value = "value"; + eprosima::fastcdr::optional member_ann_builtin_value; + ann_custom_RelativePathIncludeStruct.reset(); + CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_RelativePathIncludeStruct); + CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); + TypeObjectUtils::add_complete_struct_member(member_seq_RelativePathIncludeStruct, member_value); + } + CompleteStructType struct_type_RelativePathIncludeStruct = TypeObjectUtils::build_complete_struct_type(struct_flags_RelativePathIncludeStruct, header_RelativePathIncludeStruct, member_seq_RelativePathIncludeStruct); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_RelativePathIncludeStruct, type_name_RelativePathIncludeStruct.to_string(), type_ids_RelativePathIncludeStruct)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "RelativePathIncludeStruct already registered in TypeObjectRegistry for a different type."); + } + } +} diff --git a/test/dds-types-test/relative_path_includeTypeObjectSupport.hpp b/test/dds-types-test/relative_path_includeTypeObjectSupport.hpp new file mode 100644 index 00000000000..86f3f68b8c8 --- /dev/null +++ b/test/dds-types-test/relative_path_includeTypeObjectSupport.hpp @@ -0,0 +1,57 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file relative_path_includeTypeObjectSupport.hpp + * Header file containing the API required to register the TypeObject representation of the described types in the IDL file + * + * This file was generated by the tool fastddsgen (version: 4.1.0). + */ + +#ifndef FAST_DDS_GENERATED__RELATIVE_PATH_INCLUDE_TYPE_OBJECT_SUPPORT_HPP +#define FAST_DDS_GENERATED__RELATIVE_PATH_INCLUDE_TYPE_OBJECT_SUPPORT_HPP + +#include + +#include "../IDL/helpers/basic_inner_typesTypeObjectSupport.hpp" + +#if defined(_WIN32) +#if defined(EPROSIMA_USER_DLL_EXPORT) +#define eProsima_user_DllExport __declspec( dllexport ) +#else +#define eProsima_user_DllExport +#endif // EPROSIMA_USER_DLL_EXPORT +#else +#define eProsima_user_DllExport +#endif // _WIN32 + +#ifndef DOXYGEN_SHOULD_SKIP_THIS_PUBLIC + +/** + * @brief Register RelativePathIncludeStruct related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_RelativePathIncludeStruct_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + + +#endif // DOXYGEN_SHOULD_SKIP_THIS_PUBLIC + +#endif // FAST_DDS_GENERATED__RELATIVE_PATH_INCLUDE_TYPE_OBJECT_SUPPORT_HPP diff --git a/test/dds-types-test/sequences.hpp b/test/dds-types-test/sequences.hpp index 126cfeb9020..dfc70bb9852 100644 --- a/test/dds-types-test/sequences.hpp +++ b/test/dds-types-test/sequences.hpp @@ -3871,6 +3871,139 @@ class BoundedBigSequences std::vector m_var_sequence_big; std::vector m_var_unbounded_string_large_bounded_sequence; +}; +/*! + * @brief This class represents the structure LargePlainSequence defined by the user in the IDL file. + * @ingroup sequences + */ +class LargePlainSequence +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport LargePlainSequence() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~LargePlainSequence() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object LargePlainSequence that will be copied. + */ + eProsima_user_DllExport LargePlainSequence( + const LargePlainSequence& x) + { + m_var_large_plain_sequence = x.m_var_large_plain_sequence; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object LargePlainSequence that will be copied. + */ + eProsima_user_DllExport LargePlainSequence( + LargePlainSequence&& x) noexcept + { + m_var_large_plain_sequence = std::move(x.m_var_large_plain_sequence); + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object LargePlainSequence that will be copied. + */ + eProsima_user_DllExport LargePlainSequence& operator =( + const LargePlainSequence& x) + { + + m_var_large_plain_sequence = x.m_var_large_plain_sequence; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object LargePlainSequence that will be copied. + */ + eProsima_user_DllExport LargePlainSequence& operator =( + LargePlainSequence&& x) noexcept + { + + m_var_large_plain_sequence = std::move(x.m_var_large_plain_sequence); + return *this; + } + + /*! + * @brief Comparison operator. + * @param x LargePlainSequence object to compare. + */ + eProsima_user_DllExport bool operator ==( + const LargePlainSequence& x) const + { + return (m_var_large_plain_sequence == x.m_var_large_plain_sequence); + } + + /*! + * @brief Comparison operator. + * @param x LargePlainSequence object to compare. + */ + eProsima_user_DllExport bool operator !=( + const LargePlainSequence& x) const + { + return !(*this == x); + } + + /*! + * @brief This function copies the value in member var_large_plain_sequence + * @param _var_large_plain_sequence New value to be copied in member var_large_plain_sequence + */ + eProsima_user_DllExport void var_large_plain_sequence( + const std::vector& _var_large_plain_sequence) + { + m_var_large_plain_sequence = _var_large_plain_sequence; + } + + /*! + * @brief This function moves the value in member var_large_plain_sequence + * @param _var_large_plain_sequence New value to be moved in member var_large_plain_sequence + */ + eProsima_user_DllExport void var_large_plain_sequence( + std::vector&& _var_large_plain_sequence) + { + m_var_large_plain_sequence = std::move(_var_large_plain_sequence); + } + + /*! + * @brief This function returns a constant reference to member var_large_plain_sequence + * @return Constant reference to member var_large_plain_sequence + */ + eProsima_user_DllExport const std::vector& var_large_plain_sequence() const + { + return m_var_large_plain_sequence; + } + + /*! + * @brief This function returns a reference to member var_large_plain_sequence + * @return Reference to member var_large_plain_sequence + */ + eProsima_user_DllExport std::vector& var_large_plain_sequence() + { + return m_var_large_plain_sequence; + } + + + +private: + + std::vector m_var_large_plain_sequence; + }; namespace Common_Module { diff --git a/test/dds-types-test/sequencesCdrAux.hpp b/test/dds-types-test/sequencesCdrAux.hpp index 478bfa66b90..418e27a2f45 100644 --- a/test/dds-types-test/sequencesCdrAux.hpp +++ b/test/dds-types-test/sequencesCdrAux.hpp @@ -23,18 +23,9 @@ #define FAST_DDS_GENERATED__NOCOMMON_MODULE_SEQUENCESCDRAUX_HPP #include "sequences.hpp" -constexpr uint32_t SequenceLongDouble_max_cdr_typesize {8UL}; -constexpr uint32_t SequenceLongDouble_max_key_cdr_typesize {0UL}; - constexpr uint32_t SequenceBitset_max_cdr_typesize {12UL}; constexpr uint32_t SequenceBitset_max_key_cdr_typesize {0UL}; -constexpr uint32_t SequenceStructure_max_cdr_typesize {12UL}; -constexpr uint32_t SequenceStructure_max_key_cdr_typesize {0UL}; - -constexpr uint32_t SequenceShortArray_max_cdr_typesize {12UL}; -constexpr uint32_t SequenceShortArray_max_key_cdr_typesize {0UL}; - constexpr uint32_t SequenceLongLong_max_cdr_typesize {8UL}; constexpr uint32_t SequenceLongLong_max_key_cdr_typesize {0UL}; @@ -44,6 +35,56 @@ constexpr uint32_t SequenceAlias_max_key_cdr_typesize {0UL}; constexpr uint32_t SequenceLong_max_cdr_typesize {8UL}; constexpr uint32_t SequenceLong_max_key_cdr_typesize {0UL}; +constexpr uint32_t SequenceWStringBounded_max_cdr_typesize {12UL}; +constexpr uint32_t SequenceWStringBounded_max_key_cdr_typesize {0UL}; + +constexpr uint32_t LargePlainSequence_max_cdr_typesize {75497480UL}; +constexpr uint32_t LargePlainSequence_max_key_cdr_typesize {0UL}; + +constexpr uint32_t SequenceDouble_max_cdr_typesize {8UL}; +constexpr uint32_t SequenceDouble_max_key_cdr_typesize {0UL}; + + +constexpr uint32_t BoundedSmallSequences_max_cdr_typesize {1320UL}; +constexpr uint32_t BoundedSmallSequences_max_key_cdr_typesize {0UL}; + +constexpr uint32_t SequenceBitMask_max_cdr_typesize {12UL}; +constexpr uint32_t SequenceBitMask_max_key_cdr_typesize {0UL}; + + + + +constexpr uint32_t SequenceOctet_max_cdr_typesize {8UL}; +constexpr uint32_t SequenceOctet_max_key_cdr_typesize {0UL}; + +constexpr uint32_t SequenceWChar_max_cdr_typesize {8UL}; +constexpr uint32_t SequenceWChar_max_key_cdr_typesize {0UL}; + + + + + +constexpr uint32_t SequenceULong_max_cdr_typesize {8UL}; +constexpr uint32_t SequenceULong_max_key_cdr_typesize {0UL}; + + + +constexpr uint32_t SequenceFloat_max_cdr_typesize {8UL}; +constexpr uint32_t SequenceFloat_max_key_cdr_typesize {0UL}; + + +constexpr uint32_t SequenceChar_max_cdr_typesize {8UL}; +constexpr uint32_t SequenceChar_max_key_cdr_typesize {0UL}; + +constexpr uint32_t SequenceLongDouble_max_cdr_typesize {8UL}; +constexpr uint32_t SequenceLongDouble_max_key_cdr_typesize {0UL}; + +constexpr uint32_t SequenceStructure_max_cdr_typesize {12UL}; +constexpr uint32_t SequenceStructure_max_key_cdr_typesize {0UL}; + +constexpr uint32_t SequenceShortArray_max_cdr_typesize {12UL}; +constexpr uint32_t SequenceShortArray_max_key_cdr_typesize {0UL}; + constexpr uint32_t SequenceStringBounded_max_cdr_typesize {12UL}; constexpr uint32_t SequenceStringBounded_max_key_cdr_typesize {0UL}; @@ -53,9 +94,6 @@ constexpr uint32_t SequenceMap_max_key_cdr_typesize {0UL}; constexpr uint32_t SequenceBoolean_max_cdr_typesize {8UL}; constexpr uint32_t SequenceBoolean_max_key_cdr_typesize {0UL}; -constexpr uint32_t SequenceWStringBounded_max_cdr_typesize {12UL}; -constexpr uint32_t SequenceWStringBounded_max_key_cdr_typesize {0UL}; - constexpr uint32_t BoundedBigSequences_max_cdr_typesize {150428UL}; constexpr uint32_t BoundedBigSequences_max_key_cdr_typesize {0UL}; @@ -63,20 +101,10 @@ constexpr uint32_t SequenceString_max_cdr_typesize {12UL}; constexpr uint32_t SequenceString_max_key_cdr_typesize {0UL}; + constexpr uint32_t SequenceShort_max_cdr_typesize {8UL}; constexpr uint32_t SequenceShort_max_key_cdr_typesize {0UL}; -constexpr uint32_t SequenceDouble_max_cdr_typesize {8UL}; -constexpr uint32_t SequenceDouble_max_key_cdr_typesize {0UL}; - - -constexpr uint32_t BoundedSmallSequences_max_cdr_typesize {1320UL}; -constexpr uint32_t BoundedSmallSequences_max_key_cdr_typesize {0UL}; - -constexpr uint32_t SequenceBitMask_max_cdr_typesize {12UL}; -constexpr uint32_t SequenceBitMask_max_key_cdr_typesize {0UL}; - - constexpr uint32_t SequenceUShort_max_cdr_typesize {8UL}; constexpr uint32_t SequenceUShort_max_key_cdr_typesize {0UL}; @@ -86,15 +114,6 @@ constexpr uint32_t SequenceEnum_max_key_cdr_typesize {0UL}; - -constexpr uint32_t SequenceOctet_max_cdr_typesize {8UL}; -constexpr uint32_t SequenceOctet_max_key_cdr_typesize {0UL}; - -constexpr uint32_t SequenceWChar_max_cdr_typesize {8UL}; -constexpr uint32_t SequenceWChar_max_key_cdr_typesize {0UL}; - - - constexpr uint32_t NoCommon_Module_My_Structure_max_cdr_typesize {12UL}; constexpr uint32_t NoCommon_Module_My_Structure_max_key_cdr_typesize {0UL}; @@ -103,32 +122,18 @@ constexpr uint32_t SequenceSequence_max_key_cdr_typesize {0UL}; - - constexpr uint32_t SequenceUnion_max_cdr_typesize {12UL}; constexpr uint32_t SequenceUnion_max_key_cdr_typesize {0UL}; -constexpr uint32_t SequenceULong_max_cdr_typesize {8UL}; -constexpr uint32_t SequenceULong_max_key_cdr_typesize {0UL}; - - - constexpr uint32_t SequenceULongLong_max_cdr_typesize {8UL}; constexpr uint32_t SequenceULongLong_max_key_cdr_typesize {0UL}; -constexpr uint32_t SequenceFloat_max_cdr_typesize {8UL}; -constexpr uint32_t SequenceFloat_max_key_cdr_typesize {0UL}; - constexpr uint32_t SequenceWString_max_cdr_typesize {12UL}; constexpr uint32_t SequenceWString_max_key_cdr_typesize {0UL}; -constexpr uint32_t SequenceChar_max_cdr_typesize {8UL}; -constexpr uint32_t SequenceChar_max_key_cdr_typesize {0UL}; - - namespace eprosima { namespace fastcdr { @@ -139,119 +144,153 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceUShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceULong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceLongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceULongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceFloat& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceLongDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceBoolean& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceOctet& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceWChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceStringBounded& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceWStringBounded& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceEnum& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceBitMask& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceAlias& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceShortArray& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceSequence& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceMap& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceUnion& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceStructure& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceBitset& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const BoundedSmallSequences& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const BoundedBigSequences& data); + +eProsima_user_DllExport void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const LargePlainSequence& data); + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const NoCommon_Module::My_Structure& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/sequencesCdrAux.ipp b/test/dds-types-test/sequencesCdrAux.ipp index 1417d5920b1..a904930fe7a 100644 --- a/test/dds-types-test/sequencesCdrAux.ipp +++ b/test/dds-types-test/sequencesCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_SequenceShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceShort_cdr_plain(data_representation) && + sizeof(SequenceShort) == SequenceShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceShort)); + + scdr.jump((array_size -1) * sizeof(SequenceShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceShort_cdr_plain(data_representation) && + sizeof(SequenceShort) == SequenceShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceShort)); + + scdr.jump((array_size - 1) * sizeof(SequenceShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceShort& data) @@ -113,6 +196,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceUShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -155,6 +246,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceUShort_cdr_plain(data_representation) && + sizeof(SequenceUShort) == SequenceUShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceUShort)); + + scdr.jump((array_size -1) * sizeof(SequenceUShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -180,6 +309,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceUShort_cdr_plain(data_representation) && + sizeof(SequenceUShort) == SequenceUShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceUShort)); + + scdr.jump((array_size - 1) * sizeof(SequenceUShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceUShort& data) @@ -192,6 +357,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -234,6 +407,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceLong_cdr_plain(data_representation) && + sizeof(SequenceLong) == SequenceLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceLong)); + + scdr.jump((array_size -1) * sizeof(SequenceLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -259,6 +470,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceLong_cdr_plain(data_representation) && + sizeof(SequenceLong) == SequenceLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceLong)); + + scdr.jump((array_size - 1) * sizeof(SequenceLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceLong& data) @@ -271,6 +518,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceULong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -313,6 +568,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceULong_cdr_plain(data_representation) && + sizeof(SequenceULong) == SequenceULong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceULong)); + + scdr.jump((array_size -1) * sizeof(SequenceULong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -338,6 +631,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceULong_cdr_plain(data_representation) && + sizeof(SequenceULong) == SequenceULong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceULong)); + + scdr.jump((array_size - 1) * sizeof(SequenceULong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceULong& data) @@ -350,6 +679,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceLongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -392,6 +729,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceLongLong_cdr_plain(data_representation) && + sizeof(SequenceLongLong) == SequenceLongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceLongLong)); + + scdr.jump((array_size -1) * sizeof(SequenceLongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -417,6 +792,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceLongLong_cdr_plain(data_representation) && + sizeof(SequenceLongLong) == SequenceLongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceLongLong)); + + scdr.jump((array_size - 1) * sizeof(SequenceLongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceLongLong& data) @@ -429,6 +840,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceULongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -471,6 +890,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceULongLong_cdr_plain(data_representation) && + sizeof(SequenceULongLong) == SequenceULongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceULongLong)); + + scdr.jump((array_size -1) * sizeof(SequenceULongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -496,6 +953,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceULongLong_cdr_plain(data_representation) && + sizeof(SequenceULongLong) == SequenceULongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceULongLong)); + + scdr.jump((array_size - 1) * sizeof(SequenceULongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceULongLong& data) @@ -508,6 +1001,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceFloat_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -550,6 +1051,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceFloat_cdr_plain(data_representation) && + sizeof(SequenceFloat) == SequenceFloat_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceFloat)); + + scdr.jump((array_size -1) * sizeof(SequenceFloat)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -575,6 +1114,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceFloat_cdr_plain(data_representation) && + sizeof(SequenceFloat) == SequenceFloat_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceFloat)); + + scdr.jump((array_size - 1) * sizeof(SequenceFloat)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceFloat& data) @@ -587,6 +1162,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -629,6 +1212,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceDouble_cdr_plain(data_representation) && + sizeof(SequenceDouble) == SequenceDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceDouble)); + + scdr.jump((array_size -1) * sizeof(SequenceDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -654,6 +1275,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceDouble_cdr_plain(data_representation) && + sizeof(SequenceDouble) == SequenceDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceDouble)); + + scdr.jump((array_size - 1) * sizeof(SequenceDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceDouble& data) @@ -666,6 +1323,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceLongDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -708,6 +1373,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceLongDouble_cdr_plain(data_representation) && + sizeof(SequenceLongDouble) == SequenceLongDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceLongDouble)); + + scdr.jump((array_size -1) * sizeof(SequenceLongDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -733,6 +1436,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceLongDouble_cdr_plain(data_representation) && + sizeof(SequenceLongDouble) == SequenceLongDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceLongDouble)); + + scdr.jump((array_size - 1) * sizeof(SequenceLongDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceLongDouble& data) @@ -745,6 +1484,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceBoolean_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -787,6 +1534,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceBoolean_cdr_plain(data_representation) && + sizeof(SequenceBoolean) == SequenceBoolean_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceBoolean)); + + scdr.jump((array_size -1) * sizeof(SequenceBoolean)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -812,6 +1597,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceBoolean_cdr_plain(data_representation) && + sizeof(SequenceBoolean) == SequenceBoolean_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceBoolean)); + + scdr.jump((array_size - 1) * sizeof(SequenceBoolean)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceBoolean& data) @@ -824,6 +1645,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceOctet_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -866,6 +1695,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceOctet_cdr_plain(data_representation) && + sizeof(SequenceOctet) == SequenceOctet_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceOctet)); + + scdr.jump((array_size -1) * sizeof(SequenceOctet)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -891,6 +1758,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceOctet_cdr_plain(data_representation) && + sizeof(SequenceOctet) == SequenceOctet_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceOctet)); + + scdr.jump((array_size - 1) * sizeof(SequenceOctet)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceOctet& data) @@ -903,6 +1806,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -945,6 +1856,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceChar_cdr_plain(data_representation) && + sizeof(SequenceChar) == SequenceChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceChar)); + + scdr.jump((array_size -1) * sizeof(SequenceChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -970,6 +1919,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceChar_cdr_plain(data_representation) && + sizeof(SequenceChar) == SequenceChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceChar)); + + scdr.jump((array_size - 1) * sizeof(SequenceChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceChar& data) @@ -982,6 +1967,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceWChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1024,6 +2017,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceWChar_cdr_plain(data_representation) && + sizeof(SequenceWChar) == SequenceWChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceWChar)); + + scdr.jump((array_size -1) * sizeof(SequenceWChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1049,6 +2080,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceWChar_cdr_plain(data_representation) && + sizeof(SequenceWChar) == SequenceWChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceWChar)); + + scdr.jump((array_size - 1) * sizeof(SequenceWChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceWChar& data) @@ -1061,6 +2128,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1103,6 +2178,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceString_cdr_plain(data_representation) && + sizeof(SequenceString) == SequenceString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceString)); + + scdr.jump((array_size -1) * sizeof(SequenceString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1128,6 +2241,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceString_cdr_plain(data_representation) && + sizeof(SequenceString) == SequenceString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceString)); + + scdr.jump((array_size - 1) * sizeof(SequenceString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceString& data) @@ -1140,6 +2289,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1182,6 +2339,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceWString_cdr_plain(data_representation) && + sizeof(SequenceWString) == SequenceWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceWString)); + + scdr.jump((array_size -1) * sizeof(SequenceWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1207,6 +2402,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceWString_cdr_plain(data_representation) && + sizeof(SequenceWString) == SequenceWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceWString)); + + scdr.jump((array_size - 1) * sizeof(SequenceWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceWString& data) @@ -1219,6 +2450,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceStringBounded_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1261,6 +2500,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceStringBounded* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceStringBounded_cdr_plain(data_representation) && + sizeof(SequenceStringBounded) == SequenceStringBounded_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceStringBounded)); + + scdr.jump((array_size -1) * sizeof(SequenceStringBounded)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1286,6 +2563,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceStringBounded* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceStringBounded_cdr_plain(data_representation) && + sizeof(SequenceStringBounded) == SequenceStringBounded_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceStringBounded)); + + scdr.jump((array_size - 1) * sizeof(SequenceStringBounded)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceStringBounded& data) @@ -1298,6 +2611,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceWStringBounded_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1340,6 +2661,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceWStringBounded* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceWStringBounded_cdr_plain(data_representation) && + sizeof(SequenceWStringBounded) == SequenceWStringBounded_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceWStringBounded)); + + scdr.jump((array_size -1) * sizeof(SequenceWStringBounded)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1365,6 +2724,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceWStringBounded* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceWStringBounded_cdr_plain(data_representation) && + sizeof(SequenceWStringBounded) == SequenceWStringBounded_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceWStringBounded)); + + scdr.jump((array_size - 1) * sizeof(SequenceWStringBounded)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceWStringBounded& data) @@ -1377,6 +2772,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceEnum_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1419,6 +2822,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceEnum* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceEnum_cdr_plain(data_representation) && + sizeof(SequenceEnum) == SequenceEnum_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceEnum)); + + scdr.jump((array_size -1) * sizeof(SequenceEnum)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1444,6 +2885,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceEnum* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceEnum_cdr_plain(data_representation) && + sizeof(SequenceEnum) == SequenceEnum_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceEnum)); + + scdr.jump((array_size - 1) * sizeof(SequenceEnum)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceEnum& data) @@ -1456,6 +2933,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceBitMask_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1498,6 +2983,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceBitMask* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceBitMask_cdr_plain(data_representation) && + sizeof(SequenceBitMask) == SequenceBitMask_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceBitMask)); + + scdr.jump((array_size -1) * sizeof(SequenceBitMask)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1523,6 +3046,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceBitMask* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceBitMask_cdr_plain(data_representation) && + sizeof(SequenceBitMask) == SequenceBitMask_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceBitMask)); + + scdr.jump((array_size - 1) * sizeof(SequenceBitMask)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceBitMask& data) @@ -1535,6 +3094,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceAlias_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1577,6 +3144,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceAlias* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceAlias_cdr_plain(data_representation) && + sizeof(SequenceAlias) == SequenceAlias_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceAlias)); + + scdr.jump((array_size -1) * sizeof(SequenceAlias)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1602,6 +3207,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceAlias* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceAlias_cdr_plain(data_representation) && + sizeof(SequenceAlias) == SequenceAlias_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceAlias)); + + scdr.jump((array_size - 1) * sizeof(SequenceAlias)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceAlias& data) @@ -1614,6 +3255,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceShortArray_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1656,6 +3305,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceShortArray* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceShortArray_cdr_plain(data_representation) && + sizeof(SequenceShortArray) == SequenceShortArray_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceShortArray)); + + scdr.jump((array_size -1) * sizeof(SequenceShortArray)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1681,6 +3368,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceShortArray* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceShortArray_cdr_plain(data_representation) && + sizeof(SequenceShortArray) == SequenceShortArray_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceShortArray)); + + scdr.jump((array_size - 1) * sizeof(SequenceShortArray)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceShortArray& data) @@ -1693,6 +3416,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceSequence_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1735,6 +3466,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceSequence* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceSequence_cdr_plain(data_representation) && + sizeof(SequenceSequence) == SequenceSequence_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceSequence)); + + scdr.jump((array_size -1) * sizeof(SequenceSequence)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1760,6 +3529,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceSequence* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceSequence_cdr_plain(data_representation) && + sizeof(SequenceSequence) == SequenceSequence_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceSequence)); + + scdr.jump((array_size - 1) * sizeof(SequenceSequence)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceSequence& data) @@ -1772,6 +3577,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceMap_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1814,6 +3627,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceMap* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceMap_cdr_plain(data_representation) && + sizeof(SequenceMap) == SequenceMap_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceMap)); + + scdr.jump((array_size -1) * sizeof(SequenceMap)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1839,6 +3690,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceMap* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceMap_cdr_plain(data_representation) && + sizeof(SequenceMap) == SequenceMap_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceMap)); + + scdr.jump((array_size - 1) * sizeof(SequenceMap)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceMap& data) @@ -1851,6 +3738,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceUnion_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1893,6 +3788,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceUnion* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceUnion_cdr_plain(data_representation) && + sizeof(SequenceUnion) == SequenceUnion_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceUnion)); + + scdr.jump((array_size -1) * sizeof(SequenceUnion)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1918,6 +3851,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceUnion* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceUnion_cdr_plain(data_representation) && + sizeof(SequenceUnion) == SequenceUnion_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceUnion)); + + scdr.jump((array_size - 1) * sizeof(SequenceUnion)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceUnion& data) @@ -1930,6 +3899,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceStructure_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1972,6 +3949,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceStructure_cdr_plain(data_representation) && + sizeof(SequenceStructure) == SequenceStructure_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceStructure)); + + scdr.jump((array_size -1) * sizeof(SequenceStructure)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1997,6 +4012,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceStructure_cdr_plain(data_representation) && + sizeof(SequenceStructure) == SequenceStructure_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceStructure)); + + scdr.jump((array_size - 1) * sizeof(SequenceStructure)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceStructure& data) @@ -2009,6 +4060,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceBitset_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2051,6 +4110,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceBitset* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceBitset_cdr_plain(data_representation) && + sizeof(SequenceBitset) == SequenceBitset_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceBitset)); + + scdr.jump((array_size -1) * sizeof(SequenceBitset)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2076,6 +4173,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceBitset* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceBitset_cdr_plain(data_representation) && + sizeof(SequenceBitset) == SequenceBitset_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceBitset)); + + scdr.jump((array_size - 1) * sizeof(SequenceBitset)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceBitset& data) @@ -2088,6 +4221,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_BoundedSmallSequences_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2134,6 +4275,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const BoundedSmallSequences* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BoundedSmallSequences_cdr_plain(data_representation) && + sizeof(BoundedSmallSequences) == BoundedSmallSequences_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(BoundedSmallSequences)); + + scdr.jump((array_size -1) * sizeof(BoundedSmallSequences)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2163,6 +4342,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + BoundedSmallSequences* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BoundedSmallSequences_cdr_plain(data_representation) && + sizeof(BoundedSmallSequences) == BoundedSmallSequences_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(BoundedSmallSequences)); + + scdr.jump((array_size - 1) * sizeof(BoundedSmallSequences)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const BoundedSmallSequences& data) @@ -2177,6 +4392,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_BoundedBigSequences_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2223,6 +4446,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const BoundedBigSequences* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BoundedBigSequences_cdr_plain(data_representation) && + sizeof(BoundedBigSequences) == BoundedBigSequences_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(BoundedBigSequences)); + + scdr.jump((array_size -1) * sizeof(BoundedBigSequences)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2252,6 +4513,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + BoundedBigSequences* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BoundedBigSequences_cdr_plain(data_representation) && + sizeof(BoundedBigSequences) == BoundedBigSequences_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(BoundedBigSequences)); + + scdr.jump((array_size - 1) * sizeof(BoundedBigSequences)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const BoundedBigSequences& data) @@ -2266,6 +4563,175 @@ void serialize_key( } + +eProsima_user_DllExport bool is_LargePlainSequence_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + +template<> +eProsima_user_DllExport size_t calculate_serialized_size( + eprosima::fastcdr::CdrSizeCalculator& calculator, + const LargePlainSequence& data, + size_t& current_alignment) +{ + static_cast(data); + + eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); + size_t calculated_size {calculator.begin_calculate_type_serialized_size( + eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + current_alignment)}; + + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0), + data.var_large_plain_sequence(), current_alignment); + + + calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); + + return calculated_size; +} + +template<> +eProsima_user_DllExport void serialize( + eprosima::fastcdr::Cdr& scdr, + const LargePlainSequence& data) +{ + eprosima::fastcdr::Cdr::state current_state(scdr); + scdr.begin_serialize_type(current_state, + eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); + + scdr + << eprosima::fastcdr::MemberId(0) << data.var_large_plain_sequence() +; + scdr.end_serialize_type(current_state); +} + +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const LargePlainSequence* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_LargePlainSequence_cdr_plain(data_representation) && + sizeof(LargePlainSequence) == LargePlainSequence_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(LargePlainSequence)); + + scdr.jump((array_size -1) * sizeof(LargePlainSequence)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, + LargePlainSequence& data) +{ + cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool + { + bool ret_value = true; + switch (mid.id) + { + case 0: + dcdr >> data.var_large_plain_sequence(); + break; + + default: + ret_value = false; + break; + } + return ret_value; + }); +} + +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + LargePlainSequence* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_LargePlainSequence_cdr_plain(data_representation) && + sizeof(LargePlainSequence) == LargePlainSequence_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(LargePlainSequence)); + + scdr.jump((array_size - 1) * sizeof(LargePlainSequence)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const LargePlainSequence& data) +{ + + static_cast(scdr); + static_cast(data); + scdr << data.var_large_plain_sequence(); + +} + + + +eProsima_user_DllExport bool is_NoCommon_Module_My_Structure_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2312,6 +4778,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const NoCommon_Module::My_Structure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_NoCommon_Module_My_Structure_cdr_plain(data_representation) && + sizeof(NoCommon_Module::My_Structure) == NoCommon_Module_My_Structure_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(NoCommon_Module::My_Structure)); + + scdr.jump((array_size -1) * sizeof(NoCommon_Module::My_Structure)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2339,6 +4843,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + NoCommon_Module::My_Structure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_NoCommon_Module_My_Structure_cdr_plain(data_representation) && + sizeof(NoCommon_Module::My_Structure) == NoCommon_Module_My_Structure_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(NoCommon_Module::My_Structure)); + + scdr.jump((array_size - 1) * sizeof(NoCommon_Module::My_Structure)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const NoCommon_Module::My_Structure& data) diff --git a/test/dds-types-test/sequencesPubSubTypes.cxx b/test/dds-types-test/sequencesPubSubTypes.cxx index b2607c855e3..e69a66fd59b 100644 --- a/test/dds-types-test/sequencesPubSubTypes.cxx +++ b/test/dds-types-test/sequencesPubSubTypes.cxx @@ -31,6 +31,122 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_SequenceBitset_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_SequenceLongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_SequenceAlias_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_SequenceLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_SequenceWStringBounded_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_LargePlainSequence_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_SequenceDouble_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_BoundedSmallSequences_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_SequenceBitMask_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_SequenceOctet_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_SequenceWChar_cdr_plain( + DataRepresentationId_t data_representation); + + + + + +bool is_SequenceULong_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_SequenceFloat_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_SequenceChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_SequenceLongDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_SequenceStructure_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_SequenceShortArray_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_SequenceStringBounded_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_SequenceMap_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_SequenceBoolean_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_BoundedBigSequences_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_SequenceString_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_SequenceShort_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_SequenceUShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_SequenceEnum_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_NoCommon_Module_My_Structure_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_SequenceSequence_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_SequenceUnion_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_SequenceULongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_SequenceWString_cdr_plain( + DataRepresentationId_t data_representation); + + +} // namespace fastcdr +} // namespace eprosima + SequenceShortPubSubType::SequenceShortPubSubType() { set_name("SequenceShort"); @@ -149,6 +265,17 @@ void SequenceShortPubSubType::delete_data( delete(reinterpret_cast<::SequenceShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +458,17 @@ void SequenceUShortPubSubType::delete_data( delete(reinterpret_cast<::SequenceUShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceUShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceUShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +651,17 @@ void SequenceLongPubSubType::delete_data( delete(reinterpret_cast<::SequenceLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -695,6 +844,17 @@ void SequenceULongPubSubType::delete_data( delete(reinterpret_cast<::SequenceULong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceULongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceULongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -877,6 +1037,17 @@ void SequenceLongLongPubSubType::delete_data( delete(reinterpret_cast<::SequenceLongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceLongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceLongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1059,6 +1230,17 @@ void SequenceULongLongPubSubType::delete_data( delete(reinterpret_cast<::SequenceULongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceULongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceULongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1241,6 +1423,17 @@ void SequenceFloatPubSubType::delete_data( delete(reinterpret_cast<::SequenceFloat*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceFloatPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceFloatPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1423,6 +1616,17 @@ void SequenceDoublePubSubType::delete_data( delete(reinterpret_cast<::SequenceDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1605,6 +1809,17 @@ void SequenceLongDoublePubSubType::delete_data( delete(reinterpret_cast<::SequenceLongDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceLongDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceLongDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1787,6 +2002,17 @@ void SequenceBooleanPubSubType::delete_data( delete(reinterpret_cast<::SequenceBoolean*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceBooleanPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceBooleanPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1969,6 +2195,17 @@ void SequenceOctetPubSubType::delete_data( delete(reinterpret_cast<::SequenceOctet*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceOctetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceOctetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2151,6 +2388,17 @@ void SequenceCharPubSubType::delete_data( delete(reinterpret_cast<::SequenceChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2333,6 +2581,17 @@ void SequenceWCharPubSubType::delete_data( delete(reinterpret_cast<::SequenceWChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceWCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceWCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2515,6 +2774,17 @@ void SequenceStringPubSubType::delete_data( delete(reinterpret_cast<::SequenceString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2697,6 +2967,17 @@ void SequenceWStringPubSubType::delete_data( delete(reinterpret_cast<::SequenceWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2879,6 +3160,17 @@ void SequenceStringBoundedPubSubType::delete_data( delete(reinterpret_cast<::SequenceStringBounded*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceStringBoundedPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceStringBoundedPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3061,6 +3353,17 @@ void SequenceWStringBoundedPubSubType::delete_data( delete(reinterpret_cast<::SequenceWStringBounded*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceWStringBoundedPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceWStringBoundedPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3243,6 +3546,17 @@ void SequenceEnumPubSubType::delete_data( delete(reinterpret_cast<::SequenceEnum*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceEnumPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceEnumPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3425,6 +3739,17 @@ void SequenceBitMaskPubSubType::delete_data( delete(reinterpret_cast<::SequenceBitMask*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceBitMaskPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceBitMaskPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3607,6 +3932,17 @@ void SequenceAliasPubSubType::delete_data( delete(reinterpret_cast<::SequenceAlias*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceAliasPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceAliasPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3789,6 +4125,17 @@ void SequenceShortArrayPubSubType::delete_data( delete(reinterpret_cast<::SequenceShortArray*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceShortArrayPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceShortArrayPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3971,6 +4318,17 @@ void SequenceSequencePubSubType::delete_data( delete(reinterpret_cast<::SequenceSequence*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceSequencePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceSequencePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4153,6 +4511,17 @@ void SequenceMapPubSubType::delete_data( delete(reinterpret_cast<::SequenceMap*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceMapPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceMapPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4335,6 +4704,17 @@ void SequenceUnionPubSubType::delete_data( delete(reinterpret_cast<::SequenceUnion*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceUnionPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceUnionPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4517,6 +4897,17 @@ void SequenceStructurePubSubType::delete_data( delete(reinterpret_cast<::SequenceStructure*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceStructurePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceStructurePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4699,6 +5090,17 @@ void SequenceBitsetPubSubType::delete_data( delete(reinterpret_cast<::SequenceBitset*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceBitsetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceBitsetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4881,6 +5283,17 @@ void BoundedSmallSequencesPubSubType::delete_data( delete(reinterpret_cast<::BoundedSmallSequences*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool BoundedSmallSequencesPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool BoundedSmallSequencesPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5063,6 +5476,17 @@ void BoundedBigSequencesPubSubType::delete_data( delete(reinterpret_cast<::BoundedBigSequences*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool BoundedBigSequencesPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool BoundedBigSequencesPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5127,6 +5551,199 @@ void BoundedBigSequencesPubSubType::register_type_object_representation() register_BoundedBigSequences_type_identifier(type_identifiers_); } +LargePlainSequencePubSubType::LargePlainSequencePubSubType() +{ + set_name("LargePlainSequence"); + uint32_t type_size = LargePlainSequence_max_cdr_typesize; + type_size += static_cast(eprosima::fastcdr::Cdr::alignment(type_size, 4)); /* possible submessage alignment */ + max_serialized_type_size = type_size + 4; /*encapsulation*/ + is_compute_key_provided = false; + uint32_t key_length = LargePlainSequence_max_key_cdr_typesize > 16 ? LargePlainSequence_max_key_cdr_typesize : 16; + key_buffer_ = reinterpret_cast(malloc(key_length)); + memset(key_buffer_, 0, key_length); +} + +LargePlainSequencePubSubType::~LargePlainSequencePubSubType() +{ + if (key_buffer_ != nullptr) + { + free(key_buffer_); + } +} + +bool LargePlainSequencePubSubType::serialize( + const void* const data, + SerializedPayload_t& payload, + DataRepresentationId_t data_representation) +{ + const ::LargePlainSequence* p_type = static_cast(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.max_size); + // Object that serializes the data. + eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN, + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::CdrVersion::XCDRv1 : eprosima::fastcdr::CdrVersion::XCDRv2); + payload.encapsulation = ser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE; + ser.set_encoding_flag( + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2); + + try + { + // Serialize encapsulation + ser.serialize_encapsulation(); + // Serialize the object. + ser << *p_type; + ser.set_dds_cdr_options({0,0}); + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return false; + } + + // Get the serialized length + payload.length = static_cast(ser.get_serialized_data_length()); + return true; +} + +bool LargePlainSequencePubSubType::deserialize( + SerializedPayload_t& payload, + void* data) +{ + try + { + // Convert DATA to pointer of your type + ::LargePlainSequence* p_type = static_cast<::LargePlainSequence*>(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.length); + + // Object that deserializes the data. + eprosima::fastcdr::Cdr deser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN); + + // Deserialize encapsulation. + deser.read_encapsulation(); + payload.encapsulation = deser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE; + + // Deserialize the object. + deser >> *p_type; + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return false; + } + + return true; +} + +uint32_t LargePlainSequencePubSubType::calculate_serialized_size( + const void* const data, + DataRepresentationId_t data_representation) +{ + try + { + eprosima::fastcdr::CdrSizeCalculator calculator( + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::CdrVersion::XCDRv1 :eprosima::fastcdr::CdrVersion::XCDRv2); + size_t current_alignment {0}; + return static_cast(calculator.calculate_serialized_size( + *static_cast(data), current_alignment)) + + 4u /*encapsulation*/; + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return 0; + } +} + +void* LargePlainSequencePubSubType::create_data() +{ + return reinterpret_cast(new ::LargePlainSequence()); +} + +void LargePlainSequencePubSubType::delete_data( + void* data) +{ + delete(reinterpret_cast<::LargePlainSequence*>(data)); +} + +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool LargePlainSequencePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + +bool LargePlainSequencePubSubType::compute_key( + SerializedPayload_t& payload, + InstanceHandle_t& handle, + bool force_md5) +{ + if (!is_compute_key_provided) + { + return false; + } + + ::LargePlainSequence data; + if (deserialize(payload, static_cast(&data))) + { + return compute_key(static_cast(&data), handle, force_md5); + } + + return false; +} + +bool LargePlainSequencePubSubType::compute_key( + const void* const data, + InstanceHandle_t& handle, + bool force_md5) +{ + if (!is_compute_key_provided) + { + return false; + } + + const ::LargePlainSequence* p_type = static_cast(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(key_buffer_), + LargePlainSequence_max_key_cdr_typesize); + + // Object that serializes the data. + eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS, eprosima::fastcdr::CdrVersion::XCDRv2); + ser.set_encoding_flag(eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2); + eprosima::fastcdr::serialize_key(ser, *p_type); + if (force_md5 || LargePlainSequence_max_key_cdr_typesize > 16) + { + md5_.init(); + md5_.update(key_buffer_, static_cast(ser.get_serialized_data_length())); + md5_.finalize(); + for (uint8_t i = 0; i < 16; ++i) + { + handle.value[i] = md5_.digest[i]; + } + } + else + { + for (uint8_t i = 0; i < 16; ++i) + { + handle.value[i] = key_buffer_[i]; + } + } + return true; +} + +void LargePlainSequencePubSubType::register_type_object_representation() +{ + register_LargePlainSequence_type_identifier(type_identifiers_); +} + namespace Common_Module { } // namespace Common_Module @@ -5249,6 +5866,17 @@ namespace NoCommon_Module { delete(reinterpret_cast<::NoCommon_Module::My_Structure*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool My_StructurePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool My_StructurePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds-types-test/sequencesPubSubTypes.hpp b/test/dds-types-test/sequencesPubSubTypes.hpp index 68287d87c35..94ec1c0659c 100644 --- a/test/dds-types-test/sequencesPubSubTypes.hpp +++ b/test/dds-types-test/sequencesPubSubTypes.hpp @@ -94,12 +94,8 @@ class SequenceShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -176,12 +172,8 @@ class SequenceUShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -258,12 +250,8 @@ class SequenceLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -340,12 +328,8 @@ class SequenceULongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -422,12 +406,8 @@ class SequenceLongLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -504,12 +484,8 @@ class SequenceULongLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -586,12 +562,8 @@ class SequenceFloatPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -668,12 +640,8 @@ class SequenceDoublePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -750,12 +718,8 @@ class SequenceLongDoublePubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -832,12 +796,8 @@ class SequenceBooleanPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -914,12 +874,8 @@ class SequenceOctetPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -996,12 +952,8 @@ class SequenceCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1078,12 +1030,8 @@ class SequenceWCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1160,12 +1108,8 @@ class SequenceStringPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1242,12 +1186,8 @@ class SequenceWStringPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1324,12 +1264,8 @@ class SequenceStringBoundedPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1406,12 +1342,8 @@ class SequenceWStringBoundedPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1488,12 +1420,8 @@ class SequenceEnumPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1570,12 +1498,8 @@ class SequenceBitMaskPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1652,12 +1576,8 @@ class SequenceAliasPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1734,12 +1654,8 @@ class SequenceShortArrayPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1816,12 +1732,8 @@ class SequenceSequencePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1898,12 +1810,8 @@ class SequenceMapPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1980,12 +1888,8 @@ class SequenceUnionPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2062,12 +1966,8 @@ class SequenceStructurePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2144,12 +2044,8 @@ class SequenceBitsetPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2226,12 +2122,8 @@ class BoundedSmallSequencesPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2308,13 +2200,87 @@ class BoundedBigSequencesPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + +#ifdef TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE + eProsima_user_DllExport inline bool construct_sample( + void* memory) const override { - static_cast(data_representation); + static_cast(memory); return false; } +#endif // TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE + +private: + + eprosima::fastdds::MD5 md5_; + unsigned char* key_buffer_; + +}; + + +/*! + * @brief This class represents the TopicDataType of the type LargePlainSequence defined by the user in the IDL file. + * @ingroup sequences + */ +class LargePlainSequencePubSubType : public eprosima::fastdds::dds::TopicDataType +{ +public: + + typedef ::LargePlainSequence type; + + eProsima_user_DllExport LargePlainSequencePubSubType(); + + eProsima_user_DllExport ~LargePlainSequencePubSubType() override; + + eProsima_user_DllExport bool serialize( + const void* const data, + eprosima::fastdds::rtps::SerializedPayload_t& payload, + eprosima::fastdds::dds::DataRepresentationId_t data_representation) override; + + eProsima_user_DllExport bool deserialize( + eprosima::fastdds::rtps::SerializedPayload_t& payload, + void* data) override; + + eProsima_user_DllExport uint32_t calculate_serialized_size( + const void* const data, + eprosima::fastdds::dds::DataRepresentationId_t data_representation) override; + + eProsima_user_DllExport bool compute_key( + eprosima::fastdds::rtps::SerializedPayload_t& payload, + eprosima::fastdds::rtps::InstanceHandle_t& ihandle, + bool force_md5 = false) override; + + eProsima_user_DllExport bool compute_key( + const void* const data, + eprosima::fastdds::rtps::InstanceHandle_t& ihandle, + bool force_md5 = false) override; + + eProsima_user_DllExport void* create_data() override; + + eProsima_user_DllExport void delete_data( + void* data) override; + + //Register TypeObject representation in Fast DDS TypeObjectRegistry + eProsima_user_DllExport void register_type_object_representation() override; + +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_BOUNDED + eProsima_user_DllExport inline bool is_bounded() const override + { + return true; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_BOUNDED + +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN #ifdef TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE @@ -2399,12 +2365,8 @@ namespace NoCommon_Module #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds-types-test/sequencesTypeObjectSupport.cxx b/test/dds-types-test/sequencesTypeObjectSupport.cxx index 9d07fdebdf9..dbe0d1dec2c 100644 --- a/test/dds-types-test/sequencesTypeObjectSupport.cxx +++ b/test/dds-types-test/sequencesTypeObjectSupport.cxx @@ -2692,6 +2692,101 @@ void register_BoundedBigSequences_type_identifier( "BoundedBigSequences already registered in TypeObjectRegistry for a different type."); } } +}// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_LargePlainSequence_type_identifier( + TypeIdentifierPair& type_ids_LargePlainSequence) +{ + + ReturnCode_t return_code_LargePlainSequence {eprosima::fastdds::dds::RETCODE_OK}; + return_code_LargePlainSequence = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "LargePlainSequence", type_ids_LargePlainSequence); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_LargePlainSequence) + { + StructTypeFlag struct_flags_LargePlainSequence = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::FINAL, + false, false); + QualifiedTypeName type_name_LargePlainSequence = "LargePlainSequence"; + eprosima::fastcdr::optional type_ann_builtin_LargePlainSequence; + eprosima::fastcdr::optional ann_custom_LargePlainSequence; + AppliedAnnotationSeq tmp_ann_custom_LargePlainSequence; + eprosima::fastcdr::optional verbatim_LargePlainSequence; + if (!tmp_ann_custom_LargePlainSequence.empty()) + { + ann_custom_LargePlainSequence = tmp_ann_custom_LargePlainSequence; + } + + CompleteTypeDetail detail_LargePlainSequence = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_LargePlainSequence, ann_custom_LargePlainSequence, type_name_LargePlainSequence.to_string()); + CompleteStructHeader header_LargePlainSequence; + header_LargePlainSequence = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_LargePlainSequence); + CompleteStructMemberSeq member_seq_LargePlainSequence; + { + TypeIdentifierPair type_ids_var_large_plain_sequence; + ReturnCode_t return_code_var_large_plain_sequence {eprosima::fastdds::dds::RETCODE_OK}; + return_code_var_large_plain_sequence = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_sequence_InnerPlainStructHelper_6291456", type_ids_var_large_plain_sequence); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_var_large_plain_sequence) + { + return_code_var_large_plain_sequence = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "InnerPlainStructHelper", type_ids_var_large_plain_sequence); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_var_large_plain_sequence) + { + ::register_InnerPlainStructHelper_type_identifier(type_ids_var_large_plain_sequence); + } + bool element_identifier_anonymous_sequence_InnerPlainStructHelper_6291456_ec {false}; + TypeIdentifier* element_identifier_anonymous_sequence_InnerPlainStructHelper_6291456 {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_var_large_plain_sequence, element_identifier_anonymous_sequence_InnerPlainStructHelper_6291456_ec))}; + if (!element_identifier_anonymous_sequence_InnerPlainStructHelper_6291456_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Sequence element TypeIdentifier inconsistent."); + return; + } + EquivalenceKind equiv_kind_anonymous_sequence_InnerPlainStructHelper_6291456 = EK_COMPLETE; + if (TK_NONE == type_ids_var_large_plain_sequence.type_identifier2()._d()) + { + equiv_kind_anonymous_sequence_InnerPlainStructHelper_6291456 = EK_BOTH; + } + CollectionElementFlag element_flags_anonymous_sequence_InnerPlainStructHelper_6291456 = 0; + PlainCollectionHeader header_anonymous_sequence_InnerPlainStructHelper_6291456 = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_sequence_InnerPlainStructHelper_6291456, element_flags_anonymous_sequence_InnerPlainStructHelper_6291456); + { + LBound bound = 6291456; + PlainSequenceLElemDefn seq_ldefn = TypeObjectUtils::build_plain_sequence_l_elem_defn(header_anonymous_sequence_InnerPlainStructHelper_6291456, bound, + eprosima::fastcdr::external(element_identifier_anonymous_sequence_InnerPlainStructHelper_6291456)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_l_sequence_type_identifier(seq_ldefn, "anonymous_sequence_InnerPlainStructHelper_6291456", type_ids_var_large_plain_sequence)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_sequence_InnerPlainStructHelper_6291456 already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_var_large_plain_sequence = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_var_large_plain_sequence = 0x00000000; + bool common_var_large_plain_sequence_ec {false}; + CommonStructMember common_var_large_plain_sequence {TypeObjectUtils::build_common_struct_member(member_id_var_large_plain_sequence, member_flags_var_large_plain_sequence, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_var_large_plain_sequence, common_var_large_plain_sequence_ec))}; + if (!common_var_large_plain_sequence_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure var_large_plain_sequence member TypeIdentifier inconsistent."); + return; + } + MemberName name_var_large_plain_sequence = "var_large_plain_sequence"; + eprosima::fastcdr::optional member_ann_builtin_var_large_plain_sequence; + ann_custom_LargePlainSequence.reset(); + CompleteMemberDetail detail_var_large_plain_sequence = TypeObjectUtils::build_complete_member_detail(name_var_large_plain_sequence, member_ann_builtin_var_large_plain_sequence, ann_custom_LargePlainSequence); + CompleteStructMember member_var_large_plain_sequence = TypeObjectUtils::build_complete_struct_member(common_var_large_plain_sequence, detail_var_large_plain_sequence); + TypeObjectUtils::add_complete_struct_member(member_seq_LargePlainSequence, member_var_large_plain_sequence); + } + CompleteStructType struct_type_LargePlainSequence = TypeObjectUtils::build_complete_struct_type(struct_flags_LargePlainSequence, header_LargePlainSequence, member_seq_LargePlainSequence); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_LargePlainSequence, type_name_LargePlainSequence.to_string(), type_ids_LargePlainSequence)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "LargePlainSequence already registered in TypeObjectRegistry for a different type."); + } + } }namespace Common_Module { void register_My_Char_type_identifier( TypeIdentifierPair& type_ids_My_Char) diff --git a/test/dds-types-test/sequencesTypeObjectSupport.hpp b/test/dds-types-test/sequencesTypeObjectSupport.hpp index f7f48c5ee82..11ab2d09ebe 100644 --- a/test/dds-types-test/sequencesTypeObjectSupport.hpp +++ b/test/dds-types-test/sequencesTypeObjectSupport.hpp @@ -374,6 +374,18 @@ eProsima_user_DllExport void register_BoundedSmallSequences_type_identifier( */ eProsima_user_DllExport void register_BoundedBigSequences_type_identifier( eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +/** + * @brief Register LargePlainSequence related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_LargePlainSequence_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); namespace Common_Module { /** * @brief Register My_Char related TypeIdentifier. diff --git a/test/dds-types-test/stringsCdrAux.hpp b/test/dds-types-test/stringsCdrAux.hpp index d2ff7689526..b71985b85cd 100644 --- a/test/dds-types-test/stringsCdrAux.hpp +++ b/test/dds-types-test/stringsCdrAux.hpp @@ -52,27 +52,33 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StringStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const WStringStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SmallStringStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SmallWStringStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const LargeStringStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const LargeWStringStruct& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/stringsCdrAux.ipp b/test/dds-types-test/stringsCdrAux.ipp index 9ce77f879c7..efeaeb0252a 100644 --- a/test/dds-types-test/stringsCdrAux.ipp +++ b/test/dds-types-test/stringsCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_StringStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StringStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StringStruct_cdr_plain(data_representation) && + sizeof(StringStruct) == StringStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StringStruct)); + + scdr.jump((array_size -1) * sizeof(StringStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StringStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StringStruct_cdr_plain(data_representation) && + sizeof(StringStruct) == StringStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StringStruct)); + + scdr.jump((array_size - 1) * sizeof(StringStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StringStruct& data) @@ -113,6 +196,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_WStringStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -155,6 +246,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const WStringStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_WStringStruct_cdr_plain(data_representation) && + sizeof(WStringStruct) == WStringStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(WStringStruct)); + + scdr.jump((array_size -1) * sizeof(WStringStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -180,6 +309,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + WStringStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_WStringStruct_cdr_plain(data_representation) && + sizeof(WStringStruct) == WStringStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(WStringStruct)); + + scdr.jump((array_size - 1) * sizeof(WStringStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const WStringStruct& data) @@ -192,6 +357,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SmallStringStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -234,6 +407,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SmallStringStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SmallStringStruct_cdr_plain(data_representation) && + sizeof(SmallStringStruct) == SmallStringStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SmallStringStruct)); + + scdr.jump((array_size -1) * sizeof(SmallStringStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -259,6 +470,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SmallStringStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SmallStringStruct_cdr_plain(data_representation) && + sizeof(SmallStringStruct) == SmallStringStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SmallStringStruct)); + + scdr.jump((array_size - 1) * sizeof(SmallStringStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SmallStringStruct& data) @@ -271,6 +518,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SmallWStringStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -313,6 +568,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SmallWStringStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SmallWStringStruct_cdr_plain(data_representation) && + sizeof(SmallWStringStruct) == SmallWStringStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SmallWStringStruct)); + + scdr.jump((array_size -1) * sizeof(SmallWStringStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -338,6 +631,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SmallWStringStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SmallWStringStruct_cdr_plain(data_representation) && + sizeof(SmallWStringStruct) == SmallWStringStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SmallWStringStruct)); + + scdr.jump((array_size - 1) * sizeof(SmallWStringStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SmallWStringStruct& data) @@ -350,6 +679,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_LargeStringStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -392,6 +729,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const LargeStringStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_LargeStringStruct_cdr_plain(data_representation) && + sizeof(LargeStringStruct) == LargeStringStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(LargeStringStruct)); + + scdr.jump((array_size -1) * sizeof(LargeStringStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -417,6 +792,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + LargeStringStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_LargeStringStruct_cdr_plain(data_representation) && + sizeof(LargeStringStruct) == LargeStringStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(LargeStringStruct)); + + scdr.jump((array_size - 1) * sizeof(LargeStringStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const LargeStringStruct& data) @@ -429,6 +840,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_LargeWStringStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -471,6 +890,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const LargeWStringStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_LargeWStringStruct_cdr_plain(data_representation) && + sizeof(LargeWStringStruct) == LargeWStringStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(LargeWStringStruct)); + + scdr.jump((array_size -1) * sizeof(LargeWStringStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -496,6 +953,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + LargeWStringStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_LargeWStringStruct_cdr_plain(data_representation) && + sizeof(LargeWStringStruct) == LargeWStringStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(LargeWStringStruct)); + + scdr.jump((array_size - 1) * sizeof(LargeWStringStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const LargeWStringStruct& data) diff --git a/test/dds-types-test/stringsPubSubTypes.cxx b/test/dds-types-test/stringsPubSubTypes.cxx index c355e59cc3a..69988017d46 100644 --- a/test/dds-types-test/stringsPubSubTypes.cxx +++ b/test/dds-types-test/stringsPubSubTypes.cxx @@ -31,6 +31,30 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_LargeStringStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_WStringStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StringStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_SmallStringStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_SmallWStringStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_LargeWStringStruct_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + StringStructPubSubType::StringStructPubSubType() { set_name("StringStruct"); @@ -149,6 +173,17 @@ void StringStructPubSubType::delete_data( delete(reinterpret_cast<::StringStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StringStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StringStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +366,17 @@ void WStringStructPubSubType::delete_data( delete(reinterpret_cast<::WStringStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool WStringStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool WStringStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +559,17 @@ void SmallStringStructPubSubType::delete_data( delete(reinterpret_cast<::SmallStringStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SmallStringStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SmallStringStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -695,6 +752,17 @@ void SmallWStringStructPubSubType::delete_data( delete(reinterpret_cast<::SmallWStringStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SmallWStringStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SmallWStringStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -877,6 +945,17 @@ void LargeStringStructPubSubType::delete_data( delete(reinterpret_cast<::LargeStringStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool LargeStringStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool LargeStringStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1059,6 +1138,17 @@ void LargeWStringStructPubSubType::delete_data( delete(reinterpret_cast<::LargeWStringStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool LargeWStringStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool LargeWStringStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds-types-test/stringsPubSubTypes.hpp b/test/dds-types-test/stringsPubSubTypes.hpp index 078434dad2f..8cd8b74fc7d 100644 --- a/test/dds-types-test/stringsPubSubTypes.hpp +++ b/test/dds-types-test/stringsPubSubTypes.hpp @@ -93,12 +93,8 @@ class StringStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -175,12 +171,8 @@ class WStringStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -257,12 +249,8 @@ class SmallStringStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -339,12 +327,8 @@ class SmallWStringStructPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -421,12 +405,8 @@ class LargeStringStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -503,12 +483,8 @@ class LargeWStringStructPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds-types-test/structuresCdrAux.hpp b/test/dds-types-test/structuresCdrAux.hpp index d06f6aafa3b..f345b56eb00 100644 --- a/test/dds-types-test/structuresCdrAux.hpp +++ b/test/dds-types-test/structuresCdrAux.hpp @@ -77,6 +77,7 @@ constexpr uint32_t StructLongLong_max_key_cdr_typesize {0UL}; constexpr uint32_t StructString_max_cdr_typesize {264UL}; constexpr uint32_t StructString_max_key_cdr_typesize {0UL}; + constexpr uint32_t StructBitset_max_cdr_typesize {16UL}; constexpr uint32_t StructBitset_max_key_cdr_typesize {0UL}; @@ -115,6 +116,7 @@ constexpr uint32_t StructDouble_max_cdr_typesize {16UL}; constexpr uint32_t StructDouble_max_key_cdr_typesize {0UL}; + constexpr uint32_t StructWString_max_cdr_typesize {518UL}; constexpr uint32_t StructWString_max_key_cdr_typesize {0UL}; @@ -150,139 +152,173 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructUnsignedShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructUnsignedLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructLongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructUnsignedLongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructFloat& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructLongDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructBoolean& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructOctet& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructChar8& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructChar16& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructBoundedString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructBoundedWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructEnum& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructBitMask& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructAlias& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructShortArray& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructSequence& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructMap& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructUnion& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructStructure& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructBitset& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructEmpty& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Structures& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const testing_1::foo& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const testing_2::foo& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const bar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const root1& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const root2& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const root& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/structuresCdrAux.ipp b/test/dds-types-test/structuresCdrAux.ipp index 3382d69cb60..c62d0b9ef6c 100644 --- a/test/dds-types-test/structuresCdrAux.ipp +++ b/test/dds-types-test/structuresCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_StructShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructShort_cdr_plain(data_representation) && + sizeof(StructShort) == StructShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructShort)); + + scdr.jump((array_size -1) * sizeof(StructShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructShort_cdr_plain(data_representation) && + sizeof(StructShort) == StructShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructShort)); + + scdr.jump((array_size - 1) * sizeof(StructShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructShort& data) @@ -113,6 +196,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructUnsignedShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -155,6 +246,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructUnsignedShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructUnsignedShort_cdr_plain(data_representation) && + sizeof(StructUnsignedShort) == StructUnsignedShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructUnsignedShort)); + + scdr.jump((array_size -1) * sizeof(StructUnsignedShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -180,6 +309,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructUnsignedShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructUnsignedShort_cdr_plain(data_representation) && + sizeof(StructUnsignedShort) == StructUnsignedShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructUnsignedShort)); + + scdr.jump((array_size - 1) * sizeof(StructUnsignedShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructUnsignedShort& data) @@ -192,6 +357,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -234,6 +407,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructLong_cdr_plain(data_representation) && + sizeof(StructLong) == StructLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructLong)); + + scdr.jump((array_size -1) * sizeof(StructLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -259,6 +470,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructLong_cdr_plain(data_representation) && + sizeof(StructLong) == StructLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructLong)); + + scdr.jump((array_size - 1) * sizeof(StructLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructLong& data) @@ -271,6 +518,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructUnsignedLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -313,6 +568,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructUnsignedLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructUnsignedLong_cdr_plain(data_representation) && + sizeof(StructUnsignedLong) == StructUnsignedLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructUnsignedLong)); + + scdr.jump((array_size -1) * sizeof(StructUnsignedLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -338,6 +631,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructUnsignedLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructUnsignedLong_cdr_plain(data_representation) && + sizeof(StructUnsignedLong) == StructUnsignedLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructUnsignedLong)); + + scdr.jump((array_size - 1) * sizeof(StructUnsignedLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructUnsignedLong& data) @@ -350,6 +679,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructLongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -392,6 +729,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructLongLong_cdr_plain(data_representation) && + sizeof(StructLongLong) == StructLongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructLongLong)); + + scdr.jump((array_size -1) * sizeof(StructLongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -417,6 +792,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructLongLong_cdr_plain(data_representation) && + sizeof(StructLongLong) == StructLongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructLongLong)); + + scdr.jump((array_size - 1) * sizeof(StructLongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructLongLong& data) @@ -429,6 +840,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructUnsignedLongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -471,6 +890,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructUnsignedLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructUnsignedLongLong_cdr_plain(data_representation) && + sizeof(StructUnsignedLongLong) == StructUnsignedLongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructUnsignedLongLong)); + + scdr.jump((array_size -1) * sizeof(StructUnsignedLongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -496,6 +953,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructUnsignedLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructUnsignedLongLong_cdr_plain(data_representation) && + sizeof(StructUnsignedLongLong) == StructUnsignedLongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructUnsignedLongLong)); + + scdr.jump((array_size - 1) * sizeof(StructUnsignedLongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructUnsignedLongLong& data) @@ -508,6 +1001,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructFloat_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -550,6 +1051,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructFloat_cdr_plain(data_representation) && + sizeof(StructFloat) == StructFloat_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructFloat)); + + scdr.jump((array_size -1) * sizeof(StructFloat)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -575,6 +1114,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructFloat_cdr_plain(data_representation) && + sizeof(StructFloat) == StructFloat_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructFloat)); + + scdr.jump((array_size - 1) * sizeof(StructFloat)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructFloat& data) @@ -587,6 +1162,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -629,6 +1212,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructDouble_cdr_plain(data_representation) && + sizeof(StructDouble) == StructDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructDouble)); + + scdr.jump((array_size -1) * sizeof(StructDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -654,6 +1275,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructDouble_cdr_plain(data_representation) && + sizeof(StructDouble) == StructDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructDouble)); + + scdr.jump((array_size - 1) * sizeof(StructDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructDouble& data) @@ -666,6 +1323,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructLongDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -708,6 +1373,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructLongDouble_cdr_plain(data_representation) && + sizeof(StructLongDouble) == StructLongDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructLongDouble)); + + scdr.jump((array_size -1) * sizeof(StructLongDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -733,6 +1436,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructLongDouble_cdr_plain(data_representation) && + sizeof(StructLongDouble) == StructLongDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructLongDouble)); + + scdr.jump((array_size - 1) * sizeof(StructLongDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructLongDouble& data) @@ -745,6 +1484,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructBoolean_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -787,6 +1534,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructBoolean_cdr_plain(data_representation) && + sizeof(StructBoolean) == StructBoolean_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructBoolean)); + + scdr.jump((array_size -1) * sizeof(StructBoolean)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -812,6 +1597,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructBoolean_cdr_plain(data_representation) && + sizeof(StructBoolean) == StructBoolean_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructBoolean)); + + scdr.jump((array_size - 1) * sizeof(StructBoolean)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructBoolean& data) @@ -824,6 +1645,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructOctet_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -866,6 +1695,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructOctet_cdr_plain(data_representation) && + sizeof(StructOctet) == StructOctet_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructOctet)); + + scdr.jump((array_size -1) * sizeof(StructOctet)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -891,6 +1758,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructOctet_cdr_plain(data_representation) && + sizeof(StructOctet) == StructOctet_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructOctet)); + + scdr.jump((array_size - 1) * sizeof(StructOctet)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructOctet& data) @@ -903,6 +1806,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructChar8_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -945,6 +1856,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructChar8* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructChar8_cdr_plain(data_representation) && + sizeof(StructChar8) == StructChar8_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructChar8)); + + scdr.jump((array_size -1) * sizeof(StructChar8)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -970,6 +1919,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructChar8* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructChar8_cdr_plain(data_representation) && + sizeof(StructChar8) == StructChar8_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructChar8)); + + scdr.jump((array_size - 1) * sizeof(StructChar8)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructChar8& data) @@ -982,6 +1967,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructChar16_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1024,6 +2017,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructChar16* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructChar16_cdr_plain(data_representation) && + sizeof(StructChar16) == StructChar16_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructChar16)); + + scdr.jump((array_size -1) * sizeof(StructChar16)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1049,6 +2080,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructChar16* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructChar16_cdr_plain(data_representation) && + sizeof(StructChar16) == StructChar16_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructChar16)); + + scdr.jump((array_size - 1) * sizeof(StructChar16)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructChar16& data) @@ -1061,6 +2128,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1103,6 +2178,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructString_cdr_plain(data_representation) && + sizeof(StructString) == StructString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructString)); + + scdr.jump((array_size -1) * sizeof(StructString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1128,6 +2241,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructString_cdr_plain(data_representation) && + sizeof(StructString) == StructString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructString)); + + scdr.jump((array_size - 1) * sizeof(StructString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructString& data) @@ -1140,6 +2289,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1182,6 +2339,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructWString_cdr_plain(data_representation) && + sizeof(StructWString) == StructWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructWString)); + + scdr.jump((array_size -1) * sizeof(StructWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1207,6 +2402,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructWString_cdr_plain(data_representation) && + sizeof(StructWString) == StructWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructWString)); + + scdr.jump((array_size - 1) * sizeof(StructWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructWString& data) @@ -1219,6 +2450,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructBoundedString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1261,6 +2500,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructBoundedString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructBoundedString_cdr_plain(data_representation) && + sizeof(StructBoundedString) == StructBoundedString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructBoundedString)); + + scdr.jump((array_size -1) * sizeof(StructBoundedString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1286,6 +2563,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructBoundedString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructBoundedString_cdr_plain(data_representation) && + sizeof(StructBoundedString) == StructBoundedString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructBoundedString)); + + scdr.jump((array_size - 1) * sizeof(StructBoundedString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructBoundedString& data) @@ -1298,6 +2611,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructBoundedWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1340,6 +2661,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructBoundedWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructBoundedWString_cdr_plain(data_representation) && + sizeof(StructBoundedWString) == StructBoundedWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructBoundedWString)); + + scdr.jump((array_size -1) * sizeof(StructBoundedWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1365,6 +2724,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructBoundedWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructBoundedWString_cdr_plain(data_representation) && + sizeof(StructBoundedWString) == StructBoundedWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructBoundedWString)); + + scdr.jump((array_size - 1) * sizeof(StructBoundedWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructBoundedWString& data) @@ -1377,6 +2772,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructEnum_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1419,6 +2822,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructEnum* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructEnum_cdr_plain(data_representation) && + sizeof(StructEnum) == StructEnum_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructEnum)); + + scdr.jump((array_size -1) * sizeof(StructEnum)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1444,6 +2885,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructEnum* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructEnum_cdr_plain(data_representation) && + sizeof(StructEnum) == StructEnum_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructEnum)); + + scdr.jump((array_size - 1) * sizeof(StructEnum)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructEnum& data) @@ -1456,6 +2933,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructBitMask_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1498,6 +2983,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructBitMask* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructBitMask_cdr_plain(data_representation) && + sizeof(StructBitMask) == StructBitMask_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructBitMask)); + + scdr.jump((array_size -1) * sizeof(StructBitMask)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1523,6 +3046,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructBitMask* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructBitMask_cdr_plain(data_representation) && + sizeof(StructBitMask) == StructBitMask_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructBitMask)); + + scdr.jump((array_size - 1) * sizeof(StructBitMask)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructBitMask& data) @@ -1535,6 +3094,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructAlias_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1577,6 +3144,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructAlias* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructAlias_cdr_plain(data_representation) && + sizeof(StructAlias) == StructAlias_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructAlias)); + + scdr.jump((array_size -1) * sizeof(StructAlias)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1602,6 +3207,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructAlias* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructAlias_cdr_plain(data_representation) && + sizeof(StructAlias) == StructAlias_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructAlias)); + + scdr.jump((array_size - 1) * sizeof(StructAlias)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructAlias& data) @@ -1614,6 +3255,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructShortArray_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1656,6 +3305,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructShortArray* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructShortArray_cdr_plain(data_representation) && + sizeof(StructShortArray) == StructShortArray_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructShortArray)); + + scdr.jump((array_size -1) * sizeof(StructShortArray)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1681,6 +3368,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructShortArray* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructShortArray_cdr_plain(data_representation) && + sizeof(StructShortArray) == StructShortArray_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructShortArray)); + + scdr.jump((array_size - 1) * sizeof(StructShortArray)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructShortArray& data) @@ -1693,6 +3416,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructSequence_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1735,6 +3466,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructSequence* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructSequence_cdr_plain(data_representation) && + sizeof(StructSequence) == StructSequence_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructSequence)); + + scdr.jump((array_size -1) * sizeof(StructSequence)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1760,6 +3529,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructSequence* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructSequence_cdr_plain(data_representation) && + sizeof(StructSequence) == StructSequence_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructSequence)); + + scdr.jump((array_size - 1) * sizeof(StructSequence)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructSequence& data) @@ -1772,6 +3577,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructMap_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1814,6 +3627,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructMap* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructMap_cdr_plain(data_representation) && + sizeof(StructMap) == StructMap_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructMap)); + + scdr.jump((array_size -1) * sizeof(StructMap)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1839,6 +3690,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructMap* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructMap_cdr_plain(data_representation) && + sizeof(StructMap) == StructMap_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructMap)); + + scdr.jump((array_size - 1) * sizeof(StructMap)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructMap& data) @@ -1851,6 +3738,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructUnion_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1893,6 +3788,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructUnion* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructUnion_cdr_plain(data_representation) && + sizeof(StructUnion) == StructUnion_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructUnion)); + + scdr.jump((array_size -1) * sizeof(StructUnion)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1918,6 +3851,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructUnion* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructUnion_cdr_plain(data_representation) && + sizeof(StructUnion) == StructUnion_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructUnion)); + + scdr.jump((array_size - 1) * sizeof(StructUnion)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructUnion& data) @@ -1930,6 +3899,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructStructure_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1972,6 +3949,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructStructure_cdr_plain(data_representation) && + sizeof(StructStructure) == StructStructure_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructStructure)); + + scdr.jump((array_size -1) * sizeof(StructStructure)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1997,6 +4012,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructStructure* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructStructure_cdr_plain(data_representation) && + sizeof(StructStructure) == StructStructure_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructStructure)); + + scdr.jump((array_size - 1) * sizeof(StructStructure)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructStructure& data) @@ -2013,6 +4064,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructBitset_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2055,6 +4114,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructBitset* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructBitset_cdr_plain(data_representation) && + sizeof(StructBitset) == StructBitset_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructBitset)); + + scdr.jump((array_size -1) * sizeof(StructBitset)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2080,6 +4177,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructBitset* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructBitset_cdr_plain(data_representation) && + sizeof(StructBitset) == StructBitset_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructBitset)); + + scdr.jump((array_size - 1) * sizeof(StructBitset)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructBitset& data) @@ -2092,6 +4225,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructEmpty_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2130,6 +4271,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructEmpty* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructEmpty_cdr_plain(data_representation) && + sizeof(StructEmpty) == StructEmpty_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructEmpty)); + + scdr.jump((array_size -1) * sizeof(StructEmpty)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2147,6 +4326,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructEmpty* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructEmpty_cdr_plain(data_representation) && + sizeof(StructEmpty) == StructEmpty_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructEmpty)); + + scdr.jump((array_size - 1) * sizeof(StructEmpty)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructEmpty& data) @@ -2157,6 +4372,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Structures_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2303,6 +4526,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Structures* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Structures_cdr_plain(data_representation) && + sizeof(Structures) == Structures_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Structures)); + + scdr.jump((array_size -1) * sizeof(Structures)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2432,6 +4693,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Structures* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Structures_cdr_plain(data_representation) && + sizeof(Structures) == Structures_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Structures)); + + scdr.jump((array_size - 1) * sizeof(Structures)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Structures& data) @@ -2604,6 +4901,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_testing_1_foo_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2654,6 +4959,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const testing_1::foo* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_testing_1_foo_cdr_plain(data_representation) && + sizeof(testing_1::foo) == testing_1_foo_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(testing_1::foo)); + + scdr.jump((array_size -1) * sizeof(testing_1::foo)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2685,6 +5028,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + testing_1::foo* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_testing_1_foo_cdr_plain(data_representation) && + sizeof(testing_1::foo) == testing_1_foo_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(testing_1::foo)); + + scdr.jump((array_size - 1) * sizeof(testing_1::foo)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const testing_1::foo& data) @@ -2700,6 +5079,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_testing_2_foo_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2746,6 +5133,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const testing_2::foo* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_testing_2_foo_cdr_plain(data_representation) && + sizeof(testing_2::foo) == testing_2_foo_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(testing_2::foo)); + + scdr.jump((array_size -1) * sizeof(testing_2::foo)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2773,6 +5198,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + testing_2::foo* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_testing_2_foo_cdr_plain(data_representation) && + sizeof(testing_2::foo) == testing_2_foo_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(testing_2::foo)); + + scdr.jump((array_size - 1) * sizeof(testing_2::foo)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const testing_2::foo& data) @@ -2786,6 +5247,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_bar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2828,6 +5297,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const bar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_bar_cdr_plain(data_representation) && + sizeof(bar) == bar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(bar)); + + scdr.jump((array_size -1) * sizeof(bar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2853,6 +5360,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + bar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_bar_cdr_plain(data_representation) && + sizeof(bar) == bar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(bar)); + + scdr.jump((array_size - 1) * sizeof(bar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const bar& data) @@ -2865,6 +5408,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_root1_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2911,6 +5462,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const root1* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_root1_cdr_plain(data_representation) && + sizeof(root1) == root1_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(root1)); + + scdr.jump((array_size -1) * sizeof(root1)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2940,6 +5529,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + root1* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_root1_cdr_plain(data_representation) && + sizeof(root1) == root1_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(root1)); + + scdr.jump((array_size - 1) * sizeof(root1)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const root1& data) @@ -2959,6 +5584,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_root2_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3005,6 +5638,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const root2* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_root2_cdr_plain(data_representation) && + sizeof(root2) == root2_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(root2)); + + scdr.jump((array_size -1) * sizeof(root2)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3034,6 +5705,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + root2* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_root2_cdr_plain(data_representation) && + sizeof(root2) == root2_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(root2)); + + scdr.jump((array_size - 1) * sizeof(root2)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const root2& data) @@ -3056,6 +5763,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_root_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3102,6 +5817,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const root* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_root_cdr_plain(data_representation) && + sizeof(root) == root_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(root)); + + scdr.jump((array_size -1) * sizeof(root)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3131,6 +5884,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + root* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_root_cdr_plain(data_representation) && + sizeof(root) == root_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(root)); + + scdr.jump((array_size - 1) * sizeof(root)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const root& data) diff --git a/test/dds-types-test/structuresPubSubTypes.cxx b/test/dds-types-test/structuresPubSubTypes.cxx index 523d27c0abc..8f33a7fd1f3 100644 --- a/test/dds-types-test/structuresPubSubTypes.cxx +++ b/test/dds-types-test/structuresPubSubTypes.cxx @@ -31,6 +31,130 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_StructChar8_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructBoolean_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructBoundedString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructChar16_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructOctet_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructStructure_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructEmpty_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_bar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructBitMask_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_testing_1_foo_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructShortArray_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_StructLongDouble_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructMap_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructUnsignedShort_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_StructLongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructString_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_StructBitset_cdr_plain( + DataRepresentationId_t data_representation); + + + + + +bool is_StructFloat_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructAlias_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructSequence_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructBoundedWString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructEnum_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_root_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Structures_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructUnsignedLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructDouble_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_StructWString_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_root2_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_testing_2_foo_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_root1_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructUnion_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructUnsignedLongLong_cdr_plain( + DataRepresentationId_t data_representation); + + + +} // namespace fastcdr +} // namespace eprosima + StructShortPubSubType::StructShortPubSubType() { set_name("StructShort"); @@ -149,6 +273,17 @@ void StructShortPubSubType::delete_data( delete(reinterpret_cast<::StructShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +466,17 @@ void StructUnsignedShortPubSubType::delete_data( delete(reinterpret_cast<::StructUnsignedShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructUnsignedShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructUnsignedShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +659,17 @@ void StructLongPubSubType::delete_data( delete(reinterpret_cast<::StructLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -695,6 +852,17 @@ void StructUnsignedLongPubSubType::delete_data( delete(reinterpret_cast<::StructUnsignedLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructUnsignedLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructUnsignedLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -877,6 +1045,17 @@ void StructLongLongPubSubType::delete_data( delete(reinterpret_cast<::StructLongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructLongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructLongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1059,6 +1238,17 @@ void StructUnsignedLongLongPubSubType::delete_data( delete(reinterpret_cast<::StructUnsignedLongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructUnsignedLongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructUnsignedLongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1241,6 +1431,17 @@ void StructFloatPubSubType::delete_data( delete(reinterpret_cast<::StructFloat*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructFloatPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructFloatPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1423,6 +1624,17 @@ void StructDoublePubSubType::delete_data( delete(reinterpret_cast<::StructDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1605,6 +1817,17 @@ void StructLongDoublePubSubType::delete_data( delete(reinterpret_cast<::StructLongDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructLongDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructLongDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1787,6 +2010,17 @@ void StructBooleanPubSubType::delete_data( delete(reinterpret_cast<::StructBoolean*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructBooleanPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructBooleanPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1969,6 +2203,17 @@ void StructOctetPubSubType::delete_data( delete(reinterpret_cast<::StructOctet*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructOctetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructOctetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2151,6 +2396,17 @@ void StructChar8PubSubType::delete_data( delete(reinterpret_cast<::StructChar8*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructChar8PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructChar8PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2333,6 +2589,17 @@ void StructChar16PubSubType::delete_data( delete(reinterpret_cast<::StructChar16*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructChar16PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructChar16PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2515,6 +2782,17 @@ void StructStringPubSubType::delete_data( delete(reinterpret_cast<::StructString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2697,6 +2975,17 @@ void StructWStringPubSubType::delete_data( delete(reinterpret_cast<::StructWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2879,6 +3168,17 @@ void StructBoundedStringPubSubType::delete_data( delete(reinterpret_cast<::StructBoundedString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructBoundedStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructBoundedStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3061,6 +3361,17 @@ void StructBoundedWStringPubSubType::delete_data( delete(reinterpret_cast<::StructBoundedWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructBoundedWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructBoundedWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3243,6 +3554,17 @@ void StructEnumPubSubType::delete_data( delete(reinterpret_cast<::StructEnum*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructEnumPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructEnumPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3425,6 +3747,17 @@ void StructBitMaskPubSubType::delete_data( delete(reinterpret_cast<::StructBitMask*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructBitMaskPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructBitMaskPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3607,6 +3940,17 @@ void StructAliasPubSubType::delete_data( delete(reinterpret_cast<::StructAlias*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructAliasPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructAliasPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3789,6 +4133,17 @@ void StructShortArrayPubSubType::delete_data( delete(reinterpret_cast<::StructShortArray*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructShortArrayPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructShortArrayPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3971,6 +4326,17 @@ void StructSequencePubSubType::delete_data( delete(reinterpret_cast<::StructSequence*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructSequencePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructSequencePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4153,6 +4519,17 @@ void StructMapPubSubType::delete_data( delete(reinterpret_cast<::StructMap*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructMapPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructMapPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4335,6 +4712,17 @@ void StructUnionPubSubType::delete_data( delete(reinterpret_cast<::StructUnion*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructUnionPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructUnionPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4517,6 +4905,17 @@ void StructStructurePubSubType::delete_data( delete(reinterpret_cast<::StructStructure*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructStructurePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructStructurePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4699,6 +5098,17 @@ void StructBitsetPubSubType::delete_data( delete(reinterpret_cast<::StructBitset*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructBitsetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructBitsetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4881,6 +5291,17 @@ void StructEmptyPubSubType::delete_data( delete(reinterpret_cast<::StructEmpty*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructEmptyPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructEmptyPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5063,6 +5484,17 @@ void StructuresPubSubType::delete_data( delete(reinterpret_cast<::Structures*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructuresPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructuresPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5246,6 +5678,17 @@ namespace testing_1 { delete(reinterpret_cast<::testing_1::foo*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool fooPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool fooPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5431,6 +5874,17 @@ namespace testing_2 { delete(reinterpret_cast<::testing_2::foo*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool fooPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool fooPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5615,6 +6069,17 @@ void barPubSubType::delete_data( delete(reinterpret_cast<::bar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool barPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool barPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5797,6 +6262,17 @@ void root1PubSubType::delete_data( delete(reinterpret_cast<::root1*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool root1PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool root1PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5979,6 +6455,17 @@ void root2PubSubType::delete_data( delete(reinterpret_cast<::root2*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool root2PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool root2PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6161,6 +6648,17 @@ void rootPubSubType::delete_data( delete(reinterpret_cast<::root*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool rootPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool rootPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds-types-test/structuresPubSubTypes.hpp b/test/dds-types-test/structuresPubSubTypes.hpp index 17fca2942e6..90ac124b7bc 100644 --- a/test/dds-types-test/structuresPubSubTypes.hpp +++ b/test/dds-types-test/structuresPubSubTypes.hpp @@ -94,12 +94,8 @@ class StructShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -176,12 +172,8 @@ class StructUnsignedShortPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -258,12 +250,8 @@ class StructLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -340,12 +328,8 @@ class StructUnsignedLongPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -422,12 +406,8 @@ class StructLongLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -504,12 +484,8 @@ class StructUnsignedLongLongPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -586,12 +562,8 @@ class StructFloatPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -668,12 +640,8 @@ class StructDoublePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -750,12 +718,8 @@ class StructLongDoublePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -832,12 +796,8 @@ class StructBooleanPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -914,12 +874,8 @@ class StructOctetPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -996,12 +952,8 @@ class StructChar8PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1078,12 +1030,8 @@ class StructChar16PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1160,12 +1108,8 @@ class StructStringPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1242,12 +1186,8 @@ class StructWStringPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1324,12 +1264,8 @@ class StructBoundedStringPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1406,12 +1342,8 @@ class StructBoundedWStringPubSubType : public eprosima::fastdds::dds::TopicDataT #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1488,12 +1420,8 @@ class StructEnumPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1570,12 +1498,8 @@ class StructBitMaskPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1652,12 +1576,8 @@ class StructAliasPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1734,12 +1654,8 @@ class StructShortArrayPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1816,12 +1732,8 @@ class StructSequencePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1898,12 +1810,8 @@ class StructMapPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1980,12 +1888,8 @@ class StructUnionPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2062,12 +1966,8 @@ class StructStructurePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2144,12 +2044,8 @@ class StructBitsetPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2226,12 +2122,8 @@ class StructEmptyPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2308,12 +2200,8 @@ class StructuresPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2392,12 +2280,8 @@ namespace testing_1 #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2477,12 +2361,8 @@ namespace testing_2 #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2560,12 +2440,8 @@ class barPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2642,12 +2518,8 @@ class root1PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2724,12 +2596,8 @@ class root2PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2806,12 +2674,8 @@ class rootPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds-types-test/unionsCdrAux.hpp b/test/dds-types-test/unionsCdrAux.hpp index ffdd63d2d6f..e1302fc0ad0 100644 --- a/test/dds-types-test/unionsCdrAux.hpp +++ b/test/dds-types-test/unionsCdrAux.hpp @@ -156,6 +156,7 @@ constexpr uint32_t UnionInnerEnumHelper_max_key_cdr_typesize {0UL}; + constexpr uint32_t UnionInnerStructureHelper_max_cdr_typesize {24UL}; constexpr uint32_t UnionInnerStructureHelper_max_key_cdr_typesize {0UL}; @@ -190,6 +191,7 @@ constexpr uint32_t UnionShortExtraMember_max_key_cdr_typesize {0UL}; + constexpr uint32_t UnionDiscriminatorULongLong_max_cdr_typesize {24UL}; constexpr uint32_t UnionDiscriminatorULongLong_max_key_cdr_typesize {0UL}; @@ -223,175 +225,218 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionUShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionULong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionLongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionULongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionFloat& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionLongDouble& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionBoolean& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionOctet& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionWChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionBoundedString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionBoundedWString& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionInnerEnumHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionInnerBitMaskHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionInnerAliasHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionArray& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionSequence& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionMap& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionInnerUnionHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionInnerStructureHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionInnerBitsetHelper& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorUShort& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorULong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorLongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorULongLong& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorBoolean& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorOctet& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorWChar& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorEnum& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorEnumLabel& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorAlias& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionSeveralFields& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionSeveralFieldsWithDefault& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionShortExtraMember& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionFixedStringAlias& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds-types-test/unionsCdrAux.ipp b/test/dds-types-test/unionsCdrAux.ipp index 2752a0bc080..2bb2d9d0187 100644 --- a/test/dds-types-test/unionsCdrAux.ipp +++ b/test/dds-types-test/unionsCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -95,6 +96,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Short* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -143,6 +157,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Short* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -204,6 +231,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_UShort* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -252,6 +292,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_UShort* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -313,6 +366,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Long* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -361,6 +427,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Long* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -422,6 +501,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_ULong* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -470,6 +562,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_ULong* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -531,6 +636,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_LongLong* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -579,6 +697,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_LongLong* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -640,6 +771,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_ULongLOng* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -688,6 +832,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_ULongLOng* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -749,6 +906,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Float* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -797,6 +967,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Float* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -858,6 +1041,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Double* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -906,6 +1102,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Double* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -967,6 +1176,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_LongDouble* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1015,6 +1237,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_LongDouble* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1076,6 +1311,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Boolean* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1124,6 +1372,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Boolean* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1185,6 +1446,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Octet* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1233,6 +1507,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Octet* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1294,6 +1581,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Char* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1342,6 +1642,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Char* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1403,6 +1716,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_WChar* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1451,6 +1777,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_WChar* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1512,6 +1851,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_String* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1560,6 +1912,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_String* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1621,6 +1986,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_WString* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1669,6 +2047,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_WString* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1730,6 +2121,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_BoundedString* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1778,6 +2182,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_BoundedString* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1839,6 +2256,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_BoundedWString* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1887,6 +2317,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_BoundedWString* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1948,6 +2391,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_InnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1996,6 +2452,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_InnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2057,6 +2526,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_InnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2105,6 +2587,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_InnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2166,6 +2661,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_InnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2214,6 +2722,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_InnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2275,6 +2796,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Array* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2323,6 +2857,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Array* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2384,6 +2931,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Sequence* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2432,6 +2992,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Sequence* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2493,6 +3066,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Map* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2541,6 +3127,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Map* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2602,6 +3201,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_InnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2650,6 +3262,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_InnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2711,6 +3336,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_InnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2759,6 +3397,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_InnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2820,6 +3471,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_InnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2868,8 +3532,21 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 template<> -eProsima_user_DllExport size_t calculate_serialized_size( +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_InnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + +template<> +eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, const Union_Discriminator_short& data, size_t& current_alignment) @@ -2938,6 +3615,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Discriminator_short* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2998,6 +3688,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Discriminator_short* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3068,6 +3771,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Discriminator_unsigned_short* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3128,6 +3844,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Discriminator_unsigned_short* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3198,6 +3927,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Discriminator_long* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3258,6 +4000,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Discriminator_long* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3328,6 +4083,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Discriminator_unsigned_long* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3388,6 +4156,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Discriminator_unsigned_long* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3458,6 +4239,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Discriminator_long_long* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3518,6 +4312,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Discriminator_long_long* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3588,6 +4395,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Discriminator_unsigned_long_long* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3648,6 +4468,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Discriminator_unsigned_long_long* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3714,6 +4547,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Discriminator_boolean* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3769,6 +4615,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Discriminator_boolean* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3839,6 +4698,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Discriminator_octet* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3899,6 +4771,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Discriminator_octet* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3969,6 +4854,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Discriminator_char* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4029,6 +4927,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Discriminator_char* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4099,6 +5010,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Discriminator_wchar* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4159,6 +5083,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Discriminator_wchar* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4234,6 +5171,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Discriminator_enum* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4301,6 +5251,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Discriminator_enum* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4373,6 +5336,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Discriminator_enum_labels* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4435,6 +5411,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Discriminator_enum_labels* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4505,6 +5494,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Discriminator_alias* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4565,6 +5567,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Discriminator_alias* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4662,6 +5677,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Several_Fields* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4758,6 +5786,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Several_Fields* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4860,6 +5901,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Several_Fields_With_Default* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4963,6 +6017,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Several_Fields_With_Default* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5024,6 +6091,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Union_Fixed_String_In_Module_Alias* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5072,6 +6152,27 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Union_Fixed_String_In_Module_Alias* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_UnionShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5114,6 +6215,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionShort_cdr_plain(data_representation) && + sizeof(UnionShort) == UnionShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionShort)); + + scdr.jump((array_size -1) * sizeof(UnionShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5139,6 +6278,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionShort_cdr_plain(data_representation) && + sizeof(UnionShort) == UnionShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionShort)); + + scdr.jump((array_size - 1) * sizeof(UnionShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionShort& data) @@ -5151,6 +6326,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionUShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5193,6 +6376,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionUShort_cdr_plain(data_representation) && + sizeof(UnionUShort) == UnionUShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionUShort)); + + scdr.jump((array_size -1) * sizeof(UnionUShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5218,6 +6439,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionUShort_cdr_plain(data_representation) && + sizeof(UnionUShort) == UnionUShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionUShort)); + + scdr.jump((array_size - 1) * sizeof(UnionUShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionUShort& data) @@ -5230,6 +6487,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5272,6 +6537,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionLong_cdr_plain(data_representation) && + sizeof(UnionLong) == UnionLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionLong)); + + scdr.jump((array_size -1) * sizeof(UnionLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5297,6 +6600,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionLong_cdr_plain(data_representation) && + sizeof(UnionLong) == UnionLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionLong)); + + scdr.jump((array_size - 1) * sizeof(UnionLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionLong& data) @@ -5309,6 +6648,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionULong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5351,6 +6698,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionULong_cdr_plain(data_representation) && + sizeof(UnionULong) == UnionULong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionULong)); + + scdr.jump((array_size -1) * sizeof(UnionULong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5376,6 +6761,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionULong_cdr_plain(data_representation) && + sizeof(UnionULong) == UnionULong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionULong)); + + scdr.jump((array_size - 1) * sizeof(UnionULong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionULong& data) @@ -5388,6 +6809,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionLongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5430,6 +6859,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionLongLong_cdr_plain(data_representation) && + sizeof(UnionLongLong) == UnionLongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionLongLong)); + + scdr.jump((array_size -1) * sizeof(UnionLongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5455,6 +6922,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionLongLong_cdr_plain(data_representation) && + sizeof(UnionLongLong) == UnionLongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionLongLong)); + + scdr.jump((array_size - 1) * sizeof(UnionLongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionLongLong& data) @@ -5467,6 +6970,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionULongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5509,6 +7020,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionULongLong_cdr_plain(data_representation) && + sizeof(UnionULongLong) == UnionULongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionULongLong)); + + scdr.jump((array_size -1) * sizeof(UnionULongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5534,6 +7083,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionULongLong_cdr_plain(data_representation) && + sizeof(UnionULongLong) == UnionULongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionULongLong)); + + scdr.jump((array_size - 1) * sizeof(UnionULongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionULongLong& data) @@ -5546,6 +7131,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionFloat_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5588,6 +7181,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionFloat_cdr_plain(data_representation) && + sizeof(UnionFloat) == UnionFloat_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionFloat)); + + scdr.jump((array_size -1) * sizeof(UnionFloat)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5613,6 +7244,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionFloat* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionFloat_cdr_plain(data_representation) && + sizeof(UnionFloat) == UnionFloat_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionFloat)); + + scdr.jump((array_size - 1) * sizeof(UnionFloat)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionFloat& data) @@ -5625,6 +7292,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5667,6 +7342,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDouble_cdr_plain(data_representation) && + sizeof(UnionDouble) == UnionDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionDouble)); + + scdr.jump((array_size -1) * sizeof(UnionDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5692,6 +7405,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDouble_cdr_plain(data_representation) && + sizeof(UnionDouble) == UnionDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionDouble)); + + scdr.jump((array_size - 1) * sizeof(UnionDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDouble& data) @@ -5704,6 +7453,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionLongDouble_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5746,6 +7503,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionLongDouble_cdr_plain(data_representation) && + sizeof(UnionLongDouble) == UnionLongDouble_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionLongDouble)); + + scdr.jump((array_size -1) * sizeof(UnionLongDouble)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5771,6 +7566,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionLongDouble* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionLongDouble_cdr_plain(data_representation) && + sizeof(UnionLongDouble) == UnionLongDouble_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionLongDouble)); + + scdr.jump((array_size - 1) * sizeof(UnionLongDouble)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionLongDouble& data) @@ -5783,6 +7614,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionBoolean_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5825,6 +7664,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionBoolean_cdr_plain(data_representation) && + sizeof(UnionBoolean) == UnionBoolean_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionBoolean)); + + scdr.jump((array_size -1) * sizeof(UnionBoolean)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5850,6 +7727,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionBoolean_cdr_plain(data_representation) && + sizeof(UnionBoolean) == UnionBoolean_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionBoolean)); + + scdr.jump((array_size - 1) * sizeof(UnionBoolean)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionBoolean& data) @@ -5862,6 +7775,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionOctet_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5904,6 +7825,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionOctet_cdr_plain(data_representation) && + sizeof(UnionOctet) == UnionOctet_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionOctet)); + + scdr.jump((array_size -1) * sizeof(UnionOctet)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5929,6 +7888,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionOctet_cdr_plain(data_representation) && + sizeof(UnionOctet) == UnionOctet_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionOctet)); + + scdr.jump((array_size - 1) * sizeof(UnionOctet)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionOctet& data) @@ -5941,6 +7936,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5983,6 +7986,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionChar_cdr_plain(data_representation) && + sizeof(UnionChar) == UnionChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionChar)); + + scdr.jump((array_size -1) * sizeof(UnionChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6008,6 +8049,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionChar_cdr_plain(data_representation) && + sizeof(UnionChar) == UnionChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionChar)); + + scdr.jump((array_size - 1) * sizeof(UnionChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionChar& data) @@ -6020,6 +8097,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionWChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6062,6 +8147,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionWChar_cdr_plain(data_representation) && + sizeof(UnionWChar) == UnionWChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionWChar)); + + scdr.jump((array_size -1) * sizeof(UnionWChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6087,6 +8210,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionWChar_cdr_plain(data_representation) && + sizeof(UnionWChar) == UnionWChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionWChar)); + + scdr.jump((array_size - 1) * sizeof(UnionWChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionWChar& data) @@ -6099,6 +8258,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6141,6 +8308,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionString_cdr_plain(data_representation) && + sizeof(UnionString) == UnionString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionString)); + + scdr.jump((array_size -1) * sizeof(UnionString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6166,6 +8371,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionString_cdr_plain(data_representation) && + sizeof(UnionString) == UnionString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionString)); + + scdr.jump((array_size - 1) * sizeof(UnionString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionString& data) @@ -6178,6 +8419,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6220,6 +8469,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionWString_cdr_plain(data_representation) && + sizeof(UnionWString) == UnionWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionWString)); + + scdr.jump((array_size -1) * sizeof(UnionWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6245,6 +8532,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionWString_cdr_plain(data_representation) && + sizeof(UnionWString) == UnionWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionWString)); + + scdr.jump((array_size - 1) * sizeof(UnionWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionWString& data) @@ -6257,6 +8580,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionBoundedString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6299,6 +8630,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionBoundedString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionBoundedString_cdr_plain(data_representation) && + sizeof(UnionBoundedString) == UnionBoundedString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionBoundedString)); + + scdr.jump((array_size -1) * sizeof(UnionBoundedString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6324,6 +8693,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionBoundedString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionBoundedString_cdr_plain(data_representation) && + sizeof(UnionBoundedString) == UnionBoundedString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionBoundedString)); + + scdr.jump((array_size - 1) * sizeof(UnionBoundedString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionBoundedString& data) @@ -6336,6 +8741,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionBoundedWString_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6378,6 +8791,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionBoundedWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionBoundedWString_cdr_plain(data_representation) && + sizeof(UnionBoundedWString) == UnionBoundedWString_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionBoundedWString)); + + scdr.jump((array_size -1) * sizeof(UnionBoundedWString)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6403,6 +8854,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionBoundedWString* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionBoundedWString_cdr_plain(data_representation) && + sizeof(UnionBoundedWString) == UnionBoundedWString_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionBoundedWString)); + + scdr.jump((array_size - 1) * sizeof(UnionBoundedWString)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionBoundedWString& data) @@ -6415,6 +8902,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionInnerEnumHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6457,6 +8952,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionInnerEnumHelper_cdr_plain(data_representation) && + sizeof(UnionInnerEnumHelper) == UnionInnerEnumHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionInnerEnumHelper)); + + scdr.jump((array_size -1) * sizeof(UnionInnerEnumHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6482,6 +9015,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionInnerEnumHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionInnerEnumHelper_cdr_plain(data_representation) && + sizeof(UnionInnerEnumHelper) == UnionInnerEnumHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionInnerEnumHelper)); + + scdr.jump((array_size - 1) * sizeof(UnionInnerEnumHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionInnerEnumHelper& data) @@ -6494,6 +9063,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionInnerBitMaskHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6536,6 +9113,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(UnionInnerBitMaskHelper) == UnionInnerBitMaskHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionInnerBitMaskHelper)); + + scdr.jump((array_size -1) * sizeof(UnionInnerBitMaskHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6561,6 +9176,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionInnerBitMaskHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionInnerBitMaskHelper_cdr_plain(data_representation) && + sizeof(UnionInnerBitMaskHelper) == UnionInnerBitMaskHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionInnerBitMaskHelper)); + + scdr.jump((array_size - 1) * sizeof(UnionInnerBitMaskHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionInnerBitMaskHelper& data) @@ -6573,6 +9224,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionInnerAliasHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6615,6 +9274,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionInnerAliasHelper_cdr_plain(data_representation) && + sizeof(UnionInnerAliasHelper) == UnionInnerAliasHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionInnerAliasHelper)); + + scdr.jump((array_size -1) * sizeof(UnionInnerAliasHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6640,6 +9337,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionInnerAliasHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionInnerAliasHelper_cdr_plain(data_representation) && + sizeof(UnionInnerAliasHelper) == UnionInnerAliasHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionInnerAliasHelper)); + + scdr.jump((array_size - 1) * sizeof(UnionInnerAliasHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionInnerAliasHelper& data) @@ -6652,6 +9385,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionArray_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6694,6 +9435,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionArray* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionArray_cdr_plain(data_representation) && + sizeof(UnionArray) == UnionArray_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionArray)); + + scdr.jump((array_size -1) * sizeof(UnionArray)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6719,6 +9498,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionArray* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionArray_cdr_plain(data_representation) && + sizeof(UnionArray) == UnionArray_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionArray)); + + scdr.jump((array_size - 1) * sizeof(UnionArray)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionArray& data) @@ -6731,6 +9546,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionSequence_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6773,6 +9596,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionSequence* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionSequence_cdr_plain(data_representation) && + sizeof(UnionSequence) == UnionSequence_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionSequence)); + + scdr.jump((array_size -1) * sizeof(UnionSequence)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6798,6 +9659,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionSequence* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionSequence_cdr_plain(data_representation) && + sizeof(UnionSequence) == UnionSequence_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionSequence)); + + scdr.jump((array_size - 1) * sizeof(UnionSequence)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionSequence& data) @@ -6810,6 +9707,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionMap_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6852,6 +9757,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionMap* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionMap_cdr_plain(data_representation) && + sizeof(UnionMap) == UnionMap_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionMap)); + + scdr.jump((array_size -1) * sizeof(UnionMap)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6877,6 +9820,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionMap* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionMap_cdr_plain(data_representation) && + sizeof(UnionMap) == UnionMap_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionMap)); + + scdr.jump((array_size - 1) * sizeof(UnionMap)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionMap& data) @@ -6889,6 +9868,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionInnerUnionHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6931,6 +9918,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionInnerUnionHelper_cdr_plain(data_representation) && + sizeof(UnionInnerUnionHelper) == UnionInnerUnionHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionInnerUnionHelper)); + + scdr.jump((array_size -1) * sizeof(UnionInnerUnionHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6956,6 +9981,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionInnerUnionHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionInnerUnionHelper_cdr_plain(data_representation) && + sizeof(UnionInnerUnionHelper) == UnionInnerUnionHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionInnerUnionHelper)); + + scdr.jump((array_size - 1) * sizeof(UnionInnerUnionHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionInnerUnionHelper& data) @@ -6968,6 +10029,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionInnerStructureHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7010,6 +10079,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionInnerStructureHelper_cdr_plain(data_representation) && + sizeof(UnionInnerStructureHelper) == UnionInnerStructureHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionInnerStructureHelper)); + + scdr.jump((array_size -1) * sizeof(UnionInnerStructureHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7035,6 +10142,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionInnerStructureHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionInnerStructureHelper_cdr_plain(data_representation) && + sizeof(UnionInnerStructureHelper) == UnionInnerStructureHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionInnerStructureHelper)); + + scdr.jump((array_size - 1) * sizeof(UnionInnerStructureHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionInnerStructureHelper& data) @@ -7047,6 +10190,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionInnerBitsetHelper_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7089,6 +10240,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(UnionInnerBitsetHelper) == UnionInnerBitsetHelper_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionInnerBitsetHelper)); + + scdr.jump((array_size -1) * sizeof(UnionInnerBitsetHelper)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7114,6 +10303,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionInnerBitsetHelper* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionInnerBitsetHelper_cdr_plain(data_representation) && + sizeof(UnionInnerBitsetHelper) == UnionInnerBitsetHelper_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionInnerBitsetHelper)); + + scdr.jump((array_size - 1) * sizeof(UnionInnerBitsetHelper)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionInnerBitsetHelper& data) @@ -7126,6 +10351,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionDiscriminatorShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7168,6 +10401,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionDiscriminatorShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorShort_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorShort) == UnionDiscriminatorShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionDiscriminatorShort)); + + scdr.jump((array_size -1) * sizeof(UnionDiscriminatorShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7193,6 +10464,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionDiscriminatorShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorShort_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorShort) == UnionDiscriminatorShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionDiscriminatorShort)); + + scdr.jump((array_size - 1) * sizeof(UnionDiscriminatorShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorShort& data) @@ -7205,6 +10512,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionDiscriminatorUShort_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7247,6 +10562,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionDiscriminatorUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorUShort_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorUShort) == UnionDiscriminatorUShort_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionDiscriminatorUShort)); + + scdr.jump((array_size -1) * sizeof(UnionDiscriminatorUShort)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7272,6 +10625,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionDiscriminatorUShort* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorUShort_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorUShort) == UnionDiscriminatorUShort_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionDiscriminatorUShort)); + + scdr.jump((array_size - 1) * sizeof(UnionDiscriminatorUShort)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorUShort& data) @@ -7284,6 +10673,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionDiscriminatorLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7326,6 +10723,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionDiscriminatorLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorLong_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorLong) == UnionDiscriminatorLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionDiscriminatorLong)); + + scdr.jump((array_size -1) * sizeof(UnionDiscriminatorLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7351,6 +10786,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionDiscriminatorLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorLong_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorLong) == UnionDiscriminatorLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionDiscriminatorLong)); + + scdr.jump((array_size - 1) * sizeof(UnionDiscriminatorLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorLong& data) @@ -7363,6 +10834,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionDiscriminatorULong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7405,6 +10884,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionDiscriminatorULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorULong_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorULong) == UnionDiscriminatorULong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionDiscriminatorULong)); + + scdr.jump((array_size -1) * sizeof(UnionDiscriminatorULong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7430,6 +10947,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionDiscriminatorULong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorULong_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorULong) == UnionDiscriminatorULong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionDiscriminatorULong)); + + scdr.jump((array_size - 1) * sizeof(UnionDiscriminatorULong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorULong& data) @@ -7442,6 +10995,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionDiscriminatorLongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7484,6 +11045,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionDiscriminatorLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorLongLong_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorLongLong) == UnionDiscriminatorLongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionDiscriminatorLongLong)); + + scdr.jump((array_size -1) * sizeof(UnionDiscriminatorLongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7509,6 +11108,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionDiscriminatorLongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorLongLong_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorLongLong) == UnionDiscriminatorLongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionDiscriminatorLongLong)); + + scdr.jump((array_size - 1) * sizeof(UnionDiscriminatorLongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorLongLong& data) @@ -7521,6 +11156,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionDiscriminatorULongLong_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7563,6 +11206,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionDiscriminatorULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorULongLong_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorULongLong) == UnionDiscriminatorULongLong_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionDiscriminatorULongLong)); + + scdr.jump((array_size -1) * sizeof(UnionDiscriminatorULongLong)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7588,6 +11269,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionDiscriminatorULongLong* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorULongLong_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorULongLong) == UnionDiscriminatorULongLong_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionDiscriminatorULongLong)); + + scdr.jump((array_size - 1) * sizeof(UnionDiscriminatorULongLong)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorULongLong& data) @@ -7600,6 +11317,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionDiscriminatorBoolean_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7642,6 +11367,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionDiscriminatorBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorBoolean_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorBoolean) == UnionDiscriminatorBoolean_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionDiscriminatorBoolean)); + + scdr.jump((array_size -1) * sizeof(UnionDiscriminatorBoolean)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7667,6 +11430,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionDiscriminatorBoolean* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorBoolean_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorBoolean) == UnionDiscriminatorBoolean_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionDiscriminatorBoolean)); + + scdr.jump((array_size - 1) * sizeof(UnionDiscriminatorBoolean)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorBoolean& data) @@ -7679,6 +11478,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionDiscriminatorOctet_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7721,6 +11528,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionDiscriminatorOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorOctet_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorOctet) == UnionDiscriminatorOctet_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionDiscriminatorOctet)); + + scdr.jump((array_size -1) * sizeof(UnionDiscriminatorOctet)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7746,6 +11591,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionDiscriminatorOctet* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorOctet_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorOctet) == UnionDiscriminatorOctet_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionDiscriminatorOctet)); + + scdr.jump((array_size - 1) * sizeof(UnionDiscriminatorOctet)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorOctet& data) @@ -7758,6 +11639,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionDiscriminatorChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7800,6 +11689,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionDiscriminatorChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorChar_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorChar) == UnionDiscriminatorChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionDiscriminatorChar)); + + scdr.jump((array_size -1) * sizeof(UnionDiscriminatorChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7825,6 +11752,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionDiscriminatorChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorChar_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorChar) == UnionDiscriminatorChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionDiscriminatorChar)); + + scdr.jump((array_size - 1) * sizeof(UnionDiscriminatorChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorChar& data) @@ -7837,6 +11800,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionDiscriminatorWChar_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7879,6 +11850,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionDiscriminatorWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorWChar_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorWChar) == UnionDiscriminatorWChar_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionDiscriminatorWChar)); + + scdr.jump((array_size -1) * sizeof(UnionDiscriminatorWChar)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7904,6 +11913,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionDiscriminatorWChar* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorWChar_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorWChar) == UnionDiscriminatorWChar_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionDiscriminatorWChar)); + + scdr.jump((array_size - 1) * sizeof(UnionDiscriminatorWChar)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorWChar& data) @@ -7916,6 +11961,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionDiscriminatorEnum_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7958,6 +12011,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionDiscriminatorEnum* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorEnum_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorEnum) == UnionDiscriminatorEnum_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionDiscriminatorEnum)); + + scdr.jump((array_size -1) * sizeof(UnionDiscriminatorEnum)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7983,6 +12074,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionDiscriminatorEnum* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorEnum_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorEnum) == UnionDiscriminatorEnum_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionDiscriminatorEnum)); + + scdr.jump((array_size - 1) * sizeof(UnionDiscriminatorEnum)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorEnum& data) @@ -7995,6 +12122,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionDiscriminatorEnumLabel_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8037,6 +12172,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionDiscriminatorEnumLabel* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorEnumLabel_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorEnumLabel) == UnionDiscriminatorEnumLabel_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionDiscriminatorEnumLabel)); + + scdr.jump((array_size -1) * sizeof(UnionDiscriminatorEnumLabel)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8062,6 +12235,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionDiscriminatorEnumLabel* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorEnumLabel_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorEnumLabel) == UnionDiscriminatorEnumLabel_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionDiscriminatorEnumLabel)); + + scdr.jump((array_size - 1) * sizeof(UnionDiscriminatorEnumLabel)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorEnumLabel& data) @@ -8074,6 +12283,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionDiscriminatorAlias_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8116,6 +12333,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionDiscriminatorAlias* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorAlias_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorAlias) == UnionDiscriminatorAlias_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionDiscriminatorAlias)); + + scdr.jump((array_size -1) * sizeof(UnionDiscriminatorAlias)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8141,6 +12396,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionDiscriminatorAlias* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionDiscriminatorAlias_cdr_plain(data_representation) && + sizeof(UnionDiscriminatorAlias) == UnionDiscriminatorAlias_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionDiscriminatorAlias)); + + scdr.jump((array_size - 1) * sizeof(UnionDiscriminatorAlias)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionDiscriminatorAlias& data) @@ -8153,6 +12444,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionSeveralFields_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8195,6 +12494,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionSeveralFields* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionSeveralFields_cdr_plain(data_representation) && + sizeof(UnionSeveralFields) == UnionSeveralFields_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionSeveralFields)); + + scdr.jump((array_size -1) * sizeof(UnionSeveralFields)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8220,6 +12557,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionSeveralFields* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionSeveralFields_cdr_plain(data_representation) && + sizeof(UnionSeveralFields) == UnionSeveralFields_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionSeveralFields)); + + scdr.jump((array_size - 1) * sizeof(UnionSeveralFields)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionSeveralFields& data) @@ -8232,6 +12605,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionSeveralFieldsWithDefault_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8274,6 +12655,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionSeveralFieldsWithDefault* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionSeveralFieldsWithDefault_cdr_plain(data_representation) && + sizeof(UnionSeveralFieldsWithDefault) == UnionSeveralFieldsWithDefault_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionSeveralFieldsWithDefault)); + + scdr.jump((array_size -1) * sizeof(UnionSeveralFieldsWithDefault)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8299,6 +12718,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionSeveralFieldsWithDefault* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionSeveralFieldsWithDefault_cdr_plain(data_representation) && + sizeof(UnionSeveralFieldsWithDefault) == UnionSeveralFieldsWithDefault_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionSeveralFieldsWithDefault)); + + scdr.jump((array_size - 1) * sizeof(UnionSeveralFieldsWithDefault)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionSeveralFieldsWithDefault& data) @@ -8386,6 +12841,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const DefaultAnnotation* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8453,6 +12921,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + DefaultAnnotation* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8523,6 +13004,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const DefaultAnnotationExternalValue* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8583,6 +13077,27 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + DefaultAnnotationExternalValue* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_UnionShortExtraMember_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8629,6 +13144,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionShortExtraMember* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionShortExtraMember_cdr_plain(data_representation) && + sizeof(UnionShortExtraMember) == UnionShortExtraMember_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionShortExtraMember)); + + scdr.jump((array_size -1) * sizeof(UnionShortExtraMember)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8658,6 +13211,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionShortExtraMember* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionShortExtraMember_cdr_plain(data_representation) && + sizeof(UnionShortExtraMember) == UnionShortExtraMember_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionShortExtraMember)); + + scdr.jump((array_size - 1) * sizeof(UnionShortExtraMember)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionShortExtraMember& data) @@ -8672,6 +13261,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_UnionFixedStringAlias_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8714,6 +13311,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionFixedStringAlias* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionFixedStringAlias_cdr_plain(data_representation) && + sizeof(UnionFixedStringAlias) == UnionFixedStringAlias_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionFixedStringAlias)); + + scdr.jump((array_size -1) * sizeof(UnionFixedStringAlias)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8739,6 +13374,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionFixedStringAlias* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionFixedStringAlias_cdr_plain(data_representation) && + sizeof(UnionFixedStringAlias) == UnionFixedStringAlias_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionFixedStringAlias)); + + scdr.jump((array_size - 1) * sizeof(UnionFixedStringAlias)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionFixedStringAlias& data) diff --git a/test/dds-types-test/unionsPubSubTypes.cxx b/test/dds-types-test/unionsPubSubTypes.cxx index cc89cf777a1..8b917cc9266 100644 --- a/test/dds-types-test/unionsPubSubTypes.cxx +++ b/test/dds-types-test/unionsPubSubTypes.cxx @@ -31,6 +31,203 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_UnionMap_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_UnionDiscriminatorEnumLabel_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + + + + +bool is_UnionLongDouble_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_UnionDiscriminatorULong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_UnionDouble_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_UnionDiscriminatorShort_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_UnionDiscriminatorEnum_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_UnionChar_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_UnionDiscriminatorUShort_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + + + + + + + + +bool is_UnionLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_UnionDiscriminatorAlias_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_UnionFloat_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_UnionOctet_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_UnionInnerAliasHelper_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_UnionFixedStringAlias_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_UnionWChar_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_UnionUShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_UnionShort_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_UnionInnerBitsetHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_UnionDiscriminatorLongLong_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_UnionDiscriminatorBoolean_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_UnionSeveralFieldsWithDefault_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_UnionDiscriminatorOctet_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_UnionBoolean_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_UnionSeveralFields_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_UnionArray_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_UnionBoundedWString_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_UnionULong_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_UnionInnerEnumHelper_cdr_plain( + DataRepresentationId_t data_representation); + + + + + +bool is_UnionInnerStructureHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_UnionDiscriminatorLong_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_UnionSequence_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_UnionDiscriminatorChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_UnionULongLong_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_UnionBoundedString_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_UnionDiscriminatorWChar_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_UnionInnerUnionHelper_cdr_plain( + DataRepresentationId_t data_representation); + + + +bool is_UnionShortExtraMember_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_UnionDiscriminatorULongLong_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_UnionInnerBitMaskHelper_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_UnionLongLong_cdr_plain( + DataRepresentationId_t data_representation); + + + + + +bool is_UnionString_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_UnionWString_cdr_plain( + DataRepresentationId_t data_representation); + + + +} // namespace fastcdr +} // namespace eprosima + namespace Fixed_String_Module { } // namespace Fixed_String_Module @@ -152,6 +349,17 @@ void UnionShortPubSubType::delete_data( delete(reinterpret_cast<::UnionShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -334,6 +542,17 @@ void UnionUShortPubSubType::delete_data( delete(reinterpret_cast<::UnionUShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionUShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionUShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -516,6 +735,17 @@ void UnionLongPubSubType::delete_data( delete(reinterpret_cast<::UnionLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -698,6 +928,17 @@ void UnionULongPubSubType::delete_data( delete(reinterpret_cast<::UnionULong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionULongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionULongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -880,6 +1121,17 @@ void UnionLongLongPubSubType::delete_data( delete(reinterpret_cast<::UnionLongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionLongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionLongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1062,6 +1314,17 @@ void UnionULongLongPubSubType::delete_data( delete(reinterpret_cast<::UnionULongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionULongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionULongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1244,6 +1507,17 @@ void UnionFloatPubSubType::delete_data( delete(reinterpret_cast<::UnionFloat*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionFloatPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionFloatPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1426,6 +1700,17 @@ void UnionDoublePubSubType::delete_data( delete(reinterpret_cast<::UnionDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1608,6 +1893,17 @@ void UnionLongDoublePubSubType::delete_data( delete(reinterpret_cast<::UnionLongDouble*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionLongDoublePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionLongDoublePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1790,6 +2086,17 @@ void UnionBooleanPubSubType::delete_data( delete(reinterpret_cast<::UnionBoolean*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionBooleanPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionBooleanPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1972,6 +2279,17 @@ void UnionOctetPubSubType::delete_data( delete(reinterpret_cast<::UnionOctet*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionOctetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionOctetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2154,6 +2472,17 @@ void UnionCharPubSubType::delete_data( delete(reinterpret_cast<::UnionChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2336,6 +2665,17 @@ void UnionWCharPubSubType::delete_data( delete(reinterpret_cast<::UnionWChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionWCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionWCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2518,6 +2858,17 @@ void UnionStringPubSubType::delete_data( delete(reinterpret_cast<::UnionString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2700,6 +3051,17 @@ void UnionWStringPubSubType::delete_data( delete(reinterpret_cast<::UnionWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2882,6 +3244,17 @@ void UnionBoundedStringPubSubType::delete_data( delete(reinterpret_cast<::UnionBoundedString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionBoundedStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionBoundedStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3064,6 +3437,17 @@ void UnionBoundedWStringPubSubType::delete_data( delete(reinterpret_cast<::UnionBoundedWString*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionBoundedWStringPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionBoundedWStringPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3246,6 +3630,17 @@ void UnionInnerEnumHelperPubSubType::delete_data( delete(reinterpret_cast<::UnionInnerEnumHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionInnerEnumHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionInnerEnumHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3428,6 +3823,17 @@ void UnionInnerBitMaskHelperPubSubType::delete_data( delete(reinterpret_cast<::UnionInnerBitMaskHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionInnerBitMaskHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionInnerBitMaskHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3610,6 +4016,17 @@ void UnionInnerAliasHelperPubSubType::delete_data( delete(reinterpret_cast<::UnionInnerAliasHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionInnerAliasHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionInnerAliasHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3792,6 +4209,17 @@ void UnionArrayPubSubType::delete_data( delete(reinterpret_cast<::UnionArray*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionArrayPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionArrayPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3974,6 +4402,17 @@ void UnionSequencePubSubType::delete_data( delete(reinterpret_cast<::UnionSequence*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionSequencePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionSequencePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4156,6 +4595,17 @@ void UnionMapPubSubType::delete_data( delete(reinterpret_cast<::UnionMap*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionMapPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionMapPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4338,6 +4788,17 @@ void UnionInnerUnionHelperPubSubType::delete_data( delete(reinterpret_cast<::UnionInnerUnionHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionInnerUnionHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionInnerUnionHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4520,6 +4981,17 @@ void UnionInnerStructureHelperPubSubType::delete_data( delete(reinterpret_cast<::UnionInnerStructureHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionInnerStructureHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionInnerStructureHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4702,6 +5174,17 @@ void UnionInnerBitsetHelperPubSubType::delete_data( delete(reinterpret_cast<::UnionInnerBitsetHelper*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionInnerBitsetHelperPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionInnerBitsetHelperPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4884,6 +5367,17 @@ void UnionDiscriminatorShortPubSubType::delete_data( delete(reinterpret_cast<::UnionDiscriminatorShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionDiscriminatorShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionDiscriminatorShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5066,6 +5560,17 @@ void UnionDiscriminatorUShortPubSubType::delete_data( delete(reinterpret_cast<::UnionDiscriminatorUShort*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionDiscriminatorUShortPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionDiscriminatorUShortPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5248,6 +5753,17 @@ void UnionDiscriminatorLongPubSubType::delete_data( delete(reinterpret_cast<::UnionDiscriminatorLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionDiscriminatorLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionDiscriminatorLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5430,6 +5946,17 @@ void UnionDiscriminatorULongPubSubType::delete_data( delete(reinterpret_cast<::UnionDiscriminatorULong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionDiscriminatorULongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionDiscriminatorULongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5612,6 +6139,17 @@ void UnionDiscriminatorLongLongPubSubType::delete_data( delete(reinterpret_cast<::UnionDiscriminatorLongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionDiscriminatorLongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionDiscriminatorLongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5794,6 +6332,17 @@ void UnionDiscriminatorULongLongPubSubType::delete_data( delete(reinterpret_cast<::UnionDiscriminatorULongLong*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionDiscriminatorULongLongPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionDiscriminatorULongLongPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5976,6 +6525,17 @@ void UnionDiscriminatorBooleanPubSubType::delete_data( delete(reinterpret_cast<::UnionDiscriminatorBoolean*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionDiscriminatorBooleanPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionDiscriminatorBooleanPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6158,6 +6718,17 @@ void UnionDiscriminatorOctetPubSubType::delete_data( delete(reinterpret_cast<::UnionDiscriminatorOctet*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionDiscriminatorOctetPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionDiscriminatorOctetPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6340,6 +6911,17 @@ void UnionDiscriminatorCharPubSubType::delete_data( delete(reinterpret_cast<::UnionDiscriminatorChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionDiscriminatorCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionDiscriminatorCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6522,6 +7104,17 @@ void UnionDiscriminatorWCharPubSubType::delete_data( delete(reinterpret_cast<::UnionDiscriminatorWChar*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionDiscriminatorWCharPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionDiscriminatorWCharPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6704,6 +7297,17 @@ void UnionDiscriminatorEnumPubSubType::delete_data( delete(reinterpret_cast<::UnionDiscriminatorEnum*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionDiscriminatorEnumPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionDiscriminatorEnumPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6886,6 +7490,17 @@ void UnionDiscriminatorEnumLabelPubSubType::delete_data( delete(reinterpret_cast<::UnionDiscriminatorEnumLabel*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionDiscriminatorEnumLabelPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionDiscriminatorEnumLabelPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7068,6 +7683,17 @@ void UnionDiscriminatorAliasPubSubType::delete_data( delete(reinterpret_cast<::UnionDiscriminatorAlias*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionDiscriminatorAliasPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionDiscriminatorAliasPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7250,6 +7876,17 @@ void UnionSeveralFieldsPubSubType::delete_data( delete(reinterpret_cast<::UnionSeveralFields*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionSeveralFieldsPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionSeveralFieldsPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7432,6 +8069,17 @@ void UnionSeveralFieldsWithDefaultPubSubType::delete_data( delete(reinterpret_cast<::UnionSeveralFieldsWithDefault*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionSeveralFieldsWithDefaultPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionSeveralFieldsWithDefaultPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7614,6 +8262,17 @@ void UnionShortExtraMemberPubSubType::delete_data( delete(reinterpret_cast<::UnionShortExtraMember*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionShortExtraMemberPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionShortExtraMemberPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7796,6 +8455,17 @@ void UnionFixedStringAliasPubSubType::delete_data( delete(reinterpret_cast<::UnionFixedStringAlias*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionFixedStringAliasPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionFixedStringAliasPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds-types-test/unionsPubSubTypes.hpp b/test/dds-types-test/unionsPubSubTypes.hpp index 03718a0ab81..fccc5bcd8b3 100644 --- a/test/dds-types-test/unionsPubSubTypes.hpp +++ b/test/dds-types-test/unionsPubSubTypes.hpp @@ -98,12 +98,8 @@ class UnionShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -180,12 +176,8 @@ class UnionUShortPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -262,12 +254,8 @@ class UnionLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -344,12 +332,8 @@ class UnionULongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -426,12 +410,8 @@ class UnionLongLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -508,12 +488,8 @@ class UnionULongLongPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -590,12 +566,8 @@ class UnionFloatPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -672,12 +644,8 @@ class UnionDoublePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -754,12 +722,8 @@ class UnionLongDoublePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -836,12 +800,8 @@ class UnionBooleanPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -918,12 +878,8 @@ class UnionOctetPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1000,12 +956,8 @@ class UnionCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1082,12 +1034,8 @@ class UnionWCharPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1164,12 +1112,8 @@ class UnionStringPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1246,12 +1190,8 @@ class UnionWStringPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1328,12 +1268,8 @@ class UnionBoundedStringPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1410,12 +1346,8 @@ class UnionBoundedWStringPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1492,12 +1424,8 @@ class UnionInnerEnumHelperPubSubType : public eprosima::fastdds::dds::TopicDataT #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1574,12 +1502,8 @@ class UnionInnerBitMaskHelperPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1656,12 +1580,8 @@ class UnionInnerAliasHelperPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1738,12 +1658,8 @@ class UnionArrayPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1820,12 +1736,8 @@ class UnionSequencePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1902,12 +1814,8 @@ class UnionMapPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1984,12 +1892,8 @@ class UnionInnerUnionHelperPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2066,12 +1970,8 @@ class UnionInnerStructureHelperPubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2148,12 +2048,8 @@ class UnionInnerBitsetHelperPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2230,12 +2126,8 @@ class UnionDiscriminatorShortPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2312,12 +2204,8 @@ class UnionDiscriminatorUShortPubSubType : public eprosima::fastdds::dds::TopicD #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2394,12 +2282,8 @@ class UnionDiscriminatorLongPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2476,12 +2360,8 @@ class UnionDiscriminatorULongPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2558,12 +2438,8 @@ class UnionDiscriminatorLongLongPubSubType : public eprosima::fastdds::dds::Topi #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2640,12 +2516,8 @@ class UnionDiscriminatorULongLongPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2722,12 +2594,8 @@ class UnionDiscriminatorBooleanPubSubType : public eprosima::fastdds::dds::Topic #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2804,12 +2672,8 @@ class UnionDiscriminatorOctetPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2886,12 +2750,8 @@ class UnionDiscriminatorCharPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2968,12 +2828,8 @@ class UnionDiscriminatorWCharPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3050,12 +2906,8 @@ class UnionDiscriminatorEnumPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3132,12 +2984,8 @@ class UnionDiscriminatorEnumLabelPubSubType : public eprosima::fastdds::dds::Top #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3214,12 +3062,8 @@ class UnionDiscriminatorAliasPubSubType : public eprosima::fastdds::dds::TopicDa #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3296,12 +3140,8 @@ class UnionSeveralFieldsPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3378,12 +3218,8 @@ class UnionSeveralFieldsWithDefaultPubSubType : public eprosima::fastdds::dds::T #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3460,12 +3296,8 @@ class UnionShortExtraMemberPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3542,12 +3374,8 @@ class UnionFixedStringAliasPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType1CdrAux.hpp b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType1CdrAux.hpp index eb215375e2e..1ee17ebf4de 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType1CdrAux.hpp +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType1CdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const Type1& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType1CdrAux.ipp b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType1CdrAux.ipp index c8b961350f0..7ed1b4df0f4 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType1CdrAux.ipp +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType1CdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_Type1_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type1* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type1_cdr_plain(data_representation) && + sizeof(Type1) == Type1_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type1)); + + scdr.jump((array_size -1) * sizeof(Type1)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type1* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type1_cdr_plain(data_representation) && + sizeof(Type1) == Type1_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type1)); + + scdr.jump((array_size - 1) * sizeof(Type1)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type1& data) diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType1PubSubTypes.cxx b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType1PubSubTypes.cxx index 6181af24093..ecc02da9547 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType1PubSubTypes.cxx +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType1PubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_Type1_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + Type1PubSubType::Type1PubSubType() { set_name("Type1"); @@ -149,6 +158,17 @@ void Type1PubSubType::delete_data( delete(reinterpret_cast<::Type1*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type1PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type1PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType1PubSubTypes.hpp b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType1PubSubTypes.hpp index b21e74b307d..6d0a3fe2089 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType1PubSubTypes.hpp +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType1PubSubTypes.hpp @@ -93,12 +93,8 @@ class Type1PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType2CdrAux.hpp b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType2CdrAux.hpp index 5c9ec63882f..7ceb96a4cef 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType2CdrAux.hpp +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType2CdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const Type2& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType2CdrAux.ipp b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType2CdrAux.ipp index 74ef8e7d78c..c4ac054e807 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType2CdrAux.ipp +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType2CdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_Type2_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type2* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type2_cdr_plain(data_representation) && + sizeof(Type2) == Type2_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type2)); + + scdr.jump((array_size -1) * sizeof(Type2)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type2* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type2_cdr_plain(data_representation) && + sizeof(Type2) == Type2_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type2)); + + scdr.jump((array_size - 1) * sizeof(Type2)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type2& data) diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType2PubSubTypes.cxx b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType2PubSubTypes.cxx index ef62ec943c6..b9b74ed6fc6 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType2PubSubTypes.cxx +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType2PubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_Type2_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + Type2PubSubType::Type2PubSubType() { set_name("Type2"); @@ -149,6 +158,17 @@ void Type2PubSubType::delete_data( delete(reinterpret_cast<::Type2*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type2PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type2PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType2PubSubTypes.hpp b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType2PubSubTypes.hpp index 5878ceda27d..f31ec34e736 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType2PubSubTypes.hpp +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType2PubSubTypes.hpp @@ -93,12 +93,8 @@ class Type2PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType3CdrAux.hpp b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType3CdrAux.hpp index 5c20aa357c8..742312f993c 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType3CdrAux.hpp +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType3CdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const Type3& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType3CdrAux.ipp b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType3CdrAux.ipp index feac95ba677..b481ce4ac40 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType3CdrAux.ipp +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType3CdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_Type3_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type3* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type3_cdr_plain(data_representation) && + sizeof(Type3) == Type3_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type3)); + + scdr.jump((array_size -1) * sizeof(Type3)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type3* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type3_cdr_plain(data_representation) && + sizeof(Type3) == Type3_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type3)); + + scdr.jump((array_size - 1) * sizeof(Type3)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type3& data) diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType3PubSubTypes.cxx b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType3PubSubTypes.cxx index 7f5174ff631..4fc35a597fc 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType3PubSubTypes.cxx +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType3PubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_Type3_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + Type3PubSubType::Type3PubSubType() { set_name("Type3"); @@ -149,6 +158,17 @@ void Type3PubSubType::delete_data( delete(reinterpret_cast<::Type3*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type3PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type3PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType3PubSubTypes.hpp b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType3PubSubTypes.hpp index 57234728d1a..08150dc55f2 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType3PubSubTypes.hpp +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsType3PubSubTypes.hpp @@ -93,12 +93,8 @@ class Type3PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeBigCdrAux.hpp b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeBigCdrAux.hpp index d7035754463..07b80e6f748 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeBigCdrAux.hpp +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeBigCdrAux.hpp @@ -331,395 +331,493 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type4& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type5& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type6& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type7& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type8& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type9& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type10& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type11& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type12& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type13& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type14& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type15& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type16& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type17& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type18& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type19& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type20& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type21& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type22& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type23& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type24& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type25& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type26& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type27& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type28& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type29& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type30& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type31& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type32& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type33& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type34& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type35& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type36& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type37& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type38& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type39& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type40& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type41& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type42& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type43& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type44& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type45& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type46& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type47& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type48& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type49& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type50& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type51& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type52& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type53& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type54& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type55& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type56& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type57& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type58& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type59& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type60& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type61& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type62& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type63& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type64& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type65& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type66& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type67& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type68& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type69& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type70& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type71& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type72& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type73& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type74& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type75& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type76& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type77& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type78& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type79& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type80& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type81& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type82& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type83& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type84& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type85& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type86& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type87& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type88& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type89& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type90& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type91& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type92& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type93& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type94& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type95& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type96& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type97& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type98& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type99& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type100& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const TypeBig& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeBigCdrAux.ipp b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeBigCdrAux.ipp index 49078d9db5e..e9a5147f12f 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeBigCdrAux.ipp +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeBigCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_Type4_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type4* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type4_cdr_plain(data_representation) && + sizeof(Type4) == Type4_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type4)); + + scdr.jump((array_size -1) * sizeof(Type4)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type4* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type4_cdr_plain(data_representation) && + sizeof(Type4) == Type4_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type4)); + + scdr.jump((array_size - 1) * sizeof(Type4)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type4& data) @@ -113,6 +196,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type5_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -155,6 +246,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type5* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type5_cdr_plain(data_representation) && + sizeof(Type5) == Type5_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type5)); + + scdr.jump((array_size -1) * sizeof(Type5)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -180,6 +309,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type5* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type5_cdr_plain(data_representation) && + sizeof(Type5) == Type5_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type5)); + + scdr.jump((array_size - 1) * sizeof(Type5)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type5& data) @@ -192,6 +357,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type6_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -234,6 +407,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type6* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type6_cdr_plain(data_representation) && + sizeof(Type6) == Type6_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type6)); + + scdr.jump((array_size -1) * sizeof(Type6)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -259,6 +470,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type6* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type6_cdr_plain(data_representation) && + sizeof(Type6) == Type6_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type6)); + + scdr.jump((array_size - 1) * sizeof(Type6)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type6& data) @@ -271,6 +518,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type7_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -313,6 +568,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type7* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type7_cdr_plain(data_representation) && + sizeof(Type7) == Type7_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type7)); + + scdr.jump((array_size -1) * sizeof(Type7)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -338,6 +631,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type7* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type7_cdr_plain(data_representation) && + sizeof(Type7) == Type7_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type7)); + + scdr.jump((array_size - 1) * sizeof(Type7)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type7& data) @@ -350,6 +679,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type8_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -392,6 +729,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type8* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type8_cdr_plain(data_representation) && + sizeof(Type8) == Type8_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type8)); + + scdr.jump((array_size -1) * sizeof(Type8)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -417,6 +792,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type8* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type8_cdr_plain(data_representation) && + sizeof(Type8) == Type8_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type8)); + + scdr.jump((array_size - 1) * sizeof(Type8)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type8& data) @@ -429,6 +840,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type9_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -471,6 +890,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type9* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type9_cdr_plain(data_representation) && + sizeof(Type9) == Type9_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type9)); + + scdr.jump((array_size -1) * sizeof(Type9)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -496,6 +953,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type9* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type9_cdr_plain(data_representation) && + sizeof(Type9) == Type9_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type9)); + + scdr.jump((array_size - 1) * sizeof(Type9)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type9& data) @@ -508,6 +1001,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type10_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -550,6 +1051,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type10* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type10_cdr_plain(data_representation) && + sizeof(Type10) == Type10_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type10)); + + scdr.jump((array_size -1) * sizeof(Type10)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -575,6 +1114,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type10* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type10_cdr_plain(data_representation) && + sizeof(Type10) == Type10_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type10)); + + scdr.jump((array_size - 1) * sizeof(Type10)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type10& data) @@ -587,6 +1162,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type11_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -629,6 +1212,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type11* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type11_cdr_plain(data_representation) && + sizeof(Type11) == Type11_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type11)); + + scdr.jump((array_size -1) * sizeof(Type11)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -654,6 +1275,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type11* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type11_cdr_plain(data_representation) && + sizeof(Type11) == Type11_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type11)); + + scdr.jump((array_size - 1) * sizeof(Type11)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type11& data) @@ -666,6 +1323,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type12_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -708,6 +1373,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type12* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type12_cdr_plain(data_representation) && + sizeof(Type12) == Type12_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type12)); + + scdr.jump((array_size -1) * sizeof(Type12)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -733,6 +1436,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type12* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type12_cdr_plain(data_representation) && + sizeof(Type12) == Type12_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type12)); + + scdr.jump((array_size - 1) * sizeof(Type12)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type12& data) @@ -745,6 +1484,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type13_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -787,6 +1534,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type13* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type13_cdr_plain(data_representation) && + sizeof(Type13) == Type13_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type13)); + + scdr.jump((array_size -1) * sizeof(Type13)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -812,6 +1597,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type13* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type13_cdr_plain(data_representation) && + sizeof(Type13) == Type13_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type13)); + + scdr.jump((array_size - 1) * sizeof(Type13)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type13& data) @@ -824,6 +1645,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type14_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -866,6 +1695,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type14* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type14_cdr_plain(data_representation) && + sizeof(Type14) == Type14_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type14)); + + scdr.jump((array_size -1) * sizeof(Type14)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -891,6 +1758,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type14* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type14_cdr_plain(data_representation) && + sizeof(Type14) == Type14_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type14)); + + scdr.jump((array_size - 1) * sizeof(Type14)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type14& data) @@ -903,6 +1806,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type15_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -945,6 +1856,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type15* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type15_cdr_plain(data_representation) && + sizeof(Type15) == Type15_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type15)); + + scdr.jump((array_size -1) * sizeof(Type15)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -970,6 +1919,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type15* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type15_cdr_plain(data_representation) && + sizeof(Type15) == Type15_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type15)); + + scdr.jump((array_size - 1) * sizeof(Type15)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type15& data) @@ -982,6 +1967,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type16_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1024,6 +2017,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type16* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type16_cdr_plain(data_representation) && + sizeof(Type16) == Type16_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type16)); + + scdr.jump((array_size -1) * sizeof(Type16)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1049,6 +2080,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type16* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type16_cdr_plain(data_representation) && + sizeof(Type16) == Type16_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type16)); + + scdr.jump((array_size - 1) * sizeof(Type16)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type16& data) @@ -1061,6 +2128,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type17_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1103,6 +2178,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type17* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type17_cdr_plain(data_representation) && + sizeof(Type17) == Type17_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type17)); + + scdr.jump((array_size -1) * sizeof(Type17)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1128,6 +2241,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type17* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type17_cdr_plain(data_representation) && + sizeof(Type17) == Type17_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type17)); + + scdr.jump((array_size - 1) * sizeof(Type17)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type17& data) @@ -1140,6 +2289,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type18_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1182,6 +2339,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type18* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type18_cdr_plain(data_representation) && + sizeof(Type18) == Type18_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type18)); + + scdr.jump((array_size -1) * sizeof(Type18)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1207,6 +2402,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type18* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type18_cdr_plain(data_representation) && + sizeof(Type18) == Type18_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type18)); + + scdr.jump((array_size - 1) * sizeof(Type18)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type18& data) @@ -1219,6 +2450,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type19_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1261,6 +2500,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type19* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type19_cdr_plain(data_representation) && + sizeof(Type19) == Type19_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type19)); + + scdr.jump((array_size -1) * sizeof(Type19)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1286,6 +2563,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type19* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type19_cdr_plain(data_representation) && + sizeof(Type19) == Type19_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type19)); + + scdr.jump((array_size - 1) * sizeof(Type19)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type19& data) @@ -1298,6 +2611,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type20_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1340,6 +2661,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type20* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type20_cdr_plain(data_representation) && + sizeof(Type20) == Type20_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type20)); + + scdr.jump((array_size -1) * sizeof(Type20)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1365,6 +2724,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type20* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type20_cdr_plain(data_representation) && + sizeof(Type20) == Type20_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type20)); + + scdr.jump((array_size - 1) * sizeof(Type20)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type20& data) @@ -1377,6 +2772,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type21_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1419,6 +2822,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type21* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type21_cdr_plain(data_representation) && + sizeof(Type21) == Type21_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type21)); + + scdr.jump((array_size -1) * sizeof(Type21)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1444,6 +2885,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type21* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type21_cdr_plain(data_representation) && + sizeof(Type21) == Type21_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type21)); + + scdr.jump((array_size - 1) * sizeof(Type21)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type21& data) @@ -1456,6 +2933,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type22_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1498,6 +2983,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type22* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type22_cdr_plain(data_representation) && + sizeof(Type22) == Type22_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type22)); + + scdr.jump((array_size -1) * sizeof(Type22)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1523,6 +3046,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type22* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type22_cdr_plain(data_representation) && + sizeof(Type22) == Type22_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type22)); + + scdr.jump((array_size - 1) * sizeof(Type22)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type22& data) @@ -1535,6 +3094,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type23_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1577,6 +3144,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type23* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type23_cdr_plain(data_representation) && + sizeof(Type23) == Type23_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type23)); + + scdr.jump((array_size -1) * sizeof(Type23)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1602,6 +3207,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type23* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type23_cdr_plain(data_representation) && + sizeof(Type23) == Type23_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type23)); + + scdr.jump((array_size - 1) * sizeof(Type23)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type23& data) @@ -1614,6 +3255,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type24_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1656,6 +3305,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type24* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type24_cdr_plain(data_representation) && + sizeof(Type24) == Type24_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type24)); + + scdr.jump((array_size -1) * sizeof(Type24)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1681,6 +3368,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type24* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type24_cdr_plain(data_representation) && + sizeof(Type24) == Type24_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type24)); + + scdr.jump((array_size - 1) * sizeof(Type24)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type24& data) @@ -1693,6 +3416,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type25_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1735,6 +3466,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type25* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type25_cdr_plain(data_representation) && + sizeof(Type25) == Type25_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type25)); + + scdr.jump((array_size -1) * sizeof(Type25)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1760,6 +3529,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type25* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type25_cdr_plain(data_representation) && + sizeof(Type25) == Type25_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type25)); + + scdr.jump((array_size - 1) * sizeof(Type25)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type25& data) @@ -1772,6 +3577,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type26_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1814,6 +3627,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type26* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type26_cdr_plain(data_representation) && + sizeof(Type26) == Type26_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type26)); + + scdr.jump((array_size -1) * sizeof(Type26)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1839,6 +3690,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type26* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type26_cdr_plain(data_representation) && + sizeof(Type26) == Type26_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type26)); + + scdr.jump((array_size - 1) * sizeof(Type26)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type26& data) @@ -1851,6 +3738,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type27_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1893,6 +3788,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type27* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type27_cdr_plain(data_representation) && + sizeof(Type27) == Type27_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type27)); + + scdr.jump((array_size -1) * sizeof(Type27)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1918,6 +3851,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type27* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type27_cdr_plain(data_representation) && + sizeof(Type27) == Type27_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type27)); + + scdr.jump((array_size - 1) * sizeof(Type27)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type27& data) @@ -1930,6 +3899,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type28_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -1972,6 +3949,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type28* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type28_cdr_plain(data_representation) && + sizeof(Type28) == Type28_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type28)); + + scdr.jump((array_size -1) * sizeof(Type28)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1997,6 +4012,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type28* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type28_cdr_plain(data_representation) && + sizeof(Type28) == Type28_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type28)); + + scdr.jump((array_size - 1) * sizeof(Type28)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type28& data) @@ -2009,6 +4060,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type29_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2051,6 +4110,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type29* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type29_cdr_plain(data_representation) && + sizeof(Type29) == Type29_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type29)); + + scdr.jump((array_size -1) * sizeof(Type29)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2076,6 +4173,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type29* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type29_cdr_plain(data_representation) && + sizeof(Type29) == Type29_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type29)); + + scdr.jump((array_size - 1) * sizeof(Type29)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type29& data) @@ -2088,6 +4221,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type30_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2130,6 +4271,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type30* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type30_cdr_plain(data_representation) && + sizeof(Type30) == Type30_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type30)); + + scdr.jump((array_size -1) * sizeof(Type30)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2155,6 +4334,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type30* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type30_cdr_plain(data_representation) && + sizeof(Type30) == Type30_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type30)); + + scdr.jump((array_size - 1) * sizeof(Type30)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type30& data) @@ -2167,6 +4382,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type31_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2209,6 +4432,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type31* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type31_cdr_plain(data_representation) && + sizeof(Type31) == Type31_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type31)); + + scdr.jump((array_size -1) * sizeof(Type31)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2234,6 +4495,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type31* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type31_cdr_plain(data_representation) && + sizeof(Type31) == Type31_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type31)); + + scdr.jump((array_size - 1) * sizeof(Type31)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type31& data) @@ -2246,6 +4543,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type32_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2288,6 +4593,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type32* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type32_cdr_plain(data_representation) && + sizeof(Type32) == Type32_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type32)); + + scdr.jump((array_size -1) * sizeof(Type32)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2313,6 +4656,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type32* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type32_cdr_plain(data_representation) && + sizeof(Type32) == Type32_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type32)); + + scdr.jump((array_size - 1) * sizeof(Type32)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type32& data) @@ -2325,6 +4704,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type33_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2367,6 +4754,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type33* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type33_cdr_plain(data_representation) && + sizeof(Type33) == Type33_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type33)); + + scdr.jump((array_size -1) * sizeof(Type33)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2392,6 +4817,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type33* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type33_cdr_plain(data_representation) && + sizeof(Type33) == Type33_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type33)); + + scdr.jump((array_size - 1) * sizeof(Type33)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type33& data) @@ -2404,6 +4865,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type34_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2446,6 +4915,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type34* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type34_cdr_plain(data_representation) && + sizeof(Type34) == Type34_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type34)); + + scdr.jump((array_size -1) * sizeof(Type34)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2471,6 +4978,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type34* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type34_cdr_plain(data_representation) && + sizeof(Type34) == Type34_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type34)); + + scdr.jump((array_size - 1) * sizeof(Type34)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type34& data) @@ -2483,6 +5026,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type35_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2525,6 +5076,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type35* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type35_cdr_plain(data_representation) && + sizeof(Type35) == Type35_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type35)); + + scdr.jump((array_size -1) * sizeof(Type35)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2550,6 +5139,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type35* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type35_cdr_plain(data_representation) && + sizeof(Type35) == Type35_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type35)); + + scdr.jump((array_size - 1) * sizeof(Type35)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type35& data) @@ -2562,6 +5187,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type36_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2604,6 +5237,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type36* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type36_cdr_plain(data_representation) && + sizeof(Type36) == Type36_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type36)); + + scdr.jump((array_size -1) * sizeof(Type36)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2629,6 +5300,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type36* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type36_cdr_plain(data_representation) && + sizeof(Type36) == Type36_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type36)); + + scdr.jump((array_size - 1) * sizeof(Type36)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type36& data) @@ -2641,6 +5348,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type37_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2683,6 +5398,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type37* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type37_cdr_plain(data_representation) && + sizeof(Type37) == Type37_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type37)); + + scdr.jump((array_size -1) * sizeof(Type37)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2708,6 +5461,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type37* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type37_cdr_plain(data_representation) && + sizeof(Type37) == Type37_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type37)); + + scdr.jump((array_size - 1) * sizeof(Type37)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type37& data) @@ -2720,6 +5509,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type38_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2762,6 +5559,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type38* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type38_cdr_plain(data_representation) && + sizeof(Type38) == Type38_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type38)); + + scdr.jump((array_size -1) * sizeof(Type38)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2787,6 +5622,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type38* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type38_cdr_plain(data_representation) && + sizeof(Type38) == Type38_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type38)); + + scdr.jump((array_size - 1) * sizeof(Type38)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type38& data) @@ -2799,6 +5670,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type39_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2841,6 +5720,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type39* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type39_cdr_plain(data_representation) && + sizeof(Type39) == Type39_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type39)); + + scdr.jump((array_size -1) * sizeof(Type39)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2866,6 +5783,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type39* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type39_cdr_plain(data_representation) && + sizeof(Type39) == Type39_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type39)); + + scdr.jump((array_size - 1) * sizeof(Type39)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type39& data) @@ -2878,6 +5831,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type40_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2920,6 +5881,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type40* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type40_cdr_plain(data_representation) && + sizeof(Type40) == Type40_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type40)); + + scdr.jump((array_size -1) * sizeof(Type40)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -2945,6 +5944,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type40* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type40_cdr_plain(data_representation) && + sizeof(Type40) == Type40_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type40)); + + scdr.jump((array_size - 1) * sizeof(Type40)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type40& data) @@ -2957,6 +5992,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type41_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -2999,6 +6042,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type41* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type41_cdr_plain(data_representation) && + sizeof(Type41) == Type41_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type41)); + + scdr.jump((array_size -1) * sizeof(Type41)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3024,6 +6105,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type41* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type41_cdr_plain(data_representation) && + sizeof(Type41) == Type41_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type41)); + + scdr.jump((array_size - 1) * sizeof(Type41)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type41& data) @@ -3036,6 +6153,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type42_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3078,6 +6203,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type42* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type42_cdr_plain(data_representation) && + sizeof(Type42) == Type42_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type42)); + + scdr.jump((array_size -1) * sizeof(Type42)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3103,6 +6266,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type42* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type42_cdr_plain(data_representation) && + sizeof(Type42) == Type42_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type42)); + + scdr.jump((array_size - 1) * sizeof(Type42)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type42& data) @@ -3115,6 +6314,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type43_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3157,6 +6364,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type43* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type43_cdr_plain(data_representation) && + sizeof(Type43) == Type43_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type43)); + + scdr.jump((array_size -1) * sizeof(Type43)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3182,6 +6427,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type43* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type43_cdr_plain(data_representation) && + sizeof(Type43) == Type43_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type43)); + + scdr.jump((array_size - 1) * sizeof(Type43)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type43& data) @@ -3194,6 +6475,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type44_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3236,6 +6525,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type44* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type44_cdr_plain(data_representation) && + sizeof(Type44) == Type44_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type44)); + + scdr.jump((array_size -1) * sizeof(Type44)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3261,6 +6588,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type44* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type44_cdr_plain(data_representation) && + sizeof(Type44) == Type44_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type44)); + + scdr.jump((array_size - 1) * sizeof(Type44)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type44& data) @@ -3273,6 +6636,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type45_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3315,6 +6686,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type45* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type45_cdr_plain(data_representation) && + sizeof(Type45) == Type45_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type45)); + + scdr.jump((array_size -1) * sizeof(Type45)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3340,6 +6749,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type45* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type45_cdr_plain(data_representation) && + sizeof(Type45) == Type45_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type45)); + + scdr.jump((array_size - 1) * sizeof(Type45)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type45& data) @@ -3352,6 +6797,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type46_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3394,6 +6847,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type46* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type46_cdr_plain(data_representation) && + sizeof(Type46) == Type46_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type46)); + + scdr.jump((array_size -1) * sizeof(Type46)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3419,6 +6910,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type46* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type46_cdr_plain(data_representation) && + sizeof(Type46) == Type46_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type46)); + + scdr.jump((array_size - 1) * sizeof(Type46)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type46& data) @@ -3431,6 +6958,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type47_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3473,6 +7008,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type47* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type47_cdr_plain(data_representation) && + sizeof(Type47) == Type47_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type47)); + + scdr.jump((array_size -1) * sizeof(Type47)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3498,6 +7071,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type47* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type47_cdr_plain(data_representation) && + sizeof(Type47) == Type47_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type47)); + + scdr.jump((array_size - 1) * sizeof(Type47)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type47& data) @@ -3510,6 +7119,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type48_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3552,6 +7169,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type48* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type48_cdr_plain(data_representation) && + sizeof(Type48) == Type48_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type48)); + + scdr.jump((array_size -1) * sizeof(Type48)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3577,6 +7232,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type48* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type48_cdr_plain(data_representation) && + sizeof(Type48) == Type48_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type48)); + + scdr.jump((array_size - 1) * sizeof(Type48)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type48& data) @@ -3589,6 +7280,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type49_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3631,6 +7330,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type49* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type49_cdr_plain(data_representation) && + sizeof(Type49) == Type49_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type49)); + + scdr.jump((array_size -1) * sizeof(Type49)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3656,6 +7393,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type49* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type49_cdr_plain(data_representation) && + sizeof(Type49) == Type49_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type49)); + + scdr.jump((array_size - 1) * sizeof(Type49)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type49& data) @@ -3668,6 +7441,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type50_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3710,6 +7491,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type50* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type50_cdr_plain(data_representation) && + sizeof(Type50) == Type50_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type50)); + + scdr.jump((array_size -1) * sizeof(Type50)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3735,6 +7554,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type50* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type50_cdr_plain(data_representation) && + sizeof(Type50) == Type50_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type50)); + + scdr.jump((array_size - 1) * sizeof(Type50)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type50& data) @@ -3747,6 +7602,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type51_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3789,6 +7652,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type51* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type51_cdr_plain(data_representation) && + sizeof(Type51) == Type51_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type51)); + + scdr.jump((array_size -1) * sizeof(Type51)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3814,6 +7715,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type51* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type51_cdr_plain(data_representation) && + sizeof(Type51) == Type51_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type51)); + + scdr.jump((array_size - 1) * sizeof(Type51)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type51& data) @@ -3826,6 +7763,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type52_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3868,6 +7813,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type52* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type52_cdr_plain(data_representation) && + sizeof(Type52) == Type52_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type52)); + + scdr.jump((array_size -1) * sizeof(Type52)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3893,6 +7876,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type52* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type52_cdr_plain(data_representation) && + sizeof(Type52) == Type52_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type52)); + + scdr.jump((array_size - 1) * sizeof(Type52)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type52& data) @@ -3905,6 +7924,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type53_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -3947,6 +7974,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type53* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type53_cdr_plain(data_representation) && + sizeof(Type53) == Type53_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type53)); + + scdr.jump((array_size -1) * sizeof(Type53)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -3972,6 +8037,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type53* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type53_cdr_plain(data_representation) && + sizeof(Type53) == Type53_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type53)); + + scdr.jump((array_size - 1) * sizeof(Type53)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type53& data) @@ -3984,6 +8085,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type54_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4026,6 +8135,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type54* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type54_cdr_plain(data_representation) && + sizeof(Type54) == Type54_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type54)); + + scdr.jump((array_size -1) * sizeof(Type54)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4051,6 +8198,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type54* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type54_cdr_plain(data_representation) && + sizeof(Type54) == Type54_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type54)); + + scdr.jump((array_size - 1) * sizeof(Type54)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type54& data) @@ -4063,6 +8246,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type55_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4105,6 +8296,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type55* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type55_cdr_plain(data_representation) && + sizeof(Type55) == Type55_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type55)); + + scdr.jump((array_size -1) * sizeof(Type55)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4130,6 +8359,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type55* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type55_cdr_plain(data_representation) && + sizeof(Type55) == Type55_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type55)); + + scdr.jump((array_size - 1) * sizeof(Type55)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type55& data) @@ -4142,6 +8407,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type56_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4184,6 +8457,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type56* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type56_cdr_plain(data_representation) && + sizeof(Type56) == Type56_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type56)); + + scdr.jump((array_size -1) * sizeof(Type56)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4209,6 +8520,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type56* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type56_cdr_plain(data_representation) && + sizeof(Type56) == Type56_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type56)); + + scdr.jump((array_size - 1) * sizeof(Type56)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type56& data) @@ -4221,6 +8568,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type57_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4263,6 +8618,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type57* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type57_cdr_plain(data_representation) && + sizeof(Type57) == Type57_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type57)); + + scdr.jump((array_size -1) * sizeof(Type57)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4288,6 +8681,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type57* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type57_cdr_plain(data_representation) && + sizeof(Type57) == Type57_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type57)); + + scdr.jump((array_size - 1) * sizeof(Type57)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type57& data) @@ -4300,6 +8729,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type58_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4342,6 +8779,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type58* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type58_cdr_plain(data_representation) && + sizeof(Type58) == Type58_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type58)); + + scdr.jump((array_size -1) * sizeof(Type58)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4367,6 +8842,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type58* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type58_cdr_plain(data_representation) && + sizeof(Type58) == Type58_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type58)); + + scdr.jump((array_size - 1) * sizeof(Type58)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type58& data) @@ -4379,6 +8890,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type59_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4421,6 +8940,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type59* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type59_cdr_plain(data_representation) && + sizeof(Type59) == Type59_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type59)); + + scdr.jump((array_size -1) * sizeof(Type59)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4446,6 +9003,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type59* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type59_cdr_plain(data_representation) && + sizeof(Type59) == Type59_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type59)); + + scdr.jump((array_size - 1) * sizeof(Type59)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type59& data) @@ -4458,6 +9051,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type60_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4500,6 +9101,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type60* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type60_cdr_plain(data_representation) && + sizeof(Type60) == Type60_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type60)); + + scdr.jump((array_size -1) * sizeof(Type60)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4525,6 +9164,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type60* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type60_cdr_plain(data_representation) && + sizeof(Type60) == Type60_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type60)); + + scdr.jump((array_size - 1) * sizeof(Type60)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type60& data) @@ -4537,6 +9212,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type61_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4579,6 +9262,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type61* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type61_cdr_plain(data_representation) && + sizeof(Type61) == Type61_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type61)); + + scdr.jump((array_size -1) * sizeof(Type61)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4604,6 +9325,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type61* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type61_cdr_plain(data_representation) && + sizeof(Type61) == Type61_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type61)); + + scdr.jump((array_size - 1) * sizeof(Type61)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type61& data) @@ -4616,6 +9373,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type62_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4658,6 +9423,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type62* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type62_cdr_plain(data_representation) && + sizeof(Type62) == Type62_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type62)); + + scdr.jump((array_size -1) * sizeof(Type62)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4683,6 +9486,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type62* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type62_cdr_plain(data_representation) && + sizeof(Type62) == Type62_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type62)); + + scdr.jump((array_size - 1) * sizeof(Type62)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type62& data) @@ -4695,6 +9534,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type63_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4737,6 +9584,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type63* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type63_cdr_plain(data_representation) && + sizeof(Type63) == Type63_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type63)); + + scdr.jump((array_size -1) * sizeof(Type63)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4762,6 +9647,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type63* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type63_cdr_plain(data_representation) && + sizeof(Type63) == Type63_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type63)); + + scdr.jump((array_size - 1) * sizeof(Type63)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type63& data) @@ -4774,6 +9695,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type64_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4816,6 +9745,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type64* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type64_cdr_plain(data_representation) && + sizeof(Type64) == Type64_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type64)); + + scdr.jump((array_size -1) * sizeof(Type64)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4841,6 +9808,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type64* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type64_cdr_plain(data_representation) && + sizeof(Type64) == Type64_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type64)); + + scdr.jump((array_size - 1) * sizeof(Type64)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type64& data) @@ -4853,6 +9856,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type65_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4895,6 +9906,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type65* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type65_cdr_plain(data_representation) && + sizeof(Type65) == Type65_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type65)); + + scdr.jump((array_size -1) * sizeof(Type65)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4920,6 +9969,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type65* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type65_cdr_plain(data_representation) && + sizeof(Type65) == Type65_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type65)); + + scdr.jump((array_size - 1) * sizeof(Type65)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type65& data) @@ -4932,6 +10017,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type66_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -4974,6 +10067,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type66* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type66_cdr_plain(data_representation) && + sizeof(Type66) == Type66_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type66)); + + scdr.jump((array_size -1) * sizeof(Type66)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -4999,6 +10130,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type66* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type66_cdr_plain(data_representation) && + sizeof(Type66) == Type66_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type66)); + + scdr.jump((array_size - 1) * sizeof(Type66)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type66& data) @@ -5011,6 +10178,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type67_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5053,6 +10228,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type67* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type67_cdr_plain(data_representation) && + sizeof(Type67) == Type67_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type67)); + + scdr.jump((array_size -1) * sizeof(Type67)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5078,6 +10291,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type67* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type67_cdr_plain(data_representation) && + sizeof(Type67) == Type67_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type67)); + + scdr.jump((array_size - 1) * sizeof(Type67)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type67& data) @@ -5090,6 +10339,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type68_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5132,6 +10389,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type68* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type68_cdr_plain(data_representation) && + sizeof(Type68) == Type68_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type68)); + + scdr.jump((array_size -1) * sizeof(Type68)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5157,6 +10452,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type68* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type68_cdr_plain(data_representation) && + sizeof(Type68) == Type68_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type68)); + + scdr.jump((array_size - 1) * sizeof(Type68)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type68& data) @@ -5169,6 +10500,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type69_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5211,6 +10550,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type69* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type69_cdr_plain(data_representation) && + sizeof(Type69) == Type69_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type69)); + + scdr.jump((array_size -1) * sizeof(Type69)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5236,6 +10613,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type69* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type69_cdr_plain(data_representation) && + sizeof(Type69) == Type69_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type69)); + + scdr.jump((array_size - 1) * sizeof(Type69)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type69& data) @@ -5248,6 +10661,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type70_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5290,6 +10711,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type70* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type70_cdr_plain(data_representation) && + sizeof(Type70) == Type70_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type70)); + + scdr.jump((array_size -1) * sizeof(Type70)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5315,6 +10774,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type70* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type70_cdr_plain(data_representation) && + sizeof(Type70) == Type70_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type70)); + + scdr.jump((array_size - 1) * sizeof(Type70)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type70& data) @@ -5327,6 +10822,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type71_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5369,6 +10872,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type71* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type71_cdr_plain(data_representation) && + sizeof(Type71) == Type71_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type71)); + + scdr.jump((array_size -1) * sizeof(Type71)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5394,6 +10935,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type71* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type71_cdr_plain(data_representation) && + sizeof(Type71) == Type71_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type71)); + + scdr.jump((array_size - 1) * sizeof(Type71)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type71& data) @@ -5406,6 +10983,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type72_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5448,6 +11033,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type72* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type72_cdr_plain(data_representation) && + sizeof(Type72) == Type72_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type72)); + + scdr.jump((array_size -1) * sizeof(Type72)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5473,6 +11096,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type72* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type72_cdr_plain(data_representation) && + sizeof(Type72) == Type72_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type72)); + + scdr.jump((array_size - 1) * sizeof(Type72)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type72& data) @@ -5485,6 +11144,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type73_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5527,6 +11194,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type73* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type73_cdr_plain(data_representation) && + sizeof(Type73) == Type73_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type73)); + + scdr.jump((array_size -1) * sizeof(Type73)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5552,6 +11257,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type73* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type73_cdr_plain(data_representation) && + sizeof(Type73) == Type73_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type73)); + + scdr.jump((array_size - 1) * sizeof(Type73)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type73& data) @@ -5564,6 +11305,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type74_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5606,6 +11355,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type74* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type74_cdr_plain(data_representation) && + sizeof(Type74) == Type74_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type74)); + + scdr.jump((array_size -1) * sizeof(Type74)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5631,6 +11418,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type74* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type74_cdr_plain(data_representation) && + sizeof(Type74) == Type74_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type74)); + + scdr.jump((array_size - 1) * sizeof(Type74)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type74& data) @@ -5643,6 +11466,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type75_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5685,6 +11516,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type75* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type75_cdr_plain(data_representation) && + sizeof(Type75) == Type75_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type75)); + + scdr.jump((array_size -1) * sizeof(Type75)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5710,6 +11579,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type75* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type75_cdr_plain(data_representation) && + sizeof(Type75) == Type75_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type75)); + + scdr.jump((array_size - 1) * sizeof(Type75)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type75& data) @@ -5722,6 +11627,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type76_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5764,6 +11677,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type76* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type76_cdr_plain(data_representation) && + sizeof(Type76) == Type76_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type76)); + + scdr.jump((array_size -1) * sizeof(Type76)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5789,6 +11740,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type76* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type76_cdr_plain(data_representation) && + sizeof(Type76) == Type76_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type76)); + + scdr.jump((array_size - 1) * sizeof(Type76)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type76& data) @@ -5801,6 +11788,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type77_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5843,6 +11838,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type77* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type77_cdr_plain(data_representation) && + sizeof(Type77) == Type77_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type77)); + + scdr.jump((array_size -1) * sizeof(Type77)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5868,6 +11901,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type77* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type77_cdr_plain(data_representation) && + sizeof(Type77) == Type77_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type77)); + + scdr.jump((array_size - 1) * sizeof(Type77)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type77& data) @@ -5880,6 +11949,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type78_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -5922,6 +11999,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type78* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type78_cdr_plain(data_representation) && + sizeof(Type78) == Type78_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type78)); + + scdr.jump((array_size -1) * sizeof(Type78)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -5947,6 +12062,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type78* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type78_cdr_plain(data_representation) && + sizeof(Type78) == Type78_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type78)); + + scdr.jump((array_size - 1) * sizeof(Type78)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type78& data) @@ -5959,6 +12110,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type79_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6001,6 +12160,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type79* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type79_cdr_plain(data_representation) && + sizeof(Type79) == Type79_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type79)); + + scdr.jump((array_size -1) * sizeof(Type79)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6026,6 +12223,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type79* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type79_cdr_plain(data_representation) && + sizeof(Type79) == Type79_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type79)); + + scdr.jump((array_size - 1) * sizeof(Type79)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type79& data) @@ -6038,6 +12271,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type80_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6080,6 +12321,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type80* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type80_cdr_plain(data_representation) && + sizeof(Type80) == Type80_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type80)); + + scdr.jump((array_size -1) * sizeof(Type80)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6105,6 +12384,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type80* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type80_cdr_plain(data_representation) && + sizeof(Type80) == Type80_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type80)); + + scdr.jump((array_size - 1) * sizeof(Type80)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type80& data) @@ -6117,6 +12432,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type81_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6159,6 +12482,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type81* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type81_cdr_plain(data_representation) && + sizeof(Type81) == Type81_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type81)); + + scdr.jump((array_size -1) * sizeof(Type81)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6184,6 +12545,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type81* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type81_cdr_plain(data_representation) && + sizeof(Type81) == Type81_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type81)); + + scdr.jump((array_size - 1) * sizeof(Type81)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type81& data) @@ -6196,6 +12593,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type82_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6238,6 +12643,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type82* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type82_cdr_plain(data_representation) && + sizeof(Type82) == Type82_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type82)); + + scdr.jump((array_size -1) * sizeof(Type82)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6263,6 +12706,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type82* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type82_cdr_plain(data_representation) && + sizeof(Type82) == Type82_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type82)); + + scdr.jump((array_size - 1) * sizeof(Type82)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type82& data) @@ -6275,6 +12754,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type83_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6317,6 +12804,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type83* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type83_cdr_plain(data_representation) && + sizeof(Type83) == Type83_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type83)); + + scdr.jump((array_size -1) * sizeof(Type83)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6342,6 +12867,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type83* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type83_cdr_plain(data_representation) && + sizeof(Type83) == Type83_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type83)); + + scdr.jump((array_size - 1) * sizeof(Type83)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type83& data) @@ -6354,6 +12915,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type84_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6396,6 +12965,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type84* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type84_cdr_plain(data_representation) && + sizeof(Type84) == Type84_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type84)); + + scdr.jump((array_size -1) * sizeof(Type84)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6421,6 +13028,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type84* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type84_cdr_plain(data_representation) && + sizeof(Type84) == Type84_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type84)); + + scdr.jump((array_size - 1) * sizeof(Type84)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type84& data) @@ -6433,6 +13076,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type85_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6475,6 +13126,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type85* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type85_cdr_plain(data_representation) && + sizeof(Type85) == Type85_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type85)); + + scdr.jump((array_size -1) * sizeof(Type85)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6500,6 +13189,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type85* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type85_cdr_plain(data_representation) && + sizeof(Type85) == Type85_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type85)); + + scdr.jump((array_size - 1) * sizeof(Type85)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type85& data) @@ -6512,6 +13237,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type86_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6554,6 +13287,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type86* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type86_cdr_plain(data_representation) && + sizeof(Type86) == Type86_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type86)); + + scdr.jump((array_size -1) * sizeof(Type86)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6579,6 +13350,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type86* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type86_cdr_plain(data_representation) && + sizeof(Type86) == Type86_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type86)); + + scdr.jump((array_size - 1) * sizeof(Type86)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type86& data) @@ -6591,6 +13398,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type87_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6633,6 +13448,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type87* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type87_cdr_plain(data_representation) && + sizeof(Type87) == Type87_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type87)); + + scdr.jump((array_size -1) * sizeof(Type87)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6658,6 +13511,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type87* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type87_cdr_plain(data_representation) && + sizeof(Type87) == Type87_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type87)); + + scdr.jump((array_size - 1) * sizeof(Type87)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type87& data) @@ -6670,6 +13559,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type88_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6712,6 +13609,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type88* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type88_cdr_plain(data_representation) && + sizeof(Type88) == Type88_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type88)); + + scdr.jump((array_size -1) * sizeof(Type88)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6737,6 +13672,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type88* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type88_cdr_plain(data_representation) && + sizeof(Type88) == Type88_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type88)); + + scdr.jump((array_size - 1) * sizeof(Type88)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type88& data) @@ -6749,6 +13720,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type89_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6791,6 +13770,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type89* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type89_cdr_plain(data_representation) && + sizeof(Type89) == Type89_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type89)); + + scdr.jump((array_size -1) * sizeof(Type89)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6816,6 +13833,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type89* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type89_cdr_plain(data_representation) && + sizeof(Type89) == Type89_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type89)); + + scdr.jump((array_size - 1) * sizeof(Type89)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type89& data) @@ -6828,6 +13881,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type90_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6870,6 +13931,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type90* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type90_cdr_plain(data_representation) && + sizeof(Type90) == Type90_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type90)); + + scdr.jump((array_size -1) * sizeof(Type90)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6895,6 +13994,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type90* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type90_cdr_plain(data_representation) && + sizeof(Type90) == Type90_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type90)); + + scdr.jump((array_size - 1) * sizeof(Type90)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type90& data) @@ -6907,6 +14042,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type91_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -6949,6 +14092,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type91* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type91_cdr_plain(data_representation) && + sizeof(Type91) == Type91_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type91)); + + scdr.jump((array_size -1) * sizeof(Type91)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -6974,6 +14155,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type91* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type91_cdr_plain(data_representation) && + sizeof(Type91) == Type91_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type91)); + + scdr.jump((array_size - 1) * sizeof(Type91)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type91& data) @@ -6986,6 +14203,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type92_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7028,6 +14253,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type92* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type92_cdr_plain(data_representation) && + sizeof(Type92) == Type92_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type92)); + + scdr.jump((array_size -1) * sizeof(Type92)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7053,6 +14316,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type92* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type92_cdr_plain(data_representation) && + sizeof(Type92) == Type92_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type92)); + + scdr.jump((array_size - 1) * sizeof(Type92)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type92& data) @@ -7065,6 +14364,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type93_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7107,6 +14414,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type93* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type93_cdr_plain(data_representation) && + sizeof(Type93) == Type93_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type93)); + + scdr.jump((array_size -1) * sizeof(Type93)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7132,6 +14477,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type93* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type93_cdr_plain(data_representation) && + sizeof(Type93) == Type93_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type93)); + + scdr.jump((array_size - 1) * sizeof(Type93)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type93& data) @@ -7144,6 +14525,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type94_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7186,6 +14575,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type94* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type94_cdr_plain(data_representation) && + sizeof(Type94) == Type94_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type94)); + + scdr.jump((array_size -1) * sizeof(Type94)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7211,6 +14638,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type94* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type94_cdr_plain(data_representation) && + sizeof(Type94) == Type94_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type94)); + + scdr.jump((array_size - 1) * sizeof(Type94)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type94& data) @@ -7223,6 +14686,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type95_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7265,6 +14736,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type95* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type95_cdr_plain(data_representation) && + sizeof(Type95) == Type95_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type95)); + + scdr.jump((array_size -1) * sizeof(Type95)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7290,6 +14799,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type95* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type95_cdr_plain(data_representation) && + sizeof(Type95) == Type95_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type95)); + + scdr.jump((array_size - 1) * sizeof(Type95)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type95& data) @@ -7302,6 +14847,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type96_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7344,6 +14897,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type96* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type96_cdr_plain(data_representation) && + sizeof(Type96) == Type96_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type96)); + + scdr.jump((array_size -1) * sizeof(Type96)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7369,6 +14960,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type96* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type96_cdr_plain(data_representation) && + sizeof(Type96) == Type96_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type96)); + + scdr.jump((array_size - 1) * sizeof(Type96)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type96& data) @@ -7381,6 +15008,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type97_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7423,6 +15058,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type97* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type97_cdr_plain(data_representation) && + sizeof(Type97) == Type97_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type97)); + + scdr.jump((array_size -1) * sizeof(Type97)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7448,6 +15121,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type97* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type97_cdr_plain(data_representation) && + sizeof(Type97) == Type97_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type97)); + + scdr.jump((array_size - 1) * sizeof(Type97)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type97& data) @@ -7460,6 +15169,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type98_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7502,6 +15219,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type98* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type98_cdr_plain(data_representation) && + sizeof(Type98) == Type98_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type98)); + + scdr.jump((array_size -1) * sizeof(Type98)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7527,6 +15282,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type98* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type98_cdr_plain(data_representation) && + sizeof(Type98) == Type98_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type98)); + + scdr.jump((array_size - 1) * sizeof(Type98)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type98& data) @@ -7539,6 +15330,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type99_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7581,6 +15380,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type99* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type99_cdr_plain(data_representation) && + sizeof(Type99) == Type99_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type99)); + + scdr.jump((array_size -1) * sizeof(Type99)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7606,6 +15443,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type99* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type99_cdr_plain(data_representation) && + sizeof(Type99) == Type99_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type99)); + + scdr.jump((array_size - 1) * sizeof(Type99)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type99& data) @@ -7618,6 +15491,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_Type100_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -7660,6 +15541,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const Type100* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type100_cdr_plain(data_representation) && + sizeof(Type100) == Type100_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(Type100)); + + scdr.jump((array_size -1) * sizeof(Type100)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -7685,6 +15604,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + Type100* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_Type100_cdr_plain(data_representation) && + sizeof(Type100) == Type100_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(Type100)); + + scdr.jump((array_size - 1) * sizeof(Type100)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const Type100& data) @@ -7697,6 +15652,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_TypeBig_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -8139,6 +16102,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const TypeBig* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_TypeBig_cdr_plain(data_representation) && + sizeof(TypeBig) == TypeBig_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(TypeBig)); + + scdr.jump((array_size -1) * sizeof(TypeBig)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -8564,6 +16565,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + TypeBig* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_TypeBig_cdr_plain(data_representation) && + sizeof(TypeBig) == TypeBig_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(TypeBig)); + + scdr.jump((array_size - 1) * sizeof(TypeBig)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const TypeBig& data) diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeBigPubSubTypes.cxx b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeBigPubSubTypes.cxx index 8aa6da86dfc..f5fc533dbcd 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeBigPubSubTypes.cxx +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeBigPubSubTypes.cxx @@ -31,6 +31,309 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_Type30_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type35_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type36_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type100_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type37_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type38_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type31_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type32_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type33_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type34_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type28_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type29_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_TypeBig_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type24_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type25_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type26_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type27_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type20_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type21_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type22_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type23_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type17_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type18_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type19_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type50_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type51_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type52_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type57_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type58_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type59_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type53_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type54_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type55_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type56_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type40_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type41_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type46_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type47_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type48_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type49_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type42_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type43_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type44_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type45_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type39_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type71_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type72_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type73_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type74_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type70_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type79_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type75_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type76_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type77_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type78_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type60_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type61_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type62_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type63_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type68_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type69_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type64_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type65_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type66_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type67_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_Type93_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_Type94_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type4_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type95_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type5_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type96_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type6_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type7_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type90_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type8_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type91_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type9_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type92_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type13_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type14_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type15_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type16_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type97_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type10_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type98_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type11_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type99_cdr_plain( + DataRepresentationId_t data_representation); + + +bool is_Type12_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type82_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type83_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type84_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type85_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type80_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type81_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type86_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type87_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type88_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_Type89_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + Type4PubSubType::Type4PubSubType() { set_name("Type4"); @@ -149,6 +452,17 @@ void Type4PubSubType::delete_data( delete(reinterpret_cast<::Type4*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type4PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type4PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +645,17 @@ void Type5PubSubType::delete_data( delete(reinterpret_cast<::Type5*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type5PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type5PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +838,17 @@ void Type6PubSubType::delete_data( delete(reinterpret_cast<::Type6*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type6PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type6PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -695,6 +1031,17 @@ void Type7PubSubType::delete_data( delete(reinterpret_cast<::Type7*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type7PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type7PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -877,6 +1224,17 @@ void Type8PubSubType::delete_data( delete(reinterpret_cast<::Type8*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type8PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type8PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1059,6 +1417,17 @@ void Type9PubSubType::delete_data( delete(reinterpret_cast<::Type9*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type9PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type9PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1241,6 +1610,17 @@ void Type10PubSubType::delete_data( delete(reinterpret_cast<::Type10*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type10PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type10PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1423,6 +1803,17 @@ void Type11PubSubType::delete_data( delete(reinterpret_cast<::Type11*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type11PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type11PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1605,6 +1996,17 @@ void Type12PubSubType::delete_data( delete(reinterpret_cast<::Type12*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type12PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type12PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1787,6 +2189,17 @@ void Type13PubSubType::delete_data( delete(reinterpret_cast<::Type13*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type13PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type13PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -1969,6 +2382,17 @@ void Type14PubSubType::delete_data( delete(reinterpret_cast<::Type14*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type14PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type14PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2151,6 +2575,17 @@ void Type15PubSubType::delete_data( delete(reinterpret_cast<::Type15*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type15PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type15PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2333,6 +2768,17 @@ void Type16PubSubType::delete_data( delete(reinterpret_cast<::Type16*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type16PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type16PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2515,6 +2961,17 @@ void Type17PubSubType::delete_data( delete(reinterpret_cast<::Type17*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type17PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type17PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2697,6 +3154,17 @@ void Type18PubSubType::delete_data( delete(reinterpret_cast<::Type18*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type18PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type18PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -2879,6 +3347,17 @@ void Type19PubSubType::delete_data( delete(reinterpret_cast<::Type19*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type19PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type19PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3061,6 +3540,17 @@ void Type20PubSubType::delete_data( delete(reinterpret_cast<::Type20*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type20PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type20PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3243,6 +3733,17 @@ void Type21PubSubType::delete_data( delete(reinterpret_cast<::Type21*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type21PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type21PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3425,6 +3926,17 @@ void Type22PubSubType::delete_data( delete(reinterpret_cast<::Type22*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type22PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type22PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3607,6 +4119,17 @@ void Type23PubSubType::delete_data( delete(reinterpret_cast<::Type23*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type23PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type23PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3789,6 +4312,17 @@ void Type24PubSubType::delete_data( delete(reinterpret_cast<::Type24*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type24PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type24PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -3971,6 +4505,17 @@ void Type25PubSubType::delete_data( delete(reinterpret_cast<::Type25*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type25PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type25PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4153,6 +4698,17 @@ void Type26PubSubType::delete_data( delete(reinterpret_cast<::Type26*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type26PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type26PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4335,6 +4891,17 @@ void Type27PubSubType::delete_data( delete(reinterpret_cast<::Type27*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type27PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type27PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4517,6 +5084,17 @@ void Type28PubSubType::delete_data( delete(reinterpret_cast<::Type28*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type28PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type28PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4699,6 +5277,17 @@ void Type29PubSubType::delete_data( delete(reinterpret_cast<::Type29*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type29PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type29PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -4881,6 +5470,17 @@ void Type30PubSubType::delete_data( delete(reinterpret_cast<::Type30*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type30PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type30PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5063,6 +5663,17 @@ void Type31PubSubType::delete_data( delete(reinterpret_cast<::Type31*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type31PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type31PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5245,6 +5856,17 @@ void Type32PubSubType::delete_data( delete(reinterpret_cast<::Type32*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type32PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type32PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5427,6 +6049,17 @@ void Type33PubSubType::delete_data( delete(reinterpret_cast<::Type33*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type33PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type33PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5609,6 +6242,17 @@ void Type34PubSubType::delete_data( delete(reinterpret_cast<::Type34*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type34PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type34PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5791,6 +6435,17 @@ void Type35PubSubType::delete_data( delete(reinterpret_cast<::Type35*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type35PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type35PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -5973,6 +6628,17 @@ void Type36PubSubType::delete_data( delete(reinterpret_cast<::Type36*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type36PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type36PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6155,6 +6821,17 @@ void Type37PubSubType::delete_data( delete(reinterpret_cast<::Type37*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type37PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type37PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6337,6 +7014,17 @@ void Type38PubSubType::delete_data( delete(reinterpret_cast<::Type38*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type38PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type38PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6519,6 +7207,17 @@ void Type39PubSubType::delete_data( delete(reinterpret_cast<::Type39*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type39PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type39PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6701,6 +7400,17 @@ void Type40PubSubType::delete_data( delete(reinterpret_cast<::Type40*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type40PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type40PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -6883,6 +7593,17 @@ void Type41PubSubType::delete_data( delete(reinterpret_cast<::Type41*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type41PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type41PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7065,6 +7786,17 @@ void Type42PubSubType::delete_data( delete(reinterpret_cast<::Type42*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type42PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type42PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7247,6 +7979,17 @@ void Type43PubSubType::delete_data( delete(reinterpret_cast<::Type43*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type43PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type43PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7429,6 +8172,17 @@ void Type44PubSubType::delete_data( delete(reinterpret_cast<::Type44*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type44PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type44PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7611,6 +8365,17 @@ void Type45PubSubType::delete_data( delete(reinterpret_cast<::Type45*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type45PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type45PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7793,6 +8558,17 @@ void Type46PubSubType::delete_data( delete(reinterpret_cast<::Type46*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type46PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type46PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -7975,6 +8751,17 @@ void Type47PubSubType::delete_data( delete(reinterpret_cast<::Type47*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type47PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type47PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -8157,6 +8944,17 @@ void Type48PubSubType::delete_data( delete(reinterpret_cast<::Type48*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type48PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type48PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -8339,6 +9137,17 @@ void Type49PubSubType::delete_data( delete(reinterpret_cast<::Type49*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type49PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type49PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -8521,6 +9330,17 @@ void Type50PubSubType::delete_data( delete(reinterpret_cast<::Type50*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type50PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type50PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -8703,6 +9523,17 @@ void Type51PubSubType::delete_data( delete(reinterpret_cast<::Type51*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type51PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type51PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -8885,6 +9716,17 @@ void Type52PubSubType::delete_data( delete(reinterpret_cast<::Type52*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type52PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type52PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9067,6 +9909,17 @@ void Type53PubSubType::delete_data( delete(reinterpret_cast<::Type53*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type53PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type53PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9249,6 +10102,17 @@ void Type54PubSubType::delete_data( delete(reinterpret_cast<::Type54*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type54PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type54PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9431,6 +10295,17 @@ void Type55PubSubType::delete_data( delete(reinterpret_cast<::Type55*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type55PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type55PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9613,6 +10488,17 @@ void Type56PubSubType::delete_data( delete(reinterpret_cast<::Type56*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type56PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type56PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9795,6 +10681,17 @@ void Type57PubSubType::delete_data( delete(reinterpret_cast<::Type57*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type57PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type57PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -9977,6 +10874,17 @@ void Type58PubSubType::delete_data( delete(reinterpret_cast<::Type58*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type58PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type58PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -10159,6 +11067,17 @@ void Type59PubSubType::delete_data( delete(reinterpret_cast<::Type59*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type59PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type59PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -10341,6 +11260,17 @@ void Type60PubSubType::delete_data( delete(reinterpret_cast<::Type60*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type60PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type60PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -10523,6 +11453,17 @@ void Type61PubSubType::delete_data( delete(reinterpret_cast<::Type61*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type61PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type61PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -10705,6 +11646,17 @@ void Type62PubSubType::delete_data( delete(reinterpret_cast<::Type62*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type62PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type62PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -10887,6 +11839,17 @@ void Type63PubSubType::delete_data( delete(reinterpret_cast<::Type63*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type63PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type63PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11069,6 +12032,17 @@ void Type64PubSubType::delete_data( delete(reinterpret_cast<::Type64*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type64PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type64PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11251,6 +12225,17 @@ void Type65PubSubType::delete_data( delete(reinterpret_cast<::Type65*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type65PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type65PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11433,6 +12418,17 @@ void Type66PubSubType::delete_data( delete(reinterpret_cast<::Type66*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type66PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type66PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11615,6 +12611,17 @@ void Type67PubSubType::delete_data( delete(reinterpret_cast<::Type67*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type67PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type67PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11797,6 +12804,17 @@ void Type68PubSubType::delete_data( delete(reinterpret_cast<::Type68*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type68PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type68PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -11979,6 +12997,17 @@ void Type69PubSubType::delete_data( delete(reinterpret_cast<::Type69*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type69PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type69PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -12161,6 +13190,17 @@ void Type70PubSubType::delete_data( delete(reinterpret_cast<::Type70*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type70PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type70PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -12343,6 +13383,17 @@ void Type71PubSubType::delete_data( delete(reinterpret_cast<::Type71*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type71PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type71PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -12525,6 +13576,17 @@ void Type72PubSubType::delete_data( delete(reinterpret_cast<::Type72*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type72PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type72PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -12707,6 +13769,17 @@ void Type73PubSubType::delete_data( delete(reinterpret_cast<::Type73*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type73PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type73PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -12889,6 +13962,17 @@ void Type74PubSubType::delete_data( delete(reinterpret_cast<::Type74*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type74PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type74PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13071,6 +14155,17 @@ void Type75PubSubType::delete_data( delete(reinterpret_cast<::Type75*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type75PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type75PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13253,6 +14348,17 @@ void Type76PubSubType::delete_data( delete(reinterpret_cast<::Type76*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type76PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type76PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13435,6 +14541,17 @@ void Type77PubSubType::delete_data( delete(reinterpret_cast<::Type77*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type77PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type77PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13617,6 +14734,17 @@ void Type78PubSubType::delete_data( delete(reinterpret_cast<::Type78*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type78PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type78PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13799,6 +14927,17 @@ void Type79PubSubType::delete_data( delete(reinterpret_cast<::Type79*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type79PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type79PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -13981,6 +15120,17 @@ void Type80PubSubType::delete_data( delete(reinterpret_cast<::Type80*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type80PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type80PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -14163,6 +15313,17 @@ void Type81PubSubType::delete_data( delete(reinterpret_cast<::Type81*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type81PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type81PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -14345,6 +15506,17 @@ void Type82PubSubType::delete_data( delete(reinterpret_cast<::Type82*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type82PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type82PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -14527,6 +15699,17 @@ void Type83PubSubType::delete_data( delete(reinterpret_cast<::Type83*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type83PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type83PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -14709,6 +15892,17 @@ void Type84PubSubType::delete_data( delete(reinterpret_cast<::Type84*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type84PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type84PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -14891,6 +16085,17 @@ void Type85PubSubType::delete_data( delete(reinterpret_cast<::Type85*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type85PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type85PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -15073,6 +16278,17 @@ void Type86PubSubType::delete_data( delete(reinterpret_cast<::Type86*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type86PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type86PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -15255,6 +16471,17 @@ void Type87PubSubType::delete_data( delete(reinterpret_cast<::Type87*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type87PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type87PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -15437,6 +16664,17 @@ void Type88PubSubType::delete_data( delete(reinterpret_cast<::Type88*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type88PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type88PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -15619,6 +16857,17 @@ void Type89PubSubType::delete_data( delete(reinterpret_cast<::Type89*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type89PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type89PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -15801,6 +17050,17 @@ void Type90PubSubType::delete_data( delete(reinterpret_cast<::Type90*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type90PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type90PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -15983,6 +17243,17 @@ void Type91PubSubType::delete_data( delete(reinterpret_cast<::Type91*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type91PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type91PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -16165,6 +17436,17 @@ void Type92PubSubType::delete_data( delete(reinterpret_cast<::Type92*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type92PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type92PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -16347,6 +17629,17 @@ void Type93PubSubType::delete_data( delete(reinterpret_cast<::Type93*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type93PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type93PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -16529,6 +17822,17 @@ void Type94PubSubType::delete_data( delete(reinterpret_cast<::Type94*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type94PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type94PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -16711,6 +18015,17 @@ void Type95PubSubType::delete_data( delete(reinterpret_cast<::Type95*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type95PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type95PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -16893,6 +18208,17 @@ void Type96PubSubType::delete_data( delete(reinterpret_cast<::Type96*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type96PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type96PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -17075,6 +18401,17 @@ void Type97PubSubType::delete_data( delete(reinterpret_cast<::Type97*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type97PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type97PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -17257,6 +18594,17 @@ void Type98PubSubType::delete_data( delete(reinterpret_cast<::Type98*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type98PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type98PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -17439,6 +18787,17 @@ void Type99PubSubType::delete_data( delete(reinterpret_cast<::Type99*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type99PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type99PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -17621,6 +18980,17 @@ void Type100PubSubType::delete_data( delete(reinterpret_cast<::Type100*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool Type100PubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool Type100PubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -17803,6 +19173,17 @@ void TypeBigPubSubType::delete_data( delete(reinterpret_cast<::TypeBig*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool TypeBigPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool TypeBigPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeBigPubSubTypes.hpp b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeBigPubSubTypes.hpp index acae1875c3d..a0af68c52fc 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeBigPubSubTypes.hpp +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeBigPubSubTypes.hpp @@ -96,12 +96,8 @@ class Type4PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -178,12 +174,8 @@ class Type5PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -260,12 +252,8 @@ class Type6PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -342,12 +330,8 @@ class Type7PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -424,12 +408,8 @@ class Type8PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -506,12 +486,8 @@ class Type9PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -588,12 +564,8 @@ class Type10PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -670,12 +642,8 @@ class Type11PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -752,12 +720,8 @@ class Type12PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -834,12 +798,8 @@ class Type13PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -916,12 +876,8 @@ class Type14PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -998,12 +954,8 @@ class Type15PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1080,12 +1032,8 @@ class Type16PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1162,12 +1110,8 @@ class Type17PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1244,12 +1188,8 @@ class Type18PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1326,12 +1266,8 @@ class Type19PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1408,12 +1344,8 @@ class Type20PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1490,12 +1422,8 @@ class Type21PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1572,12 +1500,8 @@ class Type22PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1654,12 +1578,8 @@ class Type23PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1736,12 +1656,8 @@ class Type24PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1818,12 +1734,8 @@ class Type25PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1900,12 +1812,8 @@ class Type26PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -1982,12 +1890,8 @@ class Type27PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2064,12 +1968,8 @@ class Type28PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2146,12 +2046,8 @@ class Type29PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2228,12 +2124,8 @@ class Type30PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2310,12 +2202,8 @@ class Type31PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2392,12 +2280,8 @@ class Type32PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2474,12 +2358,8 @@ class Type33PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2556,12 +2436,8 @@ class Type34PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2638,12 +2514,8 @@ class Type35PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2720,12 +2592,8 @@ class Type36PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2802,12 +2670,8 @@ class Type37PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2884,12 +2748,8 @@ class Type38PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -2966,12 +2826,8 @@ class Type39PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3048,12 +2904,8 @@ class Type40PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3130,12 +2982,8 @@ class Type41PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3212,12 +3060,8 @@ class Type42PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3294,12 +3138,8 @@ class Type43PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3376,12 +3216,8 @@ class Type44PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3458,12 +3294,8 @@ class Type45PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3540,12 +3372,8 @@ class Type46PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3622,12 +3450,8 @@ class Type47PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3704,12 +3528,8 @@ class Type48PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3786,12 +3606,8 @@ class Type49PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3868,12 +3684,8 @@ class Type50PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -3950,12 +3762,8 @@ class Type51PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4032,12 +3840,8 @@ class Type52PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4114,12 +3918,8 @@ class Type53PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4196,12 +3996,8 @@ class Type54PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4278,12 +4074,8 @@ class Type55PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4360,12 +4152,8 @@ class Type56PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4442,12 +4230,8 @@ class Type57PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4524,12 +4308,8 @@ class Type58PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4606,12 +4386,8 @@ class Type59PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4688,12 +4464,8 @@ class Type60PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4770,12 +4542,8 @@ class Type61PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4852,12 +4620,8 @@ class Type62PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -4934,12 +4698,8 @@ class Type63PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5016,12 +4776,8 @@ class Type64PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5098,12 +4854,8 @@ class Type65PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5180,12 +4932,8 @@ class Type66PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5262,12 +5010,8 @@ class Type67PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5344,12 +5088,8 @@ class Type68PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5426,12 +5166,8 @@ class Type69PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5508,12 +5244,8 @@ class Type70PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5590,12 +5322,8 @@ class Type71PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5672,12 +5400,8 @@ class Type72PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5754,12 +5478,8 @@ class Type73PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5836,12 +5556,8 @@ class Type74PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -5918,12 +5634,8 @@ class Type75PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6000,12 +5712,8 @@ class Type76PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6082,12 +5790,8 @@ class Type77PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6164,12 +5868,8 @@ class Type78PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6246,12 +5946,8 @@ class Type79PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6328,12 +6024,8 @@ class Type80PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6410,12 +6102,8 @@ class Type81PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6492,12 +6180,8 @@ class Type82PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6574,12 +6258,8 @@ class Type83PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6656,12 +6336,8 @@ class Type84PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6738,12 +6414,8 @@ class Type85PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6820,12 +6492,8 @@ class Type86PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6902,12 +6570,8 @@ class Type87PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -6984,12 +6648,8 @@ class Type88PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7066,12 +6726,8 @@ class Type89PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7148,12 +6804,8 @@ class Type90PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7230,12 +6882,8 @@ class Type91PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7312,12 +6960,8 @@ class Type92PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7394,12 +7038,8 @@ class Type93PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7476,12 +7116,8 @@ class Type94PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7558,12 +7194,8 @@ class Type95PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7640,12 +7272,8 @@ class Type96PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7722,12 +7350,8 @@ class Type97PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7804,12 +7428,8 @@ class Type98PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7886,12 +7506,8 @@ class Type99PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -7968,12 +7584,8 @@ class Type100PubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -8050,12 +7662,8 @@ class TypeBigPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeDepCdrAux.hpp b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeDepCdrAux.hpp index 89e2f707ba3..97f8dfff700 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeDepCdrAux.hpp +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeDepCdrAux.hpp @@ -39,6 +39,7 @@ eProsima_user_DllExport void serialize_key( const TypeDep& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeDepCdrAux.ipp b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeDepCdrAux.ipp index b00152fa230..39e91e86810 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeDepCdrAux.ipp +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeDepCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_TypeDep_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -88,6 +97,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const TypeDep* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_TypeDep_cdr_plain(data_representation) && + sizeof(TypeDep) == TypeDep_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(TypeDep)); + + scdr.jump((array_size -1) * sizeof(TypeDep)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -125,6 +172,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + TypeDep* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_TypeDep_cdr_plain(data_representation) && + sizeof(TypeDep) == TypeDep_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(TypeDep)); + + scdr.jump((array_size - 1) * sizeof(TypeDep)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const TypeDep& data) diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeDepPubSubTypes.cxx b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeDepPubSubTypes.cxx index a9bc544950e..af7ea517d43 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeDepPubSubTypes.cxx +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeDepPubSubTypes.cxx @@ -31,6 +31,16 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_TypeDep_cdr_plain( + DataRepresentationId_t data_representation); + + +} // namespace fastcdr +} // namespace eprosima + TypeDepPubSubType::TypeDepPubSubType() { set_name("TypeDep"); @@ -149,6 +159,17 @@ void TypeDepPubSubType::delete_data( delete(reinterpret_cast<::TypeDep*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool TypeDepPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool TypeDepPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeDepPubSubTypes.hpp b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeDepPubSubTypes.hpp index 5806bcf4066..239a3e232a2 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeDepPubSubTypes.hpp +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeDepPubSubTypes.hpp @@ -96,12 +96,8 @@ class TypeDepPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectCdrAux.hpp b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectCdrAux.hpp index b3c4c71930c..65ff41fed7b 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectCdrAux.hpp +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const TypeNoTypeObject& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectCdrAux.ipp b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectCdrAux.ipp index ec5650e82ce..45fa322363b 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectCdrAux.ipp +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_TypeNoTypeObject_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const TypeNoTypeObject* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_TypeNoTypeObject_cdr_plain(data_representation) && + sizeof(TypeNoTypeObject) == TypeNoTypeObject_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(TypeNoTypeObject)); + + scdr.jump((array_size -1) * sizeof(TypeNoTypeObject)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + TypeNoTypeObject* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_TypeNoTypeObject_cdr_plain(data_representation) && + sizeof(TypeNoTypeObject) == TypeNoTypeObject_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(TypeNoTypeObject)); + + scdr.jump((array_size - 1) * sizeof(TypeNoTypeObject)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const TypeNoTypeObject& data) diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectPubSubTypes.cxx b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectPubSubTypes.cxx index 9ec4b02a33d..9ddc90c6b9a 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectPubSubTypes.cxx +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectPubSubTypes.cxx @@ -29,6 +29,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_TypeNoTypeObject_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + TypeNoTypeObjectPubSubType::TypeNoTypeObjectPubSubType() { set_name("TypeNoTypeObject"); @@ -147,6 +156,17 @@ void TypeNoTypeObjectPubSubType::delete_data( delete(reinterpret_cast<::TypeNoTypeObject*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool TypeNoTypeObjectPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool TypeNoTypeObjectPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectPubSubTypes.hpp b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectPubSubTypes.hpp index 6f317264cb6..0e2c54e13ff 100644 --- a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectPubSubTypes.hpp +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectPubSubTypes.hpp @@ -93,12 +93,8 @@ class TypeNoTypeObjectPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectTypeObjectSupport.cxx b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectTypeObjectSupport.cxx new file mode 100644 index 00000000000..3629b2384c1 --- /dev/null +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectTypeObjectSupport.cxx @@ -0,0 +1,106 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file XtypesTestsTypeNoTypeObjectTypeObjectSupport.cxx + * Source file containing the implementation to register the TypeObject representation of the described types in the IDL file + * + * This file was generated by the tool fastddsgen (version: 4.1.0). + */ + +#include "XtypesTestsTypeNoTypeObjectTypeObjectSupport.hpp" + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include "XtypesTestsTypeNoTypeObject.hpp" + + +using namespace eprosima::fastdds::dds::xtypes; + +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_TypeNoTypeObject_type_identifier( + TypeIdentifierPair& type_ids_TypeNoTypeObject) +{ + + ReturnCode_t return_code_TypeNoTypeObject {eprosima::fastdds::dds::RETCODE_OK}; + return_code_TypeNoTypeObject = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "TypeNoTypeObject", type_ids_TypeNoTypeObject); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_TypeNoTypeObject) + { + StructTypeFlag struct_flags_TypeNoTypeObject = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_TypeNoTypeObject = "TypeNoTypeObject"; + eprosima::fastcdr::optional type_ann_builtin_TypeNoTypeObject; + eprosima::fastcdr::optional ann_custom_TypeNoTypeObject; + CompleteTypeDetail detail_TypeNoTypeObject = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_TypeNoTypeObject, ann_custom_TypeNoTypeObject, type_name_TypeNoTypeObject.to_string()); + CompleteStructHeader header_TypeNoTypeObject; + header_TypeNoTypeObject = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_TypeNoTypeObject); + CompleteStructMemberSeq member_seq_TypeNoTypeObject; + { + TypeIdentifierPair type_ids_content; + ReturnCode_t return_code_content {eprosima::fastdds::dds::RETCODE_OK}; + return_code_content = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_content); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_content) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_content)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_content = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_content = 0x00000000; + bool common_content_ec {false}; + CommonStructMember common_content {TypeObjectUtils::build_common_struct_member(member_id_content, member_flags_content, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_content, common_content_ec))}; + if (!common_content_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure content member TypeIdentifier inconsistent."); + return; + } + MemberName name_content = "content"; + eprosima::fastcdr::optional member_ann_builtin_content; + ann_custom_TypeNoTypeObject.reset(); + CompleteMemberDetail detail_content = TypeObjectUtils::build_complete_member_detail(name_content, member_ann_builtin_content, ann_custom_TypeNoTypeObject); + CompleteStructMember member_content = TypeObjectUtils::build_complete_struct_member(common_content, detail_content); + TypeObjectUtils::add_complete_struct_member(member_seq_TypeNoTypeObject, member_content); + } + CompleteStructType struct_type_TypeNoTypeObject = TypeObjectUtils::build_complete_struct_type(struct_flags_TypeNoTypeObject, header_TypeNoTypeObject, member_seq_TypeNoTypeObject); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_TypeNoTypeObject, type_name_TypeNoTypeObject.to_string(), type_ids_TypeNoTypeObject)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "TypeNoTypeObject already registered in TypeObjectRegistry for a different type."); + } + } +} diff --git a/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectTypeObjectSupport.hpp b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectTypeObjectSupport.hpp new file mode 100644 index 00000000000..85908ddc599 --- /dev/null +++ b/test/dds/xtypes/BaseCasesIDLs/XtypesTestsTypeNoTypeObjectTypeObjectSupport.hpp @@ -0,0 +1,56 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file XtypesTestsTypeNoTypeObjectTypeObjectSupport.hpp + * Header file containing the API required to register the TypeObject representation of the described types in the IDL file + * + * This file was generated by the tool fastddsgen (version: 4.1.0). + */ + +#ifndef FAST_DDS_GENERATED__XTYPESTESTSTYPENOTYPEOBJECT_TYPE_OBJECT_SUPPORT_HPP +#define FAST_DDS_GENERATED__XTYPESTESTSTYPENOTYPEOBJECT_TYPE_OBJECT_SUPPORT_HPP + +#include + + +#if defined(_WIN32) +#if defined(EPROSIMA_USER_DLL_EXPORT) +#define eProsima_user_DllExport __declspec( dllexport ) +#else +#define eProsima_user_DllExport +#endif // EPROSIMA_USER_DLL_EXPORT +#else +#define eProsima_user_DllExport +#endif // _WIN32 + +#ifndef DOXYGEN_SHOULD_SKIP_THIS_PUBLIC + +/** + * @brief Register TypeNoTypeObject related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] type_ids TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_TypeNoTypeObject_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + + +#endif // DOXYGEN_SHOULD_SKIP_THIS_PUBLIC + +#endif // FAST_DDS_GENERATED__XTYPESTESTSTYPENOTYPEOBJECT_TYPE_OBJECT_SUPPORT_HPP diff --git a/test/feature/idl_parser/idl_extra_cases/extra_unionsCdrAux.ipp b/test/feature/idl_parser/idl_extra_cases/extra_unionsCdrAux.ipp index 8ecafa9afc1..c770f1d0f90 100644 --- a/test/feature/idl_parser/idl_extra_cases/extra_unionsCdrAux.ipp +++ b/test/feature/idl_parser/idl_extra_cases/extra_unionsCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -109,6 +110,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionScopedDiscriminator* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -176,6 +190,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionScopedDiscriminator* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + } // namespace fastcdr } // namespace eprosima diff --git a/test/feature/idl_parser/idl_extra_cases/extra_unionsPubSubTypes.cxx b/test/feature/idl_parser/idl_extra_cases/extra_unionsPubSubTypes.cxx index 31d0f3a0400..74ca95d0ab6 100644 --- a/test/feature/idl_parser/idl_extra_cases/extra_unionsPubSubTypes.cxx +++ b/test/feature/idl_parser/idl_extra_cases/extra_unionsPubSubTypes.cxx @@ -31,6 +31,12 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +} // namespace fastcdr +} // namespace eprosima + namespace MyModule { } // namespace MyModule diff --git a/test/profiling/allocations/AllocTestTypeCdrAux.hpp b/test/profiling/allocations/AllocTestTypeCdrAux.hpp index 662744cd538..667aeef1d39 100644 --- a/test/profiling/allocations/AllocTestTypeCdrAux.hpp +++ b/test/profiling/allocations/AllocTestTypeCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const AllocTestType& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/profiling/allocations/AllocTestTypeCdrAux.ipp b/test/profiling/allocations/AllocTestTypeCdrAux.ipp index e1c9a4dffeb..de7018c90fb 100644 --- a/test/profiling/allocations/AllocTestTypeCdrAux.ipp +++ b/test/profiling/allocations/AllocTestTypeCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_AllocTestType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AllocTestType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AllocTestType_cdr_plain(data_representation) && + sizeof(AllocTestType) == AllocTestType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AllocTestType)); + + scdr.jump((array_size -1) * sizeof(AllocTestType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AllocTestType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AllocTestType_cdr_plain(data_representation) && + sizeof(AllocTestType) == AllocTestType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AllocTestType)); + + scdr.jump((array_size - 1) * sizeof(AllocTestType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AllocTestType& data) diff --git a/test/profiling/allocations/AllocTestTypePubSubTypes.cxx b/test/profiling/allocations/AllocTestTypePubSubTypes.cxx index 2f7b286359d..efcdd50cfa8 100644 --- a/test/profiling/allocations/AllocTestTypePubSubTypes.cxx +++ b/test/profiling/allocations/AllocTestTypePubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_AllocTestType_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + AllocTestTypePubSubType::AllocTestTypePubSubType() { set_name("AllocTestType"); @@ -149,6 +158,17 @@ void AllocTestTypePubSubType::delete_data( delete(reinterpret_cast<::AllocTestType*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AllocTestTypePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AllocTestTypePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/profiling/allocations/AllocTestTypePubSubTypes.hpp b/test/profiling/allocations/AllocTestTypePubSubTypes.hpp index 34c928e3f3d..0e72a29ac8f 100644 --- a/test/profiling/allocations/AllocTestTypePubSubTypes.hpp +++ b/test/profiling/allocations/AllocTestTypePubSubTypes.hpp @@ -93,12 +93,8 @@ class AllocTestTypePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/unittest/dds/topic/DDSSQLFilter/data_types/ContentFilterTestTypeCdrAux.hpp b/test/unittest/dds/topic/DDSSQLFilter/data_types/ContentFilterTestTypeCdrAux.hpp index aeeb8ab1b76..15d6548ff3a 100644 --- a/test/unittest/dds/topic/DDSSQLFilter/data_types/ContentFilterTestTypeCdrAux.hpp +++ b/test/unittest/dds/topic/DDSSQLFilter/data_types/ContentFilterTestTypeCdrAux.hpp @@ -42,11 +42,13 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ContentFilterTestType& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/unittest/dds/topic/DDSSQLFilter/data_types/ContentFilterTestTypeCdrAux.ipp b/test/unittest/dds/topic/DDSSQLFilter/data_types/ContentFilterTestTypeCdrAux.ipp index 4a7ac4abfb9..8cfd88bcd7f 100644 --- a/test/unittest/dds/topic/DDSSQLFilter/data_types/ContentFilterTestTypeCdrAux.ipp +++ b/test/unittest/dds/topic/DDSSQLFilter/data_types/ContentFilterTestTypeCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_StructType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -132,6 +141,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructType_cdr_plain(data_representation) && + sizeof(StructType) == StructType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructType)); + + scdr.jump((array_size -1) * sizeof(StructType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -213,6 +260,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructType_cdr_plain(data_representation) && + sizeof(StructType) == StructType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructType)); + + scdr.jump((array_size - 1) * sizeof(StructType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructType& data) @@ -253,6 +336,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ContentFilterTestType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -547,6 +638,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ContentFilterTestType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ContentFilterTestType_cdr_plain(data_representation) && + sizeof(ContentFilterTestType) == ContentFilterTestType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ContentFilterTestType)); + + scdr.jump((array_size -1) * sizeof(ContentFilterTestType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -824,6 +953,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ContentFilterTestType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ContentFilterTestType_cdr_plain(data_representation) && + sizeof(ContentFilterTestType) == ContentFilterTestType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ContentFilterTestType)); + + scdr.jump((array_size - 1) * sizeof(ContentFilterTestType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ContentFilterTestType& data) diff --git a/test/unittest/dds/topic/DDSSQLFilter/data_types/ContentFilterTestTypePubSubTypes.cxx b/test/unittest/dds/topic/DDSSQLFilter/data_types/ContentFilterTestTypePubSubTypes.cxx index f12c698724e..8a2032176aa 100644 --- a/test/unittest/dds/topic/DDSSQLFilter/data_types/ContentFilterTestTypePubSubTypes.cxx +++ b/test/unittest/dds/topic/DDSSQLFilter/data_types/ContentFilterTestTypePubSubTypes.cxx @@ -31,6 +31,20 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_StructType_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ContentFilterTestType_cdr_plain( + DataRepresentationId_t data_representation); + + + +} // namespace fastcdr +} // namespace eprosima + ContentFilterTestTypePubSubType::ContentFilterTestTypePubSubType() { set_name("ContentFilterTestType"); @@ -149,6 +163,17 @@ void ContentFilterTestTypePubSubType::delete_data( delete(reinterpret_cast<::ContentFilterTestType*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ContentFilterTestTypePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ContentFilterTestTypePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/unittest/dds/topic/DDSSQLFilter/data_types/ContentFilterTestTypePubSubTypes.hpp b/test/unittest/dds/topic/DDSSQLFilter/data_types/ContentFilterTestTypePubSubTypes.hpp index 457ddf82978..6b50018599f 100644 --- a/test/unittest/dds/topic/DDSSQLFilter/data_types/ContentFilterTestTypePubSubTypes.hpp +++ b/test/unittest/dds/topic/DDSSQLFilter/data_types/ContentFilterTestTypePubSubTypes.hpp @@ -93,12 +93,8 @@ class ContentFilterTestTypePubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/unittest/dds/xtypes/serializers/idl/types/alias_struct/gen/alias_structCdrAux.hpp b/test/unittest/dds/xtypes/serializers/idl/types/alias_struct/gen/alias_structCdrAux.hpp index 3ebd7dd6b62..a557dda56f6 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/alias_struct/gen/alias_structCdrAux.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/alias_struct/gen/alias_structCdrAux.hpp @@ -43,6 +43,7 @@ eProsima_user_DllExport void serialize_key( const AliasStruct& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/unittest/dds/xtypes/serializers/idl/types/alias_struct/gen/alias_structCdrAux.ipp b/test/unittest/dds/xtypes/serializers/idl/types/alias_struct/gen/alias_structCdrAux.ipp index ed9dc356d83..da617dd8ab5 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/alias_struct/gen/alias_structCdrAux.ipp +++ b/test/unittest/dds/xtypes/serializers/idl/types/alias_struct/gen/alias_structCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_AliasStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -88,6 +97,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AliasStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasStruct_cdr_plain(data_representation) && + sizeof(AliasStruct) == AliasStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AliasStruct)); + + scdr.jump((array_size -1) * sizeof(AliasStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -125,6 +172,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AliasStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AliasStruct_cdr_plain(data_representation) && + sizeof(AliasStruct) == AliasStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AliasStruct)); + + scdr.jump((array_size - 1) * sizeof(AliasStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AliasStruct& data) diff --git a/test/unittest/dds/xtypes/serializers/idl/types/alias_struct/gen/alias_structPubSubTypes.cxx b/test/unittest/dds/xtypes/serializers/idl/types/alias_struct/gen/alias_structPubSubTypes.cxx index 7e476467ce8..f6d86c22568 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/alias_struct/gen/alias_structPubSubTypes.cxx +++ b/test/unittest/dds/xtypes/serializers/idl/types/alias_struct/gen/alias_structPubSubTypes.cxx @@ -31,6 +31,20 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_AliasStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + + + + +} // namespace fastcdr +} // namespace eprosima + AliasStructPubSubType::AliasStructPubSubType() { set_name("AliasStruct"); @@ -149,6 +163,17 @@ void AliasStructPubSubType::delete_data( delete(reinterpret_cast<::AliasStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AliasStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AliasStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/unittest/dds/xtypes/serializers/idl/types/alias_struct/gen/alias_structPubSubTypes.hpp b/test/unittest/dds/xtypes/serializers/idl/types/alias_struct/gen/alias_structPubSubTypes.hpp index 6576e30e85c..bc1128e1406 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/alias_struct/gen/alias_structPubSubTypes.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/alias_struct/gen/alias_structPubSubTypes.hpp @@ -98,12 +98,8 @@ class AliasStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/unittest/dds/xtypes/serializers/idl/types/array_struct/gen/array_structCdrAux.hpp b/test/unittest/dds/xtypes/serializers/idl/types/array_struct/gen/array_structCdrAux.hpp index 7cca629dea2..5a9b8b217fa 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/array_struct/gen/array_structCdrAux.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/array_struct/gen/array_structCdrAux.hpp @@ -43,15 +43,18 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const NestedArrayElement& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ComplexArrayElement& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayStruct& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/unittest/dds/xtypes/serializers/idl/types/array_struct/gen/array_structCdrAux.ipp b/test/unittest/dds/xtypes/serializers/idl/types/array_struct/gen/array_structCdrAux.ipp index 80cb609194e..85ac24c3de6 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/array_struct/gen/array_structCdrAux.ipp +++ b/test/unittest/dds/xtypes/serializers/idl/types/array_struct/gen/array_structCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_NestedArrayElement_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const NestedArrayElement* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_NestedArrayElement_cdr_plain(data_representation) && + sizeof(NestedArrayElement) == NestedArrayElement_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(NestedArrayElement)); + + scdr.jump((array_size -1) * sizeof(NestedArrayElement)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + NestedArrayElement* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_NestedArrayElement_cdr_plain(data_representation) && + sizeof(NestedArrayElement) == NestedArrayElement_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(NestedArrayElement)); + + scdr.jump((array_size - 1) * sizeof(NestedArrayElement)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const NestedArrayElement& data) @@ -113,6 +196,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ComplexArrayElement_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -163,6 +254,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ComplexArrayElement* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ComplexArrayElement_cdr_plain(data_representation) && + sizeof(ComplexArrayElement) == ComplexArrayElement_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ComplexArrayElement)); + + scdr.jump((array_size -1) * sizeof(ComplexArrayElement)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -196,6 +325,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ComplexArrayElement* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ComplexArrayElement_cdr_plain(data_representation) && + sizeof(ComplexArrayElement) == ComplexArrayElement_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ComplexArrayElement)); + + scdr.jump((array_size - 1) * sizeof(ComplexArrayElement)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ComplexArrayElement& data) @@ -216,6 +381,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ArrayStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -270,6 +443,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ArrayStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayStruct_cdr_plain(data_representation) && + sizeof(ArrayStruct) == ArrayStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ArrayStruct)); + + scdr.jump((array_size -1) * sizeof(ArrayStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -307,6 +518,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ArrayStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ArrayStruct_cdr_plain(data_representation) && + sizeof(ArrayStruct) == ArrayStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ArrayStruct)); + + scdr.jump((array_size - 1) * sizeof(ArrayStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ArrayStruct& data) diff --git a/test/unittest/dds/xtypes/serializers/idl/types/array_struct/gen/array_structPubSubTypes.cxx b/test/unittest/dds/xtypes/serializers/idl/types/array_struct/gen/array_structPubSubTypes.cxx index eca66cff6b9..06fe9e7f2d0 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/array_struct/gen/array_structPubSubTypes.cxx +++ b/test/unittest/dds/xtypes/serializers/idl/types/array_struct/gen/array_structPubSubTypes.cxx @@ -31,6 +31,21 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_NestedArrayElement_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ArrayStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ComplexArrayElement_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + NestedArrayElementPubSubType::NestedArrayElementPubSubType() { set_name("NestedArrayElement"); @@ -149,6 +164,17 @@ void NestedArrayElementPubSubType::delete_data( delete(reinterpret_cast<::NestedArrayElement*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool NestedArrayElementPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool NestedArrayElementPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +357,17 @@ void ComplexArrayElementPubSubType::delete_data( delete(reinterpret_cast<::ComplexArrayElement*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ComplexArrayElementPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ComplexArrayElementPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +550,17 @@ void ArrayStructPubSubType::delete_data( delete(reinterpret_cast<::ArrayStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ArrayStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ArrayStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/unittest/dds/xtypes/serializers/idl/types/array_struct/gen/array_structPubSubTypes.hpp b/test/unittest/dds/xtypes/serializers/idl/types/array_struct/gen/array_structPubSubTypes.hpp index 565b5556aaf..0c52850f1f2 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/array_struct/gen/array_structPubSubTypes.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/array_struct/gen/array_structPubSubTypes.hpp @@ -93,12 +93,8 @@ class NestedArrayElementPubSubType : public eprosima::fastdds::dds::TopicDataTyp #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -175,12 +171,8 @@ class ComplexArrayElementPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -257,12 +249,8 @@ class ArrayStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/unittest/dds/xtypes/serializers/idl/types/bitmask_struct/gen/bitmask_structCdrAux.hpp b/test/unittest/dds/xtypes/serializers/idl/types/bitmask_struct/gen/bitmask_structCdrAux.hpp index 5b7610c6321..1db4ba3a2d5 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/bitmask_struct/gen/bitmask_structCdrAux.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/bitmask_struct/gen/bitmask_structCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const BitmaskStruct& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/unittest/dds/xtypes/serializers/idl/types/bitmask_struct/gen/bitmask_structCdrAux.ipp b/test/unittest/dds/xtypes/serializers/idl/types/bitmask_struct/gen/bitmask_structCdrAux.ipp index f98d9862bbe..cd377ef6fd2 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/bitmask_struct/gen/bitmask_structCdrAux.ipp +++ b/test/unittest/dds/xtypes/serializers/idl/types/bitmask_struct/gen/bitmask_structCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_BitmaskStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const BitmaskStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BitmaskStruct_cdr_plain(data_representation) && + sizeof(BitmaskStruct) == BitmaskStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(BitmaskStruct)); + + scdr.jump((array_size -1) * sizeof(BitmaskStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + BitmaskStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BitmaskStruct_cdr_plain(data_representation) && + sizeof(BitmaskStruct) == BitmaskStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(BitmaskStruct)); + + scdr.jump((array_size - 1) * sizeof(BitmaskStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const BitmaskStruct& data) diff --git a/test/unittest/dds/xtypes/serializers/idl/types/bitmask_struct/gen/bitmask_structPubSubTypes.cxx b/test/unittest/dds/xtypes/serializers/idl/types/bitmask_struct/gen/bitmask_structPubSubTypes.cxx index 2a67e32de13..52013107c84 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/bitmask_struct/gen/bitmask_structPubSubTypes.cxx +++ b/test/unittest/dds/xtypes/serializers/idl/types/bitmask_struct/gen/bitmask_structPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_BitmaskStruct_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + BitmaskStructPubSubType::BitmaskStructPubSubType() { set_name("BitmaskStruct"); @@ -149,6 +158,17 @@ void BitmaskStructPubSubType::delete_data( delete(reinterpret_cast<::BitmaskStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool BitmaskStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool BitmaskStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/unittest/dds/xtypes/serializers/idl/types/bitmask_struct/gen/bitmask_structPubSubTypes.hpp b/test/unittest/dds/xtypes/serializers/idl/types/bitmask_struct/gen/bitmask_structPubSubTypes.hpp index d12a3f22373..3dbfb3173da 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/bitmask_struct/gen/bitmask_structPubSubTypes.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/bitmask_struct/gen/bitmask_structPubSubTypes.hpp @@ -93,12 +93,8 @@ class BitmaskStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/unittest/dds/xtypes/serializers/idl/types/bitset_struct/gen/bitset_structCdrAux.hpp b/test/unittest/dds/xtypes/serializers/idl/types/bitset_struct/gen/bitset_structCdrAux.hpp index 1031dbaa74d..d0dae93583b 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/bitset_struct/gen/bitset_structCdrAux.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/bitset_struct/gen/bitset_structCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const BitsetStruct& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/unittest/dds/xtypes/serializers/idl/types/bitset_struct/gen/bitset_structCdrAux.ipp b/test/unittest/dds/xtypes/serializers/idl/types/bitset_struct/gen/bitset_structCdrAux.ipp index 7cedcc66d8e..6f124249c35 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/bitset_struct/gen/bitset_structCdrAux.ipp +++ b/test/unittest/dds/xtypes/serializers/idl/types/bitset_struct/gen/bitset_structCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -68,6 +69,19 @@ eProsima_user_DllExport void serialize( scdr << bitset; } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ColorBitset* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of bitsets not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& dcdr, @@ -92,6 +106,27 @@ eProsima_user_DllExport void deserialize( } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ColorBitset* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of bitsets not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_BitsetStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -134,6 +169,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const BitsetStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BitsetStruct_cdr_plain(data_representation) && + sizeof(BitsetStruct) == BitsetStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(BitsetStruct)); + + scdr.jump((array_size -1) * sizeof(BitsetStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -159,6 +232,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + BitsetStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_BitsetStruct_cdr_plain(data_representation) && + sizeof(BitsetStruct) == BitsetStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(BitsetStruct)); + + scdr.jump((array_size - 1) * sizeof(BitsetStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const BitsetStruct& data) diff --git a/test/unittest/dds/xtypes/serializers/idl/types/bitset_struct/gen/bitset_structPubSubTypes.cxx b/test/unittest/dds/xtypes/serializers/idl/types/bitset_struct/gen/bitset_structPubSubTypes.cxx index a7c3e5f1bde..75c35a5ad6e 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/bitset_struct/gen/bitset_structPubSubTypes.cxx +++ b/test/unittest/dds/xtypes/serializers/idl/types/bitset_struct/gen/bitset_structPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_BitsetStruct_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + BitsetStructPubSubType::BitsetStructPubSubType() { set_name("BitsetStruct"); @@ -149,6 +158,17 @@ void BitsetStructPubSubType::delete_data( delete(reinterpret_cast<::BitsetStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool BitsetStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool BitsetStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/unittest/dds/xtypes/serializers/idl/types/bitset_struct/gen/bitset_structPubSubTypes.hpp b/test/unittest/dds/xtypes/serializers/idl/types/bitset_struct/gen/bitset_structPubSubTypes.hpp index 281ba1b277f..e7237fd4ff8 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/bitset_struct/gen/bitset_structPubSubTypes.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/bitset_struct/gen/bitset_structPubSubTypes.hpp @@ -93,12 +93,8 @@ class BitsetStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/unittest/dds/xtypes/serializers/idl/types/enum_struct/gen/enum_structCdrAux.hpp b/test/unittest/dds/xtypes/serializers/idl/types/enum_struct/gen/enum_structCdrAux.hpp index 8406eedd0bb..e84f3ded6bd 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/enum_struct/gen/enum_structCdrAux.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/enum_struct/gen/enum_structCdrAux.hpp @@ -39,6 +39,7 @@ eProsima_user_DllExport void serialize_key( const EnumStruct& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/unittest/dds/xtypes/serializers/idl/types/enum_struct/gen/enum_structCdrAux.ipp b/test/unittest/dds/xtypes/serializers/idl/types/enum_struct/gen/enum_structCdrAux.ipp index 7ee68b19d8b..558933dd681 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/enum_struct/gen/enum_structCdrAux.ipp +++ b/test/unittest/dds/xtypes/serializers/idl/types/enum_struct/gen/enum_structCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_EnumStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const EnumStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_EnumStruct_cdr_plain(data_representation) && + sizeof(EnumStruct) == EnumStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(EnumStruct)); + + scdr.jump((array_size -1) * sizeof(EnumStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + EnumStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_EnumStruct_cdr_plain(data_representation) && + sizeof(EnumStruct) == EnumStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(EnumStruct)); + + scdr.jump((array_size - 1) * sizeof(EnumStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const EnumStruct& data) diff --git a/test/unittest/dds/xtypes/serializers/idl/types/enum_struct/gen/enum_structPubSubTypes.cxx b/test/unittest/dds/xtypes/serializers/idl/types/enum_struct/gen/enum_structPubSubTypes.cxx index 484825361c2..713f5856649 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/enum_struct/gen/enum_structPubSubTypes.cxx +++ b/test/unittest/dds/xtypes/serializers/idl/types/enum_struct/gen/enum_structPubSubTypes.cxx @@ -31,6 +31,16 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_EnumStruct_cdr_plain( + DataRepresentationId_t data_representation); + + +} // namespace fastcdr +} // namespace eprosima + EnumStructPubSubType::EnumStructPubSubType() { set_name("EnumStruct"); @@ -149,6 +159,17 @@ void EnumStructPubSubType::delete_data( delete(reinterpret_cast<::EnumStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool EnumStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool EnumStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/unittest/dds/xtypes/serializers/idl/types/enum_struct/gen/enum_structPubSubTypes.hpp b/test/unittest/dds/xtypes/serializers/idl/types/enum_struct/gen/enum_structPubSubTypes.hpp index affc2c99988..aedb4de27e9 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/enum_struct/gen/enum_structPubSubTypes.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/enum_struct/gen/enum_structPubSubTypes.hpp @@ -93,12 +93,8 @@ class EnumStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/unittest/dds/xtypes/serializers/idl/types/extensibility_struct/gen/extensibility_structCdrAux.hpp b/test/unittest/dds/xtypes/serializers/idl/types/extensibility_struct/gen/extensibility_structCdrAux.hpp index 0afac4151bf..23062d1dea2 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/extensibility_struct/gen/extensibility_structCdrAux.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/extensibility_struct/gen/extensibility_structCdrAux.hpp @@ -46,19 +46,55 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalStruct& data); +#ifndef SWIG +namespace detail { + +template +struct FinalStruct_rob +{ + friend constexpr typename Tag::type get( + Tag) + { + return M; + } + +}; + +struct FinalStruct_f +{ + typedef uint8_t FinalStruct::* type; + friend constexpr type get( + FinalStruct_f); +}; + +template struct FinalStruct_rob; + +template +inline std::size_t constexpr FinalStruct_offset_of() +{ + return ((std::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); +} + +} // namespace detail +#endif // ifndef SWIG + + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ExtensibilityStruct& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/unittest/dds/xtypes/serializers/idl/types/extensibility_struct/gen/extensibility_structCdrAux.ipp b/test/unittest/dds/xtypes/serializers/idl/types/extensibility_struct/gen/extensibility_structCdrAux.ipp index df9c51f692e..2fadb9664a6 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/extensibility_struct/gen/extensibility_structCdrAux.ipp +++ b/test/unittest/dds/xtypes/serializers/idl/types/extensibility_struct/gen/extensibility_structCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,24 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_FinalStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) + { + return 1ULL == + (detail::FinalStruct_offset_of() + + sizeof(uint8_t)); + } + else + { + return 1ULL == + (detail::FinalStruct_offset_of() + + sizeof(uint8_t)); + } +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +95,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const FinalStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalStruct_cdr_plain(data_representation) && + sizeof(FinalStruct) == FinalStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(FinalStruct)); + + scdr.jump((array_size -1) * sizeof(FinalStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +158,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + FinalStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_FinalStruct_cdr_plain(data_representation) && + sizeof(FinalStruct) == FinalStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(FinalStruct)); + + scdr.jump((array_size - 1) * sizeof(FinalStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const FinalStruct& data) @@ -113,6 +206,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MutableStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -155,6 +256,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MutableStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableStruct_cdr_plain(data_representation) && + sizeof(MutableStruct) == MutableStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MutableStruct)); + + scdr.jump((array_size -1) * sizeof(MutableStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -180,6 +319,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MutableStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MutableStruct_cdr_plain(data_representation) && + sizeof(MutableStruct) == MutableStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MutableStruct)); + + scdr.jump((array_size - 1) * sizeof(MutableStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MutableStruct& data) @@ -192,6 +367,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_AppendableStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -234,6 +417,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AppendableStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableStruct_cdr_plain(data_representation) && + sizeof(AppendableStruct) == AppendableStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AppendableStruct)); + + scdr.jump((array_size -1) * sizeof(AppendableStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -259,6 +480,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AppendableStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AppendableStruct_cdr_plain(data_representation) && + sizeof(AppendableStruct) == AppendableStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AppendableStruct)); + + scdr.jump((array_size - 1) * sizeof(AppendableStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AppendableStruct& data) @@ -271,6 +528,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ExtensibilityStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -321,6 +586,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ExtensibilityStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ExtensibilityStruct_cdr_plain(data_representation) && + sizeof(ExtensibilityStruct) == ExtensibilityStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ExtensibilityStruct)); + + scdr.jump((array_size -1) * sizeof(ExtensibilityStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -354,6 +657,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ExtensibilityStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ExtensibilityStruct_cdr_plain(data_representation) && + sizeof(ExtensibilityStruct) == ExtensibilityStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ExtensibilityStruct)); + + scdr.jump((array_size - 1) * sizeof(ExtensibilityStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ExtensibilityStruct& data) diff --git a/test/unittest/dds/xtypes/serializers/idl/types/extensibility_struct/gen/extensibility_structPubSubTypes.cxx b/test/unittest/dds/xtypes/serializers/idl/types/extensibility_struct/gen/extensibility_structPubSubTypes.cxx index 04e7291f94d..b665cb64a6e 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/extensibility_struct/gen/extensibility_structPubSubTypes.cxx +++ b/test/unittest/dds/xtypes/serializers/idl/types/extensibility_struct/gen/extensibility_structPubSubTypes.cxx @@ -31,6 +31,24 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_MutableStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ExtensibilityStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_FinalStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_AppendableStruct_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + FinalStructPubSubType::FinalStructPubSubType() { set_name("FinalStruct"); @@ -149,6 +167,16 @@ void FinalStructPubSubType::delete_data( delete(reinterpret_cast<::FinalStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool FinalStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + return eprosima::fastcdr::is_FinalStruct_cdr_plain(data_representation); + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool FinalStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +359,17 @@ void MutableStructPubSubType::delete_data( delete(reinterpret_cast<::MutableStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MutableStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MutableStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +552,17 @@ void AppendableStructPubSubType::delete_data( delete(reinterpret_cast<::AppendableStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AppendableStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AppendableStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -695,6 +745,17 @@ void ExtensibilityStructPubSubType::delete_data( delete(reinterpret_cast<::ExtensibilityStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ExtensibilityStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ExtensibilityStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/unittest/dds/xtypes/serializers/idl/types/extensibility_struct/gen/extensibility_structPubSubTypes.hpp b/test/unittest/dds/xtypes/serializers/idl/types/extensibility_struct/gen/extensibility_structPubSubTypes.hpp index 402f0ada398..dcb0cd6623b 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/extensibility_struct/gen/extensibility_structPubSubTypes.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/extensibility_struct/gen/extensibility_structPubSubTypes.hpp @@ -38,39 +38,6 @@ #endif // FASTDDS_GEN_API_VER -#ifndef SWIG -namespace detail { - -template -struct FinalStruct_rob -{ - friend constexpr typename Tag::type get( - Tag) - { - return M; - } - -}; - -struct FinalStruct_f -{ - typedef uint8_t FinalStruct::* type; - friend constexpr type get( - FinalStruct_f); -}; - -template struct FinalStruct_rob; - -template -inline size_t constexpr FinalStruct_offset_of() -{ - return ((::size_t) &reinterpret_cast((((T*)0)->*get(Tag())))); -} - -} // namespace detail -#endif // ifndef SWIG - - /*! * @brief This class represents the TopicDataType of the type FinalStruct defined by the user in the IDL file. * @ingroup extensibility_struct @@ -126,18 +93,8 @@ class FinalStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - if (data_representation == eprosima::fastdds::dds::DataRepresentationId_t::XCDR2_DATA_REPRESENTATION) - { - return is_plain_xcdrv2_impl(); - } - else - { - return is_plain_xcdrv1_impl(); - } - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -156,21 +113,6 @@ class FinalStructPubSubType : public eprosima::fastdds::dds::TopicDataType eprosima::fastdds::MD5 md5_; unsigned char* key_buffer_; - - static constexpr bool is_plain_xcdrv1_impl() - { - return 1ULL == - (detail::FinalStruct_offset_of() + - sizeof(uint8_t)); - } - - static constexpr bool is_plain_xcdrv2_impl() - { - return 1ULL == - (detail::FinalStruct_offset_of() + - sizeof(uint8_t)); - } - }; @@ -229,12 +171,8 @@ class MutableStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -311,12 +249,8 @@ class AppendableStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -393,12 +327,8 @@ class ExtensibilityStructPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/unittest/dds/xtypes/serializers/idl/types/key_struct/gen/key_structCdrAux.hpp b/test/unittest/dds/xtypes/serializers/idl/types/key_struct/gen/key_structCdrAux.hpp index a22edf2cdc9..61511b905ac 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/key_struct/gen/key_structCdrAux.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/key_struct/gen/key_structCdrAux.hpp @@ -40,11 +40,13 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ImportantStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyStruct& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/unittest/dds/xtypes/serializers/idl/types/key_struct/gen/key_structCdrAux.ipp b/test/unittest/dds/xtypes/serializers/idl/types/key_struct/gen/key_structCdrAux.ipp index 57d935ed364..9462ea6adc5 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/key_struct/gen/key_structCdrAux.ipp +++ b/test/unittest/dds/xtypes/serializers/idl/types/key_struct/gen/key_structCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_ImportantStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -84,6 +93,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ImportantStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ImportantStruct_cdr_plain(data_representation) && + sizeof(ImportantStruct) == ImportantStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ImportantStruct)); + + scdr.jump((array_size -1) * sizeof(ImportantStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -117,6 +164,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ImportantStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ImportantStruct_cdr_plain(data_representation) && + sizeof(ImportantStruct) == ImportantStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ImportantStruct)); + + scdr.jump((array_size - 1) * sizeof(ImportantStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ImportantStruct& data) @@ -132,6 +215,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_KeyStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -186,6 +277,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const KeyStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyStruct_cdr_plain(data_representation) && + sizeof(KeyStruct) == KeyStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(KeyStruct)); + + scdr.jump((array_size -1) * sizeof(KeyStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -223,6 +352,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + KeyStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_KeyStruct_cdr_plain(data_representation) && + sizeof(KeyStruct) == KeyStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(KeyStruct)); + + scdr.jump((array_size - 1) * sizeof(KeyStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const KeyStruct& data) diff --git a/test/unittest/dds/xtypes/serializers/idl/types/key_struct/gen/key_structPubSubTypes.cxx b/test/unittest/dds/xtypes/serializers/idl/types/key_struct/gen/key_structPubSubTypes.cxx index 8aca1bb026c..1fee8b27476 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/key_struct/gen/key_structPubSubTypes.cxx +++ b/test/unittest/dds/xtypes/serializers/idl/types/key_struct/gen/key_structPubSubTypes.cxx @@ -31,6 +31,18 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_ImportantStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_KeyStruct_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + ImportantStructPubSubType::ImportantStructPubSubType() { set_name("ImportantStruct"); @@ -149,6 +161,17 @@ void ImportantStructPubSubType::delete_data( delete(reinterpret_cast<::ImportantStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ImportantStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ImportantStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +354,17 @@ void KeyStructPubSubType::delete_data( delete(reinterpret_cast<::KeyStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool KeyStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool KeyStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/unittest/dds/xtypes/serializers/idl/types/key_struct/gen/key_structPubSubTypes.hpp b/test/unittest/dds/xtypes/serializers/idl/types/key_struct/gen/key_structPubSubTypes.hpp index 1a03c43e87d..82c3cc9660c 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/key_struct/gen/key_structPubSubTypes.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/key_struct/gen/key_structPubSubTypes.hpp @@ -93,12 +93,8 @@ class ImportantStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -175,12 +171,8 @@ class KeyStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/unittest/dds/xtypes/serializers/idl/types/map_struct/gen/map_structCdrAux.hpp b/test/unittest/dds/xtypes/serializers/idl/types/map_struct/gen/map_structCdrAux.hpp index e6898d7bb2d..a0a896d9765 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/map_struct/gen/map_structCdrAux.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/map_struct/gen/map_structCdrAux.hpp @@ -40,11 +40,13 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ValueStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStruct& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/unittest/dds/xtypes/serializers/idl/types/map_struct/gen/map_structCdrAux.ipp b/test/unittest/dds/xtypes/serializers/idl/types/map_struct/gen/map_structCdrAux.ipp index ce956d24564..4f1823e03ca 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/map_struct/gen/map_structCdrAux.ipp +++ b/test/unittest/dds/xtypes/serializers/idl/types/map_struct/gen/map_structCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_ValueStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ValueStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ValueStruct_cdr_plain(data_representation) && + sizeof(ValueStruct) == ValueStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ValueStruct)); + + scdr.jump((array_size -1) * sizeof(ValueStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ValueStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ValueStruct_cdr_plain(data_representation) && + sizeof(ValueStruct) == ValueStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ValueStruct)); + + scdr.jump((array_size - 1) * sizeof(ValueStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ValueStruct& data) @@ -113,6 +196,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_MapStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -167,6 +258,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MapStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStruct_cdr_plain(data_representation) && + sizeof(MapStruct) == MapStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(MapStruct)); + + scdr.jump((array_size -1) * sizeof(MapStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -204,6 +333,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MapStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_MapStruct_cdr_plain(data_representation) && + sizeof(MapStruct) == MapStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(MapStruct)); + + scdr.jump((array_size - 1) * sizeof(MapStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const MapStruct& data) diff --git a/test/unittest/dds/xtypes/serializers/idl/types/map_struct/gen/map_structPubSubTypes.cxx b/test/unittest/dds/xtypes/serializers/idl/types/map_struct/gen/map_structPubSubTypes.cxx index 6d4b1b44d68..e0d44b5263f 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/map_struct/gen/map_structPubSubTypes.cxx +++ b/test/unittest/dds/xtypes/serializers/idl/types/map_struct/gen/map_structPubSubTypes.cxx @@ -31,6 +31,18 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_ValueStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_MapStruct_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + ValueStructPubSubType::ValueStructPubSubType() { set_name("ValueStruct"); @@ -149,6 +161,17 @@ void ValueStructPubSubType::delete_data( delete(reinterpret_cast<::ValueStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ValueStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ValueStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +354,17 @@ void MapStructPubSubType::delete_data( delete(reinterpret_cast<::MapStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool MapStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool MapStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/unittest/dds/xtypes/serializers/idl/types/map_struct/gen/map_structPubSubTypes.hpp b/test/unittest/dds/xtypes/serializers/idl/types/map_struct/gen/map_structPubSubTypes.hpp index 9d9f8b77151..4923a1f9f2f 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/map_struct/gen/map_structPubSubTypes.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/map_struct/gen/map_structPubSubTypes.hpp @@ -93,12 +93,8 @@ class ValueStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -175,12 +171,8 @@ class MapStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/unittest/dds/xtypes/serializers/idl/types/module_struct/module_structCdrAux.hpp b/test/unittest/dds/xtypes/serializers/idl/types/module_struct/module_structCdrAux.hpp index 04e7d0816d0..3a0035cb1a1 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/module_struct/module_structCdrAux.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/module_struct/module_structCdrAux.hpp @@ -45,11 +45,13 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const TrialModule::StructModule::StructType& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ModuleStruct& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/unittest/dds/xtypes/serializers/idl/types/module_struct/module_structCdrAux.ipp b/test/unittest/dds/xtypes/serializers/idl/types/module_struct/module_structCdrAux.ipp index 6cc0198389c..dfe34dd9ef4 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/module_struct/module_structCdrAux.ipp +++ b/test/unittest/dds/xtypes/serializers/idl/types/module_struct/module_structCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -67,6 +68,19 @@ eProsima_user_DllExport void serialize( scdr << bitset; } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const TrialModule::BitsetModule::BitsetType* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of bitsets not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& dcdr, @@ -88,6 +102,27 @@ eProsima_user_DllExport void deserialize( } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + TrialModule::BitsetModule::BitsetType* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of bitsets not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_TrialModule_StructModule_StructType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -134,6 +169,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const TrialModule::StructModule::StructType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_TrialModule_StructModule_StructType_cdr_plain(data_representation) && + sizeof(TrialModule::StructModule::StructType) == TrialModule_StructModule_StructType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(TrialModule::StructModule::StructType)); + + scdr.jump((array_size -1) * sizeof(TrialModule::StructModule::StructType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -161,6 +234,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + TrialModule::StructModule::StructType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_TrialModule_StructModule_StructType_cdr_plain(data_representation) && + sizeof(TrialModule::StructModule::StructType) == TrialModule_StructModule_StructType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(TrialModule::StructModule::StructType)); + + scdr.jump((array_size - 1) * sizeof(TrialModule::StructModule::StructType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const TrialModule::StructModule::StructType& data) @@ -253,6 +362,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const TrialModule::UnionModule::UnionType* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -322,6 +444,27 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + TrialModule::UnionModule::UnionType* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_ModuleStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -384,6 +527,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ModuleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ModuleStruct_cdr_plain(data_representation) && + sizeof(ModuleStruct) == ModuleStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ModuleStruct)); + + scdr.jump((array_size -1) * sizeof(ModuleStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -429,6 +610,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ModuleStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ModuleStruct_cdr_plain(data_representation) && + sizeof(ModuleStruct) == ModuleStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ModuleStruct)); + + scdr.jump((array_size - 1) * sizeof(ModuleStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ModuleStruct& data) diff --git a/test/unittest/dds/xtypes/serializers/idl/types/module_struct/module_structPubSubTypes.cxx b/test/unittest/dds/xtypes/serializers/idl/types/module_struct/module_structPubSubTypes.cxx index 0562b62e7b5..497698744bf 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/module_struct/module_structPubSubTypes.cxx +++ b/test/unittest/dds/xtypes/serializers/idl/types/module_struct/module_structPubSubTypes.cxx @@ -31,6 +31,23 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_TrialModule_StructModule_StructType_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_ModuleStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + +} // namespace fastcdr +} // namespace eprosima + namespace TrialModule { namespace AliasModule { } // namespace AliasModule @@ -175,6 +192,17 @@ namespace TrialModule { delete(reinterpret_cast<::TrialModule::StructModule::StructType*>(data)); } + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructTypePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructTypePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -367,6 +395,17 @@ void ModuleStructPubSubType::delete_data( delete(reinterpret_cast<::ModuleStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ModuleStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ModuleStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/unittest/dds/xtypes/serializers/idl/types/module_struct/module_structPubSubTypes.hpp b/test/unittest/dds/xtypes/serializers/idl/types/module_struct/module_structPubSubTypes.hpp index aabb567c433..4661e6615c5 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/module_struct/module_structPubSubTypes.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/module_struct/module_structPubSubTypes.hpp @@ -122,12 +122,8 @@ namespace TrialModule #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -212,12 +208,8 @@ class ModuleStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/unittest/dds/xtypes/serializers/idl/types/primitives_struct/gen/primitives_structCdrAux.hpp b/test/unittest/dds/xtypes/serializers/idl/types/primitives_struct/gen/primitives_structCdrAux.hpp index 5fd2e1ef911..09e6fd87d58 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/primitives_struct/gen/primitives_structCdrAux.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/primitives_struct/gen/primitives_structCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const PrimitivesStruct& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/unittest/dds/xtypes/serializers/idl/types/primitives_struct/gen/primitives_structCdrAux.ipp b/test/unittest/dds/xtypes/serializers/idl/types/primitives_struct/gen/primitives_structCdrAux.ipp index 93b5642ce32..26c9cec5c9b 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/primitives_struct/gen/primitives_structCdrAux.ipp +++ b/test/unittest/dds/xtypes/serializers/idl/types/primitives_struct/gen/primitives_structCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_PrimitivesStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -132,6 +141,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const PrimitivesStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_PrimitivesStruct_cdr_plain(data_representation) && + sizeof(PrimitivesStruct) == PrimitivesStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(PrimitivesStruct)); + + scdr.jump((array_size -1) * sizeof(PrimitivesStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -213,6 +260,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + PrimitivesStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_PrimitivesStruct_cdr_plain(data_representation) && + sizeof(PrimitivesStruct) == PrimitivesStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(PrimitivesStruct)); + + scdr.jump((array_size - 1) * sizeof(PrimitivesStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const PrimitivesStruct& data) diff --git a/test/unittest/dds/xtypes/serializers/idl/types/primitives_struct/gen/primitives_structPubSubTypes.cxx b/test/unittest/dds/xtypes/serializers/idl/types/primitives_struct/gen/primitives_structPubSubTypes.cxx index c56f83af1d2..10635df2f94 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/primitives_struct/gen/primitives_structPubSubTypes.cxx +++ b/test/unittest/dds/xtypes/serializers/idl/types/primitives_struct/gen/primitives_structPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_PrimitivesStruct_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + PrimitivesStructPubSubType::PrimitivesStructPubSubType() { set_name("PrimitivesStruct"); @@ -149,6 +158,17 @@ void PrimitivesStructPubSubType::delete_data( delete(reinterpret_cast<::PrimitivesStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool PrimitivesStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool PrimitivesStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/unittest/dds/xtypes/serializers/idl/types/primitives_struct/gen/primitives_structPubSubTypes.hpp b/test/unittest/dds/xtypes/serializers/idl/types/primitives_struct/gen/primitives_structPubSubTypes.hpp index c90d669aa31..10ec7460075 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/primitives_struct/gen/primitives_structPubSubTypes.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/primitives_struct/gen/primitives_structPubSubTypes.hpp @@ -93,12 +93,8 @@ class PrimitivesStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/unittest/dds/xtypes/serializers/idl/types/sequence_struct/gen/sequence_structCdrAux.hpp b/test/unittest/dds/xtypes/serializers/idl/types/sequence_struct/gen/sequence_structCdrAux.hpp index 2d8b3233970..5f88ce501cf 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/sequence_struct/gen/sequence_structCdrAux.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/sequence_struct/gen/sequence_structCdrAux.hpp @@ -43,15 +43,18 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const NestedSequenceElement& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ComplexSequenceElement& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceStruct& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/unittest/dds/xtypes/serializers/idl/types/sequence_struct/gen/sequence_structCdrAux.ipp b/test/unittest/dds/xtypes/serializers/idl/types/sequence_struct/gen/sequence_structCdrAux.ipp index 48d7985bde4..ba935dfc9bc 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/sequence_struct/gen/sequence_structCdrAux.ipp +++ b/test/unittest/dds/xtypes/serializers/idl/types/sequence_struct/gen/sequence_structCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_NestedSequenceElement_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const NestedSequenceElement* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_NestedSequenceElement_cdr_plain(data_representation) && + sizeof(NestedSequenceElement) == NestedSequenceElement_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(NestedSequenceElement)); + + scdr.jump((array_size -1) * sizeof(NestedSequenceElement)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + NestedSequenceElement* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_NestedSequenceElement_cdr_plain(data_representation) && + sizeof(NestedSequenceElement) == NestedSequenceElement_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(NestedSequenceElement)); + + scdr.jump((array_size - 1) * sizeof(NestedSequenceElement)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const NestedSequenceElement& data) @@ -113,6 +196,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ComplexSequenceElement_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -163,6 +254,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ComplexSequenceElement* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ComplexSequenceElement_cdr_plain(data_representation) && + sizeof(ComplexSequenceElement) == ComplexSequenceElement_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ComplexSequenceElement)); + + scdr.jump((array_size -1) * sizeof(ComplexSequenceElement)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -196,6 +325,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ComplexSequenceElement* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ComplexSequenceElement_cdr_plain(data_representation) && + sizeof(ComplexSequenceElement) == ComplexSequenceElement_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ComplexSequenceElement)); + + scdr.jump((array_size - 1) * sizeof(ComplexSequenceElement)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ComplexSequenceElement& data) @@ -216,6 +381,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_SequenceStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -270,6 +443,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const SequenceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceStruct_cdr_plain(data_representation) && + sizeof(SequenceStruct) == SequenceStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(SequenceStruct)); + + scdr.jump((array_size -1) * sizeof(SequenceStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -307,6 +518,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + SequenceStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_SequenceStruct_cdr_plain(data_representation) && + sizeof(SequenceStruct) == SequenceStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(SequenceStruct)); + + scdr.jump((array_size - 1) * sizeof(SequenceStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const SequenceStruct& data) diff --git a/test/unittest/dds/xtypes/serializers/idl/types/sequence_struct/gen/sequence_structPubSubTypes.cxx b/test/unittest/dds/xtypes/serializers/idl/types/sequence_struct/gen/sequence_structPubSubTypes.cxx index f91e7630f83..04a5ff428cc 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/sequence_struct/gen/sequence_structPubSubTypes.cxx +++ b/test/unittest/dds/xtypes/serializers/idl/types/sequence_struct/gen/sequence_structPubSubTypes.cxx @@ -31,6 +31,21 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_NestedSequenceElement_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ComplexSequenceElement_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_SequenceStruct_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + NestedSequenceElementPubSubType::NestedSequenceElementPubSubType() { set_name("NestedSequenceElement"); @@ -149,6 +164,17 @@ void NestedSequenceElementPubSubType::delete_data( delete(reinterpret_cast<::NestedSequenceElement*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool NestedSequenceElementPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool NestedSequenceElementPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +357,17 @@ void ComplexSequenceElementPubSubType::delete_data( delete(reinterpret_cast<::ComplexSequenceElement*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ComplexSequenceElementPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ComplexSequenceElementPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +550,17 @@ void SequenceStructPubSubType::delete_data( delete(reinterpret_cast<::SequenceStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool SequenceStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool SequenceStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/unittest/dds/xtypes/serializers/idl/types/sequence_struct/gen/sequence_structPubSubTypes.hpp b/test/unittest/dds/xtypes/serializers/idl/types/sequence_struct/gen/sequence_structPubSubTypes.hpp index 6c4e3f852ae..e28a2aa5018 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/sequence_struct/gen/sequence_structPubSubTypes.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/sequence_struct/gen/sequence_structPubSubTypes.hpp @@ -93,12 +93,8 @@ class NestedSequenceElementPubSubType : public eprosima::fastdds::dds::TopicData #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -175,12 +171,8 @@ class ComplexSequenceElementPubSubType : public eprosima::fastdds::dds::TopicDat #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -257,12 +249,8 @@ class SequenceStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/unittest/dds/xtypes/serializers/idl/types/string_struct/gen/string_structCdrAux.hpp b/test/unittest/dds/xtypes/serializers/idl/types/string_struct/gen/string_structCdrAux.hpp index e9db8f0edd5..6041e380364 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/string_struct/gen/string_structCdrAux.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/string_struct/gen/string_structCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const StringStruct& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/unittest/dds/xtypes/serializers/idl/types/string_struct/gen/string_structCdrAux.ipp b/test/unittest/dds/xtypes/serializers/idl/types/string_struct/gen/string_structCdrAux.ipp index d1a9b9998b6..e6815c347e4 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/string_struct/gen/string_structCdrAux.ipp +++ b/test/unittest/dds/xtypes/serializers/idl/types/string_struct/gen/string_structCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_StringStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -88,6 +97,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StringStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StringStruct_cdr_plain(data_representation) && + sizeof(StringStruct) == StringStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StringStruct)); + + scdr.jump((array_size -1) * sizeof(StringStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -125,6 +172,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StringStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StringStruct_cdr_plain(data_representation) && + sizeof(StringStruct) == StringStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StringStruct)); + + scdr.jump((array_size - 1) * sizeof(StringStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StringStruct& data) diff --git a/test/unittest/dds/xtypes/serializers/idl/types/string_struct/gen/string_structPubSubTypes.cxx b/test/unittest/dds/xtypes/serializers/idl/types/string_struct/gen/string_structPubSubTypes.cxx index 492a11628bf..cec883e522c 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/string_struct/gen/string_structPubSubTypes.cxx +++ b/test/unittest/dds/xtypes/serializers/idl/types/string_struct/gen/string_structPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_StringStruct_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + StringStructPubSubType::StringStructPubSubType() { set_name("StringStruct"); @@ -149,6 +158,17 @@ void StringStructPubSubType::delete_data( delete(reinterpret_cast<::StringStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StringStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StringStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/unittest/dds/xtypes/serializers/idl/types/string_struct/gen/string_structPubSubTypes.hpp b/test/unittest/dds/xtypes/serializers/idl/types/string_struct/gen/string_structPubSubTypes.hpp index c5ee4b968f1..5e77e62a746 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/string_struct/gen/string_structPubSubTypes.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/string_struct/gen/string_structPubSubTypes.hpp @@ -93,12 +93,8 @@ class StringStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/unittest/dds/xtypes/serializers/idl/types/struct_struct/gen/struct_structCdrAux.hpp b/test/unittest/dds/xtypes/serializers/idl/types/struct_struct/gen/struct_structCdrAux.hpp index 7f5ce8f858a..ed278121d72 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/struct_struct/gen/struct_structCdrAux.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/struct_struct/gen/struct_structCdrAux.hpp @@ -46,19 +46,23 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const GrandparentStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ParentStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const NestedStructElement& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructStruct& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/unittest/dds/xtypes/serializers/idl/types/struct_struct/gen/struct_structCdrAux.ipp b/test/unittest/dds/xtypes/serializers/idl/types/struct_struct/gen/struct_structCdrAux.ipp index 8cb5b83fd9f..d4e6f74358e 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/struct_struct/gen/struct_structCdrAux.ipp +++ b/test/unittest/dds/xtypes/serializers/idl/types/struct_struct/gen/struct_structCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_GrandparentStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -76,6 +85,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const GrandparentStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_GrandparentStruct_cdr_plain(data_representation) && + sizeof(GrandparentStruct) == GrandparentStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(GrandparentStruct)); + + scdr.jump((array_size -1) * sizeof(GrandparentStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -101,6 +148,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + GrandparentStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_GrandparentStruct_cdr_plain(data_representation) && + sizeof(GrandparentStruct) == GrandparentStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(GrandparentStruct)); + + scdr.jump((array_size - 1) * sizeof(GrandparentStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const GrandparentStruct& data) @@ -113,6 +196,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ParentStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -167,6 +258,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ParentStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ParentStruct_cdr_plain(data_representation) && + sizeof(ParentStruct) == ParentStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ParentStruct)); + + scdr.jump((array_size -1) * sizeof(ParentStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -204,6 +333,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ParentStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ParentStruct_cdr_plain(data_representation) && + sizeof(ParentStruct) == ParentStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ParentStruct)); + + scdr.jump((array_size - 1) * sizeof(ParentStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ParentStruct& data) @@ -215,6 +380,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_NestedStructElement_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -257,6 +430,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const NestedStructElement* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_NestedStructElement_cdr_plain(data_representation) && + sizeof(NestedStructElement) == NestedStructElement_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(NestedStructElement)); + + scdr.jump((array_size -1) * sizeof(NestedStructElement)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -282,6 +493,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + NestedStructElement* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_NestedStructElement_cdr_plain(data_representation) && + sizeof(NestedStructElement) == NestedStructElement_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(NestedStructElement)); + + scdr.jump((array_size - 1) * sizeof(NestedStructElement)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const NestedStructElement& data) @@ -294,6 +541,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_StructStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -356,6 +611,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const StructStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructStruct_cdr_plain(data_representation) && + sizeof(StructStruct) == StructStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(StructStruct)); + + scdr.jump((array_size -1) * sizeof(StructStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -401,6 +694,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + StructStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_StructStruct_cdr_plain(data_representation) && + sizeof(StructStruct) == StructStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(StructStruct)); + + scdr.jump((array_size - 1) * sizeof(StructStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const StructStruct& data) diff --git a/test/unittest/dds/xtypes/serializers/idl/types/struct_struct/gen/struct_structPubSubTypes.cxx b/test/unittest/dds/xtypes/serializers/idl/types/struct_struct/gen/struct_structPubSubTypes.cxx index 10d850019ba..07728802371 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/struct_struct/gen/struct_structPubSubTypes.cxx +++ b/test/unittest/dds/xtypes/serializers/idl/types/struct_struct/gen/struct_structPubSubTypes.cxx @@ -31,6 +31,24 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_NestedStructElement_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ParentStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_GrandparentStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_StructStruct_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + GrandparentStructPubSubType::GrandparentStructPubSubType() { set_name("GrandparentStruct"); @@ -149,6 +167,17 @@ void GrandparentStructPubSubType::delete_data( delete(reinterpret_cast<::GrandparentStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool GrandparentStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool GrandparentStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +360,17 @@ void ParentStructPubSubType::delete_data( delete(reinterpret_cast<::ParentStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ParentStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ParentStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +553,17 @@ void NestedStructElementPubSubType::delete_data( delete(reinterpret_cast<::NestedStructElement*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool NestedStructElementPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool NestedStructElementPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -695,6 +746,17 @@ void StructStructPubSubType::delete_data( delete(reinterpret_cast<::StructStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool StructStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool StructStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/unittest/dds/xtypes/serializers/idl/types/struct_struct/gen/struct_structPubSubTypes.hpp b/test/unittest/dds/xtypes/serializers/idl/types/struct_struct/gen/struct_structPubSubTypes.hpp index 8ec47bacd48..1a41a5055c0 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/struct_struct/gen/struct_structPubSubTypes.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/struct_struct/gen/struct_structPubSubTypes.hpp @@ -93,12 +93,8 @@ class GrandparentStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -175,12 +171,8 @@ class ParentStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -257,12 +249,8 @@ class NestedStructElementPubSubType : public eprosima::fastdds::dds::TopicDataTy #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -339,12 +327,8 @@ class StructStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/unittest/dds/xtypes/serializers/idl/types/union_struct/gen/union_structCdrAux.hpp b/test/unittest/dds/xtypes/serializers/idl/types/union_struct/gen/union_structCdrAux.hpp index 91187a29840..3e3759162ea 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/union_struct/gen/union_structCdrAux.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/union_struct/gen/union_structCdrAux.hpp @@ -38,6 +38,7 @@ eProsima_user_DllExport void serialize_key( const UnionStruct& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/unittest/dds/xtypes/serializers/idl/types/union_struct/gen/union_structCdrAux.ipp b/test/unittest/dds/xtypes/serializers/idl/types/union_struct/gen/union_structCdrAux.ipp index c06fa2649e3..ab9a73b5be4 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/union_struct/gen/union_structCdrAux.ipp +++ b/test/unittest/dds/xtypes/serializers/idl/types/union_struct/gen/union_structCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -102,6 +103,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const BasicUnion* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -159,6 +173,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + BasicUnion* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -227,6 +254,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ComplexUnion* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -284,6 +324,27 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ComplexUnion* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_UnionStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -326,6 +387,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const UnionStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionStruct_cdr_plain(data_representation) && + sizeof(UnionStruct) == UnionStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(UnionStruct)); + + scdr.jump((array_size -1) * sizeof(UnionStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -351,6 +450,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + UnionStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_UnionStruct_cdr_plain(data_representation) && + sizeof(UnionStruct) == UnionStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(UnionStruct)); + + scdr.jump((array_size - 1) * sizeof(UnionStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const UnionStruct& data) diff --git a/test/unittest/dds/xtypes/serializers/idl/types/union_struct/gen/union_structPubSubTypes.cxx b/test/unittest/dds/xtypes/serializers/idl/types/union_struct/gen/union_structPubSubTypes.cxx index 8d879bb8aad..aec54167523 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/union_struct/gen/union_structPubSubTypes.cxx +++ b/test/unittest/dds/xtypes/serializers/idl/types/union_struct/gen/union_structPubSubTypes.cxx @@ -31,6 +31,15 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_UnionStruct_cdr_plain( + DataRepresentationId_t data_representation); + +} // namespace fastcdr +} // namespace eprosima + UnionStructPubSubType::UnionStructPubSubType() { set_name("UnionStruct"); @@ -149,6 +158,17 @@ void UnionStructPubSubType::delete_data( delete(reinterpret_cast<::UnionStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool UnionStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool UnionStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/unittest/dds/xtypes/serializers/idl/types/union_struct/gen/union_structPubSubTypes.hpp b/test/unittest/dds/xtypes/serializers/idl/types/union_struct/gen/union_structPubSubTypes.hpp index 31f49b9f5de..a4ba800dc6d 100644 --- a/test/unittest/dds/xtypes/serializers/idl/types/union_struct/gen/union_structPubSubTypes.hpp +++ b/test/unittest/dds/xtypes/serializers/idl/types/union_struct/gen/union_structPubSubTypes.hpp @@ -93,12 +93,8 @@ class UnionStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN diff --git a/test/unittest/dds/xtypes/serializers/json/types/comprehensive_type/gen/ComprehensiveTypeCdrAux.hpp b/test/unittest/dds/xtypes/serializers/json/types/comprehensive_type/gen/ComprehensiveTypeCdrAux.hpp index 8181e8bfa32..1f624f86016 100644 --- a/test/unittest/dds/xtypes/serializers/json/types/comprehensive_type/gen/ComprehensiveTypeCdrAux.hpp +++ b/test/unittest/dds/xtypes/serializers/json/types/comprehensive_type/gen/ComprehensiveTypeCdrAux.hpp @@ -48,15 +48,18 @@ eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const PrimitivesStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const AllStruct& data); + eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, const ComprehensiveType& data); + } // namespace fastcdr } // namespace eprosima diff --git a/test/unittest/dds/xtypes/serializers/json/types/comprehensive_type/gen/ComprehensiveTypeCdrAux.ipp b/test/unittest/dds/xtypes/serializers/json/types/comprehensive_type/gen/ComprehensiveTypeCdrAux.ipp index 2cf56ef2d62..b1c5d3611c1 100644 --- a/test/unittest/dds/xtypes/serializers/json/types/comprehensive_type/gen/ComprehensiveTypeCdrAux.ipp +++ b/test/unittest/dds/xtypes/serializers/json/types/comprehensive_type/gen/ComprehensiveTypeCdrAux.ipp @@ -27,6 +27,7 @@ #include #include +#include #include using namespace eprosima::fastcdr::exception; @@ -34,6 +35,14 @@ using namespace eprosima::fastcdr::exception; namespace eprosima { namespace fastcdr { + +eProsima_user_DllExport bool is_PrimitivesStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -132,6 +141,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const PrimitivesStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_PrimitivesStruct_cdr_plain(data_representation) && + sizeof(PrimitivesStruct) == PrimitivesStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(PrimitivesStruct)); + + scdr.jump((array_size -1) * sizeof(PrimitivesStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -213,6 +260,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + PrimitivesStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_PrimitivesStruct_cdr_plain(data_representation) && + sizeof(PrimitivesStruct) == PrimitivesStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(PrimitivesStruct)); + + scdr.jump((array_size - 1) * sizeof(PrimitivesStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const PrimitivesStruct& data) @@ -321,6 +404,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const InnerUnion* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -378,6 +474,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + InnerUnion* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -446,6 +555,19 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ComplexUnion* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of unions not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -503,6 +625,19 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ComplexUnion* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of unions not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -537,6 +672,19 @@ eProsima_user_DllExport void serialize( scdr << bitset; } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const MyBitSet* array_ptr, + const std::size_t array_size) +{ + // Optimization for serialization + // of arrays of bitsets not yet supported + scdr.serialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& dcdr, @@ -561,6 +709,27 @@ eProsima_user_DllExport void deserialize( } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + MyBitSet* array_ptr, + const std::size_t array_size) +{ + // Optimization for deserialization + // of arrays of bitsets not yet supported + scdr.deserialize_array(array_ptr, array_size); +} +#endif // FASTCDR_VERSION_MAJOR > 2 + + +eProsima_user_DllExport bool is_AllStruct_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -739,6 +908,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const AllStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AllStruct_cdr_plain(data_representation) && + sizeof(AllStruct) == AllStruct_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(AllStruct)); + + scdr.jump((array_size -1) * sizeof(AllStruct)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -900,6 +1107,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + AllStruct* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_AllStruct_cdr_plain(data_representation) && + sizeof(AllStruct) == AllStruct_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(AllStruct)); + + scdr.jump((array_size - 1) * sizeof(AllStruct)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const AllStruct& data) @@ -911,6 +1154,14 @@ void serialize_key( } + +eProsima_user_DllExport bool is_ComprehensiveType_cdr_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) +{ + static_cast(data_representation); + return false; +} + template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, @@ -969,6 +1220,44 @@ eProsima_user_DllExport void serialize( scdr.end_serialize_type(current_state); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void serialize_array( + eprosima::fastcdr::Cdr& scdr, + const ComprehensiveType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ComprehensiveType_cdr_plain(data_representation) && + sizeof(ComprehensiveType) == ComprehensiveType_max_cdr_typesize) + { + // Serialize the first element + // to ensure correct alignment + scdr.serialize( + array_ptr[0]); + + ++array_ptr; + + std::memcpy( + scdr.get_current_position(), + array_ptr, + (array_size - 1) * sizeof(ComprehensiveType)); + + scdr.jump((array_size -1) * sizeof(ComprehensiveType)); + } + else + { + scdr.serialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, @@ -1010,6 +1299,42 @@ eProsima_user_DllExport void deserialize( }); } +#if FASTCDR_VERSION_MAJOR > 2 +template<> +eProsima_user_DllExport void deserialize_array( + eprosima::fastcdr::Cdr& scdr, + ComprehensiveType* array_ptr, + const std::size_t array_size) +{ + if (array_size > 0) + { + using namespace ::eprosima::fastdds::dds; + DataRepresentationId_t data_representation = (scdr.get_cdr_version() == eprosima::fastcdr::CdrVersion::XCDRv1 ? + DataRepresentationId_t::XCDR_DATA_REPRESENTATION : DataRepresentationId_t::XCDR2_DATA_REPRESENTATION); + + if (is_ComprehensiveType_cdr_plain(data_representation) && + sizeof(ComprehensiveType) == ComprehensiveType_max_cdr_typesize) + { + // Deserialize the first element + // accounting for alignment + scdr.deserialize_array(&array_ptr[0], 1); + ++array_ptr; + + std::memcpy( + reinterpret_cast(array_ptr), + scdr.get_current_position(), + (array_size - 1) * sizeof(ComprehensiveType)); + + scdr.jump((array_size - 1) * sizeof(ComprehensiveType)); + } + else + { + scdr.deserialize_array(array_ptr, array_size); + } + } +} +#endif // FASTCDR_VERSION_MAJOR > 2 + void serialize_key( eprosima::fastcdr::Cdr& scdr, const ComprehensiveType& data) diff --git a/test/unittest/dds/xtypes/serializers/json/types/comprehensive_type/gen/ComprehensiveTypePubSubTypes.cxx b/test/unittest/dds/xtypes/serializers/json/types/comprehensive_type/gen/ComprehensiveTypePubSubTypes.cxx index 5a4ddd9e6bc..bdba82702a6 100644 --- a/test/unittest/dds/xtypes/serializers/json/types/comprehensive_type/gen/ComprehensiveTypePubSubTypes.cxx +++ b/test/unittest/dds/xtypes/serializers/json/types/comprehensive_type/gen/ComprehensiveTypePubSubTypes.cxx @@ -31,6 +31,26 @@ using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t; +namespace eprosima { +namespace fastcdr { + +bool is_PrimitivesStruct_cdr_plain( + DataRepresentationId_t data_representation); + +bool is_ComprehensiveType_cdr_plain( + DataRepresentationId_t data_representation); + + + + +bool is_AllStruct_cdr_plain( + DataRepresentationId_t data_representation); + + + +} // namespace fastcdr +} // namespace eprosima + PrimitivesStructPubSubType::PrimitivesStructPubSubType() { set_name("PrimitivesStruct"); @@ -149,6 +169,17 @@ void PrimitivesStructPubSubType::delete_data( delete(reinterpret_cast<::PrimitivesStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool PrimitivesStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool PrimitivesStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -331,6 +362,17 @@ void AllStructPubSubType::delete_data( delete(reinterpret_cast<::AllStruct*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool AllStructPubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool AllStructPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, @@ -513,6 +555,17 @@ void ComprehensiveTypePubSubType::delete_data( delete(reinterpret_cast<::ComprehensiveType*>(data)); } +#ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + bool ComprehensiveTypePubSubType::is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const + { + static_cast(data_representation); + return false; + } + +#endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + bool ComprehensiveTypePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, diff --git a/test/unittest/dds/xtypes/serializers/json/types/comprehensive_type/gen/ComprehensiveTypePubSubTypes.hpp b/test/unittest/dds/xtypes/serializers/json/types/comprehensive_type/gen/ComprehensiveTypePubSubTypes.hpp index d3d8441b6b9..897e6612dd8 100644 --- a/test/unittest/dds/xtypes/serializers/json/types/comprehensive_type/gen/ComprehensiveTypePubSubTypes.hpp +++ b/test/unittest/dds/xtypes/serializers/json/types/comprehensive_type/gen/ComprehensiveTypePubSubTypes.hpp @@ -93,12 +93,8 @@ class PrimitivesStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -179,12 +175,8 @@ class AllStructPubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN @@ -261,12 +253,8 @@ class ComprehensiveTypePubSubType : public eprosima::fastdds::dds::TopicDataType #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN - eProsima_user_DllExport inline bool is_plain( - eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override - { - static_cast(data_representation); - return false; - } + eProsima_user_DllExport bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override; #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN From b677858de1a52089b88759b5c84742caa98250cf Mon Sep 17 00:00:00 2001 From: Mario Dominguez Date: Wed, 23 Jul 2025 14:53:20 +0200 Subject: [PATCH 2/3] Refs #23504: Add DDSXtypesCommunication tests cases tests Signed-off-by: Mario Dominguez --- test/dds/xtypes/TypeLookupServicePublisher.h | 3 ++ test/dds/xtypes/TypeLookupServiceSubscriber.h | 3 ++ .../xtypes/TypesTestsCases/Cases_arrays.json | 42 +++++++++++++++++++ .../TypesTestsCases/Cases_sequences.json | 21 ++++++++++ 4 files changed, 69 insertions(+) diff --git a/test/dds/xtypes/TypeLookupServicePublisher.h b/test/dds/xtypes/TypeLookupServicePublisher.h index b4a314322b2..cf6e2e81361 100644 --- a/test/dds/xtypes/TypeLookupServicePublisher.h +++ b/test/dds/xtypes/TypeLookupServicePublisher.h @@ -393,6 +393,8 @@ class TypeLookupServicePublisher PUBLISHER_TYPE_CREATOR_FUNCTION(ArrayWString); PUBLISHER_TYPE_CREATOR_FUNCTION(BoundedBigArrays); PUBLISHER_TYPE_CREATOR_FUNCTION(BoundedSmallArrays); + PUBLISHER_TYPE_CREATOR_FUNCTION(LargeBasicPlainArray); + PUBLISHER_TYPE_CREATOR_FUNCTION(LargePlainArray); PUBLISHER_TYPE_CREATOR_FUNCTION(BitsetStruct); PUBLISHER_TYPE_CREATOR_FUNCTION(ConstsLiteralsStruct); PUBLISHER_TYPE_CREATOR_FUNCTION(const_module1::ModuleConstsLiteralsStruct); @@ -791,6 +793,7 @@ class TypeLookupServicePublisher PUBLISHER_TYPE_CREATOR_FUNCTION(WCharStruct); PUBLISHER_TYPE_CREATOR_FUNCTION(BoundedBigSequences); PUBLISHER_TYPE_CREATOR_FUNCTION(BoundedSmallSequences); + PUBLISHER_TYPE_CREATOR_FUNCTION(LargePlainSequence); PUBLISHER_TYPE_CREATOR_FUNCTION(SequenceAlias); PUBLISHER_TYPE_CREATOR_FUNCTION(SequenceBitMask); PUBLISHER_TYPE_CREATOR_FUNCTION(SequenceBitset); diff --git a/test/dds/xtypes/TypeLookupServiceSubscriber.h b/test/dds/xtypes/TypeLookupServiceSubscriber.h index 44ca85d714f..8aec7908103 100644 --- a/test/dds/xtypes/TypeLookupServiceSubscriber.h +++ b/test/dds/xtypes/TypeLookupServiceSubscriber.h @@ -416,6 +416,8 @@ class TypeLookupServiceSubscriber SUBSCRIBER_TYPE_CREATOR_FUNCTION(ArrayWString); SUBSCRIBER_TYPE_CREATOR_FUNCTION(BoundedBigArrays); SUBSCRIBER_TYPE_CREATOR_FUNCTION(BoundedSmallArrays); + SUBSCRIBER_TYPE_CREATOR_FUNCTION(LargeBasicPlainArray); + SUBSCRIBER_TYPE_CREATOR_FUNCTION(LargePlainArray); SUBSCRIBER_TYPE_CREATOR_FUNCTION(BitsetStruct); SUBSCRIBER_TYPE_CREATOR_FUNCTION(ConstsLiteralsStruct); SUBSCRIBER_TYPE_CREATOR_FUNCTION(const_module1::ModuleConstsLiteralsStruct); @@ -814,6 +816,7 @@ class TypeLookupServiceSubscriber SUBSCRIBER_TYPE_CREATOR_FUNCTION(WCharStruct); SUBSCRIBER_TYPE_CREATOR_FUNCTION(BoundedBigSequences); SUBSCRIBER_TYPE_CREATOR_FUNCTION(BoundedSmallSequences); + SUBSCRIBER_TYPE_CREATOR_FUNCTION(LargePlainSequence); SUBSCRIBER_TYPE_CREATOR_FUNCTION(SequenceAlias); SUBSCRIBER_TYPE_CREATOR_FUNCTION(SequenceBitMask); SUBSCRIBER_TYPE_CREATOR_FUNCTION(SequenceBitset); diff --git a/test/dds/xtypes/TypesTestsCases/Cases_arrays.json b/test/dds/xtypes/TypesTestsCases/Cases_arrays.json index 982d5e0532e..b88e0f98bda 100644 --- a/test/dds/xtypes/TypesTestsCases/Cases_arrays.json +++ b/test/dds/xtypes/TypesTestsCases/Cases_arrays.json @@ -2204,6 +2204,48 @@ "known_types": [] } ] + }, + { + "TestCase": "Case_arrays_LargeBasicPlainArray", + "participants": [ + { + "kind": "publisher", + "samples": "10", + "timeout": "10", + "expected_matches": "1", + "known_types": [ + "LargeBasicPlainArray" + ] + }, + { + "kind": "subscriber", + "samples": "10", + "timeout": "10", + "expected_matches": "1", + "known_types": [] + } + ] + }, + { + "TestCase": "Case_arrays_LargePlainArray", + "participants": [ + { + "kind": "publisher", + "samples": "10", + "timeout": "10", + "expected_matches": "1", + "known_types": [ + "LargePlainArray" + ] + }, + { + "kind": "subscriber", + "samples": "10", + "timeout": "10", + "expected_matches": "1", + "known_types": [] + } + ] } ] } \ No newline at end of file diff --git a/test/dds/xtypes/TypesTestsCases/Cases_sequences.json b/test/dds/xtypes/TypesTestsCases/Cases_sequences.json index e0f2e87a759..5a90f215065 100644 --- a/test/dds/xtypes/TypesTestsCases/Cases_sequences.json +++ b/test/dds/xtypes/TypesTestsCases/Cases_sequences.json @@ -42,6 +42,27 @@ } ] }, + { + "TestCase": "Case_sequences_LargePlainSequence", + "participants": [ + { + "kind": "publisher", + "samples": "10", + "timeout": "10", + "expected_matches": "1", + "known_types": [ + "LargePlainSequence" + ] + }, + { + "kind": "subscriber", + "samples": "10", + "timeout": "10", + "expected_matches": "1", + "known_types": [] + } + ] + }, { "TestCase": "Case_sequences_My_Structure", "participants": [ From a93c74c94ba453be6a55fb0a0b138aa6d72ba93f Mon Sep 17 00:00:00 2001 From: Mario Dominguez Date: Wed, 23 Jul 2025 14:53:45 +0200 Subject: [PATCH 3/3] Refs #23504: Update dds-types-tests submodule ref Signed-off-by: Mario Dominguez --- thirdparty/dds-types-test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/thirdparty/dds-types-test b/thirdparty/dds-types-test index 03def739e4a..a04b741eda3 160000 --- a/thirdparty/dds-types-test +++ b/thirdparty/dds-types-test @@ -1 +1 @@ -Subproject commit 03def739e4a5c2ca7bdc94536da5215442db235d +Subproject commit a04b741eda32e900a1c7b0ca087199a133d4c441