Split out ascii_io, variant_preprocessor, and variant_reporting classes into separate headers/srcs, one per class. This makes maintenance and understanding easier, with an eye to supporting configuration-from-database that SuperNEMO will need. This requires clearer use and understanding of the variant_preprocessor and its interaction with other parts of the configuration system (kernel, path expansion, assumption of filesystem).
There is no change to interfaces other than the addition of a constructor to variant_preprocessor taking the repository
to be used along with the flags. This allows clients to avoid using the datatools kernel, if they need, and to follow
"construction is initialization" as recommended by the ISO C++ Guidelines.
The datatools/configuration/io.h header is retained so clients of these classes do not need to change #includes. It simply forwards to the three new headers.
Modernization following ISO C++ Guidelines has also been done with:
Split out
ascii_io
,variant_preprocessor
, andvariant_reporting
classes into separate headers/srcs, one per class. This makes maintenance and understanding easier, with an eye to supporting configuration-from-database that SuperNEMO will need. This requires clearer use and understanding of thevariant_preprocessor
and its interaction with other parts of the configuration system (kernel, path expansion, assumption of filesystem).There is no change to interfaces other than the addition of a constructor to
variant_preprocessor
taking the repository to be used along with the flags. This allows clients to avoid using the datatools kernel, if they need, and to follow "construction is initialization" as recommended by the ISO C++ Guidelines.The
datatools/configuration/io.h
header is retained so clients of these classes do not need to change#includes
. It simply forwards to the three new headers.Modernization following ISO C++ Guidelines has also been done with: