WSF
WsfCyberEventResults.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2019 Infoscitex, a DCS Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFCYBEREVENTRESULTS_HPP
13#define WSFCYBEREVENTRESULTS_HPP
14
15#include "wsf_cyber_export.h"
16
17#include <ostream>
18#include <sstream>
19
21
22namespace wsf
23{
24namespace event
25{
26// ===================================================================================================
27class WSF_CYBER_EXPORT CyberAttackInitiated : public CyberResult
28{
29public:
30 static constexpr const char* cNAME = "CYBER_ATTACK_INITIATED";
31 CyberAttackInitiated(double aSimTime, const cyber::Engagement& aEngagement, Settings aSettings = Settings());
32
33 void Print(std::ostream& aStream) const override;
34 void PrintCSV(std::ostream& aStream) const override;
35};
36
37// ===================================================================================================
38class WSF_CYBER_EXPORT CyberAttackSucceeded : public CyberResult
39{
40public:
41 static constexpr const char* cNAME = "CYBER_ATTACK_SUCCEEDED";
42 CyberAttackSucceeded(double aSimTime, const cyber::Engagement& aEngagement, Settings aSettings = Settings());
43
44 void Print(std::ostream& aStream) const override;
45 void PrintCSV(std::ostream& aStream) const override;
46};
47
48// ===================================================================================================
49class WSF_CYBER_EXPORT CyberAttackFailed : public CyberResult
50{
51public:
52 static constexpr const char* cNAME = "CYBER_ATTACK_FAILED";
53 CyberAttackFailed(double aSimTime, const cyber::Engagement& aEngagement, Settings aSettings = Settings());
54
55 void Print(std::ostream& aStream) const override;
56 void PrintCSV(std::ostream& aStream) const override;
57};
58
59// ===================================================================================================
60class WSF_CYBER_EXPORT CyberAttackDetected : public CyberResult
61{
62public:
63 static constexpr const char* cNAME = "CYBER_ATTACK_DETECTED";
64 CyberAttackDetected(double aSimTime, const cyber::Engagement& aEngagement, Settings aSettings = Settings());
65
66 void Print(std::ostream& aStream) const override;
67 void PrintCSV(std::ostream& aStream) const override;
68};
69
70// ===================================================================================================
71class WSF_CYBER_EXPORT CyberAttackAttributed : public CyberResult
72{
73public:
74 static constexpr const char* cNAME = "CYBER_ATTACK_ATTRIBUTED";
75 CyberAttackAttributed(double aSimTime, const cyber::Engagement& aEngagement, Settings aSettings = Settings());
76
77 void Print(std::ostream& aStream) const override;
78 void PrintCSV(std::ostream& aStream) const override;
79};
80
81// ===================================================================================================
82class WSF_CYBER_EXPORT CyberAttackRecovery : public CyberResult
83{
84public:
85 static constexpr const char* cNAME = "CYBER_ATTACK_RECOVERY";
86 CyberAttackRecovery(double aSimTime, const cyber::Engagement& aEngagement, Settings aSettings = Settings());
87
88 void Print(std::ostream& aStream) const override;
89 void PrintCSV(std::ostream& aStream) const override;
90};
91
92// ===================================================================================================
93class WSF_CYBER_EXPORT CyberScanInitiated : public CyberResult
94{
95public:
96 static constexpr const char* cNAME = "CYBER_SCAN_INITIATED";
97 CyberScanInitiated(double aSimTime, const cyber::Engagement& aEngagement, Settings aSettings = Settings());
98
99 void Print(std::ostream& aStream) const override;
100 void PrintCSV(std::ostream& aStream) const override;
101};
102
103// ===================================================================================================
104class WSF_CYBER_EXPORT CyberScanSucceeded : public CyberResult
105{
106public:
107 static constexpr const char* cNAME = "CYBER_SCAN_SUCCEEDED";
108 CyberScanSucceeded(double aSimTime, const cyber::Engagement& aEngagement, Settings aSettings = Settings());
109
110 void Print(std::ostream& aStream) const override;
111 void PrintCSV(std::ostream& aStream) const override;
112};
113
114// ===================================================================================================
115class WSF_CYBER_EXPORT CyberScanFailed : public CyberResult
116{
117public:
118 static constexpr const char* cNAME = "CYBER_SCAN_FAILED";
119 CyberScanFailed(double aSimTime, const cyber::Engagement& aEngagement, Settings aSettings = Settings());
120
121 void Print(std::ostream& aStream) const override;
122 void PrintCSV(std::ostream& aStream) const override;
123};
124
125// ===================================================================================================
126class WSF_CYBER_EXPORT CyberScanDetected : public CyberResult
127{
128public:
129 static constexpr const char* cNAME = "CYBER_SCAN_DETECTED";
130 CyberScanDetected(double aSimTime, const cyber::Engagement& aEngagement, Settings aSettings = Settings());
131
132 void Print(std::ostream& aStream) const override;
133 void PrintCSV(std::ostream& aStream) const override;
134};
135
136// ===================================================================================================
137class WSF_CYBER_EXPORT CyberScanAttributed : public CyberResult
138{
139public:
140 static constexpr const char* cNAME = "CYBER_SCAN_ATTRIBUTED";
141 CyberScanAttributed(double aSimTime, const cyber::Engagement& aEngagement, Settings aSettings = Settings());
142
143 void Print(std::ostream& aStream) const override;
144 void PrintCSV(std::ostream& aStream) const override;
145};
146
147// ===================================================================================================
148class WSF_CYBER_EXPORT CyberTriggerExecution : public CyberTriggerResult
149{
150public:
151 static constexpr const char* cNAME = "CYBER_TRIGGER_EXECUTION";
152 CyberTriggerExecution(double aSimTime, const wsf::cyber::trigger::Trigger& aTrigger, Settings aSettings = Settings());
153
154 void Print(std::ostream& aStream) const override;
155 void PrintCSV(std::ostream& aStream) const override;
156};
157
158// ===================================================================================================
159class WSF_CYBER_EXPORT CyberTriggerEvaluation : public CyberTriggerResult
160{
161public:
162 static constexpr const char* cNAME = "CYBER_TRIGGER_EVALUATION";
163 CyberTriggerEvaluation(double aSimTime,
164 const wsf::cyber::trigger::Trigger& aTrigger,
165 bool aEvaluationResult,
166 Settings aSettings = Settings());
167
168 void Print(std::ostream& aStream) const override;
169 void PrintCSV(std::ostream& aStream) const override;
170
171 bool GetEvaluationResult() const { return mEvaluationResult; }
172
173protected:
174 std::string FormatOutput(const std::string& aObserverType, bool aIsCSV = false) const override;
175
177};
178
179} // namespace event
180} // namespace wsf
181
182#endif
A class that represents the cyber engagements between two platforms.
Definition WsfCyberEngagement.hpp:37
CyberAttackAttributed(double aSimTime, const cyber::Engagement &aEngagement, Settings aSettings=Settings())
Definition WsfCyberEventResults.cpp:132
void PrintCSV(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:145
void Print(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:138
static constexpr const char * cNAME
Definition WsfCyberEventResults.hpp:74
static constexpr const char * cNAME
Definition WsfCyberEventResults.hpp:63
void Print(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:118
void PrintCSV(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:125
CyberAttackDetected(double aSimTime, const cyber::Engagement &aEngagement, Settings aSettings=Settings())
Definition WsfCyberEventResults.cpp:112
static constexpr const char * cNAME
Definition WsfCyberEventResults.hpp:52
void PrintCSV(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:101
void Print(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:87
CyberAttackFailed(double aSimTime, const cyber::Engagement &aEngagement, Settings aSettings=Settings())
Definition WsfCyberEventResults.cpp:81
static constexpr const char * cNAME
Definition WsfCyberEventResults.hpp:30
void Print(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:34
void PrintCSV(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:41
CyberAttackInitiated(double aSimTime, const cyber::Engagement &aEngagement, Settings aSettings=Settings())
Definition WsfCyberEventResults.cpp:28
void Print(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:158
static constexpr const char * cNAME
Definition WsfCyberEventResults.hpp:85
void PrintCSV(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:168
CyberAttackRecovery(double aSimTime, const cyber::Engagement &aEngagement, Settings aSettings=Settings())
Definition WsfCyberEventResults.cpp:152
void PrintCSV(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:70
CyberAttackSucceeded(double aSimTime, const cyber::Engagement &aEngagement, Settings aSettings=Settings())
Definition WsfCyberEventResults.cpp:48
void Print(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:54
static constexpr const char * cNAME
Definition WsfCyberEventResults.hpp:41
void Print(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:273
CyberScanAttributed(double aSimTime, const cyber::Engagement &aEngagement, Settings aSettings=Settings())
Definition WsfCyberEventResults.cpp:267
static constexpr const char * cNAME
Definition WsfCyberEventResults.hpp:140
void PrintCSV(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:280
void PrintCSV(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:260
CyberScanDetected(double aSimTime, const cyber::Engagement &aEngagement, Settings aSettings=Settings())
Definition WsfCyberEventResults.cpp:247
static constexpr const char * cNAME
Definition WsfCyberEventResults.hpp:129
void Print(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:253
static constexpr const char * cNAME
Definition WsfCyberEventResults.hpp:118
CyberScanFailed(double aSimTime, const cyber::Engagement &aEngagement, Settings aSettings=Settings())
Definition WsfCyberEventResults.cpp:221
void Print(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:227
void PrintCSV(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:238
CyberScanInitiated(double aSimTime, const cyber::Engagement &aEngagement, Settings aSettings=Settings())
Definition WsfCyberEventResults.cpp:177
void Print(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:183
void PrintCSV(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:190
static constexpr const char * cNAME
Definition WsfCyberEventResults.hpp:96
CyberScanSucceeded(double aSimTime, const cyber::Engagement &aEngagement, Settings aSettings=Settings())
Definition WsfCyberEventResults.cpp:197
void Print(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:203
void PrintCSV(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:213
static constexpr const char * cNAME
Definition WsfCyberEventResults.hpp:107
bool mEvaluationResult
Definition WsfCyberEventResults.hpp:176
bool GetEvaluationResult() const
Definition WsfCyberEventResults.hpp:171
CyberTriggerEvaluation(double aSimTime, const wsf::cyber::trigger::Trigger &aTrigger, bool aEvaluationResult, Settings aSettings=Settings())
Definition WsfCyberEventResults.cpp:306
void Print(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:329
void PrintCSV(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:336
static constexpr const char * cNAME
Definition WsfCyberEventResults.hpp:162
static constexpr const char * cNAME
Definition WsfCyberEventResults.hpp:151
CyberTriggerExecution(double aSimTime, const wsf::cyber::trigger::Trigger &aTrigger, Settings aSettings=Settings())
Definition WsfCyberEventResults.cpp:287
void PrintCSV(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:300
void Print(std::ostream &aStream) const override
Definition WsfCyberEventResults.cpp:293
CyberTriggerResult(double aSimTime, const cyber::trigger::Trigger &aTrigger, Settings aSettings, std::string aEventName)
Definition WsfCyberEventResult.hpp:56
Definition WsfEventResult.hpp:35
Definition WsfXIO_EventResults.cpp:33
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Copyrights Multiple, All Rights Reserved