Core Client: Data Structures

The key data structures in the core client are as follows.

Basic types:

PROJECT
APP
FILE_INFO
APP_VERSION
IO_FILE_DESC
WORKUNIT
Contains execution information about workunit including command line arguments, environment variables and required input files. Also points to the application, app version and project the workunit is associated with.
RESULT
Contains status information about result including state, total CPU time, deadline, etc. Also points to the workunit, application and project the result is associated with.
PREFS
Contains a vector of PROJECTs, summarizing the prefs.xml file. Also contains user preferences.
CLIENT_STATE
Contains vectors of all the basic types. These are crossed-linked with pointers; for example, APP_VERSION has a pointer to FILE_INFO. Also contains FSM sets for network connections, HTTP operations, file transfers, persistent file transfers, and active tasks.