VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Member Functions
DtVrfMessageInterface Class Reference
Inheritance diagram for DtVrfMessageInterface:
Inheritance graph
[legend]

Public Member Functions

 DtVrfMessageInterface (DtEventManager *eventManager, bool useDefaultInterfaceFactory=true)
 
virtual ~DtVrfMessageInterface ()
 destructor More...
 
virtual bool init ()
 Creates all the other pieces. More...
 
virtual bool createMessageExecutive ()
 Creator functions. More...
 
virtual void createSplitMessageCollector ()
 Replaces mySplitMessageCollector with a new one. More...
 
virtual DtSplitMessageCollectorsplitMessageCollector ()
 
virtual const
DtSplitMessageCollector
splitMessageCollector () const
 
virtual bool deliverMessage (const DtSimInterfaceMessage &msg, bool overrideTimestampOrder=true)
 Send a message. More...
 
virtual bool receiveMessage (const DtSimInterfaceMessage &msg)
 
virtual bool createAndDeliverMessage (const DtSimulationAddress &recipient, const DtSimInterfaceContent &content, bool overrideTimestampOrder=true)
 
virtual bool getContentFromNet (DtDataInteraction *dataInter, DtSimInterfaceContent *&content) const
 Create/set objects based on DtDataInteraction information. More...
 
virtual bool getContentFromNet (unsigned nBufferSize, int nContentType, const char *pContentBuffer, DtSimInterfaceContent *&content) const
 
virtual bool setContentForNet (DtDataInteraction *dataInter, DtSimInterfaceContent *content) const
 
virtual void setSequence (DtU32 num)
 Get/Set the sequence number. More...
 
virtual DtU32 sequence () const
 
virtual void setSessionId (DtU32 num)
 Get/Set the session id. More...
 
virtual DtU32 sessionId () const
 
virtual void setVrfMessageVersionSupported (DtU32 num)
 Get/Set the vrf message version. More...
 
virtual DtU32 vrfMessageVersionSupported () const
 
virtual bool isMessageVrfVersionSupported (DtDataInteraction *) const
 Returns true if this data interaction passes the message version check. More...
 
virtual void addVrfMessageVersionValidCallback (DtIsValidVrfMessageVersionFcn fcn, void *usr)
 Register vrf message interface version valid. More...
 
virtual void removeVrfMessageVersionValidCallback (DtIsValidVrfMessageVersionFcn fcn, void *usr)
 
