-};
-
-class CoreExport LoadModuleException : public CoreException
-{
- public:
- /** This constructor can be used to specify an error message before throwing.
- */
- LoadModuleException(const std::string &message)
- : CoreException(message, "the core")
- {
- }
-
- /** This destructor solves world hunger, cancels the world debt, and causes the world to end.
- * Actually no, it does nothing. Never mind.
- * @throws Nothing!
- */
- virtual ~LoadModuleException() throw() {};
-};
-
-class CoreExport FindSymbolException : public CoreException
-{
- public:
- /** This constructor can be used to specify an error message before throwing.
- */
- FindSymbolException(const std::string &message)
- : CoreException(message, "the core")
- {
- }
-
- /** This destructor solves world hunger, cancels the world debt, and causes the world to end.
- * Actually no, it does nothing. Never mind.
- * @throws Nothing!
- */
- virtual ~FindSymbolException() throw() {};
-};
-
-/** This is the highest-level class of the DLLFactory system used to load InspIRCd modules and commands.
- * All the dirty mucking around with dl*() is done by DLLManager, all this does it put a pretty shell on
- * it and make it nice to use to load modules and core commands. This class is quite specialised for these
- * two uses and it may not be useful more generally -- use DLLManager directly for that.
- */
-template <typename ReturnType> class CoreExport DLLFactory : public DLLManager
-{
- protected:
- /** This typedef represents the init_* function within each module or command.
- * The init_module function is the only exported extern "C" declaration
- * in any module file. In a cmd_*.cpp file the equivilant is init_command
- */
- typedef ReturnType * (initfunctype) ();
-
- /** Pointer to the init function.
- */
- initfunctype* init_func;