with Ada.Finalization; with Agpl.Chronos; with Agpl.Trace; with Agpl.Ustrings; package Agpl.Timed_Log is type Object (<>) is tagged limited private; -- Logs the given text function Create (Text : String; Level : Trace.Levels := Trace.Always; Scoped : Boolean := True) return Object; procedure Snapshot (This : Object; Step : String := "BUSY"; Level : Trace.Levels := Trace.Always); private use Agpl.Ustrings; type Object is new Ada.Finalization.Limited_Controlled with record Timer : Chronos.Object; Text : Ustring; Scoped : Boolean; Level : Trace.Levels; end record; procedure Finalize (This : in out Object); end Agpl.Timed_Log;