agpl_1.0.0_b5da3320/src/agpl-generic_indefinite_file_store.adb

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
with Ada.Streams.Stream_Io;

package body Agpl.Generic_Indefinite_File_Store is

   -------------
   -- To_File --
   -------------

   procedure To_File (This : in Item; File : in String) is
      use Ada.Streams.Stream_Io;
      F : File_Type;
   begin
      Create (F, Name => File, Mode => Out_File);

      Item'Output (Stream (F), This);
      Close (F);
   end To_File;

   ----------
   -- Load --
   ----------

   function Load (File : in String) return Item is
      use Ada.Streams.Stream_Io;
      F : File_Type;
   begin
      Open (F, Name => File, Mode => In_File);

      declare
         Result : constant Item := Item'Input (Stream (F));
      begin
         Close (F);
         return Result;
      end;
   end Load;

end Agpl.Generic_Indefinite_File_Store;