package Accounting is
    pragma Closed_Private_Part;
    type Resources is private;


    procedure Initialize (R : out Resources);

    -- Stores initial performance data for the current job in R.
    -- This data includes wall-clock time, CPU time, and disk waits.


    generic
        with procedure Put_Line (S : String);
    procedure Display (R : in out Resources; Label : String := "");

    -- Computes and displays (via Put_Line) incremental performance
    -- data relative to the last time R was updated by calling
    -- Initialize or Display.  (Display updates R just like
    -- Initialize does.)
    --
    -- The displayed data includes the elapsed wall-clock time,
    -- CPU time for both the current job and the system, and
    -- disk waits for the job and system.  It is formatted like:
    --
    -- Label) Elapsed: HH:MM:SS.mmm,
    --        CPU: HH:MM:SS.mmm (job) + HH:MM:SS.mmm (system),
    --        Disk: nnn (job) + nnn (system)
    --
    -- where HH is hours (omitted when zero), MM is minutes (omitted
    -- when HH and MM are zero), SS is seconds, mmm is milliseconds,
    -- and nnn is a natural count.
end Accounting;