WSF
WsfBMDisseminateC2.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: WsfBMDisseminateC2.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 C2 dissemination
23* model. It may be used or extended to meet individual IADS needs.
24*
25*******************************************************************************/
26
27#ifndef WSF_BM_DISSEMINATE_C2_HPP
28#define WSF_BM_DISSEMINATE_C2_HPP
29
30namespace il
31{
32 class AssetManagerInterface;
33 class DisseminateC2Interface;
34}
35
36class WsfComm;
37
38#include <memory>
39#include <WsfApplication.hpp>
40
43
46#include "WsfBMCommon.hpp"
48#include <UtPlugin.hpp>
51
53{
54 public:
55
57 const std::string& aPartClass = WsfScriptDisseminateC2Class::SCRIPT_CLASS_NAME,
58 const std::string& aPartVarName = "PROCESSOR",
59 const std::shared_ptr<il::DisseminateC2Interface>& dc2_component = std::make_shared<il::DisseminateC2Interface>());
60 virtual ~WsfBMDisseminateC2();
61
62 WsfProcessor* Clone() const override;
63
64 // Plugin Interface
65 static WSF_IADS_C2_LIB_EXPORT void RegisterScriptTypes(WsfApplication* aApplicationPtr);
66 static WSF_IADS_C2_LIB_EXPORT WsfProcessor* Create(WsfScenario& aScenario);
67 static WSF_IADS_C2_LIB_EXPORT std::unique_ptr<WsfBMDisseminateC2> CreateUnique(WsfScenario& aScenario);
68 // End Plugin Interface
69
70 bool ProcessInput(UtInput& aInput) override;
71
72 const char* GetScriptClassName() const override;
73 virtual const char* GetBaseClassName();
74
75 bool Initialize(double aSimTime) override;
76 bool Initialize2(double aSimTime) override;
77 void Update(double aSimTime) override;
78 void Run(const double aSimTime) override; // HELIOS C2 component interface for invoking processor periodic updates
79 bool ProcessMessage(double aSimTime, const WsfMessage& aMessage) override;
80 bool ReceiveMessage(double aSimTime, const WsfMessage& aMessage) override;
81
82 virtual bool SendMessage(double aSimTime, const WsfMessage& aMessage, const WsfPlatform* destination);
83
84 protected:
85
87
88 virtual bool ProcessDisseminateC2Input(UtInput& aInput);
89 virtual wsf::comm::Comm* SelectCommDevice(const WsfPlatform* aRecipientPtr, WsfStringId aCommName);
90
91 private:
92
93 WsfBMDisseminateC2& operator=(const WsfBMDisseminateC2& rhs) = delete;
94
95 WsfDefaultDisseminationImpl m_default_dissem_impl;
96};
97
98#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Definition WsfApplication.hpp:45
virtual ~WsfBMDisseminateC2()
Definition WsfBMDisseminateC2.cpp:119
bool Initialize(double aSimTime) override
Definition WsfBMDisseminateC2.cpp:298
WsfBMDisseminateC2(WsfScenario &aScenario, const std::string &aPartClass=WsfScriptDisseminateC2Class::SCRIPT_CLASS_NAME, const std::string &aPartVarName="PROCESSOR", const std::shared_ptr< il::DisseminateC2Interface > &dc2_component=std::make_shared< il::DisseminateC2Interface >())
Definition WsfBMDisseminateC2.cpp:99
const char * GetScriptClassName() const override
Definition WsfBMDisseminateC2.cpp:153
bool ProcessMessage(double aSimTime, const WsfMessage &aMessage) override
Definition WsfBMDisseminateC2.cpp:355
WsfProcessor * Clone() const override
Definition WsfBMDisseminateC2.cpp:123
void Run(const double aSimTime) override
Definition WsfBMDisseminateC2.cpp:348
void Update(double aSimTime) override
Definition WsfBMDisseminateC2.cpp:335
static WSF_IADS_C2_LIB_EXPORT WsfProcessor * Create(WsfScenario &aScenario)
Definition WsfBMDisseminateC2.cpp:141
bool ProcessInput(UtInput &aInput) override
Definition WsfBMDisseminateC2.cpp:163
static WSF_IADS_C2_LIB_EXPORT void RegisterScriptTypes(WsfApplication *aApplicationPtr)
Definition WsfBMDisseminateC2.cpp:129
virtual bool ProcessDisseminateC2Input(UtInput &aInput)
Definition WsfBMDisseminateC2.cpp:179
virtual wsf::comm::Comm * SelectCommDevice(const WsfPlatform *aRecipientPtr, WsfStringId aCommName)
Definition WsfBMDisseminateC2.cpp:462
bool Initialize2(double aSimTime) override
Definition WsfBMDisseminateC2.cpp:313
static WSF_IADS_C2_LIB_EXPORT std::unique_ptr< WsfBMDisseminateC2 > CreateUnique(WsfScenario &aScenario)
Definition WsfBMDisseminateC2.cpp:148
virtual const char * GetBaseClassName()
Definition WsfBMDisseminateC2.cpp:158
bool ReceiveMessage(double aSimTime, const WsfMessage &aMessage) override
Definition WsfBMDisseminateC2.cpp:373
virtual bool SendMessage(double aSimTime, const WsfMessage &aMessage, const WsfPlatform *destination)
Definition WsfBMDisseminateC2.cpp:387
WsfC2ComponentContainer(const std::shared_ptr< il::BattleManagerInterface > &component, const std::shared_ptr< il::moeLoggingInterface > &logger=nullptr)
Definition WsfC2ComponentRefInterface.cpp:31
Definition WsfDefaultDisseminationImpl.hpp:54
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
WsfProcessor(const WsfScenario &aScenario)
Definition WsfProcessor.cpp:25
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
static const char * SCRIPT_CLASS_NAME
Definition WsfScriptDisseminateC2Class.hpp:46
WsfScriptOverridableProcessor(const bool autonomous_updates)
Definition WsfScriptOverridableProcessor.hpp:36
WsfScriptProcessor(const WsfScenario &aScenario)
Definition WsfScriptProcessor.cpp:30
Definition WsfComm.hpp:43
Definition WsfAssetManager.hpp:34
Copyrights Multiple, All Rights Reserved