15#ifndef WSFEVENTMANAGER_HPP
16#define WSFEVENTMANAGER_HPP
18#include "wsf_export.h"
59 virtual void AddEvent(std::unique_ptr<WsfEvent> aEventPtr);
79 virtual std::unique_ptr<WsfEvent>
PopEvent();
88 using Key = std::tuple<double, int, unsigned int>;
89 Event(
const Key& aKey, std::unique_ptr<WsfEvent> aEventPtr)
106 using EventQueue = std::priority_queue<Event, std::vector<Event>, std::greater<Event>>;
108 EventQueue mEvents{};
109 unsigned int mCounter{0U};
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
virtual void Reset()
Reset the event queue back to an empty state.
Definition WsfEventManager.cpp:57
WsfEventManager & operator=(WsfEventManager &&)=default
virtual void AddEvent(std::unique_ptr< WsfEvent > aEventPtr)
Add an event to the event queue.
Definition WsfEventManager.cpp:22
std::recursive_mutex mMutex
Definition WsfEventManager.hpp:103
virtual WsfEvent * PeekEvent() const
Get, but do not remove, the next event that should be dispatched.
Definition WsfEventManager.cpp:32
WsfEventManager(WsfEventManager &&)=default
virtual std::unique_ptr< WsfEvent > PopEvent()
Get and remove the next event that should be dispatched.
Definition WsfEventManager.cpp:44
WsfEventManager(WsfSimulation &aSimulation)
Definition WsfEventManager.cpp:16
WsfEventManager(const WsfEventManager &aSrc)=delete
WsfEventManager & operator=(const WsfEventManager &aRhs)=delete
virtual ~WsfEventManager()=default
Definition WsfEvent.hpp:29
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Template specialization for wsf::comm::Address. Allows usage of Address in std::unordered_map/set.
Definition WsfCommAddress.hpp:185
Event(const Key &aKey, std::unique_ptr< WsfEvent > aEventPtr)
Definition WsfEventManager.hpp:89
bool operator>(const Event &rhs) const
Definition WsfEventManager.hpp:95
std::tuple< double, int, unsigned int > Key
Definition WsfEventManager.hpp:88
std::unique_ptr< WsfEvent > mEventPtr
Definition WsfEventManager.hpp:98
Key mKey
Definition WsfEventManager.hpp:97