31 #ifndef LEDGER_CORE_EVENTBUS_HPP 32 #define LEDGER_CORE_EVENTBUS_HPP 34 #include "EventPublisher.hpp" 37 #include <unordered_map> 44 void subscribe(
const std::shared_ptr<api::ExecutionContext> &context,
45 const std::shared_ptr<api::EventReceiver> &receiver)
override;
46 void unsubscribe(
const std::shared_ptr<api::EventReceiver> &receiver)
override;
49 explicit EventBus(
const std::shared_ptr<api::ExecutionContext>& context);
51 void post(
const std::shared_ptr<Event>& event);
55 using SubscribersList = std::list<std::tuple<std::shared_ptr<api::ExecutionContext>, std::shared_ptr<api::EventReceiver>>>;
56 SubscribersList _subscribers;
57 using StickiesMap = std::unordered_map<int32_t, std::shared_ptr<Event>>;
58 StickiesMap _stickies;
64 #endif //LEDGER_CORE_EVENTBUS_HPP Definition: EventBus.hpp:42
Definition: EventPublisher.hpp:47
Definition: Account.cpp:8
Definition: DedicatedContext.hpp:39
Definition: EventBus.hpp:22