VR-Link API Documentation for DIS
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends
DtPduWithData Class Reference

DtPduWithData provides the base class for all of the simulation management PDU's that have fixed/variable data. More...

+ Inheritance diagram for DtPduWithData:
+ Collaboration diagram for DtPduWithData:

List of all members.

Public Types

enum  { PduStaticSize = 40 }

Public Member Functions

 DtPduWithData ()
 Constructor.
virtual ~DtPduWithData ()
 Destructor.
 DtPduWithData (const DtPduWithData &orig)
DtPduWithDataoperator= (const DtPduWithData &orig)
 Assignment operator.
virtual int numFixedFields () const
 Returns number of fixed fields.
virtual int numVarFields () const
 Returns number of variable length fields.
virtual DtDatumParam varDatumId (int index) const
 Returns the datum param found in the index'th variable datum record.
virtual DtDatumParam fixedDatumId (int index) const
 Returns the datum param found in the index'th fixed datum record.
virtual DtDatumParam datumId (DtDatumRecordType fixedOrVar, int index) const
 Returns the datum param found in the index'th fixed or variable datum record, depending on whether fixedOrVar is DtFIXED or DtVAR.
virtual int datumSizeBits (DtDatumRecordType fixedOrVar, int index) const
 Returns the number of bits of data contained in the value fields of the index'th fixed or variable datum record, depending on whether fixedOrVar is DtFIXED or DtVAR.
virtual int datumSizeBytes (DtDatumRecordType fixedOrVar, int index) const
 Returns the number of bytes of data contained in the value fields of the index'th fixed or variable datum record, depending on whether fixedOrVar is DtFIXED or DtVAR.
virtual void getIndex (DtDatumParam param, DtDatumRecordType *fixedOrVar, int *index, DtDatumRetCode *retcode=NULL) const
 Looks through all fixed and variable records for one containing param as the parameter ID.
virtual DtFloat32 datumValFloat32 (DtDatumRecordType fixedOrVar, int index, DtDatumRetCode *retcode=NULL) const
 ******* INSPECTING DATUM VALUES BY INDEX ********* If you know the data type of the value contained in a particular record, use one of the following to return it.
virtual DtFloat64 datumValFloat64 (DtDatumRecordType fixedOrVar, int index, DtDatumRetCode *retcode=NULL) const
virtual unsigned long datumValUnsigned32 (DtDatumRecordType fixedOrVar, int index, DtDatumRetCode *retcode=NULL) const
virtual long datumValInt32 (DtDatumRecordType fixedOrVar, int index, DtDatumRetCode *retcode=NULL) const
virtual const char * datumValByteArray (DtDatumRecordType fixedOrVar, int index) const
virtual DtFloat32 datumValFloat32 (DtDatumParam param, DtDatumRetCode *retcode=NULL) const
 ******* INSPECTING DATUM VALUES BY PARAM ID ********* If you know the data type of the value contained in a particular record, use one of the following to return it.
virtual DtFloat64 datumValFloat64 (DtDatumParam param, DtDatumRetCode *retcode=NULL) const
virtual unsigned long datumValUnsigned32 (DtDatumParam param, DtDatumRetCode *retcode=NULL) const
virtual long datumValInt32 (DtDatumParam param, DtDatumRetCode *retcode=NULL) const
virtual const char * datumValByteArray (DtDatumParam param, DtDatumRetCode *retcode=NULL) const
virtual void initDataSection (const DtDatumParam *fixedParams, const DtVarDatumSpec *specList)
 ****************** MUTATOR FUNCTIONS ******************
virtual void setNumFixedFields (int newNum)
 Sets the number of fixed or variable fields to newNum.
virtual void setNumVarFields (int newNum)
virtual void setDatumParam (DtDatumRecordType fixedOrVar, int index, DtDatumParam param, DtDatumRetCode *retcode=NULL)
 Set the datum ID in the index'th fixed or variable datum record to param, depending on whether fixedOrVar is DtFIXED or DtVAR.
virtual void setVarDataBytes (int index, int length, DtDatumRetCode *retcode=NULL)
 Allocates length bytes for the index'th variable datum record.
