00001 /* $Id: OSDipBlockSolverFactory.h 3038 2009-11-07 11:43:44Z Gassmann $ */ 00018 #ifndef OSDIPBLOCKSOLVERFACTORY_H 00019 #define OSDIPBLOCKSOLVERFACTORY_H 00020 00021 // --------------------------------------------------------------------- // 00022 #include "OSInstance.h" 00023 #include "OSOption.h" 00024 #include "OSResult.h" 00025 #include "OSDataStructures.h" 00026 #include "OSErrorClass.h" 00027 #include <vector> 00028 #include <string> 00029 #include <map> 00030 #include "OSDipBlockSolver.h" 00031 00032 // --------------------------------------------------------------------- // 00039 // --------------------------------------------------------------------- // 00040 00041 00042 00043 class OSDipBlockSolverFactory{ 00044 00045 public: 00046 OSInstance *osinstance; 00047 OSOption *osoption; 00048 00049 virtual OSDipBlockSolver* create() = 0; 00050 static std::map<std::string, OSDipBlockSolverFactory*> factories; 00051 static OSDipBlockSolver* createOSDipBlockSolver(const string &solverName) throw(ErrorClass); 00052 00057 OSDipBlockSolverFactory(); 00058 00063 virtual ~OSDipBlockSolverFactory() = 0; 00064 00065 }; 00066 00067 #endif