llviewerthrottle.h

Go to the documentation of this file.
00001 
00032 #ifndef LL_LLVIEWERTHROTTLE_H
00033 #define LL_LLVIEWERTHROTTLE_H
00034 
00035 #include <vector>
00036 
00037 #include "llstring.h"
00038 #include "llframetimer.h"
00039 #include "llthrottle.h"
00040 
00041 class LLViewerThrottleGroup
00042 {
00043         LLViewerThrottleGroup();
00044         LLViewerThrottleGroup(const F32 settings[TC_EOF]);
00045 
00046         LLViewerThrottleGroup operator*(const F32 frac) const;
00047         LLViewerThrottleGroup operator+(const LLViewerThrottleGroup &b) const;
00048         LLViewerThrottleGroup operator-(const LLViewerThrottleGroup &b) const;
00049 
00050         F32 getTotal()                  { return mThrottleTotal; }
00051         void sendToSim() const;
00052 
00053         void dump();
00054 
00055         friend class LLViewerThrottle;
00056 protected:
00057         F32 mThrottles[TC_EOF];
00058         F32 mThrottleTotal;
00059 };
00060 
00061 class LLViewerThrottle
00062 {
00063 public:
00064         LLViewerThrottle();
00065 
00066         void setMaxBandwidth(F32 kbits_per_second, BOOL from_event = FALSE);
00067 
00068         void load();
00069         void save() const;
00070         void sendToSim() const;
00071 
00072         F32 getMaxBandwidth()const                      { return mMaxBandwidth; }
00073         F32 getCurrentBandwidth() const         { return mCurrentBandwidth; }
00074 
00075         void updateDynamicThrottle();
00076         void resetDynamicThrottle();
00077 
00078         LLViewerThrottleGroup getThrottleGroup(const F32 bandwidth_kbps);
00079 
00080         static const char* sNames[TC_EOF];              /* Flawfinder: ignore */
00081 protected:
00082         F32 mMaxBandwidth;
00083         F32 mCurrentBandwidth;
00084 
00085         LLViewerThrottleGroup mCurrent;
00086 
00087         std::vector<LLViewerThrottleGroup> mPresets;
00088         
00089         LLFrameTimer mUpdateTimer;
00090         F32 mThrottleFrac;
00091 };
00092 
00093 extern LLViewerThrottle gViewerThrottle;
00094 
00095 #endif // LL_LLVIEWERTHROTTLE_H

Generated on Thu Jul 1 06:09:34 2010 for Second Life Viewer by  doxygen 1.4.7