Add statistics() method to split-list
authorkhizmax <libcds.dev@gmail.com>
Thu, 30 Oct 2014 21:37:55 +0000 (00:37 +0300)
committerkhizmax <libcds.dev@gmail.com>
Thu, 30 Oct 2014 21:37:55 +0000 (00:37 +0300)
cds/container/split_list_map.h
cds/container/split_list_map_nogc.h
cds/container/split_list_map_rcu.h
cds/container/split_list_set.h
cds/container/split_list_set_nogc.h
cds/container/split_list_set_rcu.h
cds/intrusive/split_list.h
cds/intrusive/split_list_nogc.h
cds/intrusive/split_list_rcu.h

index 0128b92d9aee6950f2c18990d297b9d103ef586d..cf560e5d4f2a274ae0bf5cd57619139240495557 100644 (file)
@@ -135,6 +135,7 @@ namespace cds { namespace container {
 
         typedef typename base_class::hash           hash;         ///< Hash functor for \ref key_type
         typedef typename base_class::item_counter   item_counter; ///< Item counter type
+        typedef typename base_class::stat           stat;         ///< Internal statistics
 
     protected:
         //@cond
@@ -588,6 +589,12 @@ namespace cds { namespace container {
         {
             return base_class::size();
         }
+
+        /// Returns internal statistics
+        stat const& statistics() const
+        {
+            return base_class::statistics();
+        }
     };
 
 
index ad7b785d9555b8eab3aeb7171a4d264e51927894..6104f191a035fa63660e530bafe9e264a1b3a6f3 100644 (file)
@@ -56,6 +56,7 @@ namespace cds { namespace container {
 
         typedef typename base_class::hash           hash;         ///< Hash functor for \ref key_type
         typedef typename base_class::item_counter   item_counter; ///< Item counter type
+        typedef typename base_class::stat           stat;         ///< Internal statistics
 
     protected:
         //@cond
@@ -279,6 +280,12 @@ namespace cds { namespace container {
         {
             return base_class::size();
         }
+
+        /// Returns internal statistics
+        stat const& statistics() const
+        {
+            return base_class::statistics();
+        }
     };
 }}  // namespace cds::container
 
index c9d2d7e2d2b0f5bf3d2bbdd9349b17a3e569d407..c18aa9dc12130c4066abd403f2696b5167546a3b 100644 (file)
@@ -172,6 +172,7 @@ namespace cds { namespace container {
 
         typedef typename base_class::hash           hash;         ///< Hash functor for \ref key_type
         typedef typename base_class::item_counter   item_counter; ///< Item counter type
+        typedef typename base_class::stat           stat;         ///< Internal statistics
 
         typedef typename base_class::rcu_lock       rcu_lock;   ///< RCU scoped lock
         typedef typename base_class::exempt_ptr     exempt_ptr; ///< pointer to extracted node
@@ -647,6 +648,12 @@ namespace cds { namespace container {
         {
             return base_class::size();
         }
+
+        /// Returns internal statistics
+        stat const& statistics() const
+        {
+            return base_class::statistics();
+        }
     };
 
 }} // namespace cds::container
index e272e8e3e7a7b28e12b246041468fafb1de3734d..5d91110998d85071832b24662d5a659a3374662c 100644 (file)
@@ -150,6 +150,7 @@ namespace cds { namespace container {
         /// Hash functor for \p %value_type and all its derivatives that you use
         typedef typename base_class::hash         hash;
         typedef typename base_class::item_counter item_counter; ///< Item counter type
+        typedef typename base_class::stat         stat; ///< Internal statistics
 
     protected:
         //@cond
@@ -723,6 +724,12 @@ namespace cds { namespace container {
             return base_class::size();
         }
 
+        /// Returns internal statistics
+        stat const& statistics() const
+        {
+            return base_class::statistics();
+        }
+
     protected:
         //@cond
         using base_class::extract_;
index 879eb59ac186aa6dd9c31bc5599e464ec8095e66..49e07c06eba2f4d6290bca0a7cfb44c8402ae43e 100644 (file)
@@ -56,6 +56,7 @@ namespace cds { namespace container {
         /// Hash functor for \ref value_type and all its derivatives that you use
         typedef typename base_class::hash           hash;
         typedef typename base_class::item_counter   item_counter; ///< Item counter type
+        typedef typename base_class::stat           stat; ///< Internal statistics
 
     protected:
         //@cond
@@ -334,6 +335,12 @@ namespace cds { namespace container {
         {
             return base_class::size();
         }
+
+        /// Returns internal statistics
+        stat const& statistics() const
+        {
+            return base_class::statistics();
+        }
     };
 
 }}  // namespace cds::container
index 51d645833d34c0b92f4c85b318eca39788205160..14fe8c38767736159f1122a26d3a44d478c34ffa 100644 (file)
@@ -186,6 +186,7 @@ namespace cds { namespace container {
         /// Hash functor for \ref value_type and all its derivatives that you use
         typedef typename base_class::hash           hash;
         typedef typename base_class::item_counter   item_counter; ///< Item counter type
+        typedef typename base_class::stat           stat; ///< Internal statistics
 
         typedef typename base_class::rcu_lock      rcu_lock   ; ///< RCU scoped lock
         /// Group of \p extract_xxx functions require external locking if underlying ordered list requires that
@@ -780,6 +781,12 @@ namespace cds { namespace container {
         {
             return base_class::size();
         }
+
+        /// Returns internal statistics
+        stat const& statistics() const
+        {
+            return base_class::statistics();
+        }
     };
 }}  // namespace cds::container
 
index 87cabecca0288d55f2b2d53319867b3401a57241..687401de386c73386491c62f7bfe8f4064113393 100644 (file)
@@ -1010,6 +1010,12 @@ namespace cds { namespace intrusive {
             }
         }
 
+        /// Returns internal statistics
+        stat const& statistics() const
+        {
+            return m_Stat;
+        }
+
     protected:
         //@cond
         template <bool IsConst>
index 28e7124dba2e70c57dd41888abfa548eae9e09a4..7e7b4fa5bacc4023e04c663db6488d4e5eea022d 100644 (file)
@@ -421,6 +421,12 @@ namespace cds { namespace intrusive {
             return m_ItemCounter;
         }
 
+        /// Returns internal statistics
+        stat const& statistics() const
+        {
+            return m_Stat;
+        }
+
     protected:
         //@cond
         template <bool IsConst>
index ecb04bc32f97710dd52f59485104be9e96826af6..d21ba0f4d73eb7619633f6aacc700bba8cd79d56 100644 (file)
@@ -906,6 +906,12 @@ namespace cds { namespace intrusive {
             }
         }
 
+        /// Returns internal statistics
+        stat const& statistics() const
+        {
+            return m_Stat;
+        }
+
     protected:
         //@cond
         template <bool IsConst>