00001 /* $Id: OSBlockSolverFactory.cpp 3038 2009-11-07 11:43:44Z Gassmann $ */ 00019 // --------------------------------------------------------------------- // 00020 #include "OSInstance.h" 00021 #include "OSResult.h" 00022 #include "OSDataStructures.h" 00023 #include "OSErrorClass.h" 00024 #include <vector> 00025 #include <string> 00026 #include <map> 00027 00028 #include "OSDipBlockSolverFactory.h" 00029 00030 00031 00032 std::map<std::string, OSDipBlockSolverFactory*> OSDipBlockSolverFactory::factories; 00033 00034 OSDipBlockSolver* OSDipBlockSolverFactory::createOSDipBlockSolver(const string &solverName) throw(ErrorClass){ 00035 00036 00037 if( factories.find(solverName) != factories.end() ){ 00038 00039 return factories[ solverName]->create(); 00040 00041 }else{ 00042 throw ErrorClass( solverName + " is not a valid OSDipBlockSolver"); 00043 } 00044 00045 }//end 00046 00047 00052 OSDipBlockSolverFactory::OSDipBlockSolverFactory(){ 00053 00054 } 00055 00056 OSDipBlockSolverFactory::~OSDipBlockSolverFactory(){ 00057 } 00058 00059