From 02df81f0d54a3b9471eb8ddec4b309540fce9ae3 Mon Sep 17 00:00:00 2001 From: Myun2 Date: Mon, 14 May 2012 20:41:37 +0900 Subject: [PATCH] =?utf8?q?ref=5Fcount.hpp:=202=E3=82=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- roast/include/roast/algorithm/ref_count.hpp | 31 +++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/roast/include/roast/algorithm/ref_count.hpp b/roast/include/roast/algorithm/ref_count.hpp index a0ec7c49..9edb5a81 100644 --- a/roast/include/roast/algorithm/ref_count.hpp +++ b/roast/include/roast/algorithm/ref_count.hpp @@ -14,6 +14,37 @@ namespace roast private: unsigned int m_count; protected: + virtual void on_first()=0; + virtual void on_last()=0; + public: + ref_count() : ref_count(0){} + + void up() + { + if ( m_count == 0 ) { + on_first(); + } + m_count++; + } + + void down() + { + m_count--; + if ( m_count == 0 ) { + on_last(); + } + } + + unsigned int get_count(){ return m_count; } + }; + + /////////////////////////////////////////////////////////// + + class ref_count2 + { + private: + unsigned int m_count; + protected: //virtual void on_first()=0; //virtual void on_last()=0; public: -- 2.11.0