The Avida-Core library is the heart of Avida. It consists of the base classes and core functionality that hooks everything together.
Directory Structure
The following sections provide a high level overview of the directory structure within the Avida-Core submodule.
- Headers – /include
-
- Public – /include/public/avida
-
Publicly exported header files.
- core – /include/public/avida/core
- Core functionality of the Avida API, including all top level members of the Avida namespace.
- data – /include/public/avida/data
- The Data provider/recorder framework (the Avida::Data namespace).
- environment – /include/public/avida/environment
- The Environment framework (the Avida::Environment namespace).
- systematics – /include/public/avida/data
- The Systematics classification framework (the Avida::Systematics namespace).
- Private – /include/private/avida/private
- Internal implementation header files. The subdirectories are the same as the public headers, but are not exported for use outside of the library.
- Source – /source
-
The files in this directory include all of the implementation files of the Avida-Core library. Eventually the subdirectories in here will exactly match the public/private header files. During refactoring, however, there are a number of additional subdirectories.
- actions – /source/actions
- Contains various source files that define action classes that are usable as schedule events and analyze commands. Also contains the cActionLibrary responsible for instantiating objects based on cString names.
- analyze – /source/analyze
- Contains classes responsible for performing and managing data from detailed analyses.
- cpu – /source/cpu
- Files and classes used to implement all of the virtual hardware within the Avida software.
- main – /source/main
- Contains all of the core classes that define the world and the population within it.
- targets – /source/targets
- Target (executable) specific source code. The source code of the NCurses viewer resides in the avida-viewer/ subdirectory.
- tools – /source/tools
- Contains a number of generic tools classes, including custom data structures and robust string manipulation classes.
- Support – /support
- Sample configuration files and other resources.
Last updated: March 1, 2012