Class ThreadSafeErrorCollector

Class Documentation

class ThreadSafeErrorCollector

Thread-safe collection and management of error and warning messages.

The ThreadSafeErrorCollector provides a centralized, thread-safe mechanism for collecting error and warning messages from multiple processing threads. It ensures that messages are properly synchronized and can be safely retrieved for display or logging.

Safety

All methods use internal synchronization to ensure thread safety:

  • Multiple threads can add messages simultaneously

  • Message retrieval is atomic and returns consistent snapshots

  • No external synchronization is required by users

Categories

  • Errors: Critical issues that prevent successful processing

  • Warnings: Non-critical issues that users should be aware of

Note

Error and warning collections are maintained separately to allow different handling and display strategies for each category

Public Functions

void add_error(const std::string &error)

Add an error message to the collection.

Thread-safe addition of error messages. Multiple threads can call this method simultaneously without external synchronization.

Note

Error messages indicate critical issues that prevent successful completion of operations

Parameters:

error – Error message to add

void add_warning(const std::string &warning)

Add a warning message to the collection.

Thread-safe addition of warning messages. Multiple threads can call this method simultaneously without external synchronization.

Note

Warning messages indicate non-critical issues that users should be aware of but don’t prevent operation completion

Parameters:

warning – Warning message to add

std::vector<std::string> get_errors() const

Retrieve all collected error messages.

Returns a snapshot of all error messages collected so far. The returned vector is a copy and can be safely used without additional synchronization.

Returns:

Vector containing all error messages

std::vector<std::string> get_warnings() const

Retrieve all collected warning messages.

Returns a snapshot of all warning messages collected so far. The returned vector is a copy and can be safely used without additional synchronization.

Returns:

Vector containing all warning messages

bool has_errors() const

Check if any error messages have been collected.

Thread-safe check for the presence of error messages. Useful for determining if operations completed successfully.

Returns:

true if errors exist, false otherwise

void clear()

Clear all collected messages.

Removes all error and warning messages from the collections. Thread-safe operation that can be called to reset the collector for reuse in subsequent operations.