WSF
WsfCyberEventPipe.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 2016 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 WSFCYBEREVENTPIPE_HPP
13#define WSFCYBEREVENTPIPE_HPP
14
15#include "WsfEventPipe.hpp"
17
18namespace wsf
19{
20namespace cyber
21{
22
23class Engagement;
24
26{
27public:
28 static void RegisterEvents(WsfEventPipeExtension& aEventPipeExtension);
29 static void RegisterMessages(UtPackSerializer* aSerializer);
30 EventPipe(WsfEventPipeInterface* aEventPipeInterfacePtr);
31
32
33 void UpdateSubscriptions(const WsfEventPipeOptions& aNewCombinedOptions,
34 const WsfEventPipeOptions& aPreviousCombinedOptions) override;
35
36private:
37 void CyberAttackInitiated(double aSimTime, const Engagement& aEngagement);
38 void CyberAttackSucceeded(double aSimTime, const Engagement& aEngagement);
39 void CyberAttackFailed(double aSimTime, const Engagement& aEngagement);
40 void CyberAttackDetected(double aSimTime, const Engagement& aEngagement);
41 void CyberAttackAttributed(double aSimTime, const Engagement& aEngagement);
42 void CyberAttackRecovery(double aSimTime, const Engagement& aEngagement);
43 void CyberScanInitiated(double aSimTime, const Engagement& aEngagement);
44 void CyberScanSucceeded(double aSimTime, const Engagement& aEngagement);
45 void CyberScanFailed(double aSimTime, const Engagement& aEngagement);
46 void CyberScanDetected(double aSimTime, const Engagement& aEngagement);
47 void CyberScanAttributed(double aSimTime, const Engagement& aEngagement);
48
49 void Send(double aSimTime, const WsfPlatform& aPlatform, std::unique_ptr<WsfEventPipe::MsgBase> aMessagePtr)
50 {
51 mEventPipePtr->SendDependent(aSimTime, aPlatform, std::move(aMessagePtr));
52 }
53
54 WsfSimulation* mSimulationPtr;
55 WsfEventPipeInterface* mEventPipePtr;
56
57 UtCallbackHolder mCyberCallback;
58
59 int mCyberEventId;
60};
61} // namespace cyber
62} // namespace wsf
63#endif
Definition UtPack.hpp:137
Scenario extension for event pipe. Reads the input file.
Definition WsfEventPipe.hpp:36
Definition WsfEventPipeInterface.hpp:87
Definition WsfEventPipeLogger.hpp:20
Definition WsfEventPipeOptions.hpp:23
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
The main controller for a simulation.
Definition WsfSimulation.hpp:109
A class that represents the cyber engagements between two platforms.
Definition WsfCyberEngagement.hpp:37
void UpdateSubscriptions(const WsfEventPipeOptions &aNewCombinedOptions, const WsfEventPipeOptions &aPreviousCombinedOptions) override
Definition WsfCyberEventPipe.cpp:61
static void RegisterEvents(WsfEventPipeExtension &aEventPipeExtension)
Definition WsfCyberEventPipe.cpp:38
static void RegisterMessages(UtPackSerializer *aSerializer)
A callback from WsfEventPipeInterface::AddedToSimulation to register our message types with the seria...
Definition WsfCyberEventPipe.cpp:49
EventPipe(WsfEventPipeInterface *aEventPipeInterfacePtr)
Definition WsfCyberEventPipe.cpp:54
Definition WsfCyberApplicationExtension.cpp:24
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Copyrights Multiple, All Rights Reserved