mirror of https://github.com/BOINC/boinc.git
46 lines
1.5 KiB
PHP
46 lines
1.5 KiB
PHP
<?php
|
|
require_once("docutil.php");
|
|
page_head("Result assimilation");
|
|
echo "
|
|
Projects must create one assimilator program per application.
|
|
This is done by linking the program <b>sched/assimilate.C</b>
|
|
with an application-specific function of the form
|
|
<pre>
|
|
int assimilate_handler(
|
|
WORKUNIT& wu, vector<RESULT>& results, RESULT& canononical_result
|
|
);
|
|
</pre>
|
|
|
|
This is called when either
|
|
<ul>
|
|
<li> The workunit has a nonzero
|
|
<a href=work.php>error mask</a>
|
|
(indicating, for example, too many error results).
|
|
In this case the handler might write a message to a log
|
|
or send an email to the application developer.
|
|
<li> The workunit has a canonical result.
|
|
In this case wu.canonical_resultid will be nonzero,
|
|
canonical_result will contain the canonical result.
|
|
Your handler might, for example, parse the canonical result's
|
|
output file and write its contents to a separate database.
|
|
</ul>
|
|
In both cases the 'results' vector will be populated with
|
|
all the workunit's results (including unsuccessful and unsent ones).
|
|
All files (both input and output) will generally be on disk.
|
|
<p>
|
|
It's possible that both conditions might hold.
|
|
<p>
|
|
If assimilate_handler() returns zero,
|
|
the workunit record will be marked as assimilated.
|
|
If assimilate_handler() returns nonzero,
|
|
the assimilator will print an error message and exit.
|
|
Typically you should do this in any error situation.
|
|
<p>
|
|
You can use BOINC's
|
|
<a href=backend_util.php>back-end utility functions</a>
|
|
to get file pathnames and open files.
|
|
|
|
";
|
|
page_tail();
|
|
?>
|