Skip to main content

AVxcelerate Simulation Framework 2026 R1

File i_topic.h

Last update: 09.03.2026

Location: core/communication/i_topic.h

Classes

Namespaces

Includes

Included by

Source



#pragma once

#include "core/communication/i_publisher.h"
#include "core/communication/i_subscriber.h"

namespace simulation_framework
{
namespace core
{

enum class TopicType
{
    kRTIDDS = 0,
    kGRPC
};
using TopicId = std::string;

class ITopic
{
  public:
    virtual ~ITopic() = default;

    virtual TopicId GetId() const = 0;

    virtual TopicType GetType() const = 0;

    virtual std::size_t SubscriberCount() const = 0;

    virtual std::size_t PublisherCount() const = 0;

    virtual void AddPublisher(std::unique_ptr<ipublisher> pub_ptr) = 0;

    virtual void AddSubscriber(std::unique_ptr<isubscriber> sub_ptr) = 0;

    virtual void ClearPubSub() = 0;

    virtual const Subscribers&amp; GetSubscribers() const = 0;

    virtual const Publishers&amp; GetPublishers() const = 0;
};

using TopicIdVector = std::vector<topicid>;
using Topics = std::vector<std::shared_ptr><itopic>&gt;;

}  // namespace core
}  // namespace simulation_framework

[static]: https://img.shields.io/badge/-static-lightgrey (static)</std::shared_ptr>

Connect with Ansys