12#ifndef WSFCYBERENGAGEMENTMANAGER_HPP
13#define WSFCYBERENGAGEMENTMANAGER_HPP
15#include "wsf_cyber_export.h"
23#include "effects/WsfCyberEffect.hpp"
78 Effect*
GetEffect(
const std::string& aEffectName)
const;
83 Effect& AddEffect(
const std::string& aEffectName);
84 void RemoveEffect(
const std::string& aEffectName);
87 void RemoveParameters();
112 Engagement*
FindEngagement(
const std::string& aAttackType,
const std::string& aAttacker,
const std::string& aVictim);
115 bool EngagementExists(
const std::string& aAttackType,
const std::string& aAttacker,
const std::string& aVictim)
const;
130 const std::string& aAttacker,
131 const std::string& aVictim,
140 bool CyberScan(
const std::string& aAttackType,
141 const std::string& aAttacker,
142 const std::string& aVictim,
155 const std::string& aAttacker,
156 const std::string& aVictim);
165 const std::string& aAttacker,
166 const std::string& aVictim,
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfCyberAttackParameters.hpp:99
Definition WsfCyberEngagementManager.hpp:62
EngagementData(const EngagementData &aSrc)=delete
Engagement & GetEngagement()
Definition WsfCyberEngagementManager.hpp:79
Engagement mEngagement
Definition WsfCyberEngagementManager.hpp:90
bool IsParametersValid() const
Definition WsfCyberEngagementManager.hpp:81
~EngagementData()=default
AttackParameters mParameters
Definition WsfCyberEngagementManager.hpp:95
EngagementData(EngagementData &&aSrc)=default
Effect * GetEffect(const std::string &aEffectName) const
Definition WsfCyberEngagementManager.cpp:695
std::list< UtCloneablePtr< Effect > > mEngagementEffects
Definition WsfCyberEngagementManager.hpp:94
bool mParametersValid
Definition WsfCyberEngagementManager.hpp:96
EngagementData(Engagement aEngagement)
EngagementData requires an engagement. Engagements can be moved, but not copied.
Definition WsfCyberEngagementManager.hpp:65
const AttackParameters & GetParameters() const
Definition WsfCyberEngagementManager.hpp:80
Engagement * FindEngagement(const std::string &aAttackType, const std::string &aAttacker, const std::string &aVictim)
Definition WsfCyberEngagementManager.cpp:70
EngagementManager(const EngagementManager &aSrc)=delete
std::unordered_map< size_t, EngagementData > EngagementMap
Definition WsfCyberEngagementManager.hpp:99
EngagementData * FindEngagementData(const std::string &aAttackType, const std::string &aAttacker, const std::string &aVictim)
Definition WsfCyberEngagementManager.cpp:109
void CyberScanInitialize(EngagementData &aEngagementData)
Definition WsfCyberEngagementManager.cpp:570
friend class Event
Definition WsfCyberEngagementManager.hpp:103
~EngagementManager()=default
void CyberAttackRecoveryDelay(EngagementData &aEngagementData)
Definition WsfCyberEngagementManager.cpp:444
EngagementMap::iterator FindEngagementByPlatform(const std::string &aName, bool aByVictim)
Definition WsfCyberEngagementManager.cpp:90
void CyberAttackEffect(EngagementData &aEngagementData)
Definition WsfCyberEngagementManager.cpp:370
EngagementManager()
Definition WsfCyberEngagementManager.hpp:107
bool CyberScan(const std::string &aAttackType, const std::string &aAttacker, const std::string &aVictim, WsfSimulation &aSimulation)
Definition WsfCyberEngagementManager.cpp:499
void CullVictimEngagements(const std::string &aVictim)
Definition WsfCyberEngagementManager.cpp:661
bool EngagementExists(const std::string &aAttackType, const std::string &aAttacker, const std::string &aVictim) const
Definition WsfCyberEngagementManager.cpp:681
EngagementData & AddEngagement(const std::string &aAttackType, const std::string &aAttacker, const std::string &aVictim, WsfSimulation &aSimulation)
Definition WsfCyberEngagementManager.cpp:49
void CyberAttackDetectionDelay(EngagementData &aEngagementData)
Definition WsfCyberEngagementManager.cpp:386
bool CyberAttack(const std::string &aAttackType, const std::string &aAttacker, const std::string &aVictim, WsfSimulation &aSimulation, AttackParameters *aParameters=nullptr)
Definition WsfCyberEngagementManager.cpp:129
const EngagementManager & operator=(const EngagementManager &aRhs)=delete
bool Cancel(size_t aKey)
Definition WsfCyberEngagementManager.cpp:554
void CyberAttackInitialize(EngagementData &aEngagementData)
Definition WsfCyberEngagementManager.cpp:181
static EngagementManager & Get(WsfSimulation &aSimulation)
Returns a modifiable instance of the cyber engagement manager.
Definition WsfCyberEngagementManager.cpp:43
void CullAttackerEngagements(const std::string &aAttacker)
Definition WsfCyberEngagementManager.cpp:671
A class that represents the cyber engagements between two platforms.
Definition WsfCyberEngagement.hpp:37
Template specialization for wsf::comm::Address. Allows usage of Address in std::unordered_map/set.
Definition WsfCommAddress.hpp:185
Definition WsfCyberApplicationExtension.cpp:24
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32