mirror of https://github.com/BOINC/boinc.git
*** empty log message ***
svn path=/trunk/boinc/; revision=3577
This commit is contained in:
parent
b35123ff48
commit
bc9b856e4e
|
@ -0,0 +1,104 @@
|
|||
// The contents of this file are subject to the BOINC Public License
|
||||
// Version 1.0 (the "License"); you may not use this file except in
|
||||
// compliance with the License. You may obtain a copy of the License at
|
||||
// http://boinc.berkeley.edu/license_1.0.txt
|
||||
//
|
||||
// Software distributed under the License is distributed on an "AS IS"
|
||||
// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
// License for the specific language governing rights and limitations
|
||||
// under the License.
|
||||
//
|
||||
// The Original Code is the Berkeley Open Infrastructure for Network Computing.
|
||||
//
|
||||
// The Initial Developer of the Original Code is the SETI@home project.
|
||||
// Portions created by the SETI@home project are Copyright (C) 2002
|
||||
// University of California at Berkeley. All Rights Reserved.
|
||||
//
|
||||
// Contributor(s):
|
||||
//
|
||||
|
||||
// This file defines a Fortran wrapper to the BOINC API.
|
||||
|
||||
#include "boinc_api.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 StringFromFortran {
|
||||
char* p;
|
||||
public:
|
||||
StringFromFortran(const char* s, int s_len) {
|
||||
p = new char[s_len + 1];
|
||||
memcpy(p, s, s_len);
|
||||
p[s_len] = 0;
|
||||
}
|
||||
~StringFromFortran() { delete [] p; }
|
||||
operator char* () const { return p; }
|
||||
};
|
||||
|
||||
extern "C" {
|
||||
|
||||
int boinc_init_(int *standalone) {
|
||||
boinc_init(*standalone);
|
||||
}
|
||||
|
||||
int boinc_finish_(int* status) {
|
||||
boinc_finish(*status);
|
||||
}
|
||||
|
||||
int boinc_is_standalone_() {
|
||||
return boinc_is_standalone();
|
||||
}
|
||||
|
||||
int boinc_resolve_filename_(const char* s, int s_len, char* t, int t_len)
|
||||
{
|
||||
boinc_resolve_filename(StringFromFortran(s), t, t_len);
|
||||
}
|
||||
|
||||
int boinc_parse_init_data_file_()
|
||||
{
|
||||
return boinc_parse_init_data_file();
|
||||
}
|
||||
|
||||
int boinc_write_init_data_file_()
|
||||
{
|
||||
return boinc_write_init_data_file_();
|
||||
}
|
||||
|
||||
// TODO: structs? common?
|
||||
// extern int boinc_get_init_data(APP_INIT_DATA&);
|
||||
|
||||
int boinc_send_trickle_up_(char* s, int len)
|
||||
{
|
||||
return boinc_send_trickle_up(StringFromFortran(s,s_len));
|
||||
}
|
||||
|
||||
int boinc_receive_trickle_down_(char* buf, int len)
|
||||
{
|
||||
return boinc_receive_trickle_down(buf, len);
|
||||
}
|
||||
|
||||
int boinc_time_to_checkpoint_() {
|
||||
return boinc_time_to_checkpoint();
|
||||
}
|
||||
|
||||
int boinc_checkpoint_completed_() {
|
||||
return boinc_checkpoint_completed();
|
||||
}
|
||||
|
||||
int boinc_fraction_done_(double* d) {
|
||||
return boinc_fraction_done(* d);
|
||||
}
|
||||
|
||||
int boinc_wu_cpu_time_(double* d_out) {
|
||||
return boinc_wu_cpu_time(*d_out);
|
||||
}
|
||||
|
||||
int boinc_thread_cpu_time_(double* d1_out, double* d2_out)
|
||||
{
|
||||
return boinc_thread_cpu_time(*d1_out, *d2_out);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -13566,3 +13566,8 @@ Karl 2004-06-15
|
|||
|
||||
py/Boinc/
|
||||
boincxml.py
|
||||
|
||||
- created Fortran wrapper
|
||||
|
||||
api/
|
||||
boinc_api_fortran.C
|
||||
|
|
Loading…
Reference in New Issue