]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/dynamic.h
Add #include <sys/select.h> to select engine, we probably need it
[user/henk/code/inspircd.git] / include / dynamic.h
index 987f5de72c23192685895a941521b3b65d56891a..10b87b40c5c25e172fdd72d9bc9882e4cecb4514 100644 (file)
@@ -2,7 +2,7 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  Inspire is copyright (C) 2002-2004 ChatSpike-Dev.
+ *  InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
  *                       E-mail:
  *                <brain@chatspike.net>
  *               <Craig@chatspike.net>
 #ifndef __DLL_H
 #define __DLL_H
 
+typedef void * (initfunc) (void);
+
+#include "inspircd_config.h"
 
 class DLLManager
 {
  public:
-       DLLManager( const char *fname );
+       DLLManager(char *fname);
        virtual ~DLLManager();
 
 
-       bool GetSymbol( void **, const char *sym_name );
+#ifdef STATIC_LINK
+       bool GetSymbol( initfunc* &v, char *sym_name );
+#else
+       bool GetSymbol( void **, char *sym_name );
+#endif
 
-       const char *LastError() 
+       char *LastError() 
        {
                 return err;
        }
        
  protected:
        void *h;
-       const char *err;
+       char *err;
+#ifdef STATIC_LINK
+       char staticname[1024];
+#endif
 };
 
 
 class DLLFactoryBase : public DLLManager
 {
  public:
-       DLLFactoryBase(const char *fname, const char *func_name = 0);
+       DLLFactoryBase(char *fname, char *func_name = 0);
        virtual ~DLLFactoryBase();
+#ifdef STATIC_LINK
+       initfunc *factory_func;
+#else
        void * (*factory_func)(void);   
+#endif
 };
 
 
 template <class T> class DLLFactory : public DLLFactoryBase
 {
  public:
-       DLLFactory(const char *fname, const char *func_name=0) : DLLFactoryBase(fname,func_name)
+       DLLFactory(char *fname, char *func_name=0) : DLLFactoryBase(fname,func_name)
        {
                if (factory_func)
                        factory = (T*)factory_func();