|
Template Numerical Library version\ main:0b2c40f
|
Abstract base class for benchmark result loggers. More...
#include <TNL/Benchmarks/Logging.h>
Public Types | |
| using | HeaderElements = std::vector< std::string > |
| using | MetadataColumns = std::vector< MetadataElement > |
| using | MetadataElement = std::pair< std::string, std::string > |
| using | RowElements = LoggingRowElements |
Public Member Functions | |
| Logging (std::ostream &log, int verbose=1) | |
| Constructs logger with output stream. | |
| const MetadataColumns & | getMetadataColumns () const |
| Gets current metadata columns. | |
| int | getVerbose () const |
| Gets current verbosity level. | |
| virtual void | logResult (const std::string &performer, const HeaderElements &headerElements, const RowElements &rowElements, const std::string &errorMessage="")=0 |
| Logs a benchmark result row. | |
| virtual void | setMetadataColumns (const MetadataColumns &elements) |
| Sets all metadata columns at once. | |
| virtual void | setMetadataElement (const typename MetadataColumns::value_type &element, int insertPosition=-1) |
| Updates or adds a single metadata element. | |
| void | setVerbose (int verbose) |
| Sets verbosity level. | |
| void | syncMetadata (Logging &other) |
| Copies metadata from another logger instance. | |
| virtual void | writeErrorMessage (const std::string &message)=0 |
| Logs an error message. | |
Protected Attributes | |
| bool | header_changed = true |
| std::ostream & | log |
| MetadataColumns | metadataColumns |
| int | verbose = 0 |
Abstract base class for benchmark result loggers.
Provides common functionality for logging benchmark results to various outputs (files, terminals, etc.). Supports metadata tracking and configurable verbosity levels.
|
inline |
Constructs logger with output stream.
Enables exceptions on the output stream for error detection.
| log | Output stream (file, cout, etc.) |
| verbose | Verbosity level (0=silent, 1=normal, 2=verbose) |
|
inlinenodiscard |
Gets current metadata columns.
|
inlinenodiscard |
Gets current verbosity level.
|
pure virtual |
Logs a benchmark result row.
Must be implemented by derived classes. Called after each measurement.
| performer | Name of implementation being tested |
| headerElements | Column names |
| rowElements | Formatted row values |
| errorMessage | Optional error description (empty if success) |
Implemented in TNL::Benchmarks::JsonLogging, and TNL::Benchmarks::TerminalLogger.
|
inlinevirtual |
Sets all metadata columns at once.
Tracks changes to detect when headers need updating.
| elements | Vector of key-value metadata pairs |
|
inlinevirtual |
Updates or adds a single metadata element.
If the key already exists, updates its value. Otherwise adds new entry. Negative insertPosition values count from the end.
| element | Key-value pair to set |
| insertPosition | Insert position (-1=end, -2=second-to-last, etc.) |
|
inline |
Sets verbosity level.
| verbose | Verbosity: 0=silent, 1=normal, 2=verbose |
|
inline |
Copies metadata from another logger instance.
Used to synchronize state between multiple loggers.
| other | Source logger to copy from |
|
pure virtual |
Logs an error message.
Must be implemented by derived classes. Called when benchmark fails.
| message | Error description |
Implemented in TNL::Benchmarks::JsonLogging, and TNL::Benchmarks::TerminalLogger.