virtual void setDatumValFloat64 (DtDatumRecordType fixedOrVar, int index, DtFloat64 val, DtDatumRetCode *retcode=NULL)
 ******* SETTING DATA VALUES BY INDEX ********* Use one of the following to set the data value in a fixed or variable datum record, depending on the data type of your data.
virtual void setDatumValFloat32 (DtDatumRecordType fixedOrVar, int index, DtFloat32 val, DtDatumRetCode *retcode=NULL)
virtual void setDatumValInt32 (DtDatumRecordType fixedOrVar, int index, long val, DtDatumRetCode *retcode=NULL)
virtual void setDatumValUnsigned32 (DtDatumRecordType fixedOrVar, int index, unsigned long val, DtDatumRetCode *retcode=NULL)
virtual void setDatumValByteArray (DtDatumRecordType fixedOrVar, int index, const char *val, DtDatumRetCode *retcode=NULL)
virtual void setDatumValFloat64 (DtDatumParam param, DtFloat64 val, DtDatumRetCode *retcode=NULL)
 ****** SETTING DATA VALUES BY PARAM ID ********* Use one of the following to set the data value in a fixed or variable datum record, depending on the data type of your data.
virtual void setDatumValFloat32 (DtDatumParam param, DtFloat32 val, DtDatumRetCode *retcode=NULL)
virtual void setDatumValInt32 (DtDatumParam param, long val, DtDatumRetCode *retcode=NULL)
virtual void setDatumValUnsigned32 (DtDatumParam param, unsigned long val, DtDatumRetCode *retcode=NULL)
virtual void setDatumValByteArray (DtDatumParam param, const char *val, DtDatumRetCode *retcode=NULL)
virtual void printData () const
 Implements DtPdu's virtual function to print the PDU's data.
virtual void printDataToStream (std::ostream &stream) const
 Prints the contents of the PDU to the specified stream.
virtual void printDataSection () const
 Helper function that prints only the contents of the data records.
virtual void printDataSectionToStream (std::ostream &stream) const

Protected Member Functions

virtual DtDatumRecordSetdatumRecSet ()
 Returns our datum record set helper object.
virtual const DtDatumRecordSetdatumRecSet () const
 Const version of above.
virtual DtNetDataPduTaildataSection () const =0
 Returns a pointer to the data section of the PDU - the part that starts with the numberOfFixedFields field.
virtual DtNetFixDatumnthFixedDataRecord (int index) const
 Return a pointer to the index'th fixed data record in the network representation.
virtual DtNetVarDatumnthVarDataRecord (int index) const
 Return a pointer to the index'th variable data record in the network representation.
virtual void * datumValPtr (DtDatumRecordType fixedOrVar, int index) const
 Returns a pointer to the index'th fixed or variable record in the network representation, depending on whether fixedOrVar is DtFIXED or DtVAR.

Protected Attributes

DtDatumRecordSetmyRecSet

Friends

class DtPduDatumRecordSet

Detailed Description

DtPduWithData provides the base class for all of the simulation management PDU's that have fixed/variable data.


Member Enumeration Documentation

anonymous enum
Enumerator:
PduStaticSize 

Constructor & Destructor Documentation

Constructor.

virtual DtPduWithData::~DtPduWithData ( ) [virtual]

Destructor.


Member Function Documentation

virtual DtNetDataPduTail* DtPduWithData::dataSection ( ) const [protected, pure virtual]

Returns a pointer to the data section of the PDU - the part that starts with the numberOfFixedFields field.

Implemented in DtActionResponsePdu, DtActionRequestRPdu, DtDataRPdu, DtSetDataRPdu, DtActionRequestPdu, DtActionResponseRPdu, DtCommentRPdu, DtEventReportPdu, DtEventReptRPdu, DtCommentPdu, DtDataPdu, and DtSetDataPdu.

virtual DtDatumParam DtPduWithData::datumId ( DtDatumRecordType  fixedOrVar,
int  index 
) const [virtual]

Returns the datum param found in the index'th fixed or variable datum record, depending on whether fixedOrVar is DtFIXED or DtVAR.

