.TH "serif::solver::TimedObserver< Observer >" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*- .ad l .nh .SH NAME serif::solver::TimedObserver< Observer > \- Measure solves explicitly while retaining an ordinary progress or stop callback\&. .SH SYNOPSIS .br .PP .PP \fR#include \fP .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBTimedObserver\fP (\fBSolveTiming\fP &timing, Observer observer={})" .br .RI "Borrow the timing destination and own the user's callback\&. " .ti -1c .RI "void \fBstarted\fP ()" .br .RI "Begin measurement when the solver starts evaluating its initial state\&. " .ti -1c .RI "void \fBfinished\fP (\fBSolveStatus\fP status, const \fBSolveDiagnostics\fP &diagnostics)" .br .RI "Accumulate a normally completed call independently of its convergence status\&. " .ti -1c .RI "decltype(auto) \fBoperator()\fP (\fBSolveEvent\fP event, const auto &state, const auto &system)" .br .RI "Preserve the callback's void or stop-request return type\&. " .in -1c .SS "Private Attributes" .in +1c .ti -1c .RI "\fBSolveTiming\fP & \fBm_timing\fP" .br .ti -1c .RI "Observer \fBm_observer\fP" .br .ti -1c .RI "std::chrono::steady_clock::time_point \fBm_start\fP" .br .in -1c .SH "Detailed Description" .PP .SS "template .br class serif::solver::TimedObserver< Observer >"Measure solves explicitly while retaining an ordinary progress or stop callback\&. .PP \fBNote\fP .RS 4 Reusing the same timing record accumulates resumed solves\&. Timing starts before initial evaluation and ends on any returned numerical result, including a rejected initial state\&. Exceptions propagate normally; an interrupted call contributes no completed-solve duration\&. .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "template \fBserif::solver::TimedObserver\fP< Observer >::TimedObserver (\fBSolveTiming\fP & timing, Observer observer = \fR{}\fP)\fR [inline]\fP, \fR [explicit]\fP" .PP Borrow the timing destination and own the user's callback\&. .SH "Member Function Documentation" .PP .SS "template void \fBserif::solver::TimedObserver\fP< Observer >::finished (\fBSolveStatus\fP status, const \fBSolveDiagnostics\fP & diagnostics)\fR [inline]\fP" .PP Accumulate a normally completed call independently of its convergence status\&. .SS "template decltype(auto) \fBserif::solver::TimedObserver\fP< Observer >::operator() (\fBSolveEvent\fP event, const auto & state, const auto & system)\fR [inline]\fP" .PP Preserve the callback's void or stop-request return type\&. .SS "template void \fBserif::solver::TimedObserver\fP< Observer >::started ()\fR [inline]\fP" .PP Begin measurement when the solver starts evaluating its initial state\&. .SH "Member Data Documentation" .PP .SS "template Observer \fBserif::solver::TimedObserver\fP< Observer >::m_observer\fR [private]\fP" .SS "template std::chrono::steady_clock::time_point \fBserif::solver::TimedObserver\fP< Observer >::m_start\fR [private]\fP" .SS "template \fBSolveTiming\fP& \fBserif::solver::TimedObserver\fP< Observer >::m_timing\fR [private]\fP" .SH "Author" .PP Generated automatically by Doxygen for SERiF from the source code\&.