Skip to content

Commit bc130df

Browse files
authored
Refactor TopicDataType (#875)
* Refs #21349. Generate source code Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev> * Refs #21349. Regenerate source code Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev> * Refs #21349. Fix compilation Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev> --------- Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
1 parent 491f70f commit bc130df

4 files changed

Lines changed: 149 additions & 144 deletions

File tree

code/CodeTester.cpp

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,40 +37,47 @@ class HelloWorldPubSubType : public TopicDataType
3737
{
3838
bool serialize(
3939
const void* const data,
40-
rtps::SerializedPayload_t* payload) override
40+
rtps::SerializedPayload_t& payload,
41+
DataRepresentationId_t data_representation) override
4142
{
4243
return false;
4344
}
4445

4546
bool deserialize(
46-
rtps::SerializedPayload_t* payload,
47+
rtps::SerializedPayload_t& payload,
4748
void* data) override
4849
{
4950
return false;
5051
}
5152

52-
std::function<uint32_t()> getSerializedSizeProvider(
53-
const void* const data) override
53+
uint32_t calculate_serialized_size(
54+
const void* const data,
55+
DataRepresentationId_t data_representation) override
5456
{
55-
return []
56-
{
57-
return 0;
58-
};
57+
return 0;
5958
}
6059

61-
void* createData() override
60+
void* create_data() override
6261
{
6362
return nullptr;
6463
}
6564

66-
void deleteData(
65+
void delete_data(
6766
void* data) override
6867
{
6968
}
7069

71-
bool getKey(
70+
bool compute_key(
71+
rtps::SerializedPayload_t& payload,
72+
rtps::InstanceHandle_t& ihandle,
73+
bool force_md5 = false) override
74+
{
75+
return false;
76+
}
77+
78+
bool compute_key(
7279
const void* const data,
73-
rtps::InstanceHandle_t* ihandle,
80+
rtps::InstanceHandle_t& ihandle,
7481
bool force_md5 = false) override
7582
{
7683
return false;

code/DDSCodeTester.cpp

Lines changed: 50 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,7 @@ void dds_domain_examples()
430430
// Create a DomainParticipant with DomainParticipantExtendedQos from profile
431431
DomainParticipantExtendedQos profile_extended_qos;
432432
DomainParticipantFactory::get_instance()->get_participant_extended_qos_from_profile("participant_profile",
433-
profile_extended_qos);
433+
profile_extended_qos);
434434

435435
DomainParticipant* participant =
436436
DomainParticipantFactory::get_instance()->create_participant(profile_extended_qos);
@@ -1225,6 +1225,7 @@ class TypeIntrospectionSubscriber : public DomainParticipantListener
12251225
// Print IDL representation
12261226
std::cout << "Type discovered:\n" << idl.str() << std::endl;
12271227
}
1228+
12281229
//!--
12291230

12301231
//!--DYNDATA_JSON_SERIALIZATION
@@ -1233,7 +1234,7 @@ class TypeIntrospectionSubscriber : public DomainParticipantListener
12331234
{
12341235
// Dynamic DataType
12351236
DynamicData::_ref_type new_data =
1236-
DynamicDataFactory::get_instance()->create_data(dyn_type_);
1237+
DynamicDataFactory::get_instance()->create_data(dyn_type_);
12371238

12381239
SampleInfo info;
12391240

@@ -1611,42 +1612,52 @@ class CustomDataType : public TopicDataType
16111612
CustomDataType()
16121613
: TopicDataType()
16131614
{
1614-
setName("Foo");
1615+
set_name("Foo");
16151616
}
16161617

16171618
bool serialize(
16181619
const void* const data,
1619-
eprosima::fastdds::rtps::SerializedPayload_t* payload) override
1620+
eprosima::fastdds::rtps::SerializedPayload_t& payload,
1621+
eprosima::fastdds::dds::DataRepresentationId_t data_representation) override
16201622
{
16211623
return true;
16221624
}
16231625

16241626
bool deserialize(
1625-
eprosima::fastdds::rtps::SerializedPayload_t* payload,
1627+
eprosima::fastdds::rtps::SerializedPayload_t& payload,
16261628
void* data) override
16271629
{
16281630
return true;
16291631
}
16301632

1631-
std::function<uint32_t()> getSerializedSizeProvider(
1632-
const void* const data) override
1633+
uint32_t calculate_serialized_size(
1634+
const void* const data,
1635+
eprosima::fastdds::dds::DataRepresentationId_t data_representation) override
16331636
{
1634-
return std::function<uint32_t()>();
1637+
return 0;
16351638
}
16361639

1637-
void* createData() override
1640+
void* create_data() override
16381641
{
16391642
return nullptr;
16401643
}
16411644

1642-
void deleteData(
1645+
void delete_data(
16431646
void* data) override
16441647
{
16451648
}
16461649

1647-
bool getKey(
1650+
bool compute_key(
1651+
eprosima::fastdds::rtps::SerializedPayload_t& payload,
1652+
eprosima::fastdds::rtps::InstanceHandle_t& ihandle,
1653+
bool force_md5) override
1654+
{
1655+
return true;
1656+
}
1657+
1658+
bool compute_key(
16481659
const void* const data,
1649-
eprosima::fastdds::rtps::InstanceHandle_t* ihandle,
1660+
eprosima::fastdds::rtps::InstanceHandle_t& ihandle,
16501661
bool force_md5) override
16511662
{
16521663
return true;
@@ -1978,7 +1989,8 @@ void dds_topic_examples()
19781989

19791990
// Retrieve the an instance of the desired type
19801991
DynamicTypeBuilder::_ref_type dyn_type_builder;
1981-
DomainParticipantFactory::get_instance()->get_dynamic_type_builder_from_xml_by_name("DynamicType", dyn_type_builder);
1992+
DomainParticipantFactory::get_instance()->get_dynamic_type_builder_from_xml_by_name("DynamicType",
1993+
dyn_type_builder);
19821994

19831995
// Register dynamic type
19841996
TypeSupport dyn_type_support(new DynamicPubSubType(dyn_type_builder->build()));
@@ -3049,7 +3061,7 @@ void dds_dataWriter_examples()
30493061
}
30503062

30513063
// Get a data instance
3052-
void* data = custom_type_support->createData();
3064+
void* data = custom_type_support->create_data();
30533065

30543066
// Fill the data values
30553067
// (...)
@@ -3063,7 +3075,7 @@ void dds_dataWriter_examples()
30633075

30643076
// The data instance can be reused to publish new values,
30653077
// but delete it at the end to avoid leaks
3066-
custom_type_support->deleteData(data);
3078+
custom_type_support->delete_data(data);
30673079
//!--
30683080

30693081
{
@@ -3094,7 +3106,7 @@ void dds_dataWriter_examples()
30943106

30953107
// The data instance can be reused to publish new values,
30963108
// but delete it at the end to avoid leaks
3097-
custom_type_support->deleteData(data);
3109+
custom_type_support->delete_data(data);
30983110
//!--
30993111
}
31003112

@@ -5099,7 +5111,8 @@ void dynamictypes_examples()
50995111
create_type(type_descriptor)};
51005112

51015113
// Define the bitmask type
5102-
DynamicTypeBuilder::_ref_type bitmask_builder {DynamicTypeBuilderFactory::get_instance()->create_bitmask_type(8)};
5114+
DynamicTypeBuilder::_ref_type bitmask_builder {DynamicTypeBuilderFactory::get_instance()->create_bitmask_type(
5115+
8)};
51035116

51045117
/* Alternative
51055118
TypeDescriptor::_ref_type bitmask_type_descriptor {traits<TypeDescriptor>::make_shared()};
@@ -6981,49 +6994,57 @@ class LoanableHelloWorldPubSubType : public eprosima::fastdds::dds::TopicDataTyp
69816994
LoanableHelloWorldPubSubType()
69826995
: TopicDataType()
69836996
{
6984-
setName("LoanableHelloWorld");
6997+
set_name("LoanableHelloWorld");
69856998
}
69866999

69877000
bool serialize(
69887001
const void* const data,
6989-
eprosima::fastdds::rtps::SerializedPayload_t* payload) override
7002+
eprosima::fastdds::rtps::SerializedPayload_t& payload,
7003+
eprosima::fastdds::dds::DataRepresentationId_t data_representation) override
69907004
{
69917005
return true;
69927006
}
69937007

69947008
bool deserialize(
6995-
eprosima::fastdds::rtps::SerializedPayload_t* payload,
7009+
eprosima::fastdds::rtps::SerializedPayload_t& payload,
69967010
void* data) override
69977011
{
69987012
return true;
69997013
}
70007014

7001-
std::function<uint32_t()> getSerializedSizeProvider(
7002-
const void* const data) override
7015+
uint32_t calculate_serialized_size(
7016+
const void* const data,
7017+
eprosima::fastdds::dds::DataRepresentationId_t data_representation) override
70037018
{
7004-
return std::function<uint32_t()>();
7019+
return 0;
70057020
}
70067021

7007-
void* createData() override
7022+
void* create_data() override
70087023
{
70097024
return nullptr;
70107025
}
70117026

7012-
void deleteData(
7027+
void delete_data(
70137028
void* data) override
70147029
{
70157030
}
70167031

7017-
bool getKey(
7032+
bool compute_key(
7033+
eprosima::fastdds::rtps::SerializedPayload_t& payload,
7034+
eprosima::fastdds::rtps::InstanceHandle_t& ihandle,
7035+
bool force_md5) override
7036+
{
7037+
return true;
7038+
}
7039+
7040+
bool compute_key(
70187041
const void* const data,
7019-
eprosima::fastdds::rtps::InstanceHandle_t* ihandle,
7042+
eprosima::fastdds::rtps::InstanceHandle_t& ihandle,
70207043
bool force_md5) override
70217044
{
70227045
return true;
70237046
}
70247047

7025-
eprosima::fastdds::MD5 m_md5;
7026-
unsigned char* m_keyBuffer;
70277048
};
70287049

70297050
class LoanableHelloWorld

0 commit comments

Comments
 (0)