Speaker
Dr
David Lawrence
(Jefferson Lab)
Description
The JLab Introspection Library (JIL) provides a level of introspection for C++
enabling object persistence with minimal user effort. Type information is extracted
from an executable that has been compiled with debugging symbols. The compiler itself
acts as a validator of the class definitions while enabling us to avoid implementing
an alternate C++ preprocessor to generate dictionary information. The dictionary
information is extracted from the executable and stored in an XML format. C++
serializer methods are then generated from the XML. The advantage of this method is
that it allows object persistence to be incorporated into existing projects with
minimal or, in some cases, no modification of the existing class definitions (e.g.
storing only public data members). While motivated by a need to store high volume
event-based data, configurable features allow for easy customization making it a
powerful tool for a wide variety of projects.
Author
Dr
David Lawrence
(Jefferson Lab)
Co-author
Dr
Elliott Wolin
(Jefferson Lab)