with Polymorphic_Sequential_Io;
with Checkbook;
package body Storage is

    package Pio renames Polymorphic_Sequential_Io;

    package Ops is new Pio.Operations (Checkbook.Database);

    procedure Read (Db : in out Checkbook.Database; Filename : String) is
        File : Pio.File_Type;
        A_Db : Checkbook.Database;
    begin
        Pio.Open (File, Pio.In_File, Filename);
        Ops.Read (File => File, Item => Db);
        Pio.Close (File);
    exception
        when Pio.Name_Error =>
            Db := A_Db;
    end Read;

    procedure Write (Db : Checkbook.Database; Filename : String) is
        File : Pio.File_Type;
    begin
        Pio.Open (File, Pio.Out_File, Filename);
        Ops.Write (File => File, Item => Db);
        Pio.Close (File);
    end Write;
end Storage;