stats: stick the distribution's fancy parameter into the parameters structure.
authorNathan Binkert <nate@binkert.org>
Fri, 6 Mar 2009 03:09:53 +0000 (19:09 -0800)
committerNathan Binkert <nate@binkert.org>
Fri, 6 Mar 2009 03:09:53 +0000 (19:09 -0800)
src/base/statistics.hh
src/base/stats/mysql.cc
src/base/stats/text.cc

index 9e641548c40ecdb034174946c870fe156838dbbb..6f2da2f3ed6f7c1d15b0637052ccd45d3b9ea38a 100644 (file)
@@ -257,8 +257,6 @@ struct DistData
     Counter sum;
     Counter squares;
     Counter samples;
-
-    bool fancy;
 };
 
 class DistInfoBase : public Info
@@ -1419,8 +1417,9 @@ class DistStor
         Counter bucket_size;
         /** The number of buckets. Equal to (max-min)/bucket_size. */
         size_type buckets;
+
+        enum { fancy = false };
     };
-    enum { fancy = false };
 
   private:
     /** The minimum value to track. */
@@ -1556,10 +1555,10 @@ class DistStor
 class FancyStor
 {
   public:
-    struct Params : public StorageParams {};
-
-  public:
-    enum { fancy = true };
+    struct Params : public StorageParams
+    {
+        enum { fancy = true };
+    };
 
   private:
     /** The current sum. */
@@ -1632,10 +1631,10 @@ class FancyStor
 class AvgFancy
 {
   public:
-    struct Params : public StorageParams {};
-
-  public:
-    enum { fancy = true };
+    struct Params : public StorageParams
+    {
+        enum { fancy = true };
+    };
 
   private:
     /** Current total. */
@@ -1765,7 +1764,6 @@ class DistBase : public InfoAccess
     void
     update(DistInfoBase *base)
     {
-        base->data.fancy = Storage::fancy;
         data()->update(info(), base->data);
     }
 
@@ -1881,7 +1879,6 @@ class VectorDistBase : public InfoAccess
         size_type size = this->size();
         base->data.resize(size);
         for (off_type i = 0; i < size; ++i) {
-            base->data[i].fancy = Storage::fancy;
             data(i)->update(info(), base->data[i]);
         }
     }
index 72f31240d80b620594a308a52e16a2bc92a46caf..58c620ed1fbeb7200b9dbbc07b9fa80de9abb24d 100644 (file)
@@ -583,8 +583,8 @@ MySql::configure(const DistInfoBase &info)
     if (!configure(info, "DIST"))
         return;
 
-    if (!info.data.fancy) {
-        const Params *params = safe_cast<const Params *>(info.storageParams);
+    const Params *params = safe_cast<const Params *>(info.storageParams);
+    if (!params->fancy) {
         stat.size = params->buckets;
         stat.min = params->min;
         stat.max = params->max;
@@ -599,8 +599,8 @@ MySql::configure(const VectorDistInfoBase &info)
     if (!configure(info, "VECTORDIST"))
         return;
 
-    if (!info.data[0].fancy) {
-        const Params *params = safe_cast<const Params *>(info.storageParams);
+    const Params *params = safe_cast<const Params *>(info.storageParams);
+    if (!params->fancy) {
         stat.size = params->buckets;
         stat.min = params->min;
         stat.max = params->max;
index 3a00620c7855bd419f165252ce5169776fcb468a..6c2078bd0ce27fabb6ec72a1cd91b66f189b301a 100644 (file)
@@ -673,12 +673,11 @@ Text::visit(const DistInfoBase &info)
     print.squares = data.squares;
     print.samples = data.samples;
 
-    print.fancy = data.fancy;
-
-    if (!data.fancy) {
-        const DistStor::Params *params =
-            safe_cast<const DistStor::Params *>(info.storageParams);
+    const DistStor::Params *params =
+        safe_cast<const DistStor::Params *>(info.storageParams);
 
+    print.fancy = params->fancy;
+    if (!params->fancy) {
         print.min = params->min;
         print.max = params->max;
         print.bucket_size = params->bucket_size;
@@ -716,11 +715,11 @@ Text::visit(const VectorDistInfoBase &info)
         print.squares = info.data[i].squares;
         print.samples = info.data[i].samples;
 
-        print.fancy = info.data[i].fancy;
-        if (!print.fancy) {
-            const DistStor::Params *params =
-                safe_cast<const DistStor::Params *>(info.storageParams);
+        const DistStor::Params *params =
+            safe_cast<const DistStor::Params *>(info.storageParams);
 
+        print.fancy = params->fancy;
+        if (!params->fancy) {
             print.min = params->min;
             print.max = params->max;
             print.bucket_size = params->bucket_size;