Overview

The repository is split into two C++ modules, plus this user manual.

Directory

Installed artefact

Contents

defs/

libifwFndDefs.so + headers under ifw/fnd/defs/

Core declarations: Logger, FND* macros, FNDLOC, ICommAdapter, DataType, FITS helpers, timing utilities. This is the module 99 % of consumers need.

tools/

libifwFndTools.so + headers under ifw/fnd/tools/

Higher-level helpers built on top of defs/ (loop-frequency calculator and similar small utilities).

doc/

Sphinx manual under ${DOCDIR}/sphinx/

This document.

The header layout

ifw/fnd/
+-- defs/
|    +-- base.hpp          # entry-point header -- include this
|    +-- logger.hpp        # FND* macros, ScopedTracer, Logger
|    +-- iCommAdapter.hpp  # ICommAdapter contract (Address, Value, ...)
|    +-- dataType.hpp      # DataType enum + helpers
|    +-- fits.hpp          # BaseFitsio, DataType <-> FITS mapping
+-- tools/
     +-- tools.hpp         # ifw::fnd::tools::* helpers

The single entry-point header

Consumers include one header:

#include <ifw/fnd/defs/base.hpp>

That pulls in everything else in the right order. In particular it pulls in logger.hpp after defining FNDLOC, so the FND* macros work at every call site. Including logger.hpp directly is not supported and will manifest as FNDTRACE not declared in this scope style errors.

Library wdep contracts

The installed wdep files declare the link/include contract that downstream waf projects pick up via cnf.check_wdep:

wdep name

INCLUDES

LIB

ifw-fnd.defs

$INTROOT/include

ifwFndDefs

ifw-fnd.tools

$INTROOT/include

ifwFndTools

See Build and install for how to consume these from your own project.