X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fnetradiant.git;a=blobdiff_plain;f=include%2Fmodulesystem.h;h=dd7c59ad2b2e545693822ca9209f206d8c3050bb;hp=7cb6d3f53d060f95a105cf5e4b8a0bae190494e4;hb=0e5bc042fe9a0b57a528ee444ca815c1a5693c72;hpb=12b372f89ce109a4db9d510884fbe7d05af79870 diff --git a/include/modulesystem.h b/include/modulesystem.h index 7cb6d3f5..dd7c59ad 100644 --- a/include/modulesystem.h +++ b/include/modulesystem.h @@ -23,6 +23,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #define INCLUDED_MODULESYSTEM_H #include "generic/static.h" +#include "debugging/debugging.h" #if defined(WIN32) #define RADIANT_DLLEXPORT __stdcall @@ -53,7 +54,7 @@ public: class Visitor { public: - virtual void visit(const char* name, Module& module) = 0; + virtual void visit(const char* name, Module& module) const = 0; }; virtual void setError(bool error) = 0; @@ -65,7 +66,7 @@ public: virtual void registerModule(const char* type, int version, const char* name, Module& module) = 0; virtual Module* findModule(const char* type, int version, const char* name) const = 0; - virtual void foreachModule(const char* type, int version, Visitor& visitor) = 0; + virtual void foreachModule(const char* type, int version, const Visitor& visitor) = 0; }; class ModuleServerHolder @@ -94,6 +95,16 @@ inline ModuleServer& globalModuleServer() } +inline void initialiseModule(ModuleServer& server) +{ + GlobalErrorStream::instance().setOutputStream(server.getErrorStream()); + GlobalOutputStream::instance().setOutputStream(server.getOutputStream()); + GlobalDebugMessageHandler::instance().setHandler(server.getDebugMessageHandler()); + GlobalModuleServer::instance().set(server); +} + + + template class Modules { @@ -101,11 +112,11 @@ public: class Visitor { public: - virtual void visit(const char* name, const Type& table) = 0; + virtual void visit(const char* name, const Type& table) const = 0; }; virtual Type* findModule(const char* name) = 0; - virtual void foreachModule(Visitor& visitor) = 0; + virtual void foreachModule(const Visitor& visitor) = 0; }; #include "debugging/debugging.h"