WSF
WsfScriptMessageHandler Class Reference

#include <WsfScriptMessageHandler.hpp>

Collaboration diagram for WsfScriptMessageHandler:

Classes

struct  Handler
 A 'Handler' represents a 'type' and one or more 'subtypes' that share a common script. More...

Public Member Functions

 WsfScriptMessageHandler ()=default
 WsfScriptMessageHandler (WsfScriptContext &aContext)
 WsfScriptMessageHandler (const WsfScriptMessageHandler &aSrc, WsfScriptContext &aContext)
virtual ~WsfScriptMessageHandler ()=default
bool HasMessageHandler () const
virtual bool Initialize (double aSimTime, WsfPlatform *aPlatformPtr)
virtual bool ProcessInput (UtInput &aInput)
virtual bool ProcessMessage (double aSimTime, const WsfMessage &aMessage)
void SetTimeAndMessage (double aSimTime, const WsfMessage &aMessage)

Protected Attributes

WsfPlatformmPlatformPtr {nullptr}
WsfScriptContextmContextPtr {nullptr}
 The context used for compiling and executing scripts.
std::vector< HandlermHandlers
 The list of message handlers.
std::vector< WsfStringIdmScriptNames
 The list of script names, indexed by the handlers script index.
std::vector< UtScript * > mScriptPtrs
UtScript * mOnMessageScriptPtr {nullptr}
 The pointer to the explicit 'script void on_message()' if it was defined.
bool mHasMessageHandler {false}
 true if 'on_message' or 'script void on_message()' has been defined.
UtScriptDatamMessageVarPtr {nullptr}
 The message script variable's memory index.
int mMessageVarIndex {-1}

Detailed Description

A script-based message handler.

This object provides the ability to define scripts to process messages. It provides the 'on_message' command and also maintains the 'MESSAGE' script variable that refers to the current message being processed. Any variables defined by WsfScriptContext ('PLATFORM', 'PROCESSOR', 'TIME_NOW') are also available.

The user of this class is responsible for the following:

Constructor & Destructor Documentation

◆ WsfScriptMessageHandler() [1/3]

WsfScriptMessageHandler::WsfScriptMessageHandler ( )
default

◆ WsfScriptMessageHandler() [2/3]

WsfScriptMessageHandler::WsfScriptMessageHandler ( WsfScriptContext & aContext)

Constructor

Parameters
aContextThe script context to be used for compiling and executing scripts.

References WsfScriptContext::GetContext(), mContextPtr, mHandlers, mHasMessageHandler, mMessageVarPtr, mOnMessageScriptPtr, mPlatformPtr, mScriptNames, and mScriptPtrs.

◆ WsfScriptMessageHandler() [3/3]

WsfScriptMessageHandler::WsfScriptMessageHandler ( const WsfScriptMessageHandler & aSrc,
WsfScriptContext & aContext )

Copy constructor

Parameters
aSrcThe source object.
aContextThe script context to be used for compiling and executing scripts.

References WsfScriptContext::GetContext(), mContextPtr, mHandlers, mHasMessageHandler, mMessageVarPtr, mOnMessageScriptPtr, mPlatformPtr, mScriptNames, mScriptPtrs, and WsfScriptMessageHandler().

◆ ~WsfScriptMessageHandler()

virtual WsfScriptMessageHandler::~WsfScriptMessageHandler ( )
virtualdefault

Member Function Documentation

◆ HasMessageHandler()

bool WsfScriptMessageHandler::HasMessageHandler ( ) const
inline

Return true if there is a message handler defined.

Note
This is valid only after Initialize() has been called.

References mHasMessageHandler.

◆ Initialize()

bool WsfScriptMessageHandler::Initialize ( double aSimTime,
WsfPlatform * aPlatformPtr )
virtual

Initialize the message handler object.

Parameters
aSimTimeThe current simulation time.
aPlatformPtrThe platform with which the message handler is associated.

References mContextPtr, mHandlers, mHasMessageHandler, mOnMessageScriptPtr, mPlatformPtr, mScriptNames, mScriptPtrs, and ok.

