static CodeContext::Pointer & Instance()
guarantees the forever existence of the pointer, starting from the first use
std::ostream & CurrentCodeContextDetail(std::ostream &os)
Stopwatch busyTime
time spent in this context (see also: busy_time)
static const Pointer & Current()
RefCount< CodeContext > Pointer
virtual ScopedId codeContextGist() const =0
static void Entering(const Pointer &codeCtx)
static void ForgetCurrent()
static void Reset()
forgets the current context, setting it to nil/unknown
represents a being-forgotten CodeContext (while it may be being destroyed)
ScopedId gist
identifies the being-forgotten CodeContext
std::ostream & detailCodeContext(std::ostream &os) const override
appends human-friendly context description line(s) to a cache.log record
ScopedId codeContextGist() const override