VR-Link API Documentation for DIS
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes

DtPdu is the base class for all PDU's in VR-Link. More...

+ Inheritance diagram for DtPdu:
+ Collaboration diagram for DtPdu:

Public Member Functions

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 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 printToStream (std::ostream &stream) const
 Print the contents of the PDU by calling printHeaderToStream and printDataToStream.
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 printData () const
 Print the PDU's data (not including header).
virtual void printDataToStream (std::ostream &stream) const
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 void encode ()
 Encode method.
virtual void decode (DtPduFactory *pduFactory)
 Decode method.
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, bool skipSizeChanged=false)
 Changes the size of the message.
virtual void insertBytes (int offset, int numBytes, bool skipSizeChanged=false)
 Inserts numBytes zeroed-out bytes at the indicated offset into the net rep.
virtual void insertBytes (void *address, int numBytes, bool skipSizeChanged=false)
 Inserts numBytes zeroed-out bytes at the indicated address.
virtual void deleteBytes (int offset, int numBytes, bool skipSizeChanged=false)
 Deletes numBytes bytes at the indicated offset in the net rep.
virtual void deleteBytes (void *address, int numBytes, bool skipSizeChanged=false)
 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.

Protected Member Functions

 DtPdu ()
 Constructor.
virtual void setStatus (int okStatus)
 Sets the PDU's status to okStatus.
virtual void initPdu (int size, DtBufferPtr buffer)
 Must be called after default ctor before PDU is completely constructed.
virtual void initPdu (const void *initial, DtBufferPtr buffer, DtPduFactory *pduFactory)
 Called by from-net-rep ctor. Initializes DtBaseMsg.
virtual DtPduKind internalGetPduKind () const =0
 Returns the PDU kind associated with the derived PDU class.
virtual DtProtocolFamily kindToFamily (DtPduKind kind) const
 Maps PDU kind to ProtocolFamily.
virtual void sizeChanged (int size)
 Called by changeSize. Sets the size in the header to size.
virtual void clearData ()
 zeros out all bytes after the PDU header.
virtual void initHeader (DtPduKind kind, int size)
 Initializes PDU header. Called by initPdu.
virtual bool isTEIApplicable () const
 Returns whether a PDU Status is applicable to this PDU (based on PDU Type) These methods are only relevant in DIS 7 and greater.
virtual bool isLVCApplicable () const
virtual bool isCEIApplicable () const
virtual bool isFTIApplicable () const
virtual bool isDTIApplicable () const
virtual bool isRAIApplicable () const
virtual bool isIAIApplicable () const
virtual bool isISMApplicable () const
virtual bool isAIIApplicable () const

Protected Attributes

DtPduEncodermyEncoder
DtPduDecodermyDecoder
int myOKStatus
- Protected Attributes inherited from DtBaseMsg
void * myNetMsg
void * myInternalBuff
int myIntBuffSize
int myMsgSize

Detailed Description

DtPdu is the base class for all PDU's in VR-Link.

Constructor & Destructor Documentation

virtual DtPdu::~DtPdu ( )
virtual

Destructor.

DtPdu::DtPdu ( const DtPdu pdu,
DtBufferPtr  buffer = DtUSE_INTERNAL_BUFFER 
)

Copy constructor.

DtPdu::DtPdu ( )
protected

Constructor.

PDU is not fully constructed until initPdu is called.

Member Function Documentation

virtual bool DtPdu::activeInterrogationIndicator ( ) const
virtual

Returns the Active Interrogation Indicator from the PDU header.

virtual void DtPdu::clearData ( )
protectedvirtual

zeros out all bytes after the PDU header.

virtual bool DtPdu::coupledExtensionIndicator ( ) const
virtual

Returns the Coupled Extension Indicator from the PDU Header False is Not Coupled True is Coupled.

virtual void DtPdu::decode ( DtPduFactory pduFactory)
virtual

Decode method.

Reimplemented in DtPduWithAttributeRecordSets.

virtual DtPduStatusDetonationTypeIndicator DtPdu::detonationTypeIndicator ( ) const
virtual