◆ ProcessInput()

bool WsfScriptMessageHandler::ProcessInput ( UtInput & aInput)
virtual

Check for and process message handler commands.

Parameters
aInputThe input stream.
Returns
'true' if the command was recognized (and processed) or 'false' if the command was not one recognized by this class.

References mContextPtr, mHandlers, WsfScriptMessageHandler::Handler::mScriptIndex, mScriptNames, and WsfScriptMessageHandler::Handler::mType.

◆ ProcessMessage()

bool WsfScriptMessageHandler::ProcessMessage ( double aSimTime,
const WsfMessage & aMessage )
virtual

Invoke the appropriate message handling script if one is defined. If a script has been defined for the message then:

  • Set TIME_NOW to the current simulation time.
  • Set MESSAGE to refer to the message.
  • Invoke the message handling script.
    Parameters
    aSimTimeThe current simulation time.
    aMessageThe message being processed.
    Returns
    'true' if a message handler was defined for the message or 'false' if not.

References WsfMessage::GetSubType(), WsfMessage::GetType(), mContextPtr, mHandlers, mHasMessageHandler, mMessageVarPtr, mOnMessageScriptPtr, mPlatformPtr, mScriptPtrs, and SetTimeAndMessage().

Referenced by WsfSA_Perceive::ProcessMessage(), and WsfTrackProcessor::ProcessMessage().

◆ SetTimeAndMessage()

void WsfScriptMessageHandler::SetTimeAndMessage ( double aSimTime,
const WsfMessage & aMessage )

Set the TIME_NOW and MESSAGE script variables.

Parameters
aSimTimeThe current simulation time.
aMessageThe message that is being processed.

References mMessageVarPtr.

Referenced by ProcessMessage().

Member Data Documentation

◆ mContextPtr

WsfScriptContext* WsfScriptMessageHandler::mContextPtr {nullptr}
protected

The context used for compiling and executing scripts.

Referenced by Initialize(), ProcessInput(), ProcessMessage(), WsfScriptMessageHandler(), and WsfScriptMessageHandler().

◆ mHandlers

std::vector<Handler> WsfScriptMessageHandler::mHandlers
protected

◆ mHasMessageHandler

bool WsfScriptMessageHandler::mHasMessageHandler {false}
protected

true if 'on_message' or 'script void on_message()' has been defined.

Referenced by HasMessageHandler(), Initialize(), ProcessMessage(), WsfScriptMessageHandler(), and WsfScriptMessageHandler().

◆ mMessageVarIndex

int WsfScriptMessageHandler::mMessageVarIndex {-1}
protected

◆ mMessageVarPtr

UtScriptData* WsfScriptMessageHandler::mMessageVarPtr {nullptr}
protected

The message script variable's memory index.

Referenced by ProcessMessage(), SetTimeAndMessage(), WsfScriptMessageHandler(), and WsfScriptMessageHandler().

◆ mOnMessageScriptPtr

UtScript* WsfScriptMessageHandler::mOnMessageScriptPtr {nullptr}
protected

The pointer to the explicit 'script void on_message()' if it was defined.

Referenced by Initialize(), ProcessMessage(), WsfScriptMessageHandler(), and WsfScriptMessageHandler().

◆ mPlatformPtr

WsfPlatform* WsfScriptMessageHandler::mPlatformPtr {nullptr}
protected

◆ mScriptNames

std::vector<WsfStringId> WsfScriptMessageHandler::mScriptNames
protected

The list of script names, indexed by the handlers script index.

Referenced by Initialize(), ProcessInput(), WsfScriptMessageHandler(), and WsfScriptMessageHandler().

◆ mScriptPtrs

std::vector<UtScript*> WsfScriptMessageHandler::mScriptPtrs
protected

The list of scripts, indexed by the handles script index. This is valid only after Initialize() has been called. The scripts are owned by the script context.

Referenced by Initialize(), ProcessMessage(), WsfScriptMessageHandler(), and WsfScriptMessageHandler().


The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved