WSF
WsfSA_EntityMessage.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// Copyright 2020 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 WSFSA_ENTITYMESSAGE_HPP
13#define WSFSA_ENTITYMESSAGE_HPP
14
15#include "wsf_air_combat_export.h"
16
17#include <memory>
18
19class UtScriptClass;
20class UtScriptTypes;
21#include "WsfMessage.hpp"
24
27class WSF_AIR_COMBAT_EXPORT WsfSA_EntityMessage : public WsfMessage
28{
29public:
31 WsfSA_EntityMessage(WsfPlatform* aPlatformPtr); // must use SetEntity() if you construct like this
32 // WsfSA_Message(WsfPlatform* aPlatformPtr, WsfSA_EntityPerception& aEntity);
33 WsfSA_EntityMessage(WsfPlatform* aPlatformPtr, WsfSA_EntityPerception* aEntityPtr);
34
39
40 ~WsfSA_EntityMessage() override = default;
41
44 WsfMessage* Clone() const override { return new WsfSA_EntityMessage(*this); }
45
46 const char* GetScriptClassName() const override;
47
48 static UtScriptClass* CreateScriptClass(const std::string& aClassName, UtScriptTypes* aScriptTypesPtr);
49
50 static WsfStringId GetTypeId();
51
56 WsfSA_EntityPerception* GetEntity() const { return mEntityPtr.get(); }
57
58 void SetEntity(WsfSA_EntityPerception* aEntityPtr);
59
60 bool CanBeReplacedBy(const WsfMessage& aMessage) const override;
61
62 template<typename T>
63 void Serialize(T& aBuff)
64 {
66 aBuff& mEntityPtr;
67 }
68
69private:
70 std::unique_ptr<WsfSA_EntityPerception> mEntityPtr;
71};
72
73// =================================================================================================
74// The script interface 'class'
75// =================================================================================================
76
77class WSF_AIR_COMBAT_EXPORT WsfScriptSA_EntityMessage : public WsfScriptMessageClass
78{
79public:
80 WsfScriptSA_EntityMessage(const std::string& aClassName, UtScriptTypes* aScriptTypesPtr);
81
82 void* Create(const UtScriptContext& aInstance) override;
83 void* Clone(void* aObjectPtr) override;
84 void Destroy(void* aObjectPtr) override;
85
89};
90
91#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
WsfMessage(WsfStringId aType)
Constructor for XIO (de)serialization.
Definition WsfMessage.cpp:25
WsfMessage & operator=(const WsfMessage &aRhs)=default
void Serialize(T &aBuff)
(De)serializer for XIO
Definition WsfMessage.hpp:207
const char * GetScriptClassName() const override
Definition WsfMessage.cpp:235
static WsfStringId GetTypeId()
Definition WsfMessage.cpp:159
virtual bool CanBeReplacedBy(const WsfMessage &aMessage) const
Definition WsfMessage.cpp:187
virtual WsfMessage * Clone() const
Definition WsfMessage.cpp:150
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
WsfSA_EntityMessage(WsfSA_EntityMessage &&)=default
WsfSA_EntityPerception * GetEntity() const
Definition WsfSA_EntityMessage.hpp:56
WsfMessage * Clone() const override
Definition WsfSA_EntityMessage.hpp:44
void Serialize(T &aBuff)
Definition WsfSA_EntityMessage.hpp:63
~WsfSA_EntityMessage() override=default
WsfSA_EntityMessage()
Definition WsfSA_EntityMessage.cpp:20
WsfSA_EntityMessage & operator=(WsfSA_EntityMessage &&)=default
Definition WsfSA_EntityPerception.hpp:37
WsfScriptMessageClass(const std::string &aClassName, UtScriptTypes *aTypesPtr)
Definition WsfScriptMessageClass.cpp:22
UT_DECLARE_SCRIPT_METHOD(SetEntity)
UT_DECLARE_SCRIPT_METHOD(Construct)
void * Create(const UtScriptContext &aInstance) override
Definition WsfSA_EntityMessage.cpp:107
void Destroy(void *aObjectPtr) override
Definition WsfSA_EntityMessage.cpp:131
WsfScriptSA_EntityMessage(const std::string &aClassName, UtScriptTypes *aScriptTypesPtr)
Definition WsfSA_EntityMessage.cpp:95
Copyrights Multiple, All Rights Reserved