START PAGE LATEST NEWS DOWNLOAD INSTALLING FOR USERS DEVELOPMENT STATISTICS SEND QUESTION NOTIFY BUG THANKS FOR ABOUT ME NEWS FEED
Boinc client tech notes

Last update: 2013-06-20

I introduced two important modules into boinc client. In this page I describe shortly these modules and their purposes:

ClientMonitor - monitors event inside BOINC client.

This module just sends event to manager through new communication channel (in the port 31417). Currently I defined only 6 events, whose can be sent to manager:

Format of the message:

<reply>
    <type>{code}</type>
    <project>{project_url}</project>
    <suspend_reason>{suspend_reason}</suspend_reason>
</reply>

suspend_reason field contains code which determines suspend reason. All suspend reason codes are in 'lib/common_defs.h' file in boinc client sources. Suspend reason field is filled for SUSPEND_ALL_TASK event. Now NativeBOINC is using a 'suspend_reason' field to detecting CPU throttling by BOINC, which will be ignored during displaying notifications (notifications won't be displayed).

First event is used during installation. After receiving ATTACH_PROJECT NativeBOINC manager installs binaries of the new project (if exists in the my repository). Rest of events excluding DETACH_PROJECT are used to power management by NativeBOINC manager (triggers holding or releasing wake locks).

I introduced 'auth_monitor' GUI RPC request for performing monitor authorization (see code).

GUI RPC extensions:

Modified or introduced sources codes (client directory):

Update_apps - updates binaries of application for specified project

This is my GUI RPC extension. Allows to installation of the project binaries during client work. Copies files from 'updates/project_dir' directory to 'projects/project_dir' directory with applying permissions for executables. Also suspends tasks when tasks of specified project were ran. After updates resumes suspended tasks.

I added two new GUI RPC extensions:

Retrieving a battery state from foreign application

New GUI RPC extension is 'battery_info' allow to sending to BOINC client informations about battery by a foreign application. Can be used when BOINC client can't detect battery type.

modified or introduced sources codes (client directory):

Minor changes

I also performed minor changes in host_info_unix.cpp (detection of extensions and multicore), prefs.* (new Global preferences for battery management), boinc_api (fix bug with suspending of the tasks).


Comments:

Nickname: