#include "ClpSimplex.hpp"
#include "ClpInterior.hpp"
#include "ClpCholeskyMumps.hpp"
#include "ClpEventHandler.hpp"

#define MODELDIR "C:\\Users\\Jonathan\\Documents\\AUT\\Code and Models\\Optimization Solvers\\Clp-1.15.0\\Clp-1.15.0\\Clp\\libclp\\Release\\"

//Ctrl-C Event Handler
class DerivedEvent : public ClpEventHandler {
public:
     int event(Event whichEvent)
	 {
		 return 5; //terminate as soon as we get here
	 }
     ClpEventHandler * clone() const
	 {
		 return new DerivedEvent(*this);
	 }
};


int main()
{
	ClpInterior model;
	ClpCholeskyMumps clpCholMumps;
	DerivedEvent clpEvent;

	model.readMps( MODELDIR "scsd1.mps",true);
	
	model.setCholesky(&clpCholMumps);	 //skip this to avoid crash...
	model.passInEventHandler(&clpEvent); //this should stop solver asap?

	model.primalDual();

	return 0;
}