Skip to content

C++ APIs and Library Structure

markito3 edited this page Dec 7, 2015 · 1 revision
 +------------------+      +------------------+
 |   C++ User API   |  --  |     JANA API     |
 +------------------+      +------------------+
           |
+----------------------+
| Internal C++ Library |
+----------------------+

The CCDB C++ implementation consists of three separate libraries (see the figure above).

  • C++ User API - This library provides the basic API for C++ developers. It has no code specific to JANA. The API provides functionality to get constants and it automates connections, multi-threading, data source selection, etc.

  • JANA API - This library integrates CCDB and the JANA framework. The JANA API is shipped with the JANA distribution. Architecturally it is based on the C++ User API.

  • Internal C++ Library - This library is considered internal and should only be interesting for those contributing to further development of the CCDB. Application developers should not use classes from this library directly.

The Internal C++ Library is subject to change, for example for better CCDB performance or maintainability. In general, changes in this library will not affect code that uses the higher level APIs.