12#ifndef WSFSCRIPTCONTEXT_HPP
13#define WSFSCRIPTCONTEXT_HPP
15#include "wsf_export.h"
25class UtScriptEnvironment;
26class UtScriptExecutor;
93 virtual void Update(
double aSimTime);
95 UtScript*
Compile(UtInput& aInput,
const std::string& aEndBlockToken =
"end_script",
const std::string& aNamespace =
"");
97 UtScript*
Compile(
const std::string& aScriptName,
100 const std::string& aEndBlockToken =
"end_script",
101 const std::string& aNamespace =
"",
102 bool aIsVariableBlock =
false);
123 const std::string& aScriptSource);
130 UtScriptTypes* GetTypes()
const;
131 UtScriptEnvironment* GetEnvironment()
const;
132 UtScriptClass* GetClass(
const std::string& aClassName)
const;
133 UtScriptClass* GetClass(
WsfStringId aClassName)
const;
134 UtScriptClass* GetClass(
const char* aClassName)
const;
140 void SetParent(UtScriptContext* aParentPtr);
142 bool ValidateScript(UtScript* aScriptPtr,
WsfStringId aReturnType,
const std::string& aArgumentTypes)
const;
146 static double GetTIME_NOW(
const UtScriptContext& aContext);
147 static WsfPlatform* GetPLATFORM(
const UtScriptContext& aContext);
148 static WsfProcessor* GetPROCESSOR(
const UtScriptContext& aContext);
149 static WsfMessage* GetMESSAGE(
const UtScriptContext& aContext);
150 static WsfTrack* GetTRACK(
const UtScriptContext& aContext);
151 static WsfSimulation* GetSIMULATION(
const UtScriptContext& aContext);
152 static WsfScenario* GetSCENARIO(
const UtScriptContext& aContext);
162 , mContextPtr(nullptr)
167 double aTimeInterval,
172 EventDisposition Execute()
override;
175 double mTimeInterval;
176 size_t mPlatformIndex;
183 UtScriptExecutor* GetExecutor()
const;
188 bool AddTimedEvents(
double aSimTime);
192 void PostCompile(UtInput& aInput, UtScript* aRawScriptPtr);
194 void WriteErrorHeader(UtScript* aScriptPtr)
const;
ut::script::Data UtScriptData
Definition WsfScriptContext.hpp:47
ut::script::DataList UtScriptDataList
Definition WsfScriptContext.hpp:48
aObjectPtr Update(simTime)
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfEventPipeInterface.hpp:87
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
Definition WsfProcessor.hpp:39
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
An event to execute a script at a specified time.
Definition WsfScriptContext.hpp:157
ExecuteTimedEventScript()
Definition WsfScriptContext.hpp:159
Definition WsfScriptContext.hpp:71
WsfStringId mObjectClassName
The class name for a non-platform oriented object.
Definition WsfScriptContext.hpp:221
UtScript * mOnUpdateScriptPtr
Definition WsfScriptContext.hpp:228
WsfStringId mPartClassName
The platform part class name.
Definition WsfScriptContext.hpp:215
WsfStringId mPartVarName
The platform part variable name.
Definition WsfScriptContext.hpp:218
UtScript * Compile(UtInput &aInput, const std::string &aEndBlockToken="end_script", const std::string &aNamespace="")
Definition WsfScriptContext.cpp:173
virtual UtScript * FindScript(WsfStringId aScriptName) const
Definition WsfScriptContext.cpp:389
WsfPlatformPart * mPlatformPartPtr
If the context is for a platform part, this is its pointer.
Definition WsfScriptContext.hpp:212
bool mUserDefinedScriptCallTrace
'true' if the user defined a value for script_call_trace
Definition WsfScriptContext.hpp:234
std::unique_ptr< UtScriptContext > mContextPtr
The real UtScriptContext that is associated with this object.
Definition WsfScriptContext.hpp:200
void CompileVariables(UtInput &aInput)
Definition WsfScriptContext.cpp:239
bool mScriptCheckError
Definition WsfScriptContext.hpp:242
virtual bool Initialize(double aSimTime, WsfPlatform *aPlatformPtr, WsfPlatformPart *aPartPtr)
Definition WsfScriptContext.cpp:407
UtScript * CompileImplicitScript(UtInput &aInput, const std::string &aName, WsfStringId aReturnType)
Definition WsfScriptContext.cpp:216
virtual bool ProcessInput(UtInput &aInput)
Definition WsfScriptContext.cpp:679
bool mScriptPrintCode
'true' if script_print_code is enabled (prints the generated code after compiled)
Definition WsfScriptContext.hpp:237
virtual bool InitializeGlobalContext(WsfSimulation &aSimulation)
Initialize the global script context.
Definition WsfScriptContext.cpp:590
bool mScriptCallTrace
'true' if call tracing is enabled.
Definition WsfScriptContext.hpp:231
WsfPlatformPart * GetPart()
Definition WsfScriptContext.hpp:144
WsfSimulation * mSimulationPtr
Definition WsfScriptContext.hpp:206
std::unique_ptr< ReadTIME_NOW > mTimeNowFunctionPtr
Definition WsfScriptContext.hpp:224
virtual bool Initialize2(double aSimTime)
Definition WsfScriptContext.cpp:567
bool HasUpdateHandler() const
Return 'true' if an 'on_update' script is defined.
Definition WsfScriptContext.hpp:137
void DeclareVariable(WsfStringId aType, const std::string &aName)
Definition WsfScriptContext.cpp:259
WsfScriptContext & operator=(const WsfScriptContext &aRhs)
Definition WsfScriptContext.cpp:139
WsfPlatform * mPlatformPtr
If not the global context, this is the pointer to the associated platform.
Definition WsfScriptContext.hpp:209
std::vector< TimedEvent > mTimedEvents
Definition WsfScriptContext.hpp:204
virtual ~WsfScriptContext()
WsfScriptContext * mParentPtr
Pointer to my immediate parent WsfScriptContext (nullptr if the global context).
Definition WsfScriptContext.hpp:197
WsfScriptContext(UtScriptEnvironment *aTypesPtr)
Definition WsfScriptContext.cpp:46
bool ExecuteScript(double aSimTime, WsfStringId aScriptName)
Definition WsfScriptContext.cpp:272
bool mScriptExpectError
The value of 'script_expect_error'.
Definition WsfScriptContext.hpp:245
UtScriptContext & GetContext() const
Return a reference to the real script context.
Definition WsfScriptContext.hpp:128
The main controller for a simulation.
Definition WsfSimulation.hpp:109
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Definition WsfScriptContext.hpp:42
std::vector< Data > DataList
Definition WsfScriptContext.hpp:44
Definition WsfSensorErrorModel.hpp:21