trickle messages includes both client-side and server-side components.
int boinc_send_trickle_up(char* variety, char* text)
To receive a trickle-down message, call
int boinc_receive_trickle_down(char* buf, int len)
This returns true (nonzero) if there was a message.
To handle trickle-up messages, use a 'trickle_handler' daemon. This is a program, based on sched/trickle_handler.C, linked with a function ",html_text(" int handle_trickle(MSG_FROM_HOST&); struct MSG_FROM_HOST { int create_time; int hostid; char variety[256]; // project-defined; what kind of msg char xml[MSG_FROM_HOST_BLOB_SIZE]; }; ")," This function should return zero if the message was handled successfully; otherwise it will be retried later. The 'hostid' field identifies the host from which the message was sent. The daemon must be passed a '-variety X' command-line argument, telling it what kind of messages to handle. The daemon should be specified in the project configuration file.
To send send trickle-down messages
(from a trickle handler daemon or other program)
you must insert a record in the 'msg_to_host' table.
From C/C++, this is done as follows:
",html_text("
DB_MSG_TO_HOST mth;
mth.clear();
mth.create_time = time(0);
mth.hostid = hostid;
sprintf(mth.xml,
\"
To send trickle-down messages, a project must include the line
<msg_to_host/>in the configuration (config.xml) file. "; page_tail(); ?>