WSF
WsfScriptProcessor.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 WSFSCRIPTPROCESSOR_HPP
13#define WSFSCRIPTPROCESSOR_HPP
14
15#include "UtCloneablePtr.hpp"
16class UtInput;
17class UtScript;
18#include "UtScriptData.hpp"
20class WsfBehaviorTree;
21#include "wsf_export.h"
22
23#include "WsfExternalLinks.hpp"
24#include "WsfProcessor.hpp"
28
41
43{
44public:
45 WsfScriptProcessor(const WsfScenario& aScenario);
46
47 WsfScriptProcessor(const WsfScenario& aScenario, WsfStringId aPartClass, const std::string& aPartVarName);
48
49 ~WsfScriptProcessor() override;
50
51 WsfProcessor* Clone() const override;
52
53 bool Initialize(double aSimTime) override;
54
55 bool Initialize2(double aSimTime) override;
56
57 bool ProcessInput(UtInput& aInput) override;
58
59 void Update(double aSimTime) override;
60
61 bool ProcessMessage(double aSimTime, const WsfMessage& aMessage) override;
62#undef SendMessage
63 void SendMessage(double aSimTime, const WsfMessage& aMessage) override;
64
65 virtual void ExecuteOnMessageCreate(double aSimTime, WsfMessage& aMessage);
66
67 virtual bool ExecuteScript(double aSimTime, const std::string& aScriptName);
68
69 virtual bool ExecuteScript(double aSimTime,
70 WsfStringId aScriptName,
71 UtScriptData& aScriptRetVal,
72 const UtScriptDataList& aScriptArgs = UtScriptDataList());
73
74 void ExecuteScriptAtTime(double aTime, WsfStringId aScriptName, const UtScriptDataList& aScriptArgs);
75
76 virtual void SuppressMessage(bool aSuppressMessage);
77
79
81 UtScriptContext* GetScriptAccessibleContext() const override;
82 void SetPlatform(WsfPlatform* aPlatformPtr) override;
83
85
86 WsfAdvancedBehaviorTree* AdvancedBehaviorTree() const;
87
88 virtual const WsfScriptStateMachine* GetStateMachine() const { return mStateMachinePtr.get(); }
89
91
92 std::string State();
93 std::string StateAll();
94 void SetState(std::string& stateName);
95 void SetStateAll(std::string& stateNameAll);
96
97protected:
99
102
105
108
109 UtScriptClass* mMessageClassPtr; // = mContextPtr->GetClass("WsfMessage");
110
113
115
116 ut::CloneablePtr<WsfAdvancedBehaviorTree> mAdvancedBehaviorTreePtr;
117
118 std::unique_ptr<WsfScriptStateMachine> mStateMachinePtr;
120
125};
126
127#endif
ut::script::Data UtScriptData
Definition WsfScriptContext.hpp:47
ut::script::DataList UtScriptDataList
Definition WsfScriptContext.hpp:48
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfAdvancedBehaviorTree.hpp:54
Definition WsfBehaviorTree.hpp:31
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
virtual void SendMessage(double aSimTime, const WsfMessage &aMessage)
Definition WsfPlatformPart.cpp:475
virtual bool ProcessMessage(double aSimTime, const WsfMessage &aMessage)
Definition WsfPlatformPart.cpp:442
virtual void SetPlatform(WsfPlatform *aPlatformPtr)
Definition WsfPlatformPart.hpp:113
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
WsfProcessor * Clone() const override=0
bool Initialize(double aSimTime) override
Definition WsfProcessor.cpp:86
bool Initialize2(double aSimTime) override
Definition WsfProcessor.cpp:104
void Update(double aSimTime) override
Definition WsfProcessor.cpp:121
WsfProcessor(const WsfScenario &aScenario)
Definition WsfProcessor.cpp:25
bool ProcessInput(UtInput &aInput) override
Definition WsfProcessor.cpp:132
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Definition WsfScriptContext.hpp:71
Definition WsfScriptMessageHandler.hpp:42
Definition WsfScriptProcessor.hpp:43
WsfBehaviorTree * mBehaviorTreePtr
Definition WsfScriptProcessor.hpp:114
wsf::ExternalLinks & GetExternalLinks()
Definition WsfScriptProcessor.hpp:90
ut::CloneablePtr< WsfAdvancedBehaviorTree > mAdvancedBehaviorTreePtr
Definition WsfScriptProcessor.hpp:116
UtScriptClass * mMessageClassPtr
Definition WsfScriptProcessor.hpp:109
WsfScriptMessageHandler * GetMessageHandler()
Definition WsfScriptProcessor.hpp:78
void ExecuteScriptAtTime(double aTime, WsfStringId aScriptName, const UtScriptDataList &aScriptArgs)
Definition WsfScriptProcessor.cpp:396
bool mSuppressMessage
Definition WsfScriptProcessor.hpp:124
WsfScriptContext & GetScriptContext()
Definition WsfScriptProcessor.hpp:80
virtual bool ExecuteScript(double aSimTime, const std::string &aScriptName)
Definition WsfScriptProcessor.cpp:376
std::unique_ptr< WsfScriptStateMachine > mStateMachinePtr
Definition WsfScriptProcessor.hpp:118
virtual void SuppressMessage(bool aSuppressMessage)
Definition WsfScriptProcessor.cpp:412
virtual void ExecuteOnMessageCreate(double aSimTime, WsfMessage &aMessage)
Definition WsfScriptProcessor.cpp:361
WsfScriptMessageHandler * mMessageHandlerPtr
Pointer to the 'on_message' handler.
Definition WsfScriptProcessor.hpp:104
wsf::ExternalLinks mExternalLinks
The external recipients.
Definition WsfScriptProcessor.hpp:112
UtScript * mOnMessageCreateScriptPtr
Pointer to the 'on_message_create' script.
Definition WsfScriptProcessor.hpp:107
const WsfBehaviorTree * BehaviorTree() const
Definition WsfScriptProcessor.hpp:84
WsfScriptProcessor(const WsfScenario &aScenario)
Definition WsfScriptProcessor.cpp:30
int mStateIndex
Definition WsfScriptProcessor.hpp:119
WsfScriptContext * mContextPtr
Pointer to the script context.
Definition WsfScriptProcessor.hpp:101
virtual const WsfScriptStateMachine * GetStateMachine() const
Definition WsfScriptProcessor.hpp:88
Definition WsfScriptStateMachine.hpp:47
Copyrights Multiple, All Rights Reserved