VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Attributes
DtDIGuyCustomPdu Class Reference

Implements the storage, sending, and receipt of DI Guy custom PDU's. More...

+ Inheritance diagram for DtDIGuyCustomPdu:
+ Collaboration diagram for DtDIGuyCustomPdu:

Public Types

enum  { PduStaticSize = 23 }
 The size of the static data within the PDU. More...

Public Member Functions

 DtDIGuyCustomPdu (DtBufferPtr buffer=DtUSE_INTERNAL_BUFFER)
 Default constructor.
 DtDIGuyCustomPdu (const DtNetDIGuyCustomPdu *initial, DtBufferPtr buffer=DtUSE_INTERNAL_BUFFER, DtPduFactory *pduFactory=0)
 Contructor that creates a DtDIGuyCustomPdu from the network representation.
virtual ~DtDIGuyCustomPdu ()
 Destructor.
 DtDIGuyCustomPdu (const DtDIGuyCustomPdu &other)
 Copy constructor.
DtDIGuyCustomPduoperator= (const DtDIGuyCustomPdu &other)
 Assignment operator.
virtual DtNetDIGuyCustomPdunetDIGuyCustomPdu ()
 Provides access to the network structure of the PDU.
virtual const DtNetDIGuyCustomPdunetDIGuyCustomPdu () const
virtual void setMessageVersion (int version)
 Get/Set the message version.
virtual int messageVersion () const
virtual void setMessageId (DtDIGuyCustomPduMsgId msgId)
 Get/Set the message ID.
virtual DtDIGuyCustomPduMsgId messageId () const
virtual void setEntityId (const DtEntityIdentifier &entId)
 Get/Set the Entity ID of the PDU.
virtual DtEntityIdentifier entityId () const
virtual void setDataSize (unsigned int size)
 Get/Set the data size.
virtual unsigned int dataSize () const
virtual void addBool (bool value)
 Adds the bool value to the data section of the PDU.
virtual void addShort (short value)
 Adds the short value to the data section of the PDU.
virtual void addLong (long value)
 Adds the long value to the data section of the PDU.
virtual void addFloat (float value)
 Adds the float value to the data section of the PDU.
virtual void addString (const DtString &str)
 Adds the string to the data section of the PDU.
virtual void addUnsignedData (int size, const unsigned char *s)
 Adds the bytes specified by unsigned pointer to the data section of the PDU.
virtual bool pullBool (bool &value, unsigned int &byteoffset) const
 These methods retrieve the particular type of value from the specified byteoffset.
virtual bool pullShort (short &value, unsigned int &byteoffset) const
virtual bool pullLong (long &value, unsigned int &byteoffset) const
virtual bool pullFloat (float &value, unsigned int &byteoffset) const
virtual bool pullString (DtString &value, unsigned int &byteoffset) const
virtual bool pullUnsignedData (const unsigned char *&value, unsigned int &byteoffset, int &bytes_read) const
virtual void getData (unsigned char *buff) const
 Raw methods of getting/setting data.
virtual void * data ()
void setData (unsigned char *data, int numBytes)
virtual void printData () const
 Print the data contained in this PDU.
virtual void printDataToStream (std::ostream &stream) const
 Print the data to a stream.
- Public Member Functions inherited from DtStateMsg
 DtStateMsg ()
 default constructor
virtual ~DtStateMsg ()
 destructor
 DtStateMsg (const DtStateMsg &orig)
 copy constructor
DtStateMsgoperator= (const DtStateMsg &orig)
 assignment operator
- Public Member Functions inherited from DtPduWithAttributeRecordSets
 DtPduWithAttributeRecordSets ()
 Constructor.
 DtPduWithAttributeRecordSets (const DtPduWithAttributeRecordSets &orig)
 Constructor.
DtPduWithAttributeRecordSetsoperator= (const DtPduWithAttributeRecordSets &other)
 Assignment operator.
virtual ~DtPduWithAttributeRecordSets ()
 Destructor.
