![]() |
OpenSWMM Engine
6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
|
Per-resolve-pass cache keyed by resolved path. More...
#include <MultiColumnSeriesFile.hpp>
Public Member Functions | |
| const ParsedSeriesFile * | get_or_parse (const std::string &abs_path, std::vector< std::string > &errors, SeriesFileStatus *status=nullptr) |
| Borrow a path-keyed parsed result, caching normal failure as well as success. | |
| int | parse_count () const noexcept |
| Read this cache's normal parse-attempt count. | |
Per-resolve-pass cache keyed by resolved path.
One instance is shared by the rain-gage and timeseries loaders so a file referenced by both parses once (plan ยง5 single-read guarantee). Failures are cached too, so N consumers of a broken file trigger one open attempt.
| const ParsedSeriesFile * openswmm::input::MultiColumnFileCache::get_or_parse | ( | const std::string & | abs_path, |
| std::vector< std::string > & | errors, | ||
| SeriesFileStatus * | status = nullptr ) |
Borrow a path-keyed parsed result, caching normal failure as well as success.
No file-change invalidation or internal synchronization. Caller shares one cache per resolve pass and copies selected data before that cache dies. Exceptions during parsing/insertion propagate and do not establish a normal cached result.
| [in] | abs_path | Borrowed exact-byte cache key; no canonicalization or case folding. Equivalent filesystem spellings can create separate entries. |
| [in,out] | errors | Appended file-level diagnostics only on first normal parse attempt for this exact key. |
| [out] | status | Optional cached status destination. |
|
inlinenoexcept |
Read this cache's normal parse-attempt count.
Not an underlying OS-open counter; sniffing and thrown parse attempts are not included.