![]() |
MAK RTIspy API Documentation for HLA 1.3
|
DtRtiMetadata is added to some RTI messages depending on the configuration of the RTI. More...
Inheritance diagram for DtRtiMetadata:
Collaboration diagram for DtRtiMetadata:Public Member Functions | |
| DtRtiMetadata (caddr_t msg, DtMetadataType type) | |
| Constructor. | |
| DtRtiMetadata (DtRtiMsg *msg, DtMetadataType type) | |
| virtual | ~DtRtiMetadata () |
| Destructor. | |
| virtual bool | locate (void **mdVal, unsigned int &size) const |
| Traverse metadata headers of attached message to find this instance's metadata type. | |
| virtual bool | nullify () |
| Find specified type and change type field in header to DtMetadataTypeNull but don't remove from message buffer. | |
| virtual unsigned int | remove () |
| Find specified type and remove from buffer, relocating metadata that remains and adjusting reported size of buffer. | |
| virtual unsigned int | purge () |
| Traverse metadata headers to find all nullified blocks and remove them from buffer, relocating metadata that remains and adjusting reported size of buffer. | |
| virtual bool | isCopyEnabled () |
| Set/Get the 'copy' bit in the specified metadata header. | |
| virtual void | setCopyEnable (bool copyEnable) |
| virtual bool | setLengthAsValue (unsigned int value) |
| Set an integer value to be transmitted without using an actual payload. | |
| virtual bool | getLengthAsValue (unsigned int &value) const |
| Get an integer payload value from the payload length. | |
Static Public Member Functions | |
| static unsigned int | metadataMaxSize () |
| Report maximum size of metadata buffer. | |
Protected Types | |
| typedef std::list < DtMetadataNetHeader * > | DtMetadataHeaderList |
Protected Member Functions | |
| virtual DtMetadataNetHeader * | getFirstHeader () const |
| virtual DtMetadataNetHeader * | getHeaderByType () const |
| virtual DtU16 | compactMetadata (char *dst, DtMetadataHeaderList &retentionPool, bool newFinal) |
Static Protected Member Functions | |
| static bool | locate (char const *msg, DtMetadataType type, void **mdVal, unsigned int &size) |
| Traverse metadata headers of the given message to find the given metadata type. | |
| static bool | typeIsPresent (char const *msg, DtMetadataType type) |
| Determines whether metadata type is present in msg. | |
| static DtMetadataNetHeader * | getFirstHeader (char const *msg) |
| static DtMetadataNetHeader * | getNextHeader (DtMetadataNetHeader *hdr) |
| static DtMetadataNetHeader * | getHeaderByType (char const *msg, DtMetadataType type) |
| static void | transmogrifyHeader (DtMetadataNetHeader &src, DtMetadataNetHeader &dest) |
| Transform from network to host format. | |
| static void | reverseTransmogrifyHeader (DtMetadataNetHeader &src, DtMetadataNetHeader &dest) |
| Transform from host format to network format. | |
| static unsigned int | metadataSize (DtMetadataNetHeader &hdr) |
| static unsigned int | metadataPayloadSize (DtMetadataNetHeader &hdr) |
Protected Attributes | |
| DtRtiMsg * | myMsg |
| caddr_t | myMsgAddr |
| unsigned int | myMsgLen |
| char * | myStartAddr |
| unsigned int | mySize |
| address returned by DtRtiMsg::addMetadata() | |
| bool | myCopyEnabled |
| const DtMetadataType | myMetaDataType |
Static Protected Attributes | |
| static unsigned int | theMaxMetadataBufferSize = 2048 |
Private Member Functions | |
| DtRtiMetadata (const DtRtiMetadata &) | |
| Copy CTOR Not Implemented -- Copy Not Allowed! | |
| DtRtiMetadata & | operator= (const DtRtiMetadata &) |
| Assignment Operator Not Implemented -- Assignment Not Allowed! | |
DtRtiMetadata is added to some RTI messages depending on the configuration of the RTI.
typedef std::list< DtMetadataNetHeader* > DtRtiMetadata::DtMetadataHeaderList [protected] |
| DtRtiMetadata::DtRtiMetadata | ( | caddr_t | msg, |
| DtMetadataType | type | ||
| ) |
| DtRtiMetadata::DtRtiMetadata | ( | DtRtiMsg * | msg, |
| DtMetadataType | type | ||
| ) |
| DtRtiMetadata::~DtRtiMetadata | ( | ) | [virtual] |
| DtRtiMetadata::DtRtiMetadata | ( | const DtRtiMetadata & | ) | [private] |
Copy CTOR Not Implemented -- Copy Not Allowed!
| DtU16 DtRtiMetadata::compactMetadata | ( | char * | dst, |
| DtMetadataHeaderList & | retentionPool, | ||
| bool | newFinal | ||
| ) | [protected, virtual] |
References DtMetadataHeader_s::DtMetadataHeaderLenOrVal_u::DtMetadataHeaderPayloadLen_s::alignPad, DtMetadataHeader_s::ctl, DtMetadataHeader_s::DtMetadataHeaderCtl_u::field, DtMetadataHeader_s::DtMetadataHeaderCtl_u::DtMetadataHeaderCtl_s::hasPayload, DtMetadataHeader_s::DtMetadataHeaderLenOrVal_u::len, DtMetadataHeader_s::lenOrVal, metadataPayloadSize(), DtMetadataHeader_s::DtMetadataHeaderCtl_u::DtMetadataHeaderCtl_s::more, myMsgAddr, myMsgLen, DtMetadataHeader_s::DtMetadataHeaderLenOrVal_u::DtMetadataHeaderPayloadLen_s::pad, DtMetadataHeader_s::DtMetadataHeaderLenOrVal_u::DtMetadataHeaderPayloadLen_s::payloadAlignment, DtMetadataHeader_s::DtMetadataHeaderLenOrVal_u::DtMetadataHeaderPayloadLen_s::payloadLen, reverseTransmogrifyHeader(), and transmogrifyHeader().
| DtMetadataNetHeader * DtRtiMetadata::getFirstHeader | ( | ) | const [protected, virtual] |
References myMsgAddr.
Referenced by getHeaderByType(), purge(), and remove().
| DtMetadataNetHeader * DtRtiMetadata::getFirstHeader | ( | char const * | msg | ) | [static, protected] |
References DtNetMsgHeader::metadataInMessage(), and DtNetMsgHeader::totalSize.
| DtMetadataNetHeader * DtRtiMetadata::getHeaderByType | ( | ) | const [protected, virtual] |
References myMetaDataType, and myMsgAddr.
Referenced by isCopyEnabled(), locate(), nullify(), DtRtiMtdNull::set(), DtRtiMtdMcastAddr::set(), DtRtiMtdTimeStamp::set(), DtRtiMtdTestId::set(), DtRtiMtdForwarderGroupId::set(), DtRtiMtdDestinationList::set(), DtRtiMtdFederateHostInformation::set(), setCopyEnable(), setLengthAsValue(), and typeIsPresent().
| DtMetadataNetHeader * DtRtiMetadata::getHeaderByType | ( | char const * | msg, |
| DtMetadataType | type | ||
| ) | [static, protected] |
| bool DtRtiMetadata::getLengthAsValue | ( | unsigned int & | value | ) | const [virtual] |
Get an integer payload value from the payload length.
Return boolean: metadata was found and value retrieved?
References locate().
Referenced by DtRtiMtdTransportType::get().
| DtMetadataNetHeader * DtRtiMetadata::getNextHeader | ( | DtMetadataNetHeader * | hdr | ) | [static, protected] |
References metadataSize(), and transmogrifyHeader().
Referenced by getHeaderByType(), purge(), and remove().
| bool DtRtiMetadata::isCopyEnabled | ( | ) | [virtual] |
Set/Get the 'copy' bit in the specified metadata header.
References DtMetadataHeader_s::DtMetadataHeaderCtl_u::DtMetadataHeaderCtl_s::copy, DtMetadataHeader_s::ctl, DtMetadataHeader_s::DtMetadataHeaderCtl_u::field, getHeaderByType(), and transmogrifyHeader().
| bool DtRtiMetadata::locate | ( | void ** | mdVal, |
| unsigned int & | size | ||
| ) | const [virtual] |
Traverse metadata headers of attached message to find this instance's metadata type.
The address and size of the payload are returned in the supplied parameters. Returns boolean: type was found?
References myMetaDataType, and myMsgAddr.
Referenced by DtRtiMtdNull::get(), DtRtiMtdMcastAddr::get(), DtRtiMtdTimeStamp::get(), DtRtiMtdTestId::get(), DtRtiMtdDestinationList::get(), DtRtiMtdForwarderGroupId::get(), DtRtiMtdFederateHostInformation::get(), getLengthAsValue(), DtRtiMtdMcastAddr::set(), DtRtiMtdTimeStamp::set(), DtRtiMtdTestId::set(), DtRtiMtdForwarderGroupId::set(), DtRtiMtdDestinationList::set(), and DtRtiMtdFederateHostInformation::set().
| bool DtRtiMetadata::locate | ( | char const * | msg, |
| DtMetadataType | type, | ||
| void ** | mdVal, | ||
| unsigned int & | size | ||
| ) | [static, protected] |
Traverse metadata headers of the given message to find the given metadata type.
The address and size of the payload are returned in the supplied parameters.
References DtMetadataHeader_s::ctl, DtMetadataHeader_s::DtMetadataHeaderCtl_u::field, getHeaderByType(), DtMetadataHeader_s::DtMetadataHeaderCtl_u::DtMetadataHeaderCtl_s::hasPayload, DtMetadataHeader_s::DtMetadataHeaderLenOrVal_u::len, DtMetadataHeader_s::lenOrVal, DtMetadataHeader_s::DtMetadataHeaderLenOrVal_u::DtMetadataHeaderPayloadLen_s::pad, DtMetadataHeader_s::DtMetadataHeaderLenOrVal_u::DtMetadataHeaderPayloadLen_s::payloadLen, transmogrifyHeader(), and DtMetadataHeader_s::DtMetadataHeaderLenOrVal_u::val.
| unsigned int DtRtiMetadata::metadataMaxSize | ( | ) | [static] |
Report maximum size of metadata buffer.
References theMaxMetadataBufferSize.
Referenced by DtRtiMsg::initDtRtiMsg().
| unsigned int DtRtiMetadata::metadataPayloadSize | ( | DtMetadataNetHeader & | hdr | ) | [static, protected] |
References DtMetadataHeader_s::ctl, DtMetadataHeader_s::DtMetadataHeaderCtl_u::field, DtMetadataHeader_s::DtMetadataHeaderCtl_u::DtMetadataHeaderCtl_s::hasPayload, DtMetadataHeader_s::DtMetadataHeaderLenOrVal_u::len, DtMetadataHeader_s::lenOrVal, and DtMetadataHeader_s::DtMetadataHeaderLenOrVal_u::DtMetadataHeaderPayloadLen_s::payloadLen.
Referenced by compactMetadata().
| unsigned int DtRtiMetadata::metadataSize | ( | DtMetadataNetHeader & | hdr | ) | [static, protected] |
References DtMetadataHeader_s::DtMetadataHeaderLenOrVal_u::DtMetadataHeaderPayloadLen_s::alignPad, DtMetadataHeader_s::ctl, DtMetadataHeader_s::DtMetadataHeaderCtl_u::field, DtMetadataHeader_s::DtMetadataHeaderCtl_u::DtMetadataHeaderCtl_s::hasPayload, DtMetadataHeader_s::DtMetadataHeaderLenOrVal_u::len, DtMetadataHeader_s::lenOrVal, DtMetadataHeader_s::DtMetadataHeaderLenOrVal_u::DtMetadataHeaderPayloadLen_s::pad, and DtMetadataHeader_s::DtMetadataHeaderLenOrVal_u::DtMetadataHeaderPayloadLen_s::payloadLen.
Referenced by getNextHeader(), purge(), and remove().
| bool DtRtiMetadata::nullify | ( | ) | [virtual] |
Find specified type and change type field in header to DtMetadataTypeNull but don't remove from message buffer.
Returns true if specified type found, false otherwise.
References DtMetadataHeader_s::ctl, DtMetadataTypeNull, DtMetadataHeader_s::DtMetadataHeaderCtl_u::field, getHeaderByType(), myMsgAddr, reverseTransmogrifyHeader(), transmogrifyHeader(), and DtMetadataHeader_s::DtMetadataHeaderCtl_u::DtMetadataHeaderCtl_s::type.
| DtRtiMetadata& DtRtiMetadata::operator= | ( | const DtRtiMetadata & | ) | [private] |
Assignment Operator Not Implemented -- Assignment Not Allowed!
| unsigned int DtRtiMetadata::purge | ( | ) | [virtual] |
Traverse metadata headers to find all nullified blocks and remove them from buffer, relocating metadata that remains and adjusting reported size of buffer.
Returns number of metadata bytes purged.
References compactMetadata(), DtMetadataHeader_s::ctl, DtMetadataTypeNull, DtMetadataHeader_s::DtMetadataHeaderCtl_u::field, getFirstHeader(), getNextHeader(), metadataSize(), DtMetadataHeader_s::DtMetadataHeaderCtl_u::DtMetadataHeaderCtl_s::more, myMsgAddr, myMsgLen, transmogrifyHeader(), and DtMetadataHeader_s::DtMetadataHeaderCtl_u::DtMetadataHeaderCtl_s::type.
| unsigned int DtRtiMetadata::remove | ( | ) | [virtual] |
Find specified type and remove from buffer, relocating metadata that remains and adjusting reported size of buffer.
Returns number of metadata bytes removed, including changes in padding.
References compactMetadata(), DtMetadataHeader_s::ctl, DtMetadataHeader_s::DtMetadataHeaderCtl_u::field, getFirstHeader(), getNextHeader(), metadataSize(), DtMetadataHeader_s::DtMetadataHeaderCtl_u::DtMetadataHeaderCtl_s::more, myMetaDataType, myMsg, myMsgAddr, myMsgLen, DtRtiMsg::removeMetadata(), transmogrifyHeader(), and DtMetadataHeader_s::DtMetadataHeaderCtl_u::DtMetadataHeaderCtl_s::type.
| void DtRtiMetadata::reverseTransmogrifyHeader | ( | DtMetadataNetHeader & | src, |
| DtMetadataNetHeader & | dest | ||
| ) | [static, protected] |
Transform from host format to network format.
Contents of src parameter is in host format and result is assigned to contents of dest parameter
References DtMetadataHeader_s::DtMetadataHeaderCtl_u::allFields, DtMetadataHeader_s::ctl, DtMetadataHeader_s::lenOrVal, and DtMetadataHeader_s::DtMetadataHeaderLenOrVal_u::val.
Referenced by compactMetadata(), nullify(), DtRtiMtdNull::set(), DtRtiMtdMcastAddr::set(), DtRtiMtdTimeStamp::set(), DtRtiMtdTestId::set(), DtRtiMtdDestinationList::set(), DtRtiMtdForwarderGroupId::set(), DtRtiMtdFederateHostInformation::set(), setCopyEnable(), and setLengthAsValue().
| void DtRtiMetadata::setCopyEnable | ( | bool | copyEnable | ) | [virtual] |
| bool DtRtiMetadata::setLengthAsValue | ( | unsigned int | value | ) | [virtual] |
Set an integer value to be transmitted without using an actual payload.
The payload length/padding data area is used (DtU16 size). This metadata value can be modified if it already exists in the message; however, it can only be added if the metadata is attached to a message. A message can allocate the space for the metadata whereas a buffer cannot. Return boolean: value was set successfully? /warning Not to be used if metadata contains actual payload data.
References DtRtiMsg::addMetadata(), DtMetadataHeader_s::DtMetadataHeaderCtl_u::DtMetadataHeaderCtl_s::copy, DtMetadataHeader_s::ctl, DtMetadataAlign16Bit, DtMetadataHeader_s::DtMetadataHeaderCtl_u::field, getHeaderByType(), DtMetadataHeader_s::DtMetadataHeaderCtl_u::DtMetadataHeaderCtl_s::hasPayload, DtMetadataHeader_s::lenOrVal, DtMetadataHeader_s::DtMetadataHeaderCtl_u::DtMetadataHeaderCtl_s::more, myCopyEnabled, myMetaDataType, myMsg, myStartAddr, reverseTransmogrifyHeader(), transmogrifyHeader(), DtMetadataHeader_s::DtMetadataHeaderCtl_u::DtMetadataHeaderCtl_s::type, and DtMetadataHeader_s::DtMetadataHeaderLenOrVal_u::val.
Referenced by DtRtiMtdTransportType::set().
| void DtRtiMetadata::transmogrifyHeader | ( | DtMetadataNetHeader & | src, |
| DtMetadataNetHeader & | dest | ||
| ) | [static, protected] |
Transform from network to host format.
Contents of src parameter is in network format and result is assigned to contents of dest parameter
References DtMetadataHeader_s::DtMetadataHeaderCtl_u::allFields, DtMetadataHeader_s::ctl, DtMetadataHeader_s::lenOrVal, and DtMetadataHeader_s::DtMetadataHeaderLenOrVal_u::val.
Referenced by compactMetadata(), getHeaderByType(), getNextHeader(), isCopyEnabled(), locate(), nullify(), purge(), remove(), setCopyEnable(), and setLengthAsValue().
| bool DtRtiMetadata::typeIsPresent | ( | char const * | msg, |
| DtMetadataType | type | ||
| ) | [static, protected] |
Determines whether metadata type is present in msg.
References getHeaderByType().
bool DtRtiMetadata::myCopyEnabled [protected] |
const DtMetadataType DtRtiMetadata::myMetaDataType [protected] |
Referenced by getHeaderByType(), DtRtiMtdTimeStamp::getType(), locate(), remove(), DtRtiMtdNull::set(), DtRtiMtdMcastAddr::set(), DtRtiMtdTimeStamp::set(), DtRtiMtdTestId::set(), DtRtiMtdDestinationList::set(), DtRtiMtdForwarderGroupId::set(), DtRtiMtdFederateHostInformation::set(), and setLengthAsValue().
DtRtiMsg* DtRtiMetadata::myMsg [protected] |
caddr_t DtRtiMetadata::myMsgAddr [protected] |
Referenced by compactMetadata(), DtRtiMetadata(), getFirstHeader(), getHeaderByType(), locate(), nullify(), purge(), remove(), DtRtiMtdNull::set(), DtRtiMtdMcastAddr::set(), DtRtiMtdTimeStamp::set(), DtRtiMtdTestId::set(), DtRtiMtdForwarderGroupId::set(), DtRtiMtdDestinationList::set(), DtRtiMtdFederateHostInformation::set(), and ~DtRtiMetadata().
unsigned int DtRtiMetadata::myMsgLen [mutable, protected] |
unsigned int DtRtiMetadata::mySize [protected] |
address returned by DtRtiMsg::addMetadata()
char* DtRtiMetadata::myStartAddr [protected] |
unsigned int DtRtiMetadata::theMaxMetadataBufferSize = 2048 [static, protected] |
Referenced by metadataMaxSize().