WSF
WsfCyberSimulationExtension.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 WSFCYBERSIMULATIONEXTENSION_HPP
13#define WSFCYBERSIMULATIONEXTENSION_HPP
14
15#include <map>
16#include <memory>
17#include <vector>
18
19#include "UtCallbackHolder.hpp"
23#include "WsfCyberEventPipe.hpp"
24#include "WsfCyberObserver.hpp"
25#include "WsfCyberRandom.hpp"
27#include "triggers/WsfCyberTriggerManager.hpp"
28class WsfPlatform;
30
31namespace wsf
32{
33namespace cyber
34{
35
36class WSF_CYBER_EXPORT SimulationExtension : public WsfSimulationExtension
37{
38public:
39 static SimulationExtension& Get(const WsfSimulation& aSimulation);
40
41 void AddedToSimulation() override;
42 bool Initialize() override;
43
44 Observer& GetObserver() { return mObserver; }
45 random::RandomManager& GetCyberDrawManager() { return *mDrawManagerPtr; }
46 EngagementManager& GetCyberEngagementManager() { return mEngagementManager; }
47 VisualizationManager& GetCyberVisualizationManager() { return mVisualizationManager; }
48 trigger::Manager& GetCyberTriggerManager() { return *mTriggerManagerPtr; }
49 EventManager& GetCyberEventManager() { return *mEventManagerPtr; }
50
51 void PlatformDeleted(double aSimTime, WsfPlatform* aPlatformPtr);
52
53private:
54 Observer mObserver;
55 std::unique_ptr<random::RandomManager> mDrawManagerPtr{nullptr};
56 EngagementManager mEngagementManager;
57 VisualizationManager mVisualizationManager;
58 std::unique_ptr<EventPipe> mEventPipePtr;
59 std::unique_ptr<trigger::Manager> mTriggerManagerPtr;
60 std::unique_ptr<EventManager> mEventManagerPtr{nullptr};
61
62 UtCallbackHolder mCallbacks;
63};
64
65} // namespace cyber
66} // namespace wsf
67
68#endif
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
WsfSimulationExtension()
Definition WsfSimulationExtension.cpp:23
friend class WsfSimulation
Definition WsfSimulationExtension.hpp:43
Definition WsfCyberEngagementManager.hpp:57
Definition WsfCyberEventManager.hpp:42
Definition WsfCyberSimulationExtension.hpp:37
bool Initialize() override
Definition WsfCyberSimulationExtension.cpp:261
EngagementManager & GetCyberEngagementManager()
Definition WsfCyberSimulationExtension.hpp:46
static SimulationExtension & Get(const WsfSimulation &aSimulation)
Return a reference to the cyber simulation extension.
Definition WsfCyberSimulationExtension.cpp:111
Observer & GetObserver()
Definition WsfCyberSimulationExtension.hpp:44
random::RandomManager & GetCyberDrawManager()
Definition WsfCyberSimulationExtension.hpp:45
trigger::Manager & GetCyberTriggerManager()
Definition WsfCyberSimulationExtension.hpp:48
EventManager & GetCyberEventManager()
Definition WsfCyberSimulationExtension.hpp:49
VisualizationManager & GetCyberVisualizationManager()
Definition WsfCyberSimulationExtension.hpp:47
void AddedToSimulation() override
Definition WsfCyberSimulationExtension.cpp:118
Definition WsfCyberVisualizationManager.hpp:25
Definition WsfCyberRandom.hpp:44
Definition WsfCyberApplicationExtension.cpp:24
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Definition WsfCyberObserver.hpp:65
Copyrights Multiple, All Rights Reserved