public void AddChild(InternalMeasurer measurer) { if (!CanHoldChildren) { throw new Exception("Measurer can't hold child"); } _children.LastOrDefault()?.Stop(); _children.Add(measurer); measurer.Parent = this; }
public void ChildProcess(string childProcess) { if (_currentMeasurer == null) { return; } var child = new InternalMeasurer(childProcess); child.Start(); _currentMeasurer.AddChild(child); _currentMeasurer = child; }
public void CompleteLastProcess() { _currentMeasurer?.Stop(); _currentMeasurer = _currentMeasurer?.Parent; }
public void Complete(string process) { var stopped = _topLevelMeasurer.Stop(process); _currentMeasurer = stopped.Parent; }
internal void Start(string process) { _currentMeasurer = _topLevelMeasurer = new InternalMeasurer(process); _topLevelMeasurer.Start(); }