Struct ProcessingContext¶
Defined in File gaussian_extractor.h
Struct Documentation¶
-
struct ProcessingContext¶
Complete context for thread-safe file processing operations.
The ProcessingContext encapsulates all resources, parameters, and state needed for safe multi-threaded processing of Gaussian log files. It provides shared access to resource managers and maintains processing parameters consistent across all worker threads.
Design¶
Immutable after construction to prevent race conditions
Shared resource managers for coordinated resource usage
Integration with job scheduler resource limits
Parameter validation and safe defaults
Management¶
The context owns shared resource managers that coordinate access to:
System memory through MemoryMonitor
File handles through FileHandleManager
Error collection through ThreadSafeErrorCollector
Note
All resource managers are thread-safe and can be accessed simultaneously from multiple processing threads
Public Functions
-
inline ProcessingContext(double temp, int C, bool use_temp, unsigned int thread_count = 1, const std::string &ext = ".log", size_t max_file_mb = DEFAULT_MAX_FILE_SIZE_MB, const JobResources &job_res = JobResources{})¶
Constructor with parameter validation and resource setup.
Creates a complete processing context with:
Optimally configured resource managers
Validated processing parameters
Integration with job scheduler limits
Thread-safe resource sharing setup
Note
Memory limits are automatically calculated based on thread count and available system resources
- Parameters:
temp – Base temperature for thermodynamic calculations (K)
C – Concentration for phase corrections (mM)
use_temp – Whether to use temperatures from input files
thread_count – Number of processing threads to use
ext – File extension to process (default: “.log”)
max_file_mb – Maximum individual file size in MB (default: 100)
job_res – Job scheduler resource information
Public Members
-
std::shared_ptr<MemoryMonitor> memory_monitor¶
Shared memory usage monitor.
-
std::shared_ptr<FileHandleManager> file_manager¶
Shared file handle manager.
-
std::shared_ptr<ThreadSafeErrorCollector> error_collector¶
Shared error collector.
-
double base_temp¶
Base temperature for calculations (K)
-
int concentration¶
Concentration for phase corrections (mM)
-
bool use_input_temp¶
Whether to use temperature from input files.
-
std::string extension¶
File extension to process.
-
unsigned int requested_threads¶
Number of requested processing threads.
-
size_t max_file_size_mb¶
Maximum individual file size in MB.
-
JobResources job_resources¶
Job scheduler resource information.