Ignoring the #ifdef ... #endif macros surrouning the header files (these macros were included to be synchronized with configure checks and eventually run different header inclusions on different environments), and the #include <config.h> that is a header generated during the configuration process and that basically defines the variables used for the #ifdef ... #endif macros, the whole application only requires 5 header files.
From these header files, jaula.h is the header file that contains all the definitions required for JAULA and, if the only application requirements were solely for JAULA library, no other header files should be required.
But, as the application has to do some additional work, some other system headers were included for the reasons explained below.
- memory
- This header is part of the STL library and was included to provide the
std::auto_ptrtemplate that will get the application rid of manually freeing the memory associated to the data values read from the json files. - fstream
- This header is part of the STL library and was included to provide the classes for dealing with file streams as JAULA always receives data from streams so, JSON files must be read from it.
- iostream
- This header is part of the STL library and was included to provide the classes for dealing with standard output as a stream as JAULA always write data to streams so, jparse output must be sent through it.
- string
- This header is part of the STL library and was included to provide the classes for dealing with character strings. This header is not really mandatory as JAULA uses it and this header is automatically included by the time
jaula.his included.
RSS Feeds
JAULA header directory
As you may notice by looking into it,
jaula.his the only header required to be included in an application that pretends to use JAULA because it includes each of the several headers that comprise the library. All these headers are located in a jaula directory at the same level than thejaula.hfile.This "master header" releases the user of the need of determining exactly which headers are required at each step and permits changes on the names and quantities of the specific headers created by each library revision.
For this header to work, the directory where all the specific headers are located must be accesible through the header search path of the compiler.
If a standard installation has been performed on an standard environment, the interface headers (
jaula.hand specific ones) will be automatically placed at the right locations. But in case a non standard installation has been performed, the directory where thejaula.hand the jaula directory are must be declared during compilation by means of the-Icompiler option.