/*  @file pmConfigDump.h
 *  @brief Configuration dumping function
 *
 *  @author Paul Price, IfA
 *
 *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
 *  @date $Date: 2008-08-13 02:32:35 $
 *  Copyright 2005-2006 Institute for Astronomy, University of Hawaii
 */

#ifndef PM_CONFIG_DUMP_H
#define PM_CONFIG_DUMP_H

#include <pmConfig.h>
#include <pmFPA.h>

/// @addtogroup Config Configuration System
/// @{

/// Cull recipes from the configuration file, apart from the ones listed
bool pmConfigRecipesCull(pmConfig *config, ///< Configuration
                         const char *save ///< List of recipes to save, comma-separated
    );

/// Cull cameras from the configuration file, apart from the one in use
bool pmConfigCamerasCull(pmConfig *config, ///< Configuration
                         const char *additional ///< List of additional cameras to save, comma-separated
    );

/// Dump the configuration to a file
///
/// The output file is designated by the CONFIG.DUMP metadata in the system configuration, keyed by the FPA
/// level of the supplied source.  In addition to the standard concept interpolation, additional
/// interpolations are defined: "{PROGRAM}" is interpolated to the program name, "{TIMESTAMP}" is interpolated
/// to the current time (ISO format).
bool pmConfigDump(const pmConfig *config, ///< Configuration to dump
                  const pmFPA *source,  ///< Source FPA, defines the level for the file rule
                  const char *outroot   ///< Output root name
    );



/// @}
#endif
