Version 1.1
@Initial implementation of RATDB, a database of parameters. (To be
used for holding all the physical constants, switches, tunable
parameters, etc. in RAT.)
Advantages over GLG4param:
* Split parameter namespace into two levels, tables and fields, for
easier organization of large amounts of data.
* Parameters can be integers, floats, doubles, strings, and arbitrary
length arrays of the same types. Integers can be input in
hexadecimal notation.
* Ability for users to override some default parameters by loading
their own files or setting individual parameters.
* API designed with the intention of growing the implementation into a
more complete database system with data validity ranges (parameters
that change over time) and a SQL backend if the need should arise
someday.
This version includes the text backend, which allows parameters to be
stored in a human-readable text file format inspired by, but not
compliant with, JSON.
The in-memory storage uses a hash table implementation from STL+ 2.3
and a string hashing algorithm from Python 2.4.1. (Why wasn't STL
designed with this in the first place?!) Lots of STL+ classes came
along for the ride, and they may be useful in the future.
Also included are unit tests for the text parser and database API.
All tests pass on Mac OS X+gcc 4.0, Linux+gcc 3.4/2.96, and Sun CC 5.3.
date 2005.09.18.04.11.58; author volsung; state Exp;
Matthew Worcester Last modified: Sat Sep 17 23:12:00 CDT 2005