Version 1.3
@RATDB index is now a string (actually identifier syntax, no spaces, etc)
instead of an integer, which isn't very useful in practice, unless your
language doesn't have a good string datatype.
date 2005.11.03.21.47.39; author volsung; state Exp;
Version 1.2
@Slight modification to the RATDB API. Instead of directly receiving
RATDBLink pointers, users get a RATDBLinkPtr, which is a "smart
pointer." The smart pointer will free the link object when there are no
more references to it. No one else has to worry about it.
Also fixed the destructor interaction between RATDBLink and RATDB
objects. Bug existed before where crashes could occur if the
database object was destroyed before the associated link objects. Now
they can be deleted in any order.
date 2005.09.20.12.03.55; author volsung; state Exp;
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: Thu Nov 3 15:48:00 CST 2005