virtual void printToStream (std::ostream &stream) const
 Print the contents of the PDU. This will call DtPdu's printToStream and also call printRecordSets()
virtual void printRecordSets (bool printEntityObjectId=false) const
 Prints the Record Sets to DtInfo.
virtual void printRecordSetsToStream (std::ostream &stream, bool printEntityObjectId=false) const
 Prints the Record Sets to the specified stream.
virtual void addRecord (std::auto_ptr< DtStandardVariableRecord > record, const DtEntityIdentifier &id=DtEntityIdentifier::nullId())
 Adds a Record.
virtual void removeRecord (unsigned int index, const DtEntityIdentifier &id=DtEntityIdentifier::nullId())
 Removes a Record.
virtual void clearRecordSet (const DtEntityIdentifier &id=DtEntityIdentifier::nullId())
 Removes all Records and deletes the recordSet for the given Entity/Object Identifier.
virtual void clearAllRecordSets ()
 Removes all RecordSets.
virtual std::vector
< DtEntityIdentifier
recordSetIdentifiers () const
 Returns a vector of Entity/Object Identifiers. These are the Identifiers for the Record Sets.
virtual void getRecordSetIdentifiers (std::vector< DtEntityIdentifier > &entityIdVector) const
 Returns by reference the vector of Entity/Object Identifiers.
virtual const
DtStandardVariableRecordPtrVector
records (const DtEntityIdentifier &id=DtEntityIdentifier::nullId()) const
 This will return the Records for a given Entity/Object Identifier.
virtual const
DtAttributeRecordSet
recordSet (const DtEntityIdentifier &id) const
 This will return the Record Set for a given Entity/Object Identifier.
virtual const
DtStandardVariableRecordPtrVector 
allRecords () const
 This will return the Records of all Record Sets.
virtual unsigned int numberOfRecords () const
 Returns the number of records for all Record Sets.
virtual unsigned int numberOfRecords (const DtEntityIdentifier &id) const
 Returns the number of records in the Record Set for the given Entity/Object Identifier.
virtual bool containsStandardRecordSets () const
 Returns if this PDU contains Standard Record Sets. (This is only applicable to DIS 7 and higher).
virtual const DtSimulationAddressattributePduSimulationAddress () const
 Returns the Simulation address if an attribute PDU was coupled. Used internally in VR-Link in Reflected Lists.
virtual void setAttributePduSimulationAddress (const DtSimulationAddress &addr)
 Sets the Simulation address if an attribute PDU was coupled. Used internally in VR-Link in Reflected Lists.
virtual void encode ()
 Encode method.
virtual void decode (DtPduFactory *pduFactory=0)
 Decode method.
virtual unsigned int attributeRecordSetsNetSize () const
 Network Size of the all Attribute Record Sets.
virtual unsigned int recordSetsNetSize () const
 Network Size of the all Record Sets.
virtual void setStandardVariableRecordFactory (DtStandardVariableRecordFactory *factory)
 Sets/gets the Standard Variable Record Factory used for decoding.
virtual
DtStandardVariableRecordFactory
standardVariableRecordFactory () const
virtual unsigned int numberOfRecordSets () const
 Gets the number of Attribute Record Sets.
virtual const
DtAttributeRecordSetMap
attributeRecordSetMap () const
 Get the AttributeRecordSet Map.
virtual int computeMasterAttributeRecordType () const
 Get the Master Attribute Record Type (if applicable, this will return MULTIPLES_PRESENT if not)
virtual void setAttributeStrategy (DtAttributePduStrategy strat)
virtual DtAttributePduStrategy attributePduStrategy () const
virtual bool shouldAttributePduBeCoupled () const
- Public Member Functions inherited from DtPdu
virtual ~DtPdu ()
 Destructor.
 DtPdu (const DtPdu &pdu, DtBufferPtr buffer=DtUSE_INTERNAL_BUFFER)
 Copy constructor.
DtPduoperator= (const DtPdu &pdu)
 Assignment operator.
virtual void * packet () const
 Older function that returns a pointer to the network representation.
virtual int status () const
 Get PDU status.
