![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2008 VT MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: averagedLatencyTestReport.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00013 00014 #ifndef DtAveragedLatencyTestReport_H_ 00015 #define DtAveragedLatencyTestReport_H_ 00016 00017 #include "rtiMsConfig.h" 00018 #include <vlutil/vlString.h> 00019 #include <queue> 00020 #include "RIDparams.h" 00021 00022 typedef int encodedTimeType; 00023 00024 00025 enum DtAssistantReportTimeStampType 00026 { 00027 DtAverageBestEffortInitiatorSendInteractionTime = 0, 00028 DtAverageBestEffortRecipientQueueMsgTime, 00029 DtAverageBestEffortRecipientReceiveInteractionTime, 00030 DtAverageBestEffortRecipientEncodeDecodeTime, 00031 DtAverageBestEffortRecipientSendInteractionTime, 00032 DtAverageBestEffortInitiatorQueueMsgTime, 00033 DtAverageBestEffortInitiatorReceiveInteractionTime, 00034 DtAverageReliableInitiatorSendInteractionTime, 00035 DtAverageReliableRecipientQueueMsgTime, 00036 DtAverageReliableRecipientReceiveInteractionTime, 00037 DtAverageReliableRecipientEncodeDecodeTime, 00038 DtAverageReliableRecipientSendInteractionTime, 00039 DtAverageReliableInitiatorQueueMsgTime, 00040 DtAverageReliableInitiatorReceiveInteractionTime, 00041 00042 DtPaddingType 00043 }; 00047 00048 class DT_DLL_RTIUTIL DtAveragedLatencyTestReport 00049 { 00050 public: 00051 00052 DtAveragedLatencyTestReport(); 00053 00054 ~DtAveragedLatencyTestReport(); 00055 00057 virtual void decodeFromMsg( const unsigned char* data, unsigned int size ); 00058 00060 virtual void encodeToMsg( unsigned char* destPtr ) const; 00061 00063 virtual unsigned int sizeRequiredToDecode() const; 00064 00066 void getProcessingModel( DtRIDParameters::DtAsynchronousIOModeEnum& initiator, 00067 DtRIDParameters::DtAsynchronousIOModeEnum& recip ) const; 00068 00070 virtual void setInitiatorProcessingModel( DtRIDParameters::DtAsynchronousIOModeEnum initModel ); 00071 00073 virtual void setRecipientProcessingModel( DtRIDParameters::DtAsynchronousIOModeEnum recipModel ); 00074 00076 virtual unsigned int federationHandle() const; 00077 virtual void setFederationHandle( unsigned int num ); 00078 00080 virtual unsigned int initiatorFedHandle() const; 00081 virtual void setInitiatorFedHandle( unsigned int num ); 00082 00084 virtual unsigned int recipientFedHandle() const; 00085 virtual void setRecipientFedHandle( unsigned int num ); 00086 00088 virtual void initiatorFedName( MAKRti::DtString& name ) const; 00089 virtual void setInitiatorFedName( const MAKRti::DtString& name ); 00090 00092 virtual void recipientFedName( MAKRti::DtString& name ) const; 00093 virtual void setRecipientFedName( const MAKRti::DtString& name ); 00094 00096 virtual unsigned int numCompletedBestEffortInteractions() const; 00097 virtual void setNumCompletedBestEffortInteractions( unsigned int num ); 00098 00100 virtual unsigned int numCompletedReliableInteractions() const; 00101 virtual void setNumCompletedReliableInteractions( unsigned int num ); 00102 00104 virtual unsigned int numDroppedBestEffortInteractions() const; 00105 virtual void setNumDroppedBestEffortInteractions( unsigned int num ); 00106 00108 virtual unsigned int numDroppedReliableInteractions() const; 00109 virtual void setNumDroppedReliableInteractions( unsigned int num ); 00110 00112 virtual unsigned int averageInitiatorTickTimeUsecs() const; 00113 virtual void setAverageInitiatorTickTimeUsecs(unsigned int time ); 00114 00116 virtual unsigned int averageRecipientTickTimeUsecs() const; 00117 virtual void setAverageRecipientTickTimeUsecs(unsigned int time); 00118 00120 virtual unsigned int averageBestEffortRoundTripTime() const; 00121 virtual void setAverageBestEffortRoundTripTime( unsigned int num ); 00122 00124 virtual unsigned int averageReliableRoundTripTime() const; 00125 virtual void setAverageReliableRoundTripTime( unsigned int num ); 00126 00128 virtual void setAverageBestEffortInitiatorSendInteractionUSecs( encodedTimeType microSeconds ); 00129 virtual encodedTimeType averageBestEffortInitiatorSendInteractionUSecs() const; 00130 00132 virtual void setAverageReliableInitiatorSendInteractionUSecs( encodedTimeType microSeconds ); 00133 virtual encodedTimeType averageReliableInitiatorSendInteractionUSecs() const; 00134 00136 virtual void setAverageBestEffortRecipientMsgQueuedUsecs( encodedTimeType microSeconds ); 00137 virtual encodedTimeType averageBestEffortRecipientMsgQueuedUsecs() const; 00138 00140 virtual void setAverageReliableRecipientMsgQueuedUsecs( encodedTimeType microSeconds ); 00141 virtual encodedTimeType averageReliableRecipientMsgQueuedUsecs() const; 00142 00144 virtual void setAverageBestEffortRecipientReceiveInteractionUSecs( encodedTimeType microSeconds ); 00145 virtual encodedTimeType averageBestEffortRecipientReceiveInteractionUSecs() const; 00146 00148 virtual void setAverageReliableRecipientReceiveInteractionUSecs( encodedTimeType microSeconds ); 00149 virtual encodedTimeType averageReliableRecipientReceiveInteractionUSecs() const; 00150 00152 virtual void setAverageBestEffortRecipientEncodeDecodeInteractionUSecs( encodedTimeType microSeconds ); 00153 virtual encodedTimeType averageBestEffortRecipientEncodeDecodeInteractionUSecs() const; 00154 00156 virtual void setAverageReliableRecipientEncodeDecodeInteractionUSecs( encodedTimeType microSeconds ); 00157 virtual encodedTimeType averageReliableRecipientEncodeDecodeInteractionUSecs() const; 00158 00160 virtual void setAverageBestEffortRecipientSendInteractionUSecs( encodedTimeType microSeconds ); 00161 virtual encodedTimeType averageBestEffortRecipientSendInteractionUSecs() const; 00162 00164 virtual void setAverageReliableRecipientSendInteractionUSecs( encodedTimeType microSeconds ); 00165 virtual encodedTimeType averageReliableRecipientSendInteractionUSecs() const; 00166 00168 virtual void setAverageBestEffortInitiatorMsgQueuedUsecs( encodedTimeType microSeconds ); 00169 virtual encodedTimeType averageBestEffortInitiatorMsgQueuedUsecs() const; 00170 00172 virtual void setAverageReliableInitiatorMsgQueuedUsecs( encodedTimeType microSeconds ); 00173 virtual encodedTimeType averageReliableInitiatorMsgQueuedUsecs() const; 00174 00176 virtual void setAverageBestEffortInitiatorReceiveInteractionUSecs( encodedTimeType microSeconds ); 00177 virtual encodedTimeType averageBestEffortInitiatorReceiveInteractionUSecs() const; 00178 00180 virtual void setAverageReliableInitiatorReceiveInteractionUSecs( encodedTimeType microSeconds ); 00181 virtual encodedTimeType averageReliableInitiatorReceiveInteractionUSecs() const; 00182 00184 static bool requiresQueueMsgStamp( DtRIDParameters::DtAsynchronousIOModeEnum model ); 00185 00186 protected: 00187 00189 virtual void setSingleTimeByType( DtAssistantReportTimeStampType, 00190 encodedTimeType num ); 00191 00193 virtual encodedTimeType getSingleTimeByType( DtAssistantReportTimeStampType) const; 00194 00195 00196 00198 static void setSingleTimeToPtr( DtAssistantReportTimeStampType type, 00199 encodedTimeType time, 00200 unsigned char** dataPtrPtr ); 00201 00203 static void getSingleTimeFromPtr( DtAssistantReportTimeStampType& type, 00204 encodedTimeType& time, 00205 const unsigned char** dataPtrPtr ); 00206 00207 static void writeUintAndAdvancePtr( unsigned int num, 00208 unsigned char** dataPtrPtr ); 00209 00210 static void readUintAndAdvancePtr( unsigned int& num, 00211 unsigned char** dataPtrPtr ); 00212 00213 static void writeFloatAndAdvancePtr( const float& num, 00214 unsigned char** dataPtrPtr ); 00215 00216 static void readFloatAndAdvancePtr( float& num, 00217 unsigned char** dataPtrPtr ); 00218 00219 00222 static void writeSizeAndStringAndAdvancePtr( const MAKRti::DtString& name, 00223 unsigned char** dataPtrPtr ); 00224 00228 static void readSizeAndStringAndAdvancePtr( MAKRti::DtString& name, 00229 unsigned char** dataPtrPtr, 00230 unsigned int& encodedSize ); 00231 00233 static unsigned int determineSizeOfPaddedSting( const MAKRti::DtString& string ); 00234 00235 00236 00237 protected: 00238 00239 00242 00244 encodedTimeType myAverageBestEffortInitiatorSendInteractionTime; 00246 encodedTimeType myAverageBestEffortRecipientReceiveInteractionTime; 00248 encodedTimeType myAverageBestEffortRecipientEncodeDecodeTime; 00250 encodedTimeType myAverageBestEffortRecipientSendInteractionTime; 00252 encodedTimeType myAverageBestEffortInitiatorReceiveInteractionTime; 00253 00256 encodedTimeType myAverageBestEffortRecipientQueueMsgTime; 00258 encodedTimeType myAverageBestEffortInitiatorQueueMsgTime; 00259 00260 00262 encodedTimeType myAverageReliableInitiatorSendInteractionTime; 00264 encodedTimeType myAverageReliableRecipientReceiveInteractionTime; 00266 encodedTimeType myAverageReliableRecipientEncodeDecodeTime; 00268 encodedTimeType myAverageReliableRecipientSendInteractionTime; 00270 encodedTimeType myAverageReliableInitiatorReceiveInteractionTime; 00271 00274 encodedTimeType myAverageReliableRecipientQueueMsgTime; 00276 encodedTimeType myAverageReliableInitiatorQueueMsgTime; 00277 00279 DtRIDParameters::DtAsynchronousIOModeEnum myRecipModel; 00280 DtRIDParameters::DtAsynchronousIOModeEnum myInitModel; 00281 00283 // TODO: identify the forwarders? 00284 //std::queue<std::pair<unsigned int, encodedTimeType> > myForwarderTimes; 00285 00286 00288 MAKRti::DtString myInitiatorFederateName; 00290 MAKRti::DtString myRecipientFederateName; 00291 00293 unsigned int myFederation; 00295 unsigned int myInitiatorFed; 00297 unsigned int myRecipientFed; 00299 unsigned int myNumBestEffortInteractions; 00301 unsigned int myNumReliableInteractions; 00303 unsigned int myNumDroppedBestEffort; 00305 unsigned int myNumDroppedReliable; 00307 unsigned int myBestEffortRoundTripTime; 00309 unsigned int myReliableRoundTripTime; 00310 00312 unsigned int myAverageRecipientTickTime; 00314 unsigned int myAverageInitiatorTickTime; 00315 00316 00317 static const encodedTimeType theInvalidEncodedTime; 00318 00319 }; 00320 00321 00322 #endif