// This file is part of BOINC. // http://boinc.berkeley.edu // Copyright (C) 2008 University of California // // BOINC 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 3 of the License, or (at your option) any later version. // // BOINC 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. // // You should have received a copy of the GNU Lesser General Public License // along with BOINC. If not, see . #define NEW_SCORE #ifdef NEW_SCORE struct JOB { int index; int result_id; double score; APP* app; BEST_APP_VERSION* bavp; bool get_score(WU_RESULT&); }; #else #include struct JOB { int index; double score; double est_time; double disk_usage; APP* app; BEST_APP_VERSION* bavp; bool get_score(); }; struct JOB_SET { double work_req; double est_time; double disk_usage; double disk_limit; int max_jobs; std::list jobs; // sorted high to low JOB_SET() { work_req = g_request->work_req_seconds; est_time = 0; disk_usage = 0; disk_limit = g_wreq->disk_available; max_jobs = g_wreq->max_jobs_per_rpc; } void add_job(JOB&); double higher_score_disk_usage(double); double lowest_score(); inline bool request_satisfied() { return est_time >= work_req; } void send(); }; #endif extern void send_work_score();