00001 #ifndef IOTRDRIVER 00002 #define IOTRDRIVER 00003 00013 #include <iostream> 00014 #include <popt.h> 00015 #include "IotrRefCount.hh" 00016 #include "IotrHandle.hh" 00017 #include "IotrSolver.hh" 00018 #include "IotrPrinting.hh" 00019 #include "Nlp.hh" 00020 00024 class IotrDriver : public IotrRefCount { 00025 protected: 00026 char *mConfig_file; 00027 char *mConfig_file_rename; 00028 char *mSolverClass; 00029 char *mFormulation; 00030 char *mShorthand_Option; 00031 int mDoDisplayConfig; 00032 int mIsDense; 00033 00034 int mArgc; 00035 char **mArgv; 00036 public: 00037 IotrDriver( int argc, char **argv ); 00038 00039 virtual Nlp* formulationPtr() = 0; 00040 virtual NlpSolver* solverPtr() = 0; 00041 virtual int initialize() = 0; 00042 virtual void readConfigFile() = 0; 00043 virtual int setUpFunctional() = 0; 00044 virtual int setUpFormulation() = 0; 00045 virtual int setUpSolver() = 0; 00046 00047 virtual void reportErrors() = 0; 00048 virtual void printPrelim() = 0; 00049 virtual int solve() = 0; 00050 }; 00051 00052 typedef Handle<IotrDriver> IotrDriverHandle; 00053 00054 #endif