diff options
Diffstat (limited to 'include/modules.h')
-rw-r--r-- | include/modules.h | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/include/modules.h b/include/modules.h index 1a88a0389..8ef646a08 100644 --- a/include/modules.h +++ b/include/modules.h @@ -245,74 +245,6 @@ class CoreExport DataProvider : public ServiceProvider : ServiceProvider(Creator, Name, SERVICE_DATA) {} }; -class CoreExport dynamic_reference_base : public interfacebase -{ - private: - std::string name; - void resolve(); - protected: - ServiceProvider* value; - public: - ModuleRef creator; - dynamic_reference_base(Module* Creator, const std::string& Name); - ~dynamic_reference_base(); - inline const std::string& GetProvider() { return name; } - void SetProvider(const std::string& newname); - void check(); - operator bool() { return (value != NULL); } - static void reset_all(); -}; - -inline void dynamic_reference_base::check() -{ - if (!value) - throw ModuleException("Dynamic reference to '" + name + "' failed to resolve"); -} - -template<typename T> -class dynamic_reference : public dynamic_reference_base -{ - public: - dynamic_reference(Module* Creator, const std::string& Name) - : dynamic_reference_base(Creator, Name) {} - - inline T* operator->() - { - check(); - return static_cast<T*>(value); - } - - T* operator*() - { - return operator->(); - } -}; - -template<typename T> -class dynamic_reference_nocheck : public dynamic_reference_base -{ - public: - dynamic_reference_nocheck(Module* Creator, const std::string& Name) - : dynamic_reference_base(Creator, Name) {} - - T* operator->() - { - return static_cast<T*>(value); - } - - T* operator*() - { - return operator->(); - } -}; - -class ModeReference : public dynamic_reference_nocheck<ModeHandler> -{ - public: - ModeReference(Module* mod, const std::string& modename) - : dynamic_reference_nocheck<ModeHandler>(mod, "mode/" + modename) {} -}; - /** Priority types which can be used by Module::Prioritize() */ enum Priority { PRIORITY_FIRST, PRIORITY_LAST, PRIORITY_BEFORE, PRIORITY_AFTER }; |