- /// Increment by one counter named by arg, and zeroes slave
- /// counter(s) for which it is the master.
- /// Sub-slaves are not zeroed! That happens at slave's first
- /// step 0->1. Seems to be sufficient.
- /// \param for_output: whether to track the counters
- void step(docstring const & ctr, bool track_counters = false);
- /// Reset all counters.
+ ///
+ void saveValue(docstring const & ctr) const;
+ ///
+ void restoreValue(docstring const & ctr) const;
+ /// Reset recursively all the counters that are children of the one named by \c ctr.
+ void resetChildren(docstring const & ctr);
+ /// Increment by one the parent of counter named by \c ctr.
+ /// This also resets the counter named by \c ctr.
+ /// \param utype determines whether we track the counters.
+ void stepParent(docstring const & ctr, UpdateType utype);
+ /// Increment by one counter named by \c ctr, and zeroes child
+ /// counter(s) for which it is the parent.
+ /// \param utype determines whether we track the counters.
+ void step(docstring const & ctr, UpdateType utype);
+ /// Reset all counters, and all the internal data structures
+ /// used for keeping track of their values.