Startup and status data
Getting startup data
The following functions return startup data:
int boinc_get_init_data_p(APP_INIT_DATA*); int boinc_get_init_data(APP_INIT_DATA&); struct APP_INIT_DATA { int major_version; // BOINC client version info int minor_version; int release; int app_version; char app_name[256]; char symstore[256]; // symstore URL (Windows) char acct_mgr_url[256]; // if client is using account manager, its URL char* project_preferences; // project prefs XML int userid; // project's DB ID for this user/team/host int teamid; int hostid; char user_name[256]; char team_name[256]; char project_dir[256]; // where project files are stored on host char boinc_dir[256]; // BOINC data directory char wu_name[256]; // workunit name char result_name[256]; char authenticator[256]; // user's authenticator int slot; // the slot this job is running in (0, 1, ...) int client_pid; // process ID of BOINC client double user_total_credit; double user_expavg_credit; double host_total_credit; double host_expavg_credit; double resource_share_fraction; // this project's resource share frac HOST_INFO host_info; PROXY_INFO proxy_info; // in case app wants to use network GLOBAL_PREFS global_prefs; double starting_elapsed_time; // elapsed time, counting previous episodes bool using_sandbox; // client is using account-based sandboxing // info about the WU double rsc_fpops_est; double rsc_fpops_bound; double rsc_memory_bound; double rsc_disk_bound; double computation_deadline; // the following are used for compound apps, // where each stage of the computation is a fixed fraction of the total. // double fraction_done_start; double fraction_done_end; // info for GPU apps // char gpu_type[64]; int gpu_device_num; int gpu_opencl_dev_index; double gpu_usage; // APP_VERSION.gpu_usage.usage // info for multicore apps: how many cores to use // double ncpus; // client configuration info // bool vbox_window; // whether to open a console window for VM apps // Items used by the BOINC runtime system // double checkpoint_period; // recommended checkpoint period SHMEM_SEG_NAME shmem_seg_name; double wu_cpu_time; // cpu time from previous episodes };
Getting runtime system status
The status of the runtime system is represented by the following structure:
typedef struct BOINC_STATUS { int no_heartbeat; int suspended; int quit_request; int reread_init_data_file; int abort_request; double working_set_size; double max_working_set_size; int network_suspended; } BOINC_STATUS;
- no_heartbeat
- no heartbeat from client; clean up and exit(0).
- suspended
- the client has requested that we suspend ourself.
- quit_request
- the client has requested that we exit (will restart). reread_init_data_file: project preferences have changed; reread them if needed. abort_request: the client has request that we abort (no restart).
- working_set_size
- our current working-set size
- max_working_set_size
- the amount of available RAM
- network_suspended
- set of network activity is not currently allowed
You can get the current status using
void boinc_get_status(BOINC_STATUS*);
Last modified 10 years ago
Last modified on Jan 26, 2015, 1:25:14 PM