conduit 0.6.0
Modern C++23 header-only event-dispatching / event-transport library
Loading...
Searching...
No Matches
middleware.hpp
Go to the documentation of this file.
1#pragma once
2
5
7
8#include <commons/prioritized.hpp>
9
10#include <exception>
11#include <string_view>
12
13namespace conduit {
14
15class Middleware : public comms::Prioritized {
16public:
17 Middleware() = default;
18 Middleware(const Middleware&) = default;
19 Middleware(Middleware&&) noexcept = default;
20 Middleware& operator=(const Middleware&) = default;
21 Middleware& operator=(Middleware&&) noexcept = default;
22 ~Middleware() override = default;
23
25 virtual bool before_dispatch(EventEnvelopeView& /*v*/) {
26 return true;
27 }
29 virtual void after_dispatch(EventEnvelopeView& /*v*/) {}
31 virtual void on_error(EventEnvelopeView& /*v*/, const std::exception_ptr& /*ep*/) {}
32
36 virtual void on_transport_error(std::string_view /*transport*/,
37 const std::exception_ptr& /*ep*/) {}
38};
39
40} // namespace conduit
Polymorphic envelope cell.
Definition envelope.hpp:62
Definition middleware.hpp:15
Middleware(Middleware &&) noexcept=default
virtual void on_transport_error(std::string_view, const std::exception_ptr &)
Called when a transport fails to decode or otherwise produce an inbound envelope (no envelope availab...
Definition middleware.hpp:36
Middleware(const Middleware &)=default
virtual void after_dispatch(EventEnvelopeView &)
Called after all listeners ran (or were skipped if before_dispatch returned false).
Definition middleware.hpp:29
virtual bool before_dispatch(EventEnvelopeView &)
Called before listener dispatch. Return false to drop the envelope.
Definition middleware.hpp:25
virtual void on_error(EventEnvelopeView &, const std::exception_ptr &)
Called when a listener throws.
Definition middleware.hpp:31
EventEnvelope — a parcel cell carrying conduit's envelope metadata plus a polymorphic payload cell.
Definition builder.hpp:22