summaryrefslogtreecommitdiff
path: root/src/SingletonHolder.h
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-04-25 21:46:31 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-04-25 21:46:31 +0900
commit90abec8a362d6224bfff76d12fc9365fac36ddaa (patch)
tree115a8248adda60f01004bdae167571c3f95d3806 /src/SingletonHolder.h
parentbbb978948d87790c6dfb78eaca1d47d45101443d (diff)
Move initialization code in aria2::main to struct Context
Diffstat (limited to 'src/SingletonHolder.h')
-rw-r--r--src/SingletonHolder.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/SingletonHolder.h b/src/SingletonHolder.h
index 7f8e2d69..dcfe9e33 100644
--- a/src/SingletonHolder.h
+++ b/src/SingletonHolder.h
@@ -35,30 +35,37 @@
#ifndef D_SINGLETON_HOLDER_H
#define D_SINGLETON_HOLDER_H
+#include "SharedHandle.h"
+
namespace aria2 {
template<typename T>
class SingletonHolder {
private:
- static T* instance_;
+ static SharedHandle<T> instance_;
SingletonHolder() {}
public:
~SingletonHolder() {}
- static T* instance()
+ static const SharedHandle<T>& instance()
{
return instance_;
}
- static void instance(T* instance)
+ static void instance(const SharedHandle<T>& instance)
{
instance_ = instance;
}
+
+ static void clear()
+ {
+ instance_.reset();
+ }
};
template<typename T>
-T* SingletonHolder<T>::instance_ = 0;
+SharedHandle<T> SingletonHolder<T>::instance_;
} // namespace aria2