00001 // $Id$ 00002 // 00003 // (C) Copyright XXX 2009 00004 // All Rights Reserved. 00005 // This code is published under the Common Public License. 00006 // 00007 // Authors : 00008 // Pietro Belotti, Lehigh University 00009 // Stefan Vigerske, Humboldt University 00010 // 00011 // Date : 07/18/2009 00012 00013 #ifndef COUENNEOSINTERFACE_HPP_ 00014 #define COUENNEOSINTERFACE_HPP_ 00015 00016 #include "CouenneUserInterface.hpp" 00017 #include "BonRegisteredOptions.hpp" 00018 00019 class OSInstance; 00020 00021 class CouenneOSInterface : public CouenneUserInterface { 00022 private: 00023 CouenneProblem* problem; 00024 Ipopt::SmartPtr<Bonmin::TMINLP> tminlp; 00025 00026 OSInstance* osinstance; 00027 00028 public: 00029 static void registerOptions(Ipopt::SmartPtr<Bonmin::RegisteredOptions> roptions); 00030 00031 CouenneOSInterface(Ipopt::SmartPtr<Ipopt::OptionsList> options_, Ipopt::SmartPtr<Ipopt::Journalist> jnlst_) 00032 : CouenneUserInterface(options_, jnlst_), problem(NULL), osinstance(NULL) 00033 { } 00034 00035 ~CouenneOSInterface(); 00036 00037 CouenneProblem* getCouenneProblem(); 00038 00039 Ipopt::SmartPtr<Bonmin::TMINLP> getTMINLP(); 00040 00041 bool writeSolution(Bonmin::Bab& bab); 00042 }; 00043 00044 #endif /*COUENNEOSINTERFACE_HPP_*/