// -*-C++-*-
// Copyright © 2011, 2012, 2014-2016, 2019 Richard Kettlewell.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
#ifndef CONF_H
#define CONF_H
/** @file Conf.h
* @brief Program configuration and state
*
* Configuration and state, which are not well-separated, are organized into a
* tree structure.
*
* Nodes that take part in configuration inheritance derive from @ref ConfBase.
* This class captures inheritable configuration and, in its constructor,
* implements that inheritance from parent nodes.
*
* The root node has type @ref Conf. As well as the inheritable configuration
* this contains the global configuration.
*
* The children of the @ref Conf node are of type @ref Host (a host that may be
* backed up), @ref Device (a physical backup device) and @ref Store (a mount
* point at which a backup device may be found). @ref Host participates in
* configuration inheritance; the others do not.
*
* The children of the @ref Host nodes are all of type @ref Volume (a volume
* within a host), which participates in configuration inheritance. Finally
* the children of the @ref Volume nodes are of type @ref Backup (a single
* backup of some value on some device at a particular time).
*/
#include
#include