OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
openswmm::twoD::EngineSourceResultHistory Class Reference

#include <EngineSourceResultHistory.hpp>

Collaboration diagram for openswmm::twoD::EngineSourceResultHistory:

Public Member Functions

const std::map< std::string, SourceResultTable > & tables () const
 Borrow this recorder's columnar engine-boundary tables with field/unit schemas.
 
const std::vector< std::string > & sourceNames () const
 Borrow this recorder's saved source identifier names.
 
const std::vector< std::string > & nodeNames () const
 Borrow this recorder's saved node identifier names.
 
bool outfallReturnsAvailable () const
 Test availability of water-only hydraulic-return snapshots.
 
bool detailedSourceIntervalsAvailable () const
 Test whether this history includes immutable fine source-interval snapshots.
 
const SourceResultHistory * sourceIntervals () const
 Borrow the fine source-interval companion on its own accepted-source time axis.
 
double simulationStartDate () const
 Read the saved absolute simulation start serial.
 
std::string save (const std::string &path) const
 Atomically replaces ONLY a standalone companion history artifact.
 

Static Public Member Functions

static std::string read (const std::string &path, EngineSourceResultHistory &out, bool &available)
 Read optional engine source history into a privately validated candidate.
 

Friends

class openswmm::SWMMEngine
 
struct EngineSourceResultFile
 
class ExplicitInertialSolver
 
class EngineSourceResultStream
 

Detailed Description

Internal water-only companion to source-interval results. Frame zero and every accepted ENGINE step capture cumulative water and pending queues. Source clocks may repeat. No hydraulic output append or production streaming. Caller owns the recorder and keeps it alive until engine end/close.

Member Function Documentation

◆ detailedSourceIntervalsAvailable()

bool openswmm::twoD::EngineSourceResultHistory::detailedSourceIntervalsAvailable ( ) const
inline

Test whether this history includes immutable fine source-interval snapshots.

Returns
True when the paired source history capability is configured. Its time/frame axis is separate from accepted engine steps; false denotes unavailable detailed data.

◆ nodeNames()

const std::vector< std::string > & openswmm::twoD::EngineSourceResultHistory::nodeNames ( ) const
inline

Borrow this recorder's saved node identifier names.

Returns
Const reference owned by the recorder. Valid until destruction or replacement; append, resume, read publication or assignment may invalidate its elements. Requires stable recorder access, performs no copy/allocation and provides no synchronization.

◆ outfallReturnsAvailable()

bool openswmm::twoD::EngineSourceResultHistory::outfallReturnsAvailable ( ) const
inline

Test availability of water-only hydraulic-return snapshots.

Returns
True when saved outfall credit/queue fields are present; false means unavailable, not a recorded zero series. Does not inspect the current engine or change recorder state.

◆ read()

std::string openswmm::twoD::EngineSourceResultHistory::read ( const std::string & path,
EngineSourceResultHistory & out,
bool & available )
static

Read optional engine source history into a privately validated candidate.

Parameters
[in]pathNonempty existing HDF5 file, at most 256 MiB.
[out]outReplaced only after schema versions 1..4, capability metadata, bounded columns, water/delivery receipts and optional paired intervals validate. Unchanged on error/unavailability.
[out]availableSet false immediately and true only after successful out replacement.
Returns
Empty for valid data or absent engine_source_history; diagnostic on malformed data, I/O, unsupported build or caught standard exception. Absent capability is not a zero series.
Note
Uses the engine HDF5 mutex. A read recorder needs an exact whole-engine resume before continued capture; no hydraulic state is restored by reading diagnostics.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ save()

std::string openswmm::twoD::EngineSourceResultHistory::save ( const std::string & path) const

Atomically replaces ONLY a standalone companion history artifact.

Parameters
[in]pathStandalone destination with an existing parent directory. An existing file must have the exact engine source-history artifact kind; hydraulic/model/component-history files are refused rather than replaced.
Returns
Empty after validated exclusive sibling write, flush/close and rename; diagnostic on validation, I/O, unsupported build or caught standard exception. A temporary creation collision is never removed. Later temporary cleanup is best effort; rename supplies no power-loss guarantee.
Note
Uses the engine HDF5 mutex. Same-destination writers need caller coordination; saved data includes the whole-engine checkpoint anchor and optional paired fine source intervals.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ simulationStartDate()

double openswmm::twoD::EngineSourceResultHistory::simulationStartDate ( ) const
inline

Read the saved absolute simulation start serial.

Returns
SWMM date serial in days since 1899-12-30; zero in a default empty recorder. This is separate from the elapsed-second start/end clocks in the result tables. No mutation occurs.

◆ sourceIntervals()

const SourceResultHistory * openswmm::twoD::EngineSourceResultHistory::sourceIntervals ( ) const
inline

Borrow the fine source-interval companion on its own accepted-source time axis.

Returns
Pointer to the recorder-owned immutable companion when detailed capability is present, otherwise null. Recorder replacement/destruction invalidates the pointer. Continue through the containing engine history, never through a standalone component restore; no copy or allocation.

◆ sourceNames()

const std::vector< std::string > & openswmm::twoD::EngineSourceResultHistory::sourceNames ( ) const
inline

Borrow this recorder's saved source identifier names.

Returns
Const reference owned by the recorder. Valid until destruction or replacement; append, resume, read publication or assignment may invalidate its elements. Requires stable recorder access, performs no copy/allocation and provides no synchronization.

◆ tables()

const std::map< std::string, SourceResultTable > & openswmm::twoD::EngineSourceResultHistory::tables ( ) const
inline

Borrow this recorder's columnar engine-boundary tables with field/unit schemas.

Returns
Const reference owned by the recorder. Valid until destruction or replacement; append, resume, read publication or assignment may invalidate its elements. Requires stable recorder access, performs no copy/allocation and provides no synchronization.

Friends And Related Symbol Documentation

◆ EngineSourceResultFile

friend struct EngineSourceResultFile
friend

◆ EngineSourceResultStream

friend class EngineSourceResultStream
friend

◆ ExplicitInertialSolver

friend class ExplicitInertialSolver
friend

◆ openswmm::SWMMEngine

friend class openswmm::SWMMEngine
friend

The documentation for this class was generated from the following files: