44 #ifndef __ScopedSingletonWrapper_H__ 45 #define __ScopedSingletonWrapper_H__ 64 : className_(className)
87 template <
class T,
bool allowedToFail>
93 , singletonPtr_(nullptr)
106 assert(singletonPtr_ ==
nullptr);
107 singletonPtr_ =
new T();
113 assert(singletonPtr_ !=
nullptr);
115 singletonPtr_ =
nullptr;
121 singletonPtr_->destroy();
126 delete singletonPtr_;
148 , singletonPtr_(nullptr)
161 assert(singletonPtr_ ==
nullptr);
163 { singletonPtr_ =
new T(); }
164 catch (
const InitialisationAbortedException& ex)
173 if (singletonPtr_ !=
nullptr)
176 singletonPtr_ =
nullptr;
183 singletonPtr_->destroy();
188 delete singletonPtr_;
void destroy(void *)
Destroys the singleton instance - overloaded for all other pointers, calls delete.
Definition: ScopedSingletonWrapper.h:124
void destroy(Destroyable *)
Destroys the singleton instance - overloaded for Destroyable, calls Destroyable::destroy() ...
Definition: ScopedSingletonWrapper.h:181
T * singletonPtr_
Unique instance of the singleton class T.
Definition: ScopedSingletonWrapper.h:192
virtual void activated() override
Called if the Scope of the Singleton gets active (creates the instance)
Definition: ScopedSingletonWrapper.h:104
ScopeListeners register themselves in the corresponding Scope and wait for notifications.
Definition: Scope.h:68
Shared library macros, enums, constants and forward declarations for the core library ...
::std::string string
Definition: gtest-port.h:756
virtual void deactivated() override
Called if the Scope of this Singleton gets deactivated (destroys the instance)
Definition: ScopedSingletonWrapper.h:171
static std::string handleMessage()
Retrieves information from an exception caught with "..." Works for std::exception and CEGUI::Excepti...
Definition: Exception.cc:97
const std::string className_
The name of the scoped singleton class that is managed by this object.
Definition: ScopedSingletonWrapper.h:69
The MetaPickup destroys all the PickupCarriers' Pickupables.
ClassScopedSingletonWrapper(const std::string &className)
Definition: ScopedSingletonWrapper.h:146
Output level, used for error messages which are important for developers.
Definition: OutputDefinitions.h:95
ClassScopedSingletonWrapper(const std::string &className)
Definition: ScopedSingletonWrapper.h:91
~ClassScopedSingletonWrapper()
Definition: ScopedSingletonWrapper.h:152
Declaration of facilities to handle exceptions.
T * singletonPtr_
Unique instance of the singleton class T.
Definition: ScopedSingletonWrapper.h:130
void destroy(Destroyable *)
Destroys the singleton instance - overloaded for Destroyable, calls Destroyable::destroy() ...
Definition: ScopedSingletonWrapper.h:119
ScopedSingletonWrapper(const std::string &className)
Constructor: Initializes all the values.
Definition: ScopedSingletonWrapper.h:63
OutputStream & orxout(OutputLevel level=level::debug_output, const OutputContextContainer &context=context::undefined())
This helper function returns a reference to a commonly used instance of OutputStream.
Definition: Output.h:81
Die Wagnis Klasse hat die folgenden Aufgaben:
Definition: ApplicationPaths.cc:66
Base class of ClassScopedSingletonWrapper.
Definition: ScopedSingletonWrapper.h:59
#define _CoreExport
Definition: CorePrereqs.h:61
~ClassScopedSingletonWrapper()
Definition: ScopedSingletonWrapper.h:97
Definition: InputPrereqs.h:78
Declaration of the classes that are needed to use Scopes: orxonox::Scope and orxonox::ScopeListener.
Definition of the Singleton template that is used as base class for classes that allow only one insta...
virtual void deactivated() override
Called if the Scope of this Singleton gets deactivated (destroys the instance)
Definition: ScopedSingletonWrapper.h:111
void destroy(void *)
Destroys the singleton instance - overloaded for void*, calls delete.
Definition: ScopedSingletonWrapper.h:186
Classes must inherit from this class if they should be used with StrongPtr or WeakPtr.
Definition: Destroyable.h:47
Manages a scoped singleton.
Definition: ScopedSingletonWrapper.h:88
virtual void activated() override
Called if the Scope of the Singleton gets active (creates the instance)
Definition: ScopedSingletonWrapper.h:159