Skip to main content

AVxcelerate Simulation Framework 2025 R2

i_topic

Last update: 16.07.2025
1
5
6#pragma once
7
8#include "core/communication/i_publisher.h"
9#include "core/communication/i_subscriber.h"
10
16{
17namespace core
18{
19
25enum class TopicType
26{
27 kRTIDDS = 0,
28 kGRPC
29};
30using TopicId = std::string;
31
36class ITopic
37{
38 public:
39 virtual ~ITopic() = default;
40
44 virtual TopicId GetId() const = 0;
45
49 virtual TopicType GetType() const = 0;
50
54 virtual std::size_t SubscriberCount() const = 0;
55
60 virtual std::size_t PublisherCount() const = 0;
61
67 virtual void AddPublisher(std::unique_ptr<IPublisher> pub_ptr) = 0;
68
73 virtual void AddSubscriber(std::unique_ptr<ISubscriber> sub_ptr) = 0;
74
78 virtual void ClearPubSub() = 0;
79
83 virtual const Subscribers& GetSubscribers() const = 0;
84
88 virtual const Publishers& GetPublishers() const = 0;
89};
90
91using TopicIdVector = std::vector<TopicId>;
92using Topics = std::vector<std::shared_ptr<ITopic>>;
93
94} // namespace core
95} // namespace simulation_framework
virtual std::size_t SubscriberCount() const =0
virtual TopicType GetType() const =0
virtual std::size_t PublisherCount() const =0
virtual const Subscribers & GetSubscribers() const =0
virtual void AddSubscriber(std::unique_ptr< ISubscriber > sub_ptr)=0
virtual const Publishers & GetPublishers() const =0
virtual void AddPublisher(std::unique_ptr< IPublisher > pub_ptr)=0
virtual TopicId GetId() const =0
The namespace for all core functionalities under namespace simulation_framework.
The top namespace for simulation framework.

Connect with Ansys