WSF
WsfAssetMessage.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing 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 WSFASSETMESSAGE_HPP
13#define WSFASSETMESSAGE_HPP
14
15#include "wsf_mil_export.h"
16
17#include <memory>
18
19#include "UtCloneablePtr.hpp"
20class UtScriptClass;
21class UtScriptTypes;
23#include "WsfMessage.hpp"
25
28class WSF_MIL_EXPORT WsfAssetMessage : public WsfMessage
29{
30public:
32 WsfAssetMessage(WsfPlatform* aPlatformPtr); // must use SetAsset() if you construct like this
33 // WsfAssetMessage(WsfPlatform* aPlatformPtr, WsfAssetPerception& aAsset);
34 WsfAssetMessage(WsfPlatform* aPlatformPtr, std::unique_ptr<WsfAssetPerception> aAssetPtr);
35
36 WsfAssetMessage(const WsfAssetMessage& aSrc) = default;
40
41 ~WsfAssetMessage() override = default;
42
45 WsfMessage* Clone() const override { return new WsfAssetMessage(*this); }
46
47 const char* GetScriptClassName() const override;
48
49 static UtScriptClass* CreateScriptClass(const std::string& aClassName, UtScriptTypes* aScriptTypesPtr);
50
51 static WsfStringId GetTypeId();
52
57 WsfAssetPerception* GetAsset() const { return mAssetPtr.get(); }
58
59 void SetAsset(WsfAssetPerception* aAssetPtr);
60
61 bool CanBeReplacedBy(const WsfMessage& aMessage) const override;
62
63 template<typename T>
64 void Serialize(T& aBuff)
65 {
67 aBuff& mAssetPtr;
68 }
69
70private:
71 ut::CloneablePtr<WsfAssetPerception> mAssetPtr;
72};
73
74
75// =================================================================================================
76// The script interface 'class'
77// =================================================================================================
78
80{
81public:
82 WsfScriptAssetMessageClass(const std::string& aClassName, UtScriptTypes* aScriptTypesPtr);
83
84 void* Create(const UtScriptContext& aInstance) override;
85 void* Clone(void* aObjectPtr) override;
86 void Destroy(void* aObjectPtr) override;
87
91};
92
93
94#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
WsfAssetMessage & operator=(WsfAssetMessage &&)=default
WsfMessage * Clone() const override
Definition WsfAssetMessage.hpp:45
WsfAssetMessage(WsfAssetMessage &&)=default
~WsfAssetMessage() override=default
WsfAssetMessage(const WsfAssetMessage &aSrc)=default
void Serialize(T &aBuff)
Definition WsfAssetMessage.hpp:64
WsfAssetPerception * GetAsset() const
Definition WsfAssetMessage.hpp:57
WsfAssetMessage()
Definition WsfAssetMessage.cpp:21
Definition WsfAssetPerception.hpp:32
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
void Destroy(void *aObjectPtr) override
Definition WsfAssetMessage.cpp:131
void * Create(const UtScriptContext &aInstance) override
Definition WsfAssetMessage.cpp:103
WsfScriptAssetMessageClass(const std::string &aClassName, UtScriptTypes *aScriptTypesPtr)
Definition WsfAssetMessage.cpp:89
UT_DECLARE_SCRIPT_METHOD(Construct)
WsfScriptMessageClass(const std::string &aClassName, UtScriptTypes *aTypesPtr)
Definition WsfScriptMessageClass.cpp:22
Copyrights Multiple, All Rights Reserved