1 /* +------------------------------------+
2 * | Inspire Internet Relay Chat Daemon |
3 * +------------------------------------+
5 * InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
7 * <brain@chatspike.net>
8 * <Craig@chatspike.net>
10 * Written by Craig Edwards, Craig McLure, and others.
11 * This program is free but copyrighted software; see
12 * the file COPYING for details.
14 * ---------------------------------------------------
21 typedef void * (initfunc) (void);
23 #include "inspircd_config.h"
25 extern void do_log(int, const char*, ...);
30 DLLManager(const char *fname);
31 virtual ~DLLManager();
35 bool GetSymbol( initfunc* &v, const char *sym_name );
37 bool GetSymbol( void **, const char *sym_name );
49 char staticname[1024];
54 class DLLFactoryBase : public DLLManager
57 DLLFactoryBase(const char *fname, const char *func_name = 0);
58 virtual ~DLLFactoryBase();
60 initfunc *factory_func;
62 void * (*factory_func)(void);
66 template <class T> class DLLFactory : public DLLFactoryBase
69 DLLFactory(const char *fname, const char *func_name=0) : DLLFactoryBase(fname,func_name)
72 factory = reinterpret_cast<T*>(factory_func());
74 factory = reinterpret_cast<T*>(-1);