## Geners Tools

The "tools" subdirectory of the "geners" package includes several programs which can be used to examine the contents of object archives and catalogs. By default, these programs are compiled during the normal package installation procedure but they are not installed in any other location on your computer. If invoked without any arguments, each program prints its usage instructions to the standard output.
cdump — "Catalog dump". This program can be used to print catalog contents to the standard output and to collect item type summaries.
gssa_dump — "Catalog dump for .gssa or .gssaz files". This program can be used to print catalogs of string archives saved in dedicated binary files. The convention here is to use extension .gssa (Generic Serialization String Archive) for such files without compression and .gssaz with compression.
cmerge — "Catalog merge". This program can be used to merge contents of multiple catalogs. The resulting catalog can be treated as a single combined "geners" archive. Object data files included as members of the new combined archive do not have to be modified.
gssa_merge — "String archive merge". This program can be used to merge contents of multiple .gssa or .gssaz files into a single archive.
crecover — "Catalog recover". This program can be used to recover catalog data from binary archive data files if a copy of the catalog was merged into the data stream. This mode of archive operation is useful mainly in the code development process, so that the catalog can be recovered in case of an unexpected program crash.
print_items — This program can be used to fetch items from an archive and to print them to the standard output. It is expected that this particular program will be extended by the users as they develop their own classes (see comments at the beginning of file "print_items.cc"). In its original form, the program can only print C++ strings and built-in numeric types.
template_io_boilerplate — This program generates a boilerplate header file for serializing templates that can not be modified by the user (i.e., coming from an external library).