Returns the Detonation Type Indicator from the PDU header.

virtual void DtPdu::encode ( )
virtual

Encode method.

Reimplemented in DtPduWithAttributeRecordSets.

int DtPdu::exerciseId ( ) const
inlinevirtual
virtual DtPduStatusFireTypeIndicator DtPdu::fireTypeIndicator ( ) const
virtual

Returns the Fire Type Indicator from the PDU header.

virtual DtTime DtPdu::guessTimeValid ( DtTime  referenceTime) const
virtual

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 bool DtPdu::iffSimulationMode ( ) const
virtual

Returns the IFF Simulation Mode from the PDU header.

virtual void DtPdu::initHeader ( DtPduKind  kind,
int  size 
)
protectedvirtual

Initializes PDU header. Called by initPdu.

virtual void DtPdu::initPdu ( int  size,
DtBufferPtr  buffer 
)
protectedvirtual

Must be called after default ctor before PDU is completely constructed.

Fills in PDU header, and initializes DtBaseMsg.

virtual void DtPdu::initPdu ( const void *  initial,
DtBufferPtr  buffer,
DtPduFactory pduFactory 
)
protectedvirtual

Called by from-net-rep ctor. Initializes DtBaseMsg.

virtual DtPduStatusIntercomAttachedIndicator DtPdu::intercomAttachedIndicator ( ) const
virtual

Returns the Intercom Attached Indicator from the PDU header.

virtual DtPduKind DtPdu::internalGetPduKind ( ) const
protectedpure virtual
virtual bool DtPdu::isAIIApplicable ( ) const
protectedvirtual
virtual bool DtPdu::isCEIApplicable ( ) const
protectedvirtual
virtual bool DtPdu::isDTIApplicable ( ) const
protectedvirtual
virtual bool DtPdu::isFTIApplicable ( ) const
protectedvirtual
virtual bool DtPdu::isIAIApplicable ( ) const
protectedvirtual
virtual bool DtPdu::isISMApplicable ( ) const
protectedvirtual
virtual bool DtPdu::isLVCApplicable ( ) const
protectedvirtual
virtual bool DtPdu::isRAIApplicable ( ) const
protectedvirtual
virtual bool DtPdu::isTEIApplicable ( ) const
protectedvirtual

Returns whether a PDU Status is applicable to this PDU (based on PDU Type) These methods are only relevant in DIS 7 and greater.

virtual bool DtPdu::isTransientPdu ( ) const
virtual

This method returns true if transient, false if state.

This is based off the PDU kind parsed from the header

DtPduKind DtPdu::kind ( ) const
inlinevirtual

Returns PDU kind from PDU header.

References netHeader().

virtual DtProtocolFamily DtPdu::kindToFamily ( DtPduKind  kind) const
protectedvirtual

Maps PDU kind to ProtocolFamily.

virtual DtPduStatusLVCIndicator DtPdu::lvcIndicator ( ) const
virtual

Returns the LVC Indicator from the PDU header.

DtNetPduHeader * DtPdu::netHeader ( ) const
inlinevirtual
DtPdu& DtPdu::operator= ( const DtPdu pdu)

Assignment operator.

Referenced by DtSimanPdu::operator=(), and DtPduWithData::operator=().

void * DtPdu::packet ( ) const
inlinevirtual

Older function that returns a pointer to the network representation.

The newer DtBaseMsg::netRep should generally be used instead.

References DtBaseMsg::netRep().

unsigned int DtPdu::pduLength ( ) const
inlinevirtual

Return the length of the PDU, as indicated in the PDU header.

References DtNetPduHeader::DtLength, and netHeader().

int DtPdu::pduStatus ( ) const
inlinevirtual

Returns the PDU Status from the PDU header.

References netHeader(), and DtNetPduHeader::pduStatus.

Referenced by setPduStatus().

virtual void DtPdu::print ( ) const
virtual

Print the contents of the PDU by calling printToStream(DtInfo).

virtual void DtPdu::printData ( ) const
virtual

Print the PDU's data (not including header).

Base DtPdu version just prints hex. Use the printDataToString to put the data into a DtString instead of simply sending the output to stdout. printData() calls printDataToStream(DtInfo).

Reimplemented in DtMinefieldDataPdu, DtPduWithData, DtResupplyReceivedPdu, DtIffAtcNavaidsPdu, DtEntityStatePdu, DtElectromagneticEmissionPdu, DtGriddedDataPdu, DtAggregateStatePdu, DtLeDetonationPdu, DtTransmitterPdu, DtDIGuyCustomPdu, DtDirectedEnergyFirePdu, DtIsGroupOfPdu, DtSignalPdu, DtMinefieldQueryPdu, DtIntercomControlPdu, DtLeFirePdu, DtArealObjectStatePdu, DtLeAppearancePdu, DtDetonationPdu, DtUnderwaterAcousticPdu, DtActionResponsePdu, DtDesignatorPdu, DtResupplyOfferPdu, DtCollisionElasticPdu, DtLeTspiPdu, DtPointObjectStatePdu, DtMinefieldStatePdu, DtEntityStateUpdatePdu, DtRepairCompletePdu, DtFirePdu, DtLinearObjectStatePdu, DtEnvironmentalProcessPdu, DtIntercomSignalPdu, DtSuppEmisEntStatePdu, DtLeArticulatedPartsPdu, DtRecordQueryPdu, DtIsPartOfPdu, DtReceiverPdu, TestPdu, DtServiceRequestPdu, DtTransferControlRequestPdu, DtDataQueryRPdu, DtRecordPdu, DtMinefieldResponseNackPdu, DtStopFreezeRPdu, DtCollisionPdu, DtEntityDamageStatusPdu, DtSetRecordPdu, DtStartResumePdu, DtDataQueryPdu, DtActionRequestPdu, DtAttributePdu, DtStartResumeRPdu, DtAcknowledgePdu, DtStopFreezePdu, DtCreateEntityPdu, DtAcknowledgeRPdu, DtActionRequestRPdu, DtCreateEntityRPdu, DtSetDataPdu, DtRelativeLocationPdu, DtRemoveEntityRPdu, DtDataRPdu, DtSetDataRPdu, DtActionResponseRPdu, DtRemoveEntityPdu, DtDataPdu, DtRepairResponsePdu, DtResupplyCancelPdu, DtSimanPdu, DtEventReportPdu, DtEventReptRPdu, and DtRecordSetPdu.

virtual void DtPdu::printDataToStream ( std::ostream &  stream) const
virtual
virtual void DtPdu::printDataToString ( DtString str) const
virtual
virtual void DtPdu::printHeader ( ) const
virtual

Print the PDU's header. This calls printHeaderToStream(DtInfo).

Reimplemented in DtLeDetonationPdu, DtLeFirePdu, DtLeAppearancePdu, DtLeTspiPdu, and DtLeArticulatedPartsPdu.

virtual void DtPdu::printHeaderToStream ( std::ostream &  stream) const
virtual

Print the PDU's header to a stream.

Reimplemented in DtLeDetonationPdu, DtLeFirePdu, DtLeAppearancePdu, DtLeTspiPdu, and DtLeArticulatedPartsPdu.

virtual void DtPdu::printPduInHexToStream ( std::ostream &  stream,
unsigned int  numberOfColumns 
) const
virtual

Prints the entire PDU's internal buffer to the stream in Hex.

virtual void DtPdu::printToStream ( std::ostream &  stream) const
virtual

Print the contents of the PDU by calling printHeaderToStream and printDataToStream.

Reimplemented in DtPduWithAttributeRecordSets.

DtProtocolFamily DtPdu::protocolFamily ( ) const
inlinevirtual

Returns protocol family from PDU header.

References netHeader().

int DtPdu::protocolVersion ( ) const
inlinevirtual
virtual DtPduStatusRadioAttachedIndicator DtPdu::radioAttachedIndicator ( ) const
virtual

Returns the Radio Attached Indicator from the PDU header.

virtual void DtPdu::setActiveInterrogationIndicator ( bool  active)
virtual

Set the Active Interrogation Indicator in the PDU header.