virtual void setVersion (int vers)
 Set/Get protocol version from PDU header.
virtual int protocolVersion () const
virtual void setExerciseId (int id)
 Set/Get exerciseID in PDU header.
virtual int exerciseId () const
virtual DtPduKind kind () const
 Returns PDU kind from PDU header.
virtual DtProtocolFamily protocolFamily () const
 Returns protocol family from PDU header.
virtual void setTimeStamp (DtTime time, DtTimeStampType type=DtTimeStampRelative)
 Set the PDU header's time stamp to reflect time and type.
virtual DtTime timeStamp () const
 Return the time (in seconds past an hour) encoded in the PDU header's time stamp.
virtual DtTimeStampType timeStampType () const
 Return the type of the time stamp, as indicated in PDU header.
virtual void setReceivedTime (DtTime t)
 absRealTime when PDU was received into buffer.
virtual DtTime receivedTime () const
virtual void setPduLength (unsigned int length)
 Set the PDU header's length.
virtual unsigned int pduLength () const
 Return the length of the PDU, as indicated in the PDU header.
virtual void setPduStatus (int)
 Set the PDU Status in the PDU header.
virtual int pduStatus () const
 Returns the PDU Status from the PDU header.
virtual void setTransferredEntityIndicator (bool difference)
 Set the Transferred Entity Indicator in the PDU header False is No Difference True is Difference.
virtual bool transferredEntityIndicator () const
 Returns the Transferred Entity Indicator from the PDU header False is No Difference True is Difference.
virtual void setLvcIndicator (DtPduStatusLVCIndicator lvcIndicator)
 Set the LVC Indicator in the PDU header.
virtual DtPduStatusLVCIndicator lvcIndicator () const
 Returns the LVC Indicator from the PDU header.
virtual void setCoupledExtensionIndicator (bool coupled)
 Set the Coupled Extension Indicator in the PDU Header False is Not Coupled True is Coupled.
virtual bool coupledExtensionIndicator () const
 Returns the Coupled Extension Indicator from the PDU Header False is Not Coupled True is Coupled.
virtual void setFireTypeIndicator (DtPduStatusFireTypeIndicator fireTypeIndicator)
 Set the Fire Type Indicator in the PDU header.
virtual
DtPduStatusFireTypeIndicator 
fireTypeIndicator () const
 Returns the Fire Type Indicator from the PDU header.
virtual void setDetonationTypeIndicator (DtPduStatusDetonationTypeIndicator detonationTypeIndicator)
 Set the Detonation Type Indicator in the PDU header.
virtual
DtPduStatusDetonationTypeIndicator 
detonationTypeIndicator () const
 Returns the Detonation Type Indicator from the PDU header.
virtual void setRadioAttachedIndicator (DtPduStatusRadioAttachedIndicator radioAttachedIndicator)
 Set the Radio Attached Indicator in the PDU header.
virtual
DtPduStatusRadioAttachedIndicator 
radioAttachedIndicator () const
 Returns the Radio Attached Indicator from the PDU header.
virtual void setIntercomAttachedIndicator (DtPduStatusIntercomAttachedIndicator intercomAttachedIndicator)
 Set the Intercom Attached Indicator in the PDU header.
virtual
DtPduStatusIntercomAttachedIndicator 
intercomAttachedIndicator () const
 Returns the Intercom Attached Indicator from the PDU header.
virtual void setIffSimulationMode (bool interactive)
 Set the IFF Simulation Mode in the PDU header.
virtual bool iffSimulationMode () const
 Returns the IFF Simulation Mode from the PDU header.
virtual void setActiveInterrogationIndicator (bool active)
 Set the Active Interrogation Indicator in the PDU header.
virtual bool activeInterrogationIndicator () const
 Returns the Active Interrogation Indicator from the PDU header.
virtual DtTime guessTimeValid (DtTime referenceTime) const
 Since timestamp only represents number of seconds past the hour, guessTimeValid chooses the hour that would make the timestamp closest to reference time, and returns a time that is timestamp seconds past that hour.
