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