00001 /* $Id: OSBlockCoinSolver.h 3038 2009-11-07 11:43:44Z Gassmann $ */ 00018 #ifndef OSDIPBLOCKCOINSOLVER_H 00019 #define OSDIPBLOCKCOINSOLVER_H 00020 00021 // --------------------------------------------------------------------- // 00022 #include "OSDipBlockSolver.h" 00023 #include "OSDataStructures.h" 00024 #include "OSDefaultSolver.h" 00025 #include "OSCoinSolver.h" 00026 #include "OSrLReader.h" 00027 00028 #include "OSDipBlockSolverFactory.h" 00029 00030 // --------------------------------------------------------------------- // 00038 // --------------------------------------------------------------------- // 00039 class OSDipBlockCoinSolver : public OSDipBlockSolver { 00040 public: 00041 00042 00043 OSInstance *m_osinstance; 00044 OSResult *m_osresult; 00045 int m_numberOfVar; 00046 // first declare a generic solver 00047 CoinSolver *m_solver ; 00048 00049 00050 00051 00063 virtual void solve(double *cost, std::vector<IndexValuePair*> *solIndexValPair, double *optVal) ; 00064 00065 00076 virtual void solve(double *cost, std::string *osrl) ; 00077 00082 OSDipBlockCoinSolver(); 00083 00084 00089 OSDipBlockCoinSolver( OSInstance *osinstance); 00090 00095 ~OSDipBlockCoinSolver(); 00096 00097 class Factory; 00098 class Factory : public OSDipBlockSolverFactory{ 00099 00100 public: 00101 00102 Factory(){ 00103 00104 } 00105 00106 ~Factory(){ 00107 00108 } 00109 00110 OSDipBlockSolver* create() { return new OSDipBlockCoinSolver( osinstance); }; 00111 00112 };// end class OSDipBlockSolverFactory 00113 00114 00115 // 00116 };//end class OSDipBlockCoinSolver 00117 00118 00119 00120 00121 #endif