Index is between 1 and numRecords. Returns DtDatumParam(0) if index is out of bounds.

virtual DtDatumRecordSet* DtPduWithData::datumRecSet ( ) [protected, virtual]

Returns our datum record set helper object.

virtual const DtDatumRecordSet* DtPduWithData::datumRecSet ( ) const [protected, virtual]

Const version of above.

virtual int DtPduWithData::datumSizeBits ( DtDatumRecordType  fixedOrVar,
int  index 
) const [virtual]

Returns the number of bits of data contained in the value fields of the index'th fixed or variable datum record, depending on whether fixedOrVar is DtFIXED or DtVAR.

If DtFIXED, the answer is always 32.

virtual int DtPduWithData::datumSizeBytes ( DtDatumRecordType  fixedOrVar,
int  index 
) const [virtual]

Returns the number of bytes of data contained in the value fields of the index'th fixed or variable datum record, depending on whether fixedOrVar is DtFIXED or DtVAR.

If DtFIXED, the answer is always 4.

virtual const char* DtPduWithData::datumValByteArray ( DtDatumRecordType  fixedOrVar,
int  index 
) const [virtual]
virtual const char* DtPduWithData::datumValByteArray ( DtDatumParam  param,
DtDatumRetCode retcode = NULL 
) const [virtual]
virtual DtFloat32 DtPduWithData::datumValFloat32 ( DtDatumRecordType  fixedOrVar,
int  index,
DtDatumRetCode retcode = NULL 
) const [virtual]

******* INSPECTING DATUM VALUES BY INDEX ********* If you know the data type of the value contained in a particular record, use one of the following to return it.

fixedOrVar (either DtFIXED or DtVAR) and index (between 1 and numRecords) indicate which record you are inspecting. datumValBytesArray is used when the data type is a character string, or something other than a long, unsigned long, float or double. It returns a pointer to a character string containing the exact bytes in the PDU's network representation that represent the value being inspected. The supplied retcode pointer will be filled with DtDATUM_VALID if the value was successfully inspected, and DtDATUM_BAD_LENGTH if either the index was invalid, or the size of the data indicated that it could not be interpreted as the chosen data type.

virtual DtFloat32 DtPduWithData::datumValFloat32 ( DtDatumParam  param,
DtDatumRetCode retcode = NULL 
) const [virtual]

******* INSPECTING DATUM VALUES BY PARAM ID ********* If you know the data type of the value contained in a particular record, use one of the following to return it.

The particular record inspected will be the first one containing param as the datum ID. datumValByteArray is used when the data type is a character string, or something other than a long, unsigned long, float or double. It returns a pointer to a character string containing the exact bytes in the PDU's network representation that represent the value being inspected. The supplied retcode pointer will be filled with DtDATUM_VALID if the value was successfully inspected, and DtDATUM_BAD_LENGTH if either param was not found, or the size of the data indicated that it could not be interpreted as the chosen data type.

virtual DtFloat64 DtPduWithData::datumValFloat64 ( DtDatumRecordType  fixedOrVar,
int  index,
DtDatumRetCode retcode = NULL 
) const [virtual]
virtual DtFloat64 DtPduWithData::datumValFloat64 ( DtDatumParam  param,
DtDatumRetCode retcode = NULL 
) const [virtual]
virtual long DtPduWithData::datumValInt32 ( DtDatumRecordType  fixedOrVar,
int  index,
DtDatumRetCode retcode = NULL 
) const [virtual]
virtual long DtPduWithData::datumValInt32 ( DtDatumParam  param,
DtDatumRetCode retcode = NULL 
) const [virtual]
virtual void* DtPduWithData::datumValPtr ( DtDatumRecordType  fixedOrVar,
int  index 
) const [protected, virtual]

Returns a pointer to the index'th fixed or variable record in the network representation, depending on whether fixedOrVar is DtFIXED or DtVAR.

virtual unsigned long DtPduWithData::datumValUnsigned32 ( DtDatumRecordType  fixedOrVar,
int  index,
DtDatumRetCode retcode = NULL 
) const [virtual]
virtual unsigned long DtPduWithData::datumValUnsigned32 ( DtDatumParam  param,
DtDatumRetCode retcode = NULL 
) const [virtual]
virtual DtDatumParam DtPduWithData::fixedDatumId ( int  index) const [virtual]

