summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerthrottle.h
diff options
context:
space:
mode:
authorJames Cook <james@lindenlab.com>2007-01-02 08:33:20 +0000
committerJames Cook <james@lindenlab.com>2007-01-02 08:33:20 +0000
commit420b91db29485df39fd6e724e782c449158811cb (patch)
treeb471a94563af914d3ed3edd3e856d21cb1b69945 /indra/newview/llviewerthrottle.h
Print done when done.
Diffstat (limited to 'indra/newview/llviewerthrottle.h')
-rw-r--r--indra/newview/llviewerthrottle.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/indra/newview/llviewerthrottle.h b/indra/newview/llviewerthrottle.h
new file mode 100644
index 0000000000..ec4323ba81
--- /dev/null
+++ b/indra/newview/llviewerthrottle.h
@@ -0,0 +1,72 @@
+/**
+ * @file llviewerthrottle.h
+ * @brief LLViewerThrottle class header file
+ *
+ * Copyright (c) 2002-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+#ifndef LL_LLVIEWERTHROTTLE_H
+#define LL_LLVIEWERTHROTTLE_H
+
+#include <vector>
+
+#include "llstring.h"
+#include "llframetimer.h"
+#include "llthrottle.h"
+
+class LLViewerThrottleGroup
+{
+ LLViewerThrottleGroup();
+ LLViewerThrottleGroup(const F32 settings[TC_EOF]);
+
+ LLViewerThrottleGroup operator*(const F32 frac) const;
+ LLViewerThrottleGroup operator+(const LLViewerThrottleGroup &b) const;
+ LLViewerThrottleGroup operator-(const LLViewerThrottleGroup &b) const;
+
+ F32 getTotal() { return mThrottleTotal; }
+ void sendToSim() const;
+
+ void dump();
+
+ friend class LLViewerThrottle;
+protected:
+ F32 mThrottles[TC_EOF];
+ F32 mThrottleTotal;
+};
+
+class LLViewerThrottle
+{
+public:
+ LLViewerThrottle();
+
+ void setMaxBandwidth(F32 kbits_per_second, BOOL from_event = FALSE);
+
+ void load();
+ void save() const;
+ void sendToSim() const;
+
+ F32 getMaxBandwidth()const { return mMaxBandwidth; }
+ F32 getCurrentBandwidth() const { return mCurrentBandwidth; }
+
+ void updateDynamicThrottle();
+ void resetDynamicThrottle();
+
+ LLViewerThrottleGroup getThrottleGroup(const F32 bandwidth_kbps);
+
+ static const char *sNames[TC_EOF];
+protected:
+ F32 mMaxBandwidth;
+ F32 mCurrentBandwidth;
+
+ LLViewerThrottleGroup mCurrent;
+
+ std::vector<LLViewerThrottleGroup> mPresets;
+
+ LLFrameTimer mUpdateTimer;
+ F32 mThrottleFrac;
+};
+
+extern LLViewerThrottle gViewerThrottle;
+
+#endif // LL_LLVIEWERTHROTTLE_H