WSF
WsfBMWeaponsManager.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI//REL TO USA ONLY
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// The use, dissemination or disclosure of data in this file is subject to
7// limitation or restriction. See accompanying README and LICENSE for details.
8// ****************************************************************************
9/*******************************************************************************
10*
11* File: WsfBMWeaponsManager.hpp
12*
13* Classification: UNCLASSIFIED
14*
15* Details:
16*
17* Contract Number:
18* Contractor Name: Radiance Technologies
19* Address: 350 Wynn Drive
20* Huntsville, AL 35805
21*
22* Abstract: This is a core class implementation for a HELIOS-like weapons
23* manager base class.
24*
25*******************************************************************************/
26
27#ifndef WSF_BM_WEAPONS_MANAGER_HPP
28#define WSF_BM_WEAPONS_MANAGER_HPP
29
30namespace il
31{
32 class AssetManagerInterface;
33 class WeaponsManagerInterface;
34}
35
36#include <memory>
37
40#include <WsfApplication.hpp>
41
44#include "WsfBMCommon.hpp"
48
50{
51 public:
52
54 const std::string& aPartClass = WsfScriptWeaponsManagerClass::SCRIPT_CLASS_NAME,
55 const std::string& aPartVarName = "PROCESSOR",
56 const std::shared_ptr<il::WeaponsManagerInterface>& wm_component = std::make_shared<il::WeaponsManagerInterface>());
57 virtual ~WsfBMWeaponsManager();
58
59 WsfProcessor* Clone() const override;
60
61 // Plugin Interface
62 static void RegisterScriptTypes(WsfApplication* aApplicationPtr);
63 static WsfProcessor* Create(WsfScenario& aScenario);
64 static std::unique_ptr<WsfBMWeaponsManager> CreateUnique(WsfScenario& aScenario);
65 // End Plugin Interface
66
67 bool ProcessInput(UtInput& aInput) override;
68
69 const char* GetScriptClassName() const override;
70 virtual const char* GetBaseClassName();
71
72 bool Initialize(double aSimTime) override;
73 bool Initialize2(double aSimTime) override;
74 void Update(double aSimTime) override;
75 void Run(const double aSimTime) override; // HELIOS C2 component interface for invoking processor periodic updates
76 bool ProcessMessage(double aSimTime, const WsfMessage& aMessage) override;
77 bool ReceiveMessage(double aSimTime, const WsfMessage& aMessage) override;
78
79 protected:
81
82 virtual bool ProcessWeaponsManagerInput(UtInput& aInput);
83
84 private:
86
87 WsfDefaultWeaponsManagerImpl m_default_weapons_manager_impl;
88
89 bool ProcessSelfDefenseBlock(UtInputBlock& block);
90 bool ProcessEngagementSettingsBlock(UtInputBlock& block);
91 bool ProcessDelaysBlock(UtInputBlock& block);
92 bool ProcessWEZBlock(UtInputBlock& block);
93};
94
95#endif
Definition WsfApplication.hpp:45
virtual const char * GetBaseClassName()
Definition WsfBMWeaponsManager.cpp:102
static WsfProcessor * Create(WsfScenario &aScenario)
Definition WsfBMWeaponsManager.cpp:83
static void RegisterScriptTypes(WsfApplication *aApplicationPtr)
Definition WsfBMWeaponsManager.cpp:71
WsfBMWeaponsManager(WsfScenario &aScenario, const std::string &aPartClass=WsfScriptWeaponsManagerClass::SCRIPT_CLASS_NAME, const std::string &aPartVarName="PROCESSOR", const std::shared_ptr< il::WeaponsManagerInterface > &wm_component=std::make_shared< il::WeaponsManagerInterface >())
Definition WsfBMWeaponsManager.cpp:41
virtual bool ProcessWeaponsManagerInput(UtInput &aInput)
Definition WsfBMWeaponsManager.cpp:209
static std::unique_ptr< WsfBMWeaponsManager > CreateUnique(WsfScenario &aScenario)
Definition WsfBMWeaponsManager.cpp:90
WsfC2ComponentContainer(const std::shared_ptr< il::BattleManagerInterface > &component, const std::shared_ptr< il::moeLoggingInterface > &logger=nullptr)
Definition WsfC2ComponentRefInterface.cpp:31
Definition WsfDefaultWeaponsManagerImpl.hpp:53
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
virtual bool ReceiveMessage(double aSimTime, const WsfMessage &aMessage)
Definition WsfPlatformPart.cpp:465
WsfProcessor & operator=(const WsfProcessor &aRhs)=delete
WsfProcessor(const WsfScenario &aScenario)
Definition WsfProcessor.cpp:25
const char * GetScriptClassName() const override
Definition WsfProcessor.cpp:63
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
WsfScriptOverridableProcessor(const bool autonomous_updates)
Definition WsfScriptOverridableProcessor.hpp:36
virtual void Run(const double sim_time_s)=0
bool Initialize2(double aSimTime) override
Definition WsfScriptProcessor.cpp:142
void Update(double aSimTime) override
Definition WsfScriptProcessor.cpp:281
WsfProcessor * Clone() const override
Definition WsfScriptProcessor.cpp:97
WsfScriptProcessor(const WsfScenario &aScenario)
Definition WsfScriptProcessor.cpp:30
bool Initialize(double aSimTime) override
Definition WsfScriptProcessor.cpp:104
bool ProcessInput(UtInput &aInput) override
Definition WsfScriptProcessor.cpp:186
bool ProcessMessage(double aSimTime, const WsfMessage &aMessage) override
Definition WsfScriptProcessor.cpp:300
static const char * SCRIPT_CLASS_NAME
Definition WsfScriptWeaponsManagerClass.hpp:47
Definition WsfAssetManager.hpp:34
Copyrights Multiple, All Rights Reserved