00001 // Copyright (C) GAMS Development and others 2008-2009 00002 // All Rights Reserved. 00003 // This code is published under the Common Public License. 00004 // 00005 // $Id: OSgams2osil.hpp 2897 2009-08-31 18:43:21Z stefan $ 00006 // 00007 // Author: Stefan Vigerske 00008 00009 #ifndef OSGAMS2OSIL_HPP_ 00010 #define OSGAMS2OSIL_HPP_ 00011 00012 #include <string> 00013 00014 class OSInstance; 00015 class OSnLNode; 00016 00017 struct gmoRec; 00018 struct gevRec; 00019 00022 class OSgams2osil { 00023 private: 00024 struct gevRec* gev; 00025 struct gmoRec* gmo; 00026 00027 OSnLNode* parseGamsInstructions(int codelen, int* opcodes, int* fields, int constantlen, double* constants); 00028 00029 00030 public: 00031 OSInstance *osinstance; 00032 00033 OSgams2osil(struct gmoRec* gmo_ = NULL); 00034 00035 OSgams2osil( std::string gamsControlFile); 00036 00037 ~OSgams2osil(); 00038 00039 bool initGMO(const char* datfile); 00040 00044 bool createOSInstance(); 00045 00049 OSInstance* takeOverOSInstance(); 00050 00054 OSInstance* getOSInstance() { return osinstance; } 00055 }; 00056 00057 00058 #endif /*GAMS2OSIL_HPP_*/