1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
/* +------------------------------------+
* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
* InspIRCd: (C) 2002-2010 InspIRCd Development Team
* See: http://wiki.inspircd.org/Credits
*
* This program is free but copyrighted software; see
* the file COPYING for details.
*
* ---------------------------------------------------
*/
#ifndef __DLL_H
#define __DLL_H
/** The DLLManager class is able to load a module file by filename,
* and locate its init_module symbol.
*/
class CoreExport DLLManager : public classbase
{
protected:
/** The last error string
*/
std::string err;
public:
/** This constructor loads the module using dlopen()
* @param fname The filename to load. This should be within
* the modules dir.
*/
DLLManager(const char *fname);
virtual ~DLLManager();
/** Get the last error from dlopen() or dlsym().
*/
const std::string& LastError()
{
return err;
}
/** The module library handle.
*/
void *h;
/** Return a module by calling the init function
*/
Module* CallInit();
/** Get detailed version information from the module file */
std::string GetVersion();
};
#endif
|