MAK RTIspy API Documentation for HLA 1.3
averagedLatencyTestReport.h
Go to the documentation of this file.
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

Document ID: Generated on Thu Jun 14 14:15:04 EDT 2012 from SVN revision 116116
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)