Kaspersky Neuromorphic Platform  1.0.0
API Reference
Loading...
Searching...
No Matches
message_bus.h
Go to the documentation of this file.
1
22#pragma once
23
25
26#include <functional>
27#include <memory>
28
32namespace knp::core::messaging::impl
33{
37class MessageBusImpl;
38} // namespace knp::core::messaging::impl
39
40
44namespace knp::core
45{
50{
51public:
57
63
69
74 MessageBus() = delete;
75
79 MessageBus(MessageBus &&) noexcept;
80
85
86public:
92 [[nodiscard]] MessageEndpoint create_endpoint();
93
98 size_t step();
99
105
106private:
112 explicit MessageBus(std::unique_ptr<messaging::impl::MessageBusImpl> &&impl);
113
114
118 std::unique_ptr<messaging::impl::MessageBusImpl> impl_;
119};
120
121} // namespace knp::core
The MessageBus class is a definition of an interface to a message bus.
Definition message_bus.h:50
MessageEndpoint create_endpoint()
Create a new endpoint that sends and receives messages through the message bus.
static MessageBus construct_bus()
Create a message bus with default implementation.
Definition message_bus.h:68
static MessageBus construct_cpu_bus()
Create a CPU-based message bus.
MessageBus()=delete
Default message bus constructor is deleted.
size_t route_messages()
Route messages.
MessageBus(MessageBus &&) noexcept
Move constructor.
static MessageBus construct_zmq_bus()
Create a ZMQ-based message bus.
size_t step()
Route some messages.
Message endpoint interface.
Core library namespace.
Definition backend.h:50