The key data structures in the core client are as follows.
Basic types:
PROJECT
APP
FILE_INFO
APP_VERSION
IO_FILE_DESC
WORKUNITContains 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.
RESULTContains status information about result including state, total CPU time, deadline, etc. Also points to the workunit, application and project the result is associated with.
PREFSContains a vector of PROJECTs, summarizing the prefs.xml file. Also contains user preferences.
CLIENT_STATEContains 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.