change queue-stress
[libcds.git] / test / include / cds_test / fc_hevy_value.h
index 71693f72a92b9e08378d8e625f1494d3cff0de13..b53e98a7f80cd1469bcf7edb4f9bce4a2ab531cd 100644 (file)
 #include <vector>
 
 namespace{
-       template<int DefaultSize = 10000>
-       struct HeavyValue {
-               static std::vector<int> pop_buff;
-               int value;
-               size_t buffer_size;
+    template<int DefaultSize = 10>
+    struct HeavyValue {
 
-               size_t nNo;
-               size_t nWriterNo;
+        int value;
+        size_t buffer_size;
 
-               explicit HeavyValue(int new_value = 0, size_t new_bufer_size = DefaultSize)
-               : value(new_value),
-                 buffer_size(new_bufer_size),
-                 nNo(0),
-                 nWriterNo(0)
+        size_t nNo;
+        size_t nWriterNo;
+        static std::vector<int> pop_buff;
 
-               {
-                       if( buffer_size != pop_buff.size() ){
-                               pop_buff.resize(buffer_size);
-                       }
-               };
-               HeavyValue(const HeavyValue &other)
-                       : value(other.value),
-                         buffer_size(other.buffer_size)
-               {
-                       working(other);
-               }
-               void operator=(const int& new_value)
-               {
-                       value = new_value;
-               }
-               bool operator==(const int new_value) const
-               {
-                       return value == new_value;
-               }
-               void working(const HeavyValue &other) {
-                       for (size_t i = 0; i < buffer_size; ++i)
-                               pop_buff[i] =  static_cast<int>(std::sqrt(other.pop_buff[i]));
-               }
-       };
+        explicit HeavyValue(int new_value = 0, size_t new_bufer_size = DefaultSize)
+        : value(new_value),
+          buffer_size(new_bufer_size),
+          nNo(0),
+          nWriterNo(0)
+        {
+            if( buffer_size != pop_buff.size() ){
+                pop_buff.resize(buffer_size);
+                for(size_t i = 0; i < buffer_size; ++i)
+                   pop_buff[i] = i;
+            }
+        };
+        HeavyValue(const HeavyValue &other)
+            : value(other.value),
+              buffer_size(other.buffer_size),
+              nNo(other.nNo),
+              nWriterNo(other.nWriterNo)
+        {
+            for(size_t i = 0; i < buffer_size; ++i)
+                pop_buff[i] =  static_cast<int>(std::sqrt(other.pop_buff[i]));
+        }
+        void operator=(const int& new_value)
+        {
+            value = new_value;
+        }
+        bool operator==(const int new_value) const
+        {
+            return value == new_value;
+        }
+        bool operator<=(const int new_value) const
+        {
+            return value <= new_value;
+        }
+        bool operator<(const int new_value) const
+        {
+            return value < new_value;
+        }
+        bool operator>(const int new_value) const
+        {
+            return value > new_value;
+        }
+        bool operator>=(const int new_value) const
+        {
+            return value >= new_value;
+        }
+    };
 
-       template<int DefaultSize>
-       std::vector<int> HeavyValue< DefaultSize >::pop_buff = {};
+    template<int DefaultSize>
+    std::vector<int> HeavyValue< DefaultSize >::pop_buff = {};
 }
 #endif /* SOURCE_DIRECTORY__TEST_INCLUDE_CDS_TEST_FC_HEVY_VALUE_H_ */