00001 /* $Id: OSDecompSolverFactory.h 3038 2009-11-07 11:43:44Z kmartin $ */ 00013 #ifndef OSDECOMPSOLVERFACTORY_H 00014 #define OSDECOMPSOLVERFACTORY_H 00015 00016 // --------------------------------------------------------------------- // 00017 #include "OSInstance.h" 00018 #include "OSOption.h" 00019 #include "OSResult.h" 00020 #include "OSDataStructures.h" 00021 #include "OSErrorClass.h" 00022 #include <vector> 00023 #include <string> 00024 #include <map> 00025 #include "OSDecompSolver.h" 00026 00027 // --------------------------------------------------------------------- // 00034 // --------------------------------------------------------------------- // 00035 00036 00037 00038 class OSDecompSolverFactory{ 00039 00040 public: 00041 OSInstance *osinstance; 00042 OSOption *osoption; 00043 00044 virtual OSDecompSolver* create() = 0; 00045 static std::map<std::string, OSDecompSolverFactory*> factories; 00046 static OSDecompSolver* createOSDecompSolver(const std::string &solverName) throw(ErrorClass); 00047 00052 OSDecompSolverFactory(); 00053 00058 virtual ~OSDecompSolverFactory() = 0; 00059 00060 }; 00061 00062 #endif