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:

  1. Built-in defaults (lowest priority)

  2. System-wide configuration files

  3. User-specific configuration files

  4. 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

Included By

Namespaces

Classes

Enums

Defines

Variables