virtual DtNetPduHeadernetHeader () const
 Returns a pointer to the PDU's header.
virtual void print () const
 Print the contents of the PDU by calling printToStream(DtInfo).
virtual void printHeader () const
 Print the PDU's header. This calls printHeaderToStream(DtInfo).
virtual void printHeaderToStream (std::ostream &stream) const
 Print the PDU's header to a stream.
virtual void printDataToString (DtString &str) const
virtual void printPduInHexToStream (std::ostream &stream, unsigned int numberOfColumns) const
 Prints the entire PDU's internal buffer to the stream in Hex.
virtual bool isTransientPdu () const
 This method returns true if transient, false if state.
- Public Member Functions inherited from DtBaseMsg
virtual ~DtBaseMsg ()
 Destructor.
 DtBaseMsg (const DtBaseMsg &msg, DtBufferPtr buffer=DtUSE_INTERNAL_BUFFER)
 Copy constructor.
DtBaseMsgoperator= (const DtBaseMsg &msg)
 Assignment.
virtual const char * netRep () const
 Get network representation.
virtual int length () const
 Get size of message.
 DtBaseMsg ()
 Constructor Object is not fully constructed until initMsg is called.
void initMsg (int size, DtBufferPtr bufferPtr)
void initMsg (const void *initial, int size, DtBufferPtr bufferPtr)
virtual void changeSize (int size)
 Changes the size of the message.
virtual void changeBufferSize (int size)
 Changes the size of the message buffer, but not the message itself.
virtual void insertBytes (int offset, int numBytes)
 Inserts numBytes zeroed-out bytes at the indicated offset into the net rep.
virtual void insertBytes (void *address, int numBytes)
 Inserts numBytes zeroed-out bytes at the indicated address.
virtual void deleteBytes (int offset, int numBytes)
 Deletes numBytes bytes at the indicated offset in the net rep.
virtual void deleteBytes (void *address, int numBytes)
 Deletes numBytes bytes starting at the indicated address.
virtual void clearAll ()
 Zeros out all bytes in the network representation.
virtual void * newInternalBuffer (int size)
 Sets myInternalBuff to point to a malloc'ed buffer of size bytes.

Static Public Member Functions

static DtPducreate (const DtNetPacket *initial, DtBufferPtr buffer=DtUSE_INTERNAL_BUFFER, DtPduFactory *pduFactory=0)
 Static creator function for the DI Guy custom PDU.
static void addCallback (DtExerciseConn *conn, DtDIGuyCustomPduCb cb, void *usr)
 Registers a callback for receipt of a DI Guy custom PDU.
static void removeCallback (DtExerciseConn *conn, DtDIGuyCustomPduCb cb, void *usr)
 Deregisters a callback for receipt of a DI Guy custom PDU.
static void addCallback (DtExerciseConn *conn, DtDIGuyCustomPduCb cb, void *usr, DtDIGuyCustomPduMsgId id)
 Registers a callback for receipt of a DI Guy custom PDU for a specific type.
static void removeCallback (DtExerciseConn *conn, DtDIGuyCustomPduCb cb, void *usr, DtDIGuyCustomPduMsgId id)
 Deregisters a callback for receipt of a DI Guy custom PDU for a specific type.
static void setCustomPduKind (DtPduKind pduKind)
 The BDI Custom PDU's have a PDU kind that can change from run to run.
static DtPduKind customPduKind ()

Protected Member Functions

virtual DtPduKind internalGetPduKind () const
 Returns the PDU kind associated with the derived PDU class.

Static Protected Attributes

static DtPduKind theCustomPduKind

Additional Inherited Members

- Protected Attributes inherited from DtPduWithAttributeRecordSets
DtAttributeRecordSetMap myAttributeRecordSetMap
 The Map which holds the Record Sets (Set of Record Sets) where the Entity Identifier is the key.
