/usr/include/facter/util/config.hpp is in facter-dev 3.10.0-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | /**
* @file
* Declares methods for interacting with Facter's config file.
*/
#pragma once
#include "../export.h"
#include <hocon/config.hpp>
#include <boost/program_options.hpp>
namespace facter { namespace util { namespace config {
/**
* Parses the contents of Facter's config file from its default location
* for the current operating system.
* @return HOCON config object, or nullptr if no file was found
*/
LIBFACTER_EXPORT hocon::shared_config load_default_config_file();
/**
* Returns the default location of the config file.
* @return the absolute path to the default config file
*/
LIBFACTER_EXPORT std::string default_config_location();
/**
* Parses the contents of the config pile at the specified path.
* @param config_path the path to the config file
* @return HOCON config object, or nullptr if no file was found
*/
LIBFACTER_EXPORT hocon::shared_config load_config_from(std::string config_path);
/**
* Loads the "global" section of the config file into the settings map.
* @param hocon_config the config object representing the parsed config file
* @param vm the key-value map in which to store the settings
*/
LIBFACTER_EXPORT void load_global_settings(hocon::shared_config hocon_config, boost::program_options::variables_map& vm);
/**
* Loads the "cli" section of the config file into the settings map.
* @param hocon_config the config object representing the parsed config file
* @param vm the key-value map in which to store the settings
*/
LIBFACTER_EXPORT void load_cli_settings(hocon::shared_config hocon_config, boost::program_options::variables_map& vm);
/**
* Loads the "blocklist" section of the config file into the settings map.
* @param hocon_config the config object representing the parsed config file
* @param vm the key-value map in which to store the settings
*/
LIBFACTER_EXPORT void load_fact_settings(hocon::shared_config hocon_config, boost::program_options::variables_map& vm);
/**
* Returns a schema of the valid global options that can appear in the config file.
* @return names, values, and descriptions of global Facter options
*/
LIBFACTER_EXPORT boost::program_options::options_description global_config_options();
/**
* Returns a schema of the valid config file options affecting Facter's command line interface.
* @return names, values, and descriptions of command line options
*/
LIBFACTER_EXPORT boost::program_options::options_description cli_config_options();
/**
* Returns a schema for options dealing with block fact collection.
* @return names, values, and descriptions of fact blocking config options
*/
LIBFACTER_EXPORT boost::program_options::options_description fact_config_options();
/**
* Returns a map of resolver names and durations (in milliseconds). The listed resolvers will
* have their output cached, then re-resolved no more frequently than the given interval.
* @param hocon_config the config object representing the parsed config file
* @return a map of resolvers to time-to-live durations (in milliseconds)
*/
LIBFACTER_EXPORT std::unordered_map<std::string, int64_t> load_ttls(hocon::shared_config hocon_config);
/**
* Returns the directory of the fact cache.
* @return the absolute path to the fact cache
*/
LIBFACTER_EXPORT std::string fact_cache_location();
}}} // namespace facter::util::config
|