// $Id$
//
-// Copyright (C) 2007
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
+// Copyright (C) 2007
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
// Stefan Bund <g0dil@berlios.de>
//
// This program is free software; you can redistribute it and/or modify
///////////////////////////////cti.p///////////////////////////////////////
template <class Self>
+prefix_ senf::singleton<Self>::singleton()
+{
+ alive_ = true;
+}
+
+template <class Self>
+prefix_ senf::singleton<Self>::~singleton()
+{
+ alive_ = false;
+}
+
+template <class Self>
+bool senf::singleton<Self>::alive_ (false);
+
+template <class Self>
prefix_ Self & senf::singleton<Self>::instance()
{
static Self instance_;
- creator_.nop(); // Force instantiation of force_creation
+ // Force instantiation of force_creation (at static object creation time)
+ creator_.nop();
return instance_;
}
template <class Self>
+prefix_ bool senf::singleton<Self>::alive()
+{
+ return alive_;
+}
+
+template <class Self>
prefix_ senf::singleton<Self>::force_creation::force_creation()
{
- senf::singleton<Self>::instance(); // Force execution of instance() thereby creating instance
+ // Force execution of instance() thereby creating instance
+ senf::singleton<Self>::instance();
}
template <class Self>
}
template <class Self>
-typename senf::singleton<Self>::force_creation senf::singleton<Self>::create_;
+typename senf::singleton<Self>::force_creation senf::singleton<Self>::creator_;
///////////////////////////////cti.e///////////////////////////////////////
#undef prefix_