bool isRecordSetOwned
bool isPduExtending
DtStandardVariableRecordFactorymySVRFactory
DtPduDecodermyAttributeDecoder
DtPduEncodermyAttributeEncoder
DtSimulationAddress myAttributePduOriginatingSimulationAddress
DtAttributePduStrategy myAttributePduStrategy

Detailed Description

Implements the storage, sending, and receipt of DI Guy custom PDU's.

These PDU's are used to send messages to DI Guys, according to the DI Guy SDK.

Member Enumeration Documentation

anonymous enum

The size of the static data within the PDU.

Enumerator:
PduStaticSize 

Constructor & Destructor Documentation

DtDIGuyCustomPdu::DtDIGuyCustomPdu ( DtBufferPtr  buffer = DtUSE_INTERNAL_BUFFER)

Default constructor.

Constructs a blank DtDIGuyCustomPdu.

DtDIGuyCustomPdu::DtDIGuyCustomPdu ( const DtNetDIGuyCustomPdu initial,
DtBufferPtr  buffer = DtUSE_INTERNAL_BUFFER,
DtPduFactory pduFactory = 0 
)

Contructor that creates a DtDIGuyCustomPdu from the network representation.

virtual DtDIGuyCustomPdu::~DtDIGuyCustomPdu ( )
virtual

Destructor.

DtDIGuyCustomPdu::DtDIGuyCustomPdu ( const DtDIGuyCustomPdu other)

Copy constructor.

Member Function Documentation

virtual void DtDIGuyCustomPdu::addBool ( bool  value)
virtual

Adds the bool value to the data section of the PDU.

The data size will be changed accordingly, and the value will be added to the end of the data section.

static void DtDIGuyCustomPdu::addCallback ( DtExerciseConn conn,
DtDIGuyCustomPduCb  cb,
void *  usr 
)
static

Registers a callback for receipt of a DI Guy custom PDU.

static void DtDIGuyCustomPdu::addCallback ( DtExerciseConn conn,
DtDIGuyCustomPduCb  cb,
void *  usr,
DtDIGuyCustomPduMsgId  id 
)
static

Registers a callback for receipt of a DI Guy custom PDU for a specific type.

virtual void DtDIGuyCustomPdu::addFloat ( float  value)
virtual

Adds the float value to the data section of the PDU.

The data size will be changed accordingly, and the value will be added to the end of the data section.

virtual void DtDIGuyCustomPdu::addLong ( long  value)
virtual

Adds the long value to the data section of the PDU.

The data size will be changed accordingly, and the value will be added to the end of the data section.

virtual void DtDIGuyCustomPdu::addShort ( short  value)
virtual

Adds the short value to the data section of the PDU.

The data size will be changed accordingly, and the value will be added to the end of the data section.

virtual void DtDIGuyCustomPdu::addString ( const DtString str)
virtual

Adds the string to the data section of the PDU.

The data size will be changed accordingly, and the value will be added to the end of the data section. The null-terminating character of the string is copied, as well.

virtual void DtDIGuyCustomPdu::addUnsignedData ( int  size,
const unsigned char *  s 
)
virtual

Adds the bytes specified by unsigned pointer to the data section of the PDU.

The data size will be changed by the specified size, and the value will be added to the end of the data section.

static DtPdu* DtDIGuyCustomPdu::create ( const DtNetPacket initial,
DtBufferPtr  buffer = DtUSE_INTERNAL_BUFFER,
DtPduFactory pduFactory = 0 
)
static

Static creator function for the DI Guy custom PDU.

static DtPduKind DtDIGuyCustomPdu::customPduKind ( )
static
virtual void* DtDIGuyCustomPdu::data ( )
virtual
virtual unsigned int DtDIGuyCustomPdu::dataSize ( ) const
virtual
virtual DtEntityIdentifier DtDIGuyCustomPdu::entityId ( ) const
virtual
virtual void DtDIGuyCustomPdu::getData ( unsigned char *  buff) const
virtual

Raw methods of getting/setting data.

virtual DtPduKind DtDIGuyCustomPdu::internalGetPduKind ( ) const
protectedvirtual

Returns the PDU kind associated with the derived PDU class.

