VR-Forces 4.0.4 Class Documentation
include/vrfcore/frameRateMon.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 1999-2000 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: frameRateMon.h,v $ $Revision: 1.19 $ $State: Exp $
00007 *******************************************************************************/
00008 #ifndef frameRateMon_H_
00009 #define frameRateMon_H_
00010 
00013 
00019 
00020 #include <vlutil/vlString.h>
00021 #include <vl/hostStructs.h>
00022 #include <vector>
00023 #include "vrfutil/averager.h"
00024 
00025 class DtPeriodicTimer;
00026 class DtSimManager;
00027 class DtSimInterfaceMessage;
00028 class DtSimMessage;
00029 class DtTimer;
00030 
00031 #include "vrfcore/vrfcoreDefines.h"
00032 class DT_DLL_vrfcore DtFrameRateMonitor
00033 {
00034 public:
00035    typedef std::vector<DtSimulationAddress> DtFrameRateRequesters;
00036    typedef DtFrameRateRequesters::iterator DtFrameRateRequestersIter;
00037    typedef DtFrameRateRequesters::const_iterator DtFrameRateRequestersConstIter;
00038 
00042    DtFrameRateMonitor();
00043 
00045    DtFrameRateMonitor(DtSimManager* simManager);
00046 
00048    DtFrameRateMonitor(const DtFrameRateMonitor& orig);
00049 
00051    const DtFrameRateMonitor& operator=(const DtFrameRateMonitor& orig);
00052 
00054    virtual bool init();
00055 
00058    virtual void setSimManager(DtSimManager* simManager);
00059 
00061    virtual bool registerInterfaceCallbacks();
00062 
00063    virtual double meanFrameRate();
00064 
00065    virtual double medianFrameRate();
00066 
00067    virtual double standardDeviationFrameRate();
00068 
00069    virtual double minimumFrameRate();
00070 
00071    virtual double maximumFrameRate();
00072 
00073    virtual double simTimeToRealTimeRatio();
00074 
00079    virtual void addSample(double frameTime);
00080 
00084    virtual double lastSample() const;
00085 
00088    virtual void reset(bool sendReport = false);
00089 
00091    virtual void setNumberOfFramesToAverage(unsigned int numFramesToAverage);
00092    virtual unsigned int numberOfFramesToAverage();
00093 
00094    virtual void setReportMean(bool reportMean);
00095    virtual bool reportMean() const;
00096 
00097    virtual void setReportMedian(bool reportMedian);
00098    virtual bool reportMedian() const;
00099 
00100    virtual void setReportStandardDeviation(bool reportStandardDeviation);
00101    virtual bool reportStandardDeviation() const;
00102 
00103    virtual void setReportMinimum(bool reportMinimum);
00104    virtual bool reportMinimum() const;
00105 
00106    virtual void setReportMaximum(bool reportMaximum);
00107    virtual bool reportMaximum() const;
00108 
00109    virtual void setReportToConsole(bool reportToConsole);
00110    virtual bool reportToConsole() const;
00111 
00112    virtual void setReportSimTimeToRealTimeRatio(bool reportSimTimeToRealTimeRatio);
00113    virtual bool reportSimTimeToRealTimeRatio() const;
00114 
00116    virtual void processFrameRateRequestMessage(DtSimInterfaceMessage* message);
00117 
00119    virtual void generateReport();
00120 
00123    virtual void pause();
00124    virtual void resume();
00125 
00127    virtual bool isPaused() const;
00128 
00130    virtual ~DtFrameRateMonitor();
00131 
00132    static void frameRateRequestCallback(DtSimMessage* msg, void* usr);
00133    static void reportTimerCallback(DtTimer* timer);
00134 
00135 protected:
00136    virtual void removeTimer();
00137    virtual void setTimer(double period);
00138 
00139 protected:
00140 
00143    double myCurrentFrameRate;
00144 
00146    bool myReportMeanFlag;
00147    bool myReportMedianFlag;
00148    bool myReportStandardDeviationFlag;
00149    bool myReportMinimumFlag;
00150    bool myReportMaximumFlag;
00151    bool myReportToConsoleFlag;
00152    bool myReportSimTimeToRealTimeRatioFlag;
00153 
00154    DtAverager myAverager;
00155 
00156    DtSimManager* mySimManager;
00157    DtPeriodicTimer* myReportTimer;
00158    double   myCurrentResponsePeriod;
00159    DtTime myLastReportTimerCbSimTime;
00160    DtTime myLastReportTimerCbRealTime;
00161    DtTime mySimTimeRealTimeRatio;
00162 
00164    DtFrameRateRequesters myRequesters;
00165 
00166 private:
00168    bool     myIsPaused;
00169 };
00170 
00171 
00172 #endif

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)