![]() |
VR-Link API Documentation for DIS
|
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:Public Types | |
| enum | { PduStaticSize = 40 } |
Public Member Functions | |
| DtPduWithData () | |
| Constructor. | |
| virtual | ~DtPduWithData () |
| Destructor. | |
| DtPduWithData (const DtPduWithData &orig) | |
| DtPduWithData & | operator= (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 DtDatumRecordSet * | datumRecSet () |
| Returns our datum record set helper object. | |
| virtual const DtDatumRecordSet * | datumRecSet () const |
| Const version of above. | |
| virtual DtNetDataPduTail * | dataSection () const =0 |
| Returns a pointer to the data section of the PDU - the part that starts with the numberOfFixedFields field. | |
| virtual DtNetFixDatum * | nthFixedDataRecord (int index) const |
| Return a pointer to the index'th fixed data record in the network representation. | |
| virtual DtNetVarDatum * | nthVarDataRecord (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 | |
| DtDatumRecordSet * | myRecSet |
Friends | |
| class | DtPduDatumRecordSet |
DtPduWithData provides the base class for all of the simulation management PDU's that have fixed/variable data.
Constructor.
| virtual DtPduWithData::~DtPduWithData | ( | ) | [virtual] |
Destructor.
| DtPduWithData::DtPduWithData | ( | const DtPduWithData & | orig | ) |
| 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.
friend class DtPduDatumRecordSet [friend] |
DtDatumRecordSet* DtPduWithData::myRecSet [protected] |