Returns the datum param found in the index'th fixed datum record.

Index is between 1 and numRecords. Returns DtDatumParam(0) if index is out of bounds.

virtual void DtPduWithData::getIndex ( DtDatumParam  param,
DtDatumRecordType fixedOrVar,
int *  index,
DtDatumRetCode retcode = NULL 
) const [virtual]

Looks through all fixed and variable records for one containing param as the parameter ID.

If it finds one, fills supplied fixedOrVar pointer with DtFIXED or DtVAR, and index with the index to indicate which record was found, and fills retcode with DtDATUM_VALID. If param was not found, retcode is filled with DtDATUM_BAD_ID, and index and fixedOrVar are invalid.

virtual void DtPduWithData::initDataSection ( const DtDatumParam fixedParams,
const DtVarDatumSpec specList 
) [virtual]

****************** MUTATOR FUNCTIONS ******************

Initialize the data section of the PDU to reflect the fixed parameters and variable parameters and sizes indicated. fixedParams is a NULL- terminated array of DtDatumParams. specList is an array of DtVarDatumSpecs terminated with the DtNullVarDatumSpec constant. This call can be made instead of calls to setNumVarDatumRecords, setNumFixedDatumRecord, and repeated calls to setDatumParam and setVarDataBytes.

virtual DtNetFixDatum* DtPduWithData::nthFixedDataRecord ( int  index) const [protected, virtual]

Return a pointer to the index'th fixed data record in the network representation.

Index is between 1 and numRecords.

virtual DtNetVarDatum* DtPduWithData::nthVarDataRecord ( int  index) const [protected, virtual]

Return a pointer to the index'th variable data record in the network representation.

Index is between 1 and numRecords.

virtual int DtPduWithData::numFixedFields ( ) const [virtual]

Returns number of fixed fields.

virtual int DtPduWithData::numVarFields ( ) const [virtual]

Returns number of variable length fields.

DtPduWithData& DtPduWithData::operator= ( const DtPduWithData orig) [inline]

Assignment operator.

References DtPdu::operator=().

virtual void DtPduWithData::printData ( ) const [virtual]

Implements DtPdu's virtual function to print the PDU's data.

Reimplemented from DtSimanPdu.

Reimplemented in DtActionResponsePdu, DtActionRequestPdu, DtActionRequestRPdu, DtSetDataPdu, DtDataRPdu, DtSetDataRPdu, DtActionResponseRPdu, DtDataPdu, DtEventReportPdu, and DtEventReptRPdu.

virtual void DtPduWithData::printDataSection ( ) const [virtual]

Helper function that prints only the contents of the data records.

virtual void DtPduWithData::printDataSectionToStream ( std::ostream &  stream) const [virtual]
virtual void DtPduWithData::printDataToStream ( std::ostream &  stream) const [virtual]

Prints the contents of the PDU to the specified stream.

Reimplemented from DtSimanPdu.

Reimplemented in DtActionResponsePdu, DtActionRequestPdu, DtActionRequestRPdu, DtSetDataPdu, DtDataRPdu, DtSetDataRPdu, DtActionResponseRPdu, DtDataPdu, DtEventReportPdu, and DtEventReptRPdu.

virtual void DtPduWithData::setDatumParam ( DtDatumRecordType  fixedOrVar,
int  index,
DtDatumParam  param,
DtDatumRetCode retcode = NULL 
) [virtual]

Set the datum ID in the index'th fixed or variable datum record to param, depending on whether fixedOrVar is DtFIXED or DtVAR.

Supplied retcode pointer is filled with DtDATUM_VALID if successful, or DtDATUM_ BAD_INDEX if the index is not valid.

