// Berkeley Open Infrastructure for Network Computing // http://boinc.berkeley.edu // Copyright (C) 2005 University of California // // This is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; // either version 2.1 of the License, or (at your option) any later version. // // This software is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. // See the GNU Lesser General Public License for more details. // // To view the GNU Lesser General Public License visit // http://www.gnu.org/copyleft/lesser.html // or write to the Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA // This file defines a Fortran wrapper to the BOINC API. // Define this symbol (here or in Makefile) if you want graphics functions //#define GRAPHICS #include "config.h" #include "util.h" #include "boinc_api.h" #ifdef GRAPHICS #include "graphics_api.h" #endif #include "boinc_zip.h" // helper class that makes a C-string from a character array and length, // automatically deleted on destruction. // Fortran strings are passed as character array plus length // class STRING_FROM_FORTRAN { char* p; public: STRING_FROM_FORTRAN(const char* s, int s_len) { p = new char[s_len + 1]; memcpy(p, s, s_len); p[s_len] = 0; } ~STRING_FROM_FORTRAN() { delete [] p; } void strip_whitespace() { ::strip_whitespace(p); } const char* c_str() { return p; } }; // remove terminating null and pad with blanks a la FORTRAN // static void string_to_fortran(char* p, int len) { for (int i=strlen(p); i