X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fdynamic.h;h=db46291c4b888f34acec0d1101ec725431c5383f;hb=e6d000042ea75d4e0485bec9564b47163a3ca414;hp=e4d1b4a059b9e5fef9a1f4d40b25209078c22ff3;hpb=9cf56d917d92959701694477f7944d45ad2c38ed;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/dynamic.h b/include/dynamic.h index e4d1b4a05..db46291c4 100644 --- a/include/dynamic.h +++ b/include/dynamic.h @@ -38,31 +38,24 @@ class CoreExport DLLManager DLLManager(InspIRCd* ServerInstance, const char *fname); virtual ~DLLManager(); - -#ifdef STATIC_LINK - /** Get a symbol using static linking. - * @param v A static function pointer, pointing at an init_module function - * @param sym_name The symbol name to find, usually "init_module" - * @return True if the symbol can be found - */ - bool GetSymbol(initfunc* &v, const char *sym_name); -#else /** Get a symbol using dynamic linking. * @param v A function pointer, pointing at an init_module function * @param sym_name The symbol name to find, usually "init_module" * @return true if the symbol can be found, also the symbol will be put into v. */ bool GetSymbol(void **v, const char *sym_name); -#endif + /** Get the last error from dlopen() or dlsym(). - * @return The last error string, or NULL if no error has occured + * @return The last error string, or NULL if no error has occured. */ char* LastError() { return err; } - /** The module handle + /** The module handle. + * This is OS dependent, on POSIX platforms it is a pointer to a function + * pointer (yes, really!) and on windows it is a library handle. */ void *h; @@ -71,12 +64,6 @@ class CoreExport DLLManager /** The last error string, or NULL */ char *err; -#ifdef STATIC_LINK - - /** The module name - */ - char staticname[1024]; -#endif }; /** This class is a specialized form of DLLManager designed to load InspIRCd modules. @@ -92,18 +79,13 @@ class CoreExport DLLFactoryBase : public DLLManager */ DLLFactoryBase(InspIRCd* Instance, const char *fname, const char *func_name = 0); - /** Default destructor + /** Default destructor. */ virtual ~DLLFactoryBase(); -#ifdef STATIC_LINK - /** A function pointer to the factory function - */ - initfunc *factory_func; -#else - /** A function pointer to the factory function + + /** A function pointer to the factory function. */ void * (*factory_func)(void); -#endif }; /** This is the highest-level class of the DLLFactory system used to load InspIRCd modules. @@ -142,3 +124,4 @@ template class CoreExport DLLFactory : public DLLFactoryBase }; #endif +