18 #ifndef ZENI_SINGLETON_HXX
19 #define ZENI_SINGLETON_HXX
25 template <
typename TYPE>
30 template <
typename TYPE>
33 g_type = TYPE::create();
41 template <
typename TYPE>
49 template <
typename TYPE>
55 template <
typename TYPE>
57 pre_uninit.lend_Handler(handler);
60 template <
typename TYPE>
62 pre_uninit.give_Handler(handler);
65 template <
typename TYPE>
67 pre_uninit.fax_Handler(handler);
70 template <
typename TYPE>
72 pre_uninit.remove_Handler(handler);
75 template <
typename TYPE>
77 post_reinit.lend_Handler(handler);
80 template <
typename TYPE>
82 post_reinit.give_Handler(handler);
85 template <
typename TYPE>
87 post_reinit.fax_Handler(handler);
90 template <
typename TYPE>
92 post_reinit.remove_Handler(handler);
95 template <
typename TYPE>
100 template <
typename TYPE>
101 void Singleton<TYPE>::reinit() {
105 template <
typename TYPE>
106 void Singleton<TYPE>::Uninit::operator()() {
110 template <
typename TYPE>
111 typename Singleton<TYPE>::Uninit * Singleton<TYPE>::Uninit::duplicate()
const {
115 template <
typename TYPE>
116 void Singleton<TYPE>::Reinit::operator()() {
120 template <
typename TYPE>
121 typename Singleton<TYPE>::Reinit * Singleton<TYPE>::Reinit::duplicate()
const {
122 return new typename Singleton<TYPE>::Reinit;
125 template <
typename TYPE>
126 void Singleton<TYPE>::clear() {
static bool is_initialized()
static void remove_post_reinit(Event::Handler *const &handler)
void lend_post_reinit(Event::Handler *const &handler)
void lend_pre_uninit(Event::Handler *const &handler)
static void completely_destroy()
static void remove_pre_uninit(Event::Handler *const &handler)
void fax_post_reinit(Event::Handler *const &handler)
local int destroy(gz_stream *s)
void fax_pre_uninit(Event::Handler *const &handler)
void give_pre_uninit(Event::Handler *const &handler)
void give_post_reinit(Event::Handler *const &handler)