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