Skip to content

Commit 848b42f

Browse files
iox-#2076 Implement pub/sub options in introspection
Signed-off-by: AlessandroCanossa <[email protected]> Signed-off-by: Luca Miccio <[email protected]>
1 parent f3ccf20 commit 848b42f

File tree

4 files changed

+16
-1
lines changed

4 files changed

+16
-1
lines changed

doc/website/release-notes/iceoryx-unreleased.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
- Add std::atomic abstraction [#2329](https://github.com/eclipse-iceoryx/iceoryx/issues/2329)
7878
- Port iceoryx to bzlmod [#2325](https://github.com/eclipse-iceoryx/iceoryx/issues/2325)
7979
- Make ACL support optional [#1176](https://github.com/eclipse-iceoryx/iceoryx/issues/1176)
80+
- Implement subscriber/publisher options in introspection [#2076](https://github.com/eclipse-iceoryx/iceoryx/issues/2076)
8081

8182
**Bugfixes:**
8283

iceoryx_posh/include/iceoryx_posh/internal/roudi/introspection/port_introspection.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919

2020
#include "iceoryx_posh/iceoryx_posh_types.hpp"
2121
#include "iceoryx_posh/internal/popo/ports/publisher_port_data.hpp"
22+
#include "iceoryx_posh/popo/publisher_options.hpp"
23+
#include "iceoryx_posh/popo/subscriber_options.hpp"
2224
#include "iceoryx_posh/roudi/introspection_types.hpp"
2325
#include "iox/assertions.hpp"
2426
#include "iox/atomic.hpp"
@@ -76,12 +78,14 @@ class PortIntrospection
7678
: portData(&portData)
7779
, process(portData.m_runtimeName)
7880
, service(portData.m_serviceDescription)
81+
, options(portData.m_options)
7982
{
8083
}
8184

8285
typename PublisherPort::MemberType_t* portData{nullptr};
8386
RuntimeName_t process;
8487
capro::ServiceDescription service;
88+
popo::PublisherOptions options;
8589

8690
/// map from indices to ConnectionContainer indices
8791
std::map<int, ConnectionContainerIndexType> connectionMap;
@@ -96,12 +100,14 @@ class PortIntrospection
96100
: portData(&portData)
97101
, process(portData.m_runtimeName)
98102
, service(portData.m_serviceDescription)
103+
, options(portData.m_options)
99104
{
100105
}
101106

102107
typename SubscriberPort::MemberType_t* portData{nullptr};
103108
RuntimeName_t process;
104109
capro::ServiceDescription service;
110+
popo::SubscriberOptions options;
105111
};
106112

107113
struct ConnectionInfo

iceoryx_posh/include/iceoryx_posh/internal/roudi/introspection/port_introspection.inl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,7 @@ PortIntrospection<PublisherPort, SubscriberPort>::PortData::prepareTopic(PortInt
552552
publisherData.m_publisherPortID = static_cast<uint64_t>(port.getUniqueID());
553553
publisherData.m_sourceInterface = publisherInfo->service.getSourceInterface();
554554
publisherData.m_name = publisherInfo->process;
555+
publisherData.m_publisherOptions = publisherInfo->options;
555556

556557
publisherData.m_caproInstanceID = publisherInfo->service.getInstanceIDString();
557558
publisherData.m_caproServiceID = publisherInfo->service.getServiceIDString();
@@ -576,6 +577,7 @@ PortIntrospection<PublisherPort, SubscriberPort>::PortData::prepareTopic(PortInt
576577
auto& subscriberInfo = connection->subscriberInfo;
577578

578579
subscriberData.m_name = subscriberInfo.process;
580+
subscriberData.m_subscriberOptions = subscriberInfo.options;
579581

580582
subscriberData.m_caproInstanceID = subscriberInfo.service.getInstanceIDString();
581583
subscriberData.m_caproServiceID = subscriberInfo.service.getServiceIDString();

iceoryx_posh/include/iceoryx_posh/roudi/introspection_types.hpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919

2020
#include "iceoryx_posh/capro/service_description.hpp"
2121
#include "iceoryx_posh/iceoryx_posh_types.hpp"
22+
#include "iceoryx_posh/popo/publisher_options.hpp"
23+
#include "iceoryx_posh/popo/subscriber_options.hpp"
2224
#include "iox/vector.hpp"
2325

2426
namespace iox
@@ -72,13 +74,17 @@ struct PortData
7274
capro::IdString_t m_caproEventMethodID;
7375
};
7476

75-
using SubscriberPortData = PortData;
77+
struct SubscriberPortData : public PortData
78+
{
79+
iox::popo::SubscriberOptions m_subscriberOptions{};
80+
};
7681

7782
/// @brief container for publisher port introspection data.
7883
struct PublisherPortData : public PortData
7984
{
8085
uint64_t m_publisherPortID{0};
8186
iox::capro::Interfaces m_sourceInterface{iox::capro::Interfaces::INTERFACE_END};
87+
iox::popo::PublisherOptions m_publisherOptions{};
8288
};
8389

8490
/// @brief the topic for the port introspection that a user can subscribe to

0 commit comments

Comments
 (0)