WSF
WsfBMAssignmentStatusMessage.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: WsfBMAssignmentStatusMessage.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_STATUS_MESSAGE_HPP
27#define WSF_BM_ASSIGNMENT_STATUS_MESSAGE_HPP
28
29#include <memory>
30#include <WsfBMCommon.hpp>
31
32#include <WsfMessage.hpp>
33#include <WsfTrackId.hpp>
34#include <UtNullCreate.hpp>
35
36#include <iadsLib/assignmentACKMessage.hpp>
38
39class WsfPlatform;
40class WsfSimulation;
41class WsfWeapon;
42
44{
45 public:
46 //WsfBMAssignmentStatusMessage (const UtNullCreate& aNull);
47 //WsfBMAssignmentStatusMessage (WsfSimulation *simPtr);
48 WsfBMAssignmentStatusMessage(std::weak_ptr<il::logger::GlobalLogger> aGlobalLogger);
50 WsfBMAssignmentStatusMessage(WsfPlatform* plat, const std::shared_ptr<il::baseMessage>& message);
51
53
55
56 WsfBMAssignmentStatusMessage* Clone() const override;
57
58 const char* GetScriptClassName() const override;
59 static WsfStringId GetTypeId();
60
61 void SetAckTime(const double sim_time_s);
62 double GetAckTime() const;
63
64 bool StatusTimeExists(const il::assignmentACKMessage::eAssignmentStatus status) const;
65 double GetStatusTime(const il::assignmentACKMessage::eAssignmentStatus status) const;
66
67 void SetAssignmentReferenceTrackID(const WsfTrackId& track_id);
69
70 void SetAssignedWeapon(const WsfPlatform* plat, const WsfWeapon* weapon);
71 const WsfPlatform* GetAssignedPlatform(WsfSimulation* sim_ptr) const;
72 const WsfWeapon* GetAssignedWeapon(WsfSimulation* sim_ptr) const;
73
74 void SetInitiatingPlatform(const WsfPlatform* plat);
75 const WsfPlatform* GetInitiatingPlatform(WsfSimulation* sim_ptr) const;
76
77 void SetAssigningPlatform(const WsfPlatform* plat);
78 const WsfPlatform* GetAssigningPlatform(WsfSimulation* sim_ptr) const;
79
80 void SetAssignmentStatus(const il::assignmentACKMessage::eAssignmentStatus status);
81 il::assignmentACKMessage::eAssignmentStatus GetAssignmentStatus() const;
82
83 void SetSalvosFired(const int salvos_fired);
84 int GetSalvosFired() const;
85
86 void SetCantcoReason(const std::string& reason);
87 std::string GetCantcoReason() const;
88
89 void SetSystemicCantcoScope(const il::assignmentACKMessage::eSystemicCantcoScope scope);
90 bool IsSystemicCantco() const;
91 il::assignmentACKMessage::eSystemicCantcoScope GetSystemicCantcoScope() const;
92
93 // will be null if status is not overridden
94 void SetOverridingPlatform(const WsfPlatform* plat);
95 const WsfPlatform* GetOverridingPlatform(WsfSimulation* sim_ptr) const;
96
97 // will be null if status is not overridden
98 void SetNewlyAssignedWeapon(const WsfPlatform* plat, const WsfWeapon* weapon);
100 const WsfWeapon* GetNewlyAssignedWeapon(WsfSimulation* sim_ptr) const;
101
102 void Print() const;
103
104 inline std::shared_ptr<const il::assignmentACKMessage> GetRawMessagePtr() const { return std::static_pointer_cast <il::assignmentACKMessage>(m_wrapped_ptr); }
105
106 private:
107 inline std::shared_ptr<il::assignmentACKMessage> GetMutableRawMessagePtr() { return std::static_pointer_cast <il::assignmentACKMessage>(m_wrapped_ptr); }
108};
109
110#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
il::assignmentACKMessage::eAssignmentStatus GetAssignmentStatus() const
Definition WsfBMAssignmentStatusMessage.cpp:168
void SetAssignedWeapon(const WsfPlatform *plat, const WsfWeapon *weapon)
Definition WsfBMAssignmentStatusMessage.cpp:126
void SetAckTime(const double sim_time_s)
Definition WsfBMAssignmentStatusMessage.cpp:95
WsfTrackId GetAssignmentReferenceTrackID() const
Definition WsfBMAssignmentStatusMessage.cpp:120
const WsfPlatform * GetInitiatingPlatform(WsfSimulation *sim_ptr) const
Definition WsfBMAssignmentStatusMessage.cpp:147
void SetOverridingPlatform(const WsfPlatform *plat)
Definition WsfBMAssignmentStatusMessage.cpp:217
const WsfPlatform * GetAssigningPlatform(WsfSimulation *sim_ptr) const
Definition WsfBMAssignmentStatusMessage.cpp:158
void SetSystemicCantcoScope(const il::assignmentACKMessage::eSystemicCantcoScope scope)
Definition WsfBMAssignmentStatusMessage.cpp:193
const WsfPlatform * GetOverridingPlatform(WsfSimulation *sim_ptr) const
Definition WsfBMAssignmentStatusMessage.cpp:222
void SetAssignmentStatus(const il::assignmentACKMessage::eAssignmentStatus status)
Definition WsfBMAssignmentStatusMessage.cpp:163
std::shared_ptr< const il::assignmentACKMessage > GetRawMessagePtr() const
Definition WsfBMAssignmentStatusMessage.hpp:104
const WsfWeapon * GetNewlyAssignedWeapon(WsfSimulation *sim_ptr) const
Definition WsfBMAssignmentStatusMessage.cpp:239
bool StatusTimeExists(const il::assignmentACKMessage::eAssignmentStatus status) const
Definition WsfBMAssignmentStatusMessage.cpp:105
std::string GetCantcoReason() const
Definition WsfBMAssignmentStatusMessage.cpp:188
WsfBMAssignmentStatusMessage(std::weak_ptr< il::logger::GlobalLogger > aGlobalLogger)
Definition WsfBMAssignmentStatusMessage.cpp:44
virtual ~WsfBMAssignmentStatusMessage()
Definition WsfBMAssignmentStatusMessage.cpp:75
const WsfPlatform * GetNewlyAssignedPlatform(WsfSimulation *sim_ptr) const
Definition WsfBMAssignmentStatusMessage.cpp:234
void SetSalvosFired(const int salvos_fired)
Definition WsfBMAssignmentStatusMessage.cpp:173
bool IsSystemicCantco() const
Definition WsfBMAssignmentStatusMessage.cpp:198
static WsfStringId GetTypeId()
Definition WsfBMAssignmentStatusMessage.cpp:89
double GetAckTime() const
Definition WsfBMAssignmentStatusMessage.cpp:100
const WsfPlatform * GetAssignedPlatform(WsfSimulation *sim_ptr) const
Definition WsfBMAssignmentStatusMessage.cpp:131
const WsfWeapon * GetAssignedWeapon(WsfSimulation *sim_ptr) const
Definition WsfBMAssignmentStatusMessage.cpp:136
il::assignmentACKMessage::eSystemicCantcoScope GetSystemicCantcoScope() const
Definition WsfBMAssignmentStatusMessage.cpp:203
double GetStatusTime(const il::assignmentACKMessage::eAssignmentStatus status) const
Definition WsfBMAssignmentStatusMessage.cpp:110
void SetAssignmentReferenceTrackID(const WsfTrackId &track_id)
Definition WsfBMAssignmentStatusMessage.cpp:115
void SetNewlyAssignedWeapon(const WsfPlatform *plat, const WsfWeapon *weapon)
Definition WsfBMAssignmentStatusMessage.cpp:229
void SetInitiatingPlatform(const WsfPlatform *plat)
Definition WsfBMAssignmentStatusMessage.cpp:142
WsfBMAssignmentStatusMessage * Clone() const override
Definition WsfBMAssignmentStatusMessage.cpp:79
void SetAssigningPlatform(const WsfPlatform *plat)
Definition WsfBMAssignmentStatusMessage.cpp:153
void SetCantcoReason(const std::string &reason)
Definition WsfBMAssignmentStatusMessage.cpp:183
const char * GetScriptClassName() const override
Definition WsfBMAssignmentStatusMessage.cpp:84
void Print() const
Definition WsfBMAssignmentStatusMessage.cpp:244
int GetSalvosFired() const
Definition WsfBMAssignmentStatusMessage.cpp:178
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