virtual void DtPduWithData::setDatumValByteArray ( DtDatumRecordType  fixedOrVar,
int  index,
const char *  val,
DtDatumRetCode retcode = NULL 
) [virtual]
virtual void DtPduWithData::setDatumValByteArray ( DtDatumParam  param,
const char *  val,
DtDatumRetCode retcode = NULL 
) [virtual]
virtual void DtPduWithData::setDatumValFloat32 ( DtDatumRecordType  fixedOrVar,
int  index,
DtFloat32  val,
DtDatumRetCode retcode = NULL 
) [virtual]
virtual void DtPduWithData::setDatumValFloat32 ( DtDatumParam  param,
DtFloat32  val,
DtDatumRetCode retcode = NULL 
) [virtual]
virtual void DtPduWithData::setDatumValFloat64 ( DtDatumRecordType  fixedOrVar,
int  index,
DtFloat64  val,
DtDatumRetCode retcode = NULL 
) [virtual]

******* SETTING DATA VALUES BY INDEX ********* Use one of the following to set the data value in a fixed or variable datum record, depending on the data type of your data.

fixedOrVar (either DtFIXED or DtVAR) and index (between 1 and numRecords) indicate which record you are modifying. setDatumValBytesArray is used when the data type is a character string, or something other than a long, unsigned long, float or double. It takes a pointer to a character string containing the exact bytes that should be used in the PDU's network representation. The supplied retcode pointer will be filled with DtDATUM_VALID if the value was successfully set, DtDATUM_BAD_INDEX if the index is invalid, and DtDATUM_BAD_LENGTH if the size of the data indicated that it could not be set from as the chosen data type.

virtual void DtPduWithData::setDatumValFloat64 ( DtDatumParam  param,
DtFloat64  val,
DtDatumRetCode retcode = NULL 
) [virtual]

****** SETTING DATA VALUES BY PARAM ID ********* Use one of the following to set the data value in a fixed or variable datum record, depending on the data type of your data.

The particular record modified will be the first one containing param as its parameter ID. setDatumValBytesArray is used when the data type is a character string, or something other than a long, unsigned long, float or double. It takes a pointer to a character string containing the exact bytes that should be used in the PDU's network representation. The supplied retcode pointer will be filled with DtDATUM_VALID if the value was successfully set, DtDATUM_BAD_ID if param is invalid, and DtDATUM_BAD_LENGTH if the size of the data indicated that it could not be set from the chosen data type.

virtual void DtPduWithData::setDatumValInt32 ( DtDatumRecordType  fixedOrVar,
int  index,
long  val,
DtDatumRetCode retcode = NULL 
) [virtual]
virtual void DtPduWithData::setDatumValInt32 ( DtDatumParam  param,
long  val,
DtDatumRetCode retcode = NULL 
) [virtual]
virtual void DtPduWithData::setDatumValUnsigned32 ( DtDatumRecordType  fixedOrVar,
int  index,
unsigned long  val,
DtDatumRetCode retcode = NULL 
) [virtual]
virtual void DtPduWithData::setDatumValUnsigned32 ( DtDatumParam  param,
unsigned long  val,
DtDatumRetCode retcode = NULL 
) [virtual]
virtual void DtPduWithData::setNumFixedFields ( int  newNum) [virtual]

Sets the number of fixed or variable fields to newNum.

Previously existing fixed fields with indices greater than newNum are deleted. If newNum exceeds the number of existing fields, trailing new fields are created with zeros as datum params, sizes (for var only) and values.

virtual void DtPduWithData::setNumVarFields ( int  newNum) [virtual]
virtual void DtPduWithData::setVarDataBytes ( int  index,
int  length,
DtDatumRetCode retcode = NULL 
) [virtual]

Allocates length bytes for the index'th variable datum record.

Should be called before using one of the setDatumVal functions to actually set the data. Supplied retcode pointer is set to DtDATUM_VALID if successful, or DtDATUM_BAD_INDEX if the index is not valid.

virtual DtDatumParam DtPduWithData::varDatumId ( int  index) const [virtual]

Returns the datum param found in the index'th variable datum record.

Index is between 1 and numRecords. Returns DtDatumParam(0) if index is out of bounds.


Friends And Related Function Documentation

friend class DtPduDatumRecordSet [friend]

Member Data Documentation


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

Document ID: Generated on Mon May 14 08:06:18 EDT 2012 from SVN revision 114750
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)