virtual void DtPdu::setCoupledExtensionIndicator ( bool  coupled)
virtual

Set the Coupled Extension Indicator in the PDU Header False is Not Coupled True is Coupled.

virtual void DtPdu::setDetonationTypeIndicator ( DtPduStatusDetonationTypeIndicator  detonationTypeIndicator)
virtual

Set the Detonation Type Indicator in the PDU header.

void DtPdu::setExerciseId ( int  id)
inlinevirtual

Set/Get exerciseID in PDU header.

References DtNetPduHeader::DtExercise, and netHeader().

virtual void DtPdu::setFireTypeIndicator ( DtPduStatusFireTypeIndicator  fireTypeIndicator)
virtual

Set the Fire Type Indicator in the PDU header.

virtual void DtPdu::setIffSimulationMode ( bool  interactive)
virtual

Set the IFF Simulation Mode in the PDU header.

virtual void DtPdu::setIntercomAttachedIndicator ( DtPduStatusIntercomAttachedIndicator  intercomAttachedIndicator)
virtual

Set the Intercom Attached Indicator in the PDU header.

virtual void DtPdu::setLvcIndicator ( DtPduStatusLVCIndicator  lvcIndicator)
virtual

Set the LVC Indicator in the PDU header.

void DtPdu::setPduLength ( unsigned int  length)
inlinevirtual

Set the PDU header's length.

This is in bytes Note this will differ from the value in length() when the the CouplingIndicator is true in DIS7

References DtNetPduHeader::DtLength, DtBaseMsg::length(), and netHeader().

void DtPdu::setPduStatus ( int  pduStatus)
inlinevirtual

Set the PDU Status in the PDU header.

References netHeader(), DtNetPduHeader::pduStatus, and pduStatus().

virtual void DtPdu::setRadioAttachedIndicator ( DtPduStatusRadioAttachedIndicator  radioAttachedIndicator)
virtual

Set the Radio Attached Indicator in the PDU header.

void DtPdu::setStatus ( int  okStatus)
inlineprotectedvirtual

Sets the PDU's status to okStatus.

References myOKStatus.

void DtPdu::setTimeStamp ( DtTime  time,
DtTimeStampType  type = DtTimeStampRelative 
)
inlinevirtual

Set the PDU header's time stamp to reflect time and type.

Time is in seconds, but only the time modulo an hour actually gets into the time stamp.

References DtNetPduHeader::DtTime, and netHeader().

virtual void DtPdu::setTransferredEntityIndicator ( bool  difference)
virtual

Set the Transferred Entity Indicator in the PDU header False is No Difference True is Difference.

void DtPdu::setVersion ( int  vers)
inlinevirtual

Set/Get protocol version from PDU header.

References netHeader(), and DtNetPduHeader::version.

virtual void DtPdu::sizeChanged ( int  size)
protectedvirtual

Called by changeSize. Sets the size in the header to size.

Implements DtBaseMsg.

int DtPdu::status ( ) const
inlinevirtual

Get PDU status.

DtSTATUS_OK means it's good. Other values indicate a bad PDU. Return codes are derived PDU-dependent.

References myOKStatus.

DtTime DtPdu::timeStamp ( ) const
inlinevirtual

Return the time (in seconds past an hour) encoded in the PDU header's time stamp.

References DtNetPduHeader::DtTime, netHeader(), and DtNetTimeStamp::time().

DtTimeStampType DtPdu::timeStampType ( ) const
inlinevirtual

Return the type of the time stamp, as indicated in PDU header.

References DtNetPduHeader::DtTime, netHeader(), and DtNetTimeStamp::type().

virtual bool DtPdu::transferredEntityIndicator ( ) const
virtual

Returns the Transferred Entity Indicator from the PDU header False is No Difference True is Difference.

Member Data Documentation

DtPduDecoder* DtPdu::myDecoder
protected
DtPduEncoder* DtPdu::myEncoder
protected
int DtPdu::myOKStatus
protected

Referenced by setStatus(), and status().


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

Document ID: Generated on Wed Oct 23 22:25:48 EDT 2013 from SVN revision 132765
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)