00001
00002
00003
00004
00005 #ifndef OOQPMONITOR
00006 #define OOQPMONITOR
00007
00008 class Solver;
00009 class Data;
00010 class Variables;
00011 class Residuals;
00012
00017 class OoqpMonitor {
00018 public:
00019 OoqpMonitor * nextMonitor;
00020
00021 OoqpMonitor() { nextMonitor = 0; };
00022
00023 virtual void doIt( Solver * solver, Data * data, Variables * vars,
00024 Residuals * resids,
00025 double alpha, double sigma,
00026 int i, double mu,
00027 int status_code,
00028 int level ) = 0;
00029 virtual ~OoqpMonitor() {};
00030 };
00031
00032
00040 class OoqpSelfMonitor : public OoqpMonitor {
00041 public:
00042 virtual void doIt( Solver * solver, Data * data, Variables * vars,
00043 Residuals * resids,
00044 double alpha, double sigma,
00045 int i, double mu,
00046 int status_code,
00047 int level );
00048 };
00049
00050 #include "OoqpMonitorData.h"
00051
00057 class COoqpMonitor : public OoqpMonitor {
00058 protected:
00059 DoItCFunc doItC;
00060 void * ctx;
00061 public:
00062 COoqpMonitor( DoItCFunc doItC_, void * ctx_ );
00063 virtual void doIt( Solver * solver, Data * data, Variables * vars,
00064 Residuals * resids,
00065 double alpha, double sigma,
00066 int i, double mu,
00067 int status_code,
00068 int level );
00069 };
00070
00071
00072 #endif