Header Files
Please carefully follow the scheme defined below as it permits in
general only two header file includes per C
file, and thus vastly
simplifies programming. With a large complex project like Bacula, it
isn’t always easy to ensure that the right headers are invoked in the
right order (there are a few kludges to make this happen – i.e. in a few
include files because of the chicken and egg problem, certain references
to typedefs had to be replaced with void).
Every file should include bacula.h
. It pulls in just about
everything, with very few exceptions. If you have system dependent
ifdefing, please do it in baconfig.h
. The version number and date
are kept in version.h
.
Each of the subdirectories (console
, cats
, dird
, filed
,
findlib
, lib
, stored
, …) contains a single directory
dependent include file generally the name of the directory, which should
be included just after the include of bacula.h
. This file (for
example, for the dird directory, it is dird.h
) contains either
definitions of things generally needed in this directory, or it includes
the appropriate header files. It always includes protos.h
. See
below.
Each subdirectory contains a header file named protos.h
, which
contains the prototypes for subroutines exported by files in that
directory. protos.h
is always included by the main directory
dependent include file.
Possible Next Steps
Go to Programming Standards.
Go back to Developer Notes.
Go back to Developer Guide.