Avida-Core Library

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

Comments are closed.