virtual bool isVrfMessageVersionTransparentMessageType (int messageType) const
 Returns true if the given message type is message version transparent (i.e. More...
 
virtual bool isSessionTransparentMessageType (int messageType)
 Returns true if the given message type is session transparent (i.e. More...
 
DtEventManagereventManager ()
 Get the exercise connection ptr. More...
 
virtual void addEvent (const DtEvent &)
 {@ Adds an event to the event manager More...
 
virtual void addEvent (const DtDetonationInteraction &)
 Convenience functions. More...
 
virtual void addEvent (const DtFireInteraction &)
 
virtual void addEvent (const DtAcknowledgeInteraction &)
 
virtual void addEvent (const DtStopFreezeInteraction &)
 
virtual void addEvent (const DtStartResumeInteraction &)
 
virtual void addEvent (const DtDataInteraction &)
 
virtual void addEvent (const DtSignalInteraction &)
 
virtual void addEvent (const DtCommentInteraction &)
 
virtual void addEvent (const DtSensorFieldOfViewControlInter &)
 
virtual void addevent (const DtSimInterfaceContent &)
 
virtual void addEvent (const DtDataInteractionWithTransportType &)
 
virtual void addEvent (const DtInfluenceInteraction &)
 
virtual void addEvent (const DtEndGestureInter &)
 
virtual void addEvent (const DtExecuteGestureInter &)
 
virtual void clearEventManager ()
 
virtual DtInterfaceContentFactoryfactory () const
 Get/Set the factory used for creating interface content msgs. More...
 
virtual void setFactory (DtInterfaceContentFactory *fact)
 
virtual
DtInterfaceMessageExecutive
messageExecutive () const
 Get the message executive ptr. More...
 
virtual const DtSimulationAddress & messageAddress () const
 Get the address that should be used as the sender for all messages originating from the backend. More...
 
virtual void receiveMessage (DtDataInteraction *dataInter)
 Process a received data interaction from the network. More...
 
virtual bool sendMessage (const DtSimInterfaceMessage &message, bool overrideTimestampOrder)
 Send a sim interface message. More...
 
virtual void addMessageCallback (int type, DtMessageCallbackFcn fcn, void *usrData)
 Add/Remove interface message callback functions. More...
 
virtual void removeMessageCallback (int type, DtMessageCallbackFcn fcn, void *usrData)
 
virtual bool sendSplitContent (const char *pContentBuffer, unsigned int nBufferSize, int nContentType, const DtSimulationAddress &sender, const DtSimulationAddress &recipient, DtSplitMessageHandle &msgHandleReturn, bool overrideTimestampOrder)
 Sends oversize message content as multiple DtSimInterfaceMessages with DtIfSplitContent. More...
 
virtual bool sendSplitContent (const char *pContentBuffer, unsigned int nBufferSize, int nContentType, const DtSimulationAddress &sender, const DtSimulationAddress &recipient, bool overrideTimestampOrder)
 Sends oversize message content as multiple DtSimInterfaceMessages with DtIfSplitContent. More...
 
virtual void processReassembledContent (const char *pContent, int nContentSize, int nContentType, const DtSimulationAddress &messageIdSender, int messageIdNumber, const DtSimulationAddress &recipient)
 Reconstitute a message based on previously split content. More...
 
virtual void setEventManager (DtEventManager *)
 Sets the event manager. More...
 
virtual void netMessageCallback (const DtEvent &)
 
virtual void simInterfaceContentMessageEvent (const DtEvent &c)
 
virtual bool receiveMessage (const DtSimInterfaceContent &content)
 Call this to receive a message internally – this will not go out over the network. More...
 
virtual DtExerciseConn * exerciseConnection () const
 Gets the exercise connection from the event manager (if it supports it) More...
 

Protected Member Functions

virtual void removeConnections ()
 
virtual void initializeConnections ()
 
bool sendNormalMessage (const DtSimInterfaceMessage &message, bool overrideTimestampOrder)
 Send a message, called from sendMessage if message content does not exceed maximum size. More...
 

Static Protected Member Functions

static bool matchPattern (const DtSimulationAddress &address, const DtSimulationAddress &pattern)
 Utility function that returns true if the address matches the given pattern. More...
 

Protected Attributes

DtInterfaceContentFactorymyContentFactory
 
DtInterfaceMessageExecutivemyMessageExecutive
 
DtEventManagermyEventManager
 
bool myOwnsEventManager
 
bool myCreatedInterfaceFactory
 
DtU32 mySequenceNumber
 
DtU32 mySessionId
 
DtSplitMessageCollectormySplitMessageCollector
 
DtU32 myVrfMessageVersionSupported
 The vrf version is set (by default) from the values found in version.h. More...
 
DtList myCallbacks
 

Private Member Functions

 DtVrfMessageInterface (const DtVrfMessageInterface &orig)
 
DtVrfMessageInterfaceoperator= (const DtVrfMessageInterface &orig)
 
 DtVrfMessageInterface ()
 

Constructor & Destructor Documentation

DtVrfMessageInterface::DtVrfMessageInterface ( DtEventManager eventManager,
bool  useDefaultInterfaceFactory = true 
)
virtual DtVrfMessageInterface::~DtVrfMessageInterface ( )
virtual

destructor

DtVrfMessageInterface::DtVrfMessageInterface ( const DtVrfMessageInterface orig)
private
DtVrfMessageInterface::DtVrfMessageInterface ( )
private

Member Function Documentation

virtual bool DtVrfMessageInterface::init ( )
virtual

Creates all the other pieces.

Reimplemented in DtVrfMsgPrinter.

virtual bool DtVrfMessageInterface::createMessageExecutive ( )
virtual

Creator functions.

These can be overridden to create managed objects that are derived from the base objects we provide.

virtual void DtVrfMessageInterface::createSplitMessageCollector ( )
virtual

Replaces mySplitMessageCollector with a new one.

DtSplitMessageCollector * DtVrfMessageInterface::splitMessageCollector ( )
inlinevirtual
const DtSplitMessageCollector * DtVrfMessageInterface::splitMessageCollector ( ) const
inlinevirtual
virtual bool DtVrfMessageInterface::deliverMessage ( const DtSimInterfaceMessage msg,
bool  overrideTimestampOrder = true 
)
virtual

Send a message.

virtual bool DtVrfMessageInterface::receiveMessage ( const DtSimInterfaceMessage msg)
virtual
virtual bool DtVrfMessageInterface::createAndDeliverMessage ( const DtSimulationAddress &  recipient,
const DtSimInterfaceContent content,
bool  overrideTimestampOrder = true 
)
virtual
virtual bool DtVrfMessageInterface::getContentFromNet ( DtDataInteraction dataInter,
DtSimInterfaceContent *&  content 
) const
virtual

Create/set objects based on DtDataInteraction information.

Reimplemented in DtVrfMsgPrinter.

virtual bool DtVrfMessageInterface::getContentFromNet ( unsigned  nBufferSize,
int  nContentType,
const char pContentBuffer,
DtSimInterfaceContent *&  content 
) const
virtual
virtual bool DtVrfMessageInterface::setContentForNet ( DtDataInteraction dataInter,
DtSimInterfaceContent content 
) const
virtual
virtual void DtVrfMessageInterface::setSequence ( DtU32  num)
virtual

Get/Set the sequence number.

DtU32 DtVrfMessageInterface::sequence ( ) const
inlinevirtual

References mySequenceNumber.

void DtVrfMessageInterface::setSessionId ( DtU32  num)
inlinevirtual

Get/Set the session id.

References mySessionId.

DtU32 DtVrfMessageInterface::sessionId ( ) const
inlinevirtual

References mySessionId.

void DtVrfMessageInterface::setVrfMessageVersionSupported ( DtU32  num)
inlinevirtual

Get/Set the vrf message version.

References myVrfMessageVersionSupported.

DtU32 DtVrfMessageInterface::vrfMessageVersionSupported ( ) const
inlinevirtual
virtual bool DtVrfMessageInterface::isMessageVrfVersionSupported ( DtDataInteraction ) const
virtual

Returns true if this data interaction passes the message version check.

This will be true if: 1) The Major, Minor and Extra version info match between the version of the message interface or 2) Any installed version check callbacks return true. NOTE that it is important that if a callback returns true it is sure that it will not have a detrimental effect in the system. Returning true to support a message that might otherwise would be ignored for version reasons could cause system instability

Note that if a data interaction does not have a version record, the version of that interaction will be assumed to be 0.

virtual void DtVrfMessageInterface::addVrfMessageVersionValidCallback ( DtIsValidVrfMessageVersionFcn  fcn,
void *  usr 
)
virtual

Register vrf message interface version valid.

virtual void DtVrfMessageInterface::removeVrfMessageVersionValidCallback ( DtIsValidVrfMessageVersionFcn  fcn,
void *  usr 
)
virtual
bool DtVrfMessageInterface::isVrfMessageVersionTransparentMessageType ( int  messageType) const
inlinevirtual

Returns true if the given message type is message version transparent (i.e.

delivered to all message interfaces, regardless of their vrf message version)

References DtVrfObjectDataMessageType.

bool DtVrfMessageInterface::isSessionTransparentMessageType ( int  messageType)
inlinevirtual

Returns true if the given message type is session transparent (i.e.

delivered to all message interfaces, regardless of their session ID)

References DtVrfObjectDataMessageType.

DtEventManager * DtVrfMessageInterface::eventManager ( )
inline

Get the exercise connection ptr.

References myEventManager.

virtual void DtVrfMessageInterface::addEvent ( const DtEvent )
virtual

{@ Adds an event to the event manager

virtual void DtVrfMessageInterface::addEvent ( const DtDetonationInteraction )
virtual

Convenience functions.

virtual void DtVrfMessageInterface::addEvent ( const DtFireInteraction &  )
virtual
virtual void DtVrfMessageInterface::addEvent ( const DtAcknowledgeInteraction &  )
virtual
virtual void DtVrfMessageInterface::addEvent ( const DtStopFreezeInteraction &  )
virtual
virtual void DtVrfMessageInterface::addEvent ( const DtStartResumeInteraction &  )
virtual
virtual void DtVrfMessageInterface::addEvent ( const DtDataInteraction )
virtual
virtual void DtVrfMessageInterface::addEvent ( const DtSignalInteraction &  )
virtual
virtual void DtVrfMessageInterface::addEvent ( const DtCommentInteraction &  )
virtual
virtual void DtVrfMessageInterface::addEvent ( const DtSensorFieldOfViewControlInter )
virtual
virtual void DtVrfMessageInterface::addevent ( const DtSimInterfaceContent )
virtual
virtual void DtVrfMessageInterface::addEvent ( const DtDataInteractionWithTransportType )
virtual
virtual void DtVrfMessageInterface::addEvent ( const DtInfluenceInteraction )
virtual
virtual void DtVrfMessageInterface::addEvent ( const DtEndGestureInter )
virtual
virtual void DtVrfMessageInterface::addEvent ( const DtExecuteGestureInter )
virtual
void DtVrfMessageInterface::clearEventManager ( )
inlinevirtual

Sets the exercise conn to NULL

References myEventManager, and myOwnsEventManager.

virtual DtInterfaceContentFactory* DtVrfMessageInterface::factory ( ) const
virtual

Get/Set the factory used for creating interface content msgs.

virtual void DtVrfMessageInterface::setFactory ( DtInterfaceContentFactory fact)
virtual
virtual DtInterfaceMessageExecutive* DtVrfMessageInterface::messageExecutive ( ) const
virtual

Get the message executive ptr.

virtual const DtSimulationAddress& DtVrfMessageInterface::messageAddress ( ) const
virtual

Get the address that should be used as the sender for all messages originating from the backend.

virtual void DtVrfMessageInterface::receiveMessage ( DtDataInteraction dataInter)
virtual

Process a received data interaction from the network.

Reimplemented in DtVrfMsgPrinter.

virtual bool DtVrfMessageInterface::sendMessage ( const DtSimInterfaceMessage message,
bool  overrideTimestampOrder 
)
virtual

Send a sim interface message.

virtual void DtVrfMessageInterface::addMessageCallback ( int  type,
DtMessageCallbackFcn  fcn,
void *  usrData 
)
virtual

Add/Remove interface message callback functions.

virtual void DtVrfMessageInterface::removeMessageCallback ( int  type,
DtMessageCallbackFcn  fcn,
void *  usrData 
)
virtual
virtual bool DtVrfMessageInterface::sendSplitContent ( const char pContentBuffer,
unsigned int  nBufferSize,
int  nContentType,
const DtSimulationAddress &  sender,
const DtSimulationAddress &  recipient,
DtSplitMessageHandle msgHandleReturn,
bool  overrideTimestampOrder 
)
virtual

Sends oversize message content as multiple DtSimInterfaceMessages with DtIfSplitContent.

This is called from sendMessage() when the size of content will exceed the maximum allowable packet size. sendSplitContent() will break up the buffer into chunks and transmit them as DtIfSplitContent, to be reconstructed on the receiving end.

Returns
true if success, false if failure.
Parameters
[in]pContentBufferThe original content, assumed to be oversized.
[in]nBufferSizeThe size of pContentBuffer in bytes.
[in]nContentTypeThe original content type.
[in]senderThe simulator from which the message is being sent.
[in]recipientThe simulator(s) to which the message should be sent.
[out]msgHandleReturnWill contain information about how the DtIfSplitContent messages were prepared.
virtual bool DtVrfMessageInterface::sendSplitContent ( const char pContentBuffer,
unsigned int  nBufferSize,
int  nContentType,
const DtSimulationAddress &  sender,
const DtSimulationAddress &  recipient,
bool  overrideTimestampOrder 
)
virtual

Sends oversize message content as multiple DtSimInterfaceMessages with DtIfSplitContent.

This call will redirect to sendSplitContent(...), above.

virtual void DtVrfMessageInterface::processReassembledContent ( const char pContent,
int  nContentSize,
int  nContentType,
const DtSimulationAddress &  messageIdSender,
int  messageIdNumber,
const DtSimulationAddress &  recipient 
)
virtual

Reconstitute a message based on previously split content.

virtual void DtVrfMessageInterface::setEventManager ( DtEventManager )
virtual

Sets the event manager.

If an event manager is already created disconnects signals, deletes it (if owned) and assigns new event manager

virtual void DtVrfMessageInterface::netMessageCallback ( const DtEvent )
virtual
virtual void DtVrfMessageInterface::simInterfaceContentMessageEvent ( const DtEvent c)
virtual
virtual bool DtVrfMessageInterface::receiveMessage ( const DtSimInterfaceContent content)
virtual

Call this to receive a message internally – this will not go out over the network.

The sender and recipient will be the address of this exercise connection

virtual DtExerciseConn* DtVrfMessageInterface::exerciseConnection ( ) const
virtual

Gets the exercise connection from the event manager (if it supports it)

virtual void DtVrfMessageInterface::removeConnections ( )
protectedvirtual
virtual void DtVrfMessageInterface::initializeConnections ( )
protectedvirtual
bool DtVrfMessageInterface::sendNormalMessage ( const DtSimInterfaceMessage message,
bool  overrideTimestampOrder 
)
protected

Send a message, called from sendMessage if message content does not exceed maximum size.

static bool DtVrfMessageInterface::matchPattern ( const DtSimulationAddress &  address,
const DtSimulationAddress &  pattern 
)
staticprotected

Utility function that returns true if the address matches the given pattern.

Returns true for the following cases: address.site == -1 && address.applicationId == -1 address.site == pattern.site && address.applicationId == -1 address.site == pattern.site && address.applicationId == pattern.applicationId

returns false otherwise

DtVrfMessageInterface& DtVrfMessageInterface::operator= ( const DtVrfMessageInterface orig)
private

Member Data Documentation

DtInterfaceContentFactory* DtVrfMessageInterface::myContentFactory
protected
DtInterfaceMessageExecutive* DtVrfMessageInterface::myMessageExecutive
protected
DtEventManager* DtVrfMessageInterface::myEventManager
protected

Referenced by clearEventManager(), and eventManager().

bool DtVrfMessageInterface::myOwnsEventManager
protected

Referenced by clearEventManager().

bool DtVrfMessageInterface::myCreatedInterfaceFactory
protected
DtU32 DtVrfMessageInterface::mySequenceNumber
protected

Referenced by sequence().

DtU32 DtVrfMessageInterface::mySessionId
protected

Referenced by sessionId(), and setSessionId().

DtSplitMessageCollector* DtVrfMessageInterface::mySplitMessageCollector
protected

Referenced by splitMessageCollector().

DtU32 DtVrfMessageInterface::myVrfMessageVersionSupported
protected

The vrf version is set (by default) from the values found in version.h.

Call setVrfMessageVersionSupported after construction to change to a new version

Referenced by setVrfMessageVersionSupported(), and vrfMessageVersionSupported().

DtList DtVrfMessageInterface::myCallbacks
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)