00001
00002 #ifndef __matter_creator_hpp__
00003 #define __matter_creator_hpp__
00004
00005 #include <vector>
00006
00007 #include <crbn/basic/basic.h>
00008 #include <crbn/basic/paramlist.hpp>
00009
00010 #include <crbn/matter/matter.hpp>
00011
00012 typedef struct _mmod_entry mmod_entry;
00013
00014 class mCreator
00015 {
00016 public:
00017 mCreator();
00018 ~mCreator();
00019
00020 char* last_module_called() { return _last_module_called; }
00021
00022 uint32 memory() { return _memory_used; }
00023
00024 void clear();
00025
00026 Matter* create( char* matter_type, paramlist& pl );
00027 Matter* create( char* matter_type, FILE* fp );
00028
00029 private:
00030 uint32 _memory_used;
00031 char* _last_module_called;
00032 std::vector<mmod_entry*> _mod_list;
00033 };
00034
00035 #endif // __matter_creator_hpp__