13#ifndef RTCTK_COMPONENTFRAMEWORK_EVENTSERVICEIF_HPP
14#define RTCTK_COMPONENTFRAMEWORK_EVENTSERVICEIF_HPP
22class EventPublisherIf;
23class EventSubscriberIf;
38 virtual std::unique_ptr<EventPublisherIf>
MakePublisher(std::string
const& topic) = 0;
45 virtual std::unique_ptr<EventSubscriberIf>
MakeSubscriber(std::string
const& topic) = 0;
Interface class for publishing JSON events.
Definition: eventServiceIf.hpp:52
virtual void Publish(JsonPayload const &sample)=0
Publishes a JSON object.
virtual ~EventPublisherIf()=default
Interface class for providing pub/sub facilities for JSON events.
Definition: eventServiceIf.hpp:29
virtual std::unique_ptr< EventPublisherIf > MakePublisher(std::string const &topic)=0
Creates a new publisher for a specified topic.
virtual std::unique_ptr< EventSubscriberIf > MakeSubscriber(std::string const &topic)=0
Creates a new subscriber for a specified topic.
virtual ~EventServiceIf()=default
Interface class for subscribing to JSON events.
Definition: eventServiceIf.hpp:68
virtual ~EventSubscriberIf()=default
virtual void Unsubscribe()=0
Unsubscribes from a specified topic.
virtual void Subscribe(std::function< void(JsonPayload const &)> cb)=0
Subscribes to a specified topic.
Defines the JSON payload type JsonPayload.
Definition: commandReplier.cpp:22
nlohmann::json JsonPayload
Type requirements:
Definition: jsonPayload.hpp:25