VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Member Functions
DtSetDataManager Class Reference

This class manages the distribution of DtSetDataRequests within a single DtLocalObject. Components of the object, or other parts of the code, register interested in particular types of set data messages and when such a message is processed by the DtSetDataManager, each of the registered parties is notified.

The DtSetDataManager registers itself with the local entity's radio and listens for any incoming radio messages that contain set data requests and distributes these. Set data requests can also be manually inserted into the manger using the executeSetDataRequest() method. This is the standard way of getting an object to process a set data request.

The DtSetDataManager will also respond to queries about what set data types are currently possible by the object. It returns a list of all set data type IDs that have been registered for.

Related Examples

Public Member Functions

 DtSetDataManager (DtLocalObject *, DtSimRadio *radio)
 
virtual ~DtSetDataManager ()
 
virtual bool init ()
 
virtual bool init (DtSimRadio *pRadio)
 
virtual void addSetDataProcessorCallback (const DtSetMessageType &setDataType, DtMessageCallbackFcn fcn, void *usr)
 
virtual void addSetDataNotifyCallback (const DtSetMessageType &setDataType, DtMessageCallbackFcn fcn, void *usr)
 
virtual void removeSetDataCallback (const DtSetMessageType &setDataType, DtMessageCallbackFcn fcn, void *usr)
 
virtual void processSetEvent (const makVrfEvents::DtEvent &)
 
virtual bool executeSetDataRequest (const DtSetDataRequestMessage &setMsg)
 
virtual std::vector
< DtSetMessageType
capableSetDataTypes () const
 
virtual bool canExecuteSetData (const DtSetMessageType &setDataType) const
 
virtual void tick ()
 
DtSimRadioradio ()
 
const DtSimRadioradio () const
 

Protected Types

typedef std::pair
< DtMessageCallbackFcn, void * > 
DtSetDataCallbackInfo
 
typedef std::multimap
< DtSetMessageType,
DtSetDataCallbackInfo
DtSetDataCallbackMap
 

Protected Member Functions

virtual void registerRadioMessageCallbacks ()
 
virtual void unRegisterRadioMessageCallbacks ()
 
virtual DtSetMessageType remapScriptId (const DtSetMessageType &) const
 

Static Protected Member Functions

static void setDataMessageCallback (DtSimMessage *msg, void *usr)
 

Protected Attributes

DtSetDataCallbackMap mySetDataProcessorCallbackMap
 
DtSetDataCallbackMap mySetDataNotifyCallbackMap
 
DtSimRadiomyRadio
 
DtLocalObjectmyVrfObject
 
boost::signals2::scoped_connection mySetEventConnection
 
std::vector
< DtSetDataRequestMessage * > 
myDelayedSetExecution
 

Private Member Functions

 DtSetDataManager ()
 
 DtSetDataManager (const DtSetDataManager &orig)
 
DtSetDataManageroperator= (const DtSetDataManager &orig)
 

Member Typedef Documentation

Constructor & Destructor Documentation

DtSetDataManager::DtSetDataManager ( )
private

Not Implemented.

DtSetDataManager::DtSetDataManager ( const DtSetDataManager orig)
private

Not Implemented.

DtSetDataManager::DtSetDataManager ( DtLocalObject ,
DtSimRadio radio 
)

Constructor.

virtual DtSetDataManager::~DtSetDataManager ( )
virtual

Destructor.

Member Function Documentation

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

Not Implemented.

virtual bool DtSetDataManager::init ( )
virtual

Must be called after constructor.

virtual bool DtSetDataManager::init ( DtSimRadio pRadio)
virtual

Override. If constructor is called with NULL radio, setDataManager must be reinitialized. Disconnects from previous radio before connecting.

virtual void DtSetDataManager::addSetDataProcessorCallback ( const DtSetMessageType setDataType,
DtMessageCallbackFcn  fcn,
void *  usr 
)
virtual

Add a callback to be called when a new set data request is being executed. The registering function should actually carry out the set in whatever way is appropriate for the particular set message.

Note
All set data types registered with this method will be reported as "capable" set data types by the capableSetDataTypes() method.
Multiple callbacks are allowed for a single set data type.
virtual void DtSetDataManager::addSetDataNotifyCallback ( const DtSetMessageType setDataType,
DtMessageCallbackFcn  fcn,
void *  usr 
)
virtual

Add a callback to be called when a new set data request is being executed. The registering function should not actually carry out the set, but just be using it as notification for some internal purposes.

Note
Set data types registered with this method will not be reported as "capable" set data types by the capableSetDataTypes() method, unless there is also a callback registered for the same type with addSetDataProcessorCallback().
Multiple callbacks are allowed for a single set data type.
virtual void DtSetDataManager::removeSetDataCallback ( const DtSetMessageType setDataType,
DtMessageCallbackFcn  fcn,
void *  usr 
)
virtual

Removes any callback that was added using either addSetDataProcessorCallback() or addSetDataNotifyCallback().

virtual void DtSetDataManager::processSetEvent ( const makVrfEvents::DtEvent )
virtual

Processes the set event by wrapping it in a DtSetDataRequestMessage if this set is meant for this object and calling executeSetDataRequest.

virtual bool DtSetDataManager::executeSetDataRequest ( const DtSetDataRequestMessage setMsg)
virtual

Invokes all registered callbacks with the specified set data message. Return true if handled.

virtual std::vector<DtSetMessageType> DtSetDataManager::capableSetDataTypes ( ) const
virtual
Returns
A vector containing all the set data types that this object is capable of performing. This is based on any callbacks that have been registered using addSetDataProcessorCallback().
virtual bool DtSetDataManager::canExecuteSetData ( const DtSetMessageType setDataType) const
virtual
Returns
True if this object can execute the specified set data type.
virtual void DtSetDataManager::tick ( )
virtual

Process any delayed set executions.

DtSimRadio * DtSetDataManager::radio ( )
inline

radio accessor

References myRadio.

const DtSimRadio * DtSetDataManager::radio ( ) const
inline

radio accessor

References myRadio.

virtual void DtSetDataManager::registerRadioMessageCallbacks ( )
protectedvirtual

Registers setDataMessageCallback for all set data requests from the radio.

virtual void DtSetDataManager::unRegisterRadioMessageCallbacks ( )
protectedvirtual

Unregisters setDataMessageCallback for all set data requests from the radio.

static void DtSetDataManager::setDataMessageCallback ( DtSimMessage msg,
void *  usr 
)
staticprotected

Calls to the local instance's executeSetDataRequest.

virtual DtSetMessageType DtSetDataManager::remapScriptId ( const DtSetMessageType ) const
protectedvirtual

In case this is aliased, return the actual script id.

Member Data Documentation

DtSetDataCallbackMap DtSetDataManager::mySetDataProcessorCallbackMap
protected
DtSetDataCallbackMap DtSetDataManager::mySetDataNotifyCallbackMap
protected
DtSimRadio* DtSetDataManager::myRadio
protected

Referenced by radio().

DtLocalObject* DtSetDataManager::myVrfObject
protected
boost::signals2::scoped_connection DtSetDataManager::mySetEventConnection
protected
std::vector<DtSetDataRequestMessage*> DtSetDataManager::myDelayedSetExecution
protected

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

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)