123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304 |
- #ifndef BOINC_REMOTE_SUBMIT_H
- #define BOINC_REMOTE_SUBMIT_H
- #include <stdio.h>
- #include <string>
- #include <vector>
- #include <map>
- #include "parse.h"
- #define FILE_MODE_LOCAL 1
- #define FILE_MODE_LOCAL_STAGED 2
- #define FILE_MODE_SEMILOCAL 3
- #define FILE_MODE_INLINE 4
- #define FILE_MODE_REMOTE 5
- struct INFILE {
- int mode;
- char logical_name[256];
-
-
-
- char src_path[256];
-
-
-
- char physical_name[256];
-
- char url[256];
- double nbytes;
- char md5[256];
- };
- struct JOB {
- char job_name[256];
- std::string cmdline_args;
- std::vector<INFILE> infiles;
- };
- struct JOB_STATUS {
- std::string job_name;
- std::string status;
- JOB_STATUS(){}
- };
- struct JOB_PARAMS {
-
- double rsc_disk_bound;
- double rsc_fpops_est;
- double rsc_fpops_bound;
- double rsc_memory_bound;
- double delay_bound;
- JOB_PARAMS(): rsc_disk_bound(0), rsc_fpops_est(0),rsc_fpops_bound(0),
- rsc_memory_bound(0), delay_bound(0) {}
- };
- struct QUERY_BATCH_SET_REPLY {
- double server_time;
- std::vector<int> batch_sizes;
- std::vector<JOB_STATUS> jobs;
- };
- struct OUTFILE {
- char src[256];
- char dest[256];
- };
- struct FETCH_OUTPUT_REQ {
- char job_name[256];
- char dir[256];
- bool fetch_all;
- std::string stderr_filename;
- std::vector<OUTFILE> file_descs;
- };
- struct TEMPLATE_DESC {
- std::vector<std::string> input_files;
- std::vector<std::string> output_files;
- int parse(XML_PARSER&);
- };
- struct COMPLETED_JOB_DESC {
- int canonical_resultid;
- int error_mask;
- int error_resultid;
-
- int exit_status;
- double elapsed_time;
- double cpu_time;
- std::string stderr_out;
- int parse(XML_PARSER&);
- };
- extern int query_files(
- const char* project_url,
- const char* authenticator,
- std::vector<std::string> &boinc_names,
- int batch_id,
- std::vector<int> &absent_files,
- std::string& error_msg
- );
- extern int upload_files (
- const char* project_url,
- const char* authenticator,
- std::vector<std::string> &paths,
- std::vector<std::string> &boinc_names,
- int batch_id,
- std::string& error_msg
- );
- extern int create_batch(
- const char* project_url,
- const char* authenticator,
- const char* batch_name,
- const char* app_name,
- double expire_time,
- int &batch_id,
- std::string& error_msg
- );
- extern int submit_jobs(
- const char* project_url,
- const char* authenticator,
- char app_name[256],
- int batch_id,
- std::vector<JOB> jobs,
- std::string& error_msg,
- int app_version_num = 0
- );
- extern int submit_jobs_params(
- const char* project_url,
- const char* authenticator,
- char app_name[256],
- int batch_id,
- std::vector<JOB> jobs,
- std::string& error_msg,
- JOB_PARAMS &job_params,
- int app_version_num
- );
- extern int estimate_batch(
- const char* project_url,
- const char* authenticator,
- char app_name[256],
- std::vector<JOB> jobs,
- double& est_makespan,
- std::string& error_msg
- );
- extern int query_batch_set(
- const char* project_url,
- const char* authenticator,
- double min_mod_time,
- std::vector<std::string> &batch_names,
- QUERY_BATCH_SET_REPLY& reply,
- std::string& error_msg
- );
- struct BATCH_STATUS {
- int id;
- char name[256];
- char app_name[256];
- int state;
- int njobs;
- int nerror_jobs;
- double fraction_done;
- double create_time;
- double expire_time;
- double est_completion_time;
- double completion_time;
- double credit_estimate;
- double credit_canonical;
- BATCH_STATUS(){}
- int parse(XML_PARSER&);
- void print();
- };
- extern int query_batches(
- const char* project_url,
- const char* authenticator,
- std::vector<BATCH_STATUS>& batches,
- std::string& error_msg
- );
- struct JOB_STATE {
- int id;
- char name[256];
- int canonical_instance_id;
-
- int n_outfiles;
- JOB_STATE(){}
- int parse(XML_PARSER&);
- void print();
- };
- extern int query_batch(
- const char* project_url,
- const char* authenticator,
- int batch_id,
- const char batch_name[256],
- std::vector<JOB_STATE>& jobs,
- std::string& error_msg
- );
- extern int get_output_file(
- const char* project_url,
- const char* authenticator,
- const char* job_name,
- int file_num,
- const char* dst_path,
- std::string& error_msg
- );
- extern int abort_jobs(
- const char* project_url,
- const char* authenticator,
- std::vector<std::string> &job_names,
- std::string& error_msg
- );
- extern int query_completed_job(
- const char* project_url,
- const char* authenticator,
- const char* job_name,
- COMPLETED_JOB_DESC&,
- std::string& error_msg
- );
- extern int get_templates(
- const char* project_url,
- const char* authenticator,
- const char* app_name,
- const char* job_name,
- TEMPLATE_DESC&,
- std::string& error_msg
- );
- extern int retire_batch(
- const char* project_url,
- const char* authenticator,
- const char* batch_name,
- std::string& error_msg
- );
- extern int set_expire_time(
- const char* project_url,
- const char* authenticator,
- const char* batch_name,
- double expire_time,
- std::string& error_msg
- );
- extern int ping_server(
- const char* project_url,
- std::string& error_msg
- );
- #endif
|