• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

src/module/header/Module.h

Go to the documentation of this file.
00001 #pragma once
00002 #include <typeinfo.h>
00003 
00004 typedef void* (*FPCREATE)(const char*, Log*);
00005 typedef bool (*FPFREE)(const char*, void*);
00006 
00009 class Module
00010 {
00011 public:
00012         Module(const wchar* filename);
00013         virtual ~Module(void);
00014 
00016         template<class T>
00017         T* create(void){
00018                 if(fpCreate == 0){
00019                         printf("%s\n", "No Create Function found");
00020                         return 0;
00021                 }
00022                 return (T*)fpCreate(typeid(T).name(), logger);
00023         }
00024 
00026         template<class T>
00027         void free(T*& clazz){if(fpFree != 0 && fpFree(typeid(T).name(), clazz)) clazz=0;}
00028 
00029 private:
00030         void* module;
00031         FPCREATE fpCreate;
00032         FPFREE fpFree;
00033 };
00034 
00035 #ifdef _DEBUG
00036 #define MODULE(modulename) TEXT("../bin/")TEXT(modulename)TEXT("D.dll")
00037 #else
00038 #define MODULE(modulename) TEXT("../bin/")TEXT(modulename)TEXT(".dll")
00039 #endif

Generated on Fri Jun 18 2010 17:48:39 for Cannonball by  doxygen 1.7.0