WSF
WsfBMAssignmentMessage.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: WsfBMAssignmentMessage.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:
23*
24*******************************************************************************/
25
26#ifndef WSF_BM_ASSIGNMENT_MESSAGE_HPP
27#define WSF_BM_ASSIGNMENT_MESSAGE_HPP
28
29#include <memory>
30#include <WsfBMCommon.hpp>
31
32#include <WsfMessage.hpp>
33#include <WsfLocalTrack.hpp>
34
35#include <iadsLib/assignmentMessage.hpp>
37
38class WsfPlatform;
39class WsfSimulation;
40class WsfWeapon;
41
42class WsfBMAssignmentMessage : public WsfMessage, public WsfBMManagedTypeWrapper<il::baseMessage>
43{
44 public:
47 WsfBMAssignmentMessage(WsfPlatform* plat, const std::shared_ptr<il::baseMessage>& message);
48
49 WSF_IADS_C2_LIB_EXPORT WsfBMAssignmentMessage(const WsfBMAssignmentMessage& aSrc);
50
51 virtual WSF_IADS_C2_LIB_EXPORT ~WsfBMAssignmentMessage();
52
53 WsfBMAssignmentMessage* Clone() const override;
54
55 const char* GetScriptClassName() const override;
56 virtual const char* GetBaseClassName();
57 static WsfStringId GetTypeId();
58
59 void SetAssignmentTime(const double sim_time_s);
60 double GetAssignmentTime() const;
61
62 void SetAssignedWeapon(const WsfPlatform* plat, const WsfWeapon* weapon);
63 const WsfPlatform* GetAssignedPlatform(WsfSimulation* sim_ptr) const;
64 const WsfWeapon* GetAssignedWeapon(WsfSimulation* sim_ptr) const;
65
66 void SetAssignmentReferenceTrackID(const WsfTrackId& track_id);
68
69 void SetAssignmentLocalTrackID(const WsfTrackId& track_id);
71
72 void SetInitiatingPlatform(const WsfPlatform* plat);
73 const WsfPlatform* GetInitiatingPlatform(WsfSimulation* sim_ptr) const;
74
75 void SetAssigningPlatform(const WsfPlatform* plat);
76 const WsfPlatform* GetAssigningPlatform(WsfSimulation* sim_ptr) const;
77
78 void SetSelfDefenseFlag(const bool is_self_defense);
79 bool GetSelfDefenseFlag() const;
80
81 void SetMaxFiringTime(const double sim_time_s);
82 double GetMaxFiringTime() const;
83
84 void SetAssignmentReason(const il::assignmentMessage::AssignmentReason reason);
85 il::assignmentMessage::AssignmentReason GetAssignmentReason() const;
86 std::string GetAssignmentReasonString() const;
87
88 void SetShotDoctrine(const il::eShotDoctrine shot_doctrine);
89 il::eShotDoctrine GetShotDoctrine() const;
90 std::string GetshotDoctrineString() const;
91
92 void Print() const;
93
94 inline std::shared_ptr<const il::assignmentMessage> GetRawMessagePtr() const { return std::static_pointer_cast <il::assignmentMessage>(m_wrapped_ptr); }
95
96 private:
97 inline std::shared_ptr<il::assignmentMessage> GetMutableRawMessagePtr() { return std::static_pointer_cast <il::assignmentMessage>(m_wrapped_ptr); }
98};
99
100#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
double GetMaxFiringTime() const
Definition WsfBMAssignmentMessage.cpp:183
WsfBMAssignmentMessage(WsfSimulation *simPtr)
Definition WsfBMAssignmentMessage.cpp:46
virtual WSF_IADS_C2_LIB_EXPORT ~WsfBMAssignmentMessage()
Definition WsfBMAssignmentMessage.cpp:77
void SetAssignmentReferenceTrackID(const WsfTrackId &track_id)
Definition WsfBMAssignmentMessage.cpp:128
void SetMaxFiringTime(const double sim_time_s)
Definition WsfBMAssignmentMessage.cpp:178
double GetAssignmentTime() const
Definition WsfBMAssignmentMessage.cpp:107
std::shared_ptr< const il::assignmentMessage > GetRawMessagePtr() const
Definition WsfBMAssignmentMessage.hpp:94
const WsfPlatform * GetAssigningPlatform(WsfSimulation *sim_ptr) const
Definition WsfBMAssignmentMessage.cpp:163
void SetShotDoctrine(const il::eShotDoctrine shot_doctrine)
Definition WsfBMAssignmentMessage.cpp:203
void Print() const
Definition WsfBMAssignmentMessage.cpp:218
void SetAssignmentReason(const il::assignmentMessage::AssignmentReason reason)
Definition WsfBMAssignmentMessage.cpp:188
void SetAssigningPlatform(const WsfPlatform *plat)
Definition WsfBMAssignmentMessage.cpp:158
il::eShotDoctrine GetShotDoctrine() const
Definition WsfBMAssignmentMessage.cpp:208
std::string GetshotDoctrineString() const
Definition WsfBMAssignmentMessage.cpp:213
const char * GetScriptClassName() const override
Definition WsfBMAssignmentMessage.cpp:86
void SetAssignedWeapon(const WsfPlatform *plat, const WsfWeapon *weapon)
Definition WsfBMAssignmentMessage.cpp:113
static WsfStringId GetTypeId()
Definition WsfBMAssignmentMessage.cpp:96
il::assignmentMessage::AssignmentReason GetAssignmentReason() const
Definition WsfBMAssignmentMessage.cpp:193
virtual const char * GetBaseClassName()
Definition WsfBMAssignmentMessage.cpp:91
const WsfPlatform * GetAssignedPlatform(WsfSimulation *sim_ptr) const
Definition WsfBMAssignmentMessage.cpp:118
bool GetSelfDefenseFlag() const
Definition WsfBMAssignmentMessage.cpp:173
const WsfWeapon * GetAssignedWeapon(WsfSimulation *sim_ptr) const
Definition WsfBMAssignmentMessage.cpp:123
void SetAssignmentLocalTrackID(const WsfTrackId &track_id)
Definition WsfBMAssignmentMessage.cpp:138
void SetInitiatingPlatform(const WsfPlatform *plat)
Definition WsfBMAssignmentMessage.cpp:148
WsfBMAssignmentMessage * Clone() const override
Definition WsfBMAssignmentMessage.cpp:81
void SetAssignmentTime(const double sim_time_s)
Definition WsfBMAssignmentMessage.cpp:102
const WsfPlatform * GetInitiatingPlatform(WsfSimulation *sim_ptr) const
Definition WsfBMAssignmentMessage.cpp:153
const WsfTrackId GetAssignmentLocalTrackID() const
Definition WsfBMAssignmentMessage.cpp:143
std::string GetAssignmentReasonString() const
Definition WsfBMAssignmentMessage.cpp:198
const WsfTrackId GetAssignmentReferenceTrackID() const
Definition WsfBMAssignmentMessage.cpp:133
void SetSelfDefenseFlag(const bool is_self_defense)
Definition WsfBMAssignmentMessage.cpp:168
WsfBMManagedTypeWrapper(const std::string &script_class_name)
Definition WsfBMGenericTypeWrapper.hpp:58
std::shared_ptr< il::baseMessage > m_wrapped_ptr
Definition WsfBMGenericTypeWrapper.hpp:48
WsfMessage(WsfStringId aType)
Constructor for XIO (de)serialization.
Definition WsfMessage.cpp:25
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfTrackId.hpp:33
Definition WsfWeapon.hpp:63
Copyrights Multiple, All Rights Reserved