Implements DtPdu.

virtual DtDIGuyCustomPduMsgId DtDIGuyCustomPdu::messageId ( ) const
virtual
virtual int DtDIGuyCustomPdu::messageVersion ( ) const
virtual
virtual DtNetDIGuyCustomPdu* DtDIGuyCustomPdu::netDIGuyCustomPdu ( )
virtual

Provides access to the network structure of the PDU.

virtual const DtNetDIGuyCustomPdu* DtDIGuyCustomPdu::netDIGuyCustomPdu ( ) const
virtual
DtDIGuyCustomPdu& DtDIGuyCustomPdu::operator= ( const DtDIGuyCustomPdu other)

Assignment operator.

virtual void DtDIGuyCustomPdu::printData ( ) const
virtual

Print the data contained in this PDU.

Reimplemented from DtPdu.

virtual void DtDIGuyCustomPdu::printDataToStream ( std::ostream &  stream) const
virtual

Print the data to a stream.

Reimplemented from DtPdu.

virtual bool DtDIGuyCustomPdu::pullBool ( bool value,
unsigned int &  byteoffset 
) const
virtual

These methods retrieve the particular type of value from the specified byteoffset.

The value is stored in the value reference passed in, and byteoffset is modified to the next byte. This way, values can be retrieved in the following manner. DtString str1; DtString str2; int offset = 0; pullString(str1, offset); pullString(str2, offset); This will retrieve two null-terminated strings, and offset will refer to the next available byte in the data section.

Returns
false if byteoffset is invalid, true otherwise.
virtual bool DtDIGuyCustomPdu::pullFloat ( float value,
unsigned int &  byteoffset 
) const
virtual
virtual bool DtDIGuyCustomPdu::pullLong ( long &  value,
unsigned int &  byteoffset 
) const
virtual
virtual bool DtDIGuyCustomPdu::pullShort ( short &  value,
unsigned int &  byteoffset 
) const
virtual
virtual bool DtDIGuyCustomPdu::pullString ( DtString value,
unsigned int &  byteoffset 
) const
virtual
virtual bool DtDIGuyCustomPdu::pullUnsignedData ( const unsigned char *&  value,
unsigned int &  byteoffset,
int &  bytes_read 
) const
virtual
static void DtDIGuyCustomPdu::removeCallback ( DtExerciseConn conn,
DtDIGuyCustomPduCb  cb,
void *  usr 
)
static

Deregisters a callback for receipt of a DI Guy custom PDU.

static void DtDIGuyCustomPdu::removeCallback ( DtExerciseConn conn,
DtDIGuyCustomPduCb  cb,
void *  usr,
DtDIGuyCustomPduMsgId  id 
)
static

Deregisters a callback for receipt of a DI Guy custom PDU for a specific type.

static void DtDIGuyCustomPdu::setCustomPduKind ( DtPduKind  pduKind)
static

The BDI Custom PDU's have a PDU kind that can change from run to run.

This can be set/retrieved through the below static methods and should be done before any callbacks are registered. The default value is 220.

void DtDIGuyCustomPdu::setData ( unsigned char *  data,
int  numBytes 
)
virtual void DtDIGuyCustomPdu::setDataSize ( unsigned int  size)
virtual

Get/Set the data size.

virtual void DtDIGuyCustomPdu::setEntityId ( const DtEntityIdentifier entId)
virtual

Get/Set the Entity ID of the PDU.

virtual void DtDIGuyCustomPdu::setMessageId ( DtDIGuyCustomPduMsgId  msgId)
virtual

Get/Set the message ID.

virtual void DtDIGuyCustomPdu::setMessageVersion ( int  version)
virtual

Get/Set the message version.

Defaults to 7, and should not be changed.

Member Data Documentation

DtPduKind DtDIGuyCustomPdu::theCustomPduKind
staticprotected

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

Document ID: Generated on Mon Jun 22 21:18:40 EDT 2020 from SVN revision 213785
Copyright © 2005-2018 MAK Technologies. All Rights Reserved (www.mak.com)