|
| | Observer_Curve (PInner inner, std::ostream &os) |
| virtual void | on_progress (const std::string &msg) override |
| | passes msg to the delegate, or prints it exactly as the no-observer path would
|
|
virtual void | on_solution (const RETURNTYPE value, const SUBSET &sub, const std::string &msg) override |
| | records sub as the best solution of its size when value beats the recorded one, then passes the event on like on_progress()
|
|
const std::map< DIMTYPE, std::pair< RETURNTYPE, std::shared_ptr< SUBSET > > > & | best_per_size () const |
| | the curve_over_d source: best (value, subset) recorded per subset size so far
|
|
virtual void | on_solution (const RETURNTYPE value, const SUBSET &sub, const std::string &msg) |
| | a new (sub-)solution has been reached (msg = its pre-formatted text form); copy sub if kept beyond the call
|
--report detailed: records the best (value, subset) per subset size announced by the search (the curve_over_d source) while passing progress through unchanged — inner attached: everything is delegated; inner null: messages are printed exactly as they are without any observer (search.hpp report helpers), so attaching the recorder never changes the progress bytes. on_solution fires on the master thread only, so no synchronization is needed.