12#ifndef WSFSTABLEORDEREVENTMANAGER_HPP
13#define WSFSTABLEORDEREVENTMANAGER_HPP
15#include "wsf_export.h"
56 mStableEvents.push(std::make_pair<WsfEvent*, unsigned int>(aEventPtr, mNextCount++));
68 if (!mStableEvents.empty())
71 eventPtr = mStableEvents.top().first;
85 if (!mStableEvents.empty())
88 eventPtr = mStableEvents.top().first;
99 while (!mStableEvents.empty())
101 WsfEvent* eventPtr = mStableEvents.top().first;
131 bool operator()(StableEvent aLhs, StableEvent aRhs)
const
133 if (aLhs.first->GetTime() > aRhs.first->GetTime())
137 else if (aLhs.first->GetTime() < aRhs.first->GetTime())
143 return (aLhs.second > aRhs.second);
154 std::priority_queue<StableEvent, std::vector<StableEvent>, StableCompare> mStableEvents;
155 static unsigned int mNextCount;
158unsigned int WsfStableOrderEventManager::mNextCount = 0;
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
virtual void Reset()
Reset the event queue back to an empty state.
Definition WsfEventManager.cpp:57
std::recursive_mutex mMutex
Definition WsfEventManager.hpp:103
WsfEventManager(WsfSimulation &aSimulation)
Definition WsfEventManager.cpp:16
WsfEventManager & operator=(const WsfEventManager &aRhs)=delete
Definition WsfEvent.hpp:29
Definition WsfStableOrderEventManager.hpp:31
std::pair< WsfEvent *, unsigned int > StableEvent
Definition WsfStableOrderEventManager.hpp:41
virtual void AddEvent(WsfEvent *aEventPtr)
Definition WsfStableOrderEventManager.hpp:53
virtual WsfEvent * PopEvent()
Definition WsfStableOrderEventManager.hpp:82
virtual WsfEvent * PeekEvent()
Definition WsfStableOrderEventManager.hpp:65
virtual ~WsfStableOrderEventManager()
Definition WsfStableOrderEventManager.hpp:39
virtual void Reset()
Reset the event queue back to an empty state.
Definition WsfStableOrderEventManager.hpp:96
WsfStableOrderEventManager()
Definition WsfStableOrderEventManager.hpp:33