File config_manager.h¶
↰ Parent directory (utilities
)
Configuration management system for Gaussian Extractor.
Definition (utilities/config_manager.h
)¶
Detailed Description¶
Le Nhan Pham
2025
This header defines a comprehensive configuration management system that handles loading, parsing, validation, and access to configuration settings from files and command-line overrides. The system supports hierarchical configuration with defaults, user preferences, and runtime overrides.
Sources
Configuration values are loaded from multiple sources in priority order:
Built-in defaults (lowest priority)
System-wide configuration files
User-specific configuration files
Command-line overrides (highest priority)
Sources
Settings are organized into logical categories:
GENERAL: Basic application behavior
EXTRACT: Data extraction parameters
JOB_CHECKER: Job status checking options
PERFORMANCE: Threading and resource limits
OUTPUT: Formatting and display preferences
Organization
Configuration files use a simple key=value format with:
Comments starting with # character
Section headers for organization
Type-safe value conversion and validation
Support for various data types (string, int, double, bool)
Safety
The configuration system is designed for single-threaded initialization followed by read-only access from multiple threads. Write operations during runtime are supported but should be used carefully in multi-threaded environments.
Includes¶
fstream
string
unordered_map
vector