12#ifndef WSFCYBEREVENTMANAGER_HPP
13#define WSFCYBEREVENTMANAGER_HPP
15#include "wsf_cyber_export.h"
18#include <unordered_map>
54 void AddEvent(std::unique_ptr<Event> aEventPtr);
60 void EndEvent(
bool aAttack,
size_t aEngagementKey);
67 bool CancelEvent(
bool aAttack,
size_t aEngagementKey);
71 bool EventExists(
bool aAttack,
size_t aEngagementKey)
const;
79 EventKey(
bool aAttack,
size_t aEngagementKey)
81 , mEngagementKey(aEngagementKey)
87 return ((mAttack == aRhs.mAttack) && (mEngagementKey == aRhs.mEngagementKey));
91 size_t mEngagementKey;
96 size_t operator()(
const EventKey& aKey)
const
98 auto val = std::hash<size_t>{}(aKey.mEngagementKey);
99 val ^= std::hash<bool>{}(aKey.mAttack) + 0x9e3779b9 + (val << 6) + (val >> 2);
104 using EventMap = std::unordered_map<EventKey, Event*, EventKeyHash>;
106 WsfSimulation& mSimulation;
107 EventMap mEventMap{};
bool operator==(int aId, const WsfStringInt &aRhs)
Equal relational operator for the case of an integer on the LHS and a StringId on the RHS.
Definition WsfStringId.hpp:69
The main controller for a simulation.
Definition WsfSimulation.hpp:109
bool EventExists(bool aAttack, size_t aEngagementKey) const
Definition WsfCyberEventManager.cpp:77
EventManager & operator=(const EventManager &aRhs)=delete
void EndEvent(bool aAttack, size_t aEngagementKey)
Definition WsfCyberEventManager.cpp:48
EventManager(const EventManager &aSrc)=delete
EventManager(EventManager &&aSrc)=default
bool CancelEvent(bool aAttack, size_t aEngagementKey)
Definition WsfCyberEventManager.cpp:60
EventManager & operator=(EventManager &&aRhs)=default
Event::Type GetEventType(bool aAttack, size_t aEngagementKey) const
Retrieve the type of the event.
Definition WsfCyberEventManager.cpp:86
void AddEvent(std::unique_ptr< Event > aEventPtr)
Definition WsfCyberEventManager.cpp:34
EventManager(WsfSimulation &aSimulation)
Definition WsfCyberEventManager.cpp:28
Type
Definition WsfCyberEvent.hpp:33
Definition WsfCyberApplicationExtension.cpp:24
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32