18 #ifndef NURIA_DEPEDENCYMANAGER_HPP
19 #define NURIA_DEPEDENCYMANAGER_HPP
21 #include "essentials.hpp"
25 class DependencyManagerPrivate;
114 ThreadingPolicy defaultThreadingPolicy ()
const;
122 void setDefaultThreadingPolicy (ThreadingPolicy policy);
136 void *objectByName (
const QString &name,
int type = -1, ThreadingPolicy policy = DefaultPolicy);
141 int objectType (
const QString &name, ThreadingPolicy policy = DefaultPolicy)
const;
147 {
return objectType (name, policy) != -1; }
155 void storeObject (
const QString &name,
void *
object,
int type,
156 ThreadingPolicy policy = DefaultPolicy);
161 template<
typename T >
163 { storeObject (name,
object, qMetaTypeId< T * > ()); }
169 template<
typename T >
171 return static_cast< T *
> (instance ()->objectByName (name, qMetaTypeId< T * > (), policy));
176 void freeAllObjects ();
181 DependencyManagerPrivate *d_ptr;
186 #define NURIA_DEPENDENCY(T) Nuria::DependencyManager::get< T > (#T)
188 #endif // NURIA_DEPEDENCYMANAGER_HPP
DepedencyManager enables easy to use dependency injection.
Definition: dependencymanager.hpp:67
ThreadingPolicy
Definition: dependencymanager.hpp:75
bool hasObject(const QString &name, ThreadingPolicy policy=DefaultPolicy) const
Definition: dependencymanager.hpp:146
Definition: dependencymanager.hpp:85
void storeObject(const QString &name, T *object)
Definition: dependencymanager.hpp:162
Definition: dependencymanager.hpp:79
Definition: dependencymanager.hpp:91