diff options
Diffstat (limited to 'src/deck_io.ads')
-rw-r--r-- | src/deck_io.ads | 78 |
1 files changed, 12 insertions, 66 deletions
diff --git a/src/deck_io.ads b/src/deck_io.ads index 7121a37..0145c4e 100644 --- a/src/deck_io.ads +++ b/src/deck_io.ads @@ -4,7 +4,8 @@ with Ada.Containers.Vectors, Ada.Containers.Ordered_Maps, - Ada.Strings.Unbounded; + Ada.Strings.Unbounded, + Datatypes; private with @@ -22,70 +23,15 @@ package Deck_IO is type Deck_Handle is limited private; - type Field_Ordinal is new Positive; - type Field_ID is new SU.Unbounded_String; - - package Field_ID_Vectors is new Ada.Containers.Vectors - (Index_Type => Field_Ordinal, - Element_Type => Field_ID); - - - type Template is record - Question : Field_ID_Vectors.Vector; - Answer : Field_ID_Vectors.Vector; - end record; - - package Template_Vectors is new Ada.Containers.Vectors - (Index_Type => Positive, - Element_Type => Template); - - - type Model_ID is new SU.Unbounded_String; - - type Model is record - Fields : Field_ID_Vectors.Vector; - Templates : Template_Vectors.Vector; - end record; - - package Model_Maps is new Ada.Containers.Ordered_Maps - (Key_Type => Model_ID, - Element_Type => Model); - - - type Field is new SU.Unbounded_String; - - package Field_Vectors is new Ada.Containers.Vectors - (Index_Type => Field_Ordinal, - Element_Type => Field); - - - type Note is record - Model : Model_ID; - Fields : Field_Vectors.Vector; - end record; - - package Note_Vectors is new Ada.Containers.Vectors - (Index_Type => Positive, - Element_Type => Note); - - function Matches - (Models : in Model_Maps.Map; - Notes : in Note_Vectors.Vector) + (Models : in Datatypes.Model_Map; + Notes : in Datatypes.Note_Vector) return Boolean; - type Media_ID is new SU.Unbounded_String; - subtype Media_Name is SU.Unbounded_String; - - package Media_Maps is new Ada.Containers.Ordered_Maps - (Key_Type => Media_ID, - Element_Type => Media_Name); - - procedure Read_Media_Map (Filename : in String; - Media_Map : out Media_Maps.Map); + Media : out Datatypes.Media_Map); procedure Open_Database @@ -103,29 +49,29 @@ package Deck_IO is procedure Query_Models (Deck : in out Deck_Handle; - Models : out Model_Maps.Map) + Models : out Datatypes.Model_Map) with Pre => Is_Open (Deck); procedure Query_Notes (Deck : in out Deck_Handle; - Notes : out Note_Vectors.Vector) + Notes : out Datatypes.Note_Vector) with Pre => Is_Open (Deck); procedure Write_CSV (Directory : in String; Basename : in String; - Models : in Model_Maps.Map; - Notes : in Note_Vectors.Vector; + Models : in Datatypes.Model_Map; + Notes : in Datatypes.Note_Vector; Overwrite : in Boolean := False) with Pre => Matches (Models, Notes); procedure Write_FMD (Directory : in String; Basename : in String; - Models : in Model_Maps.Map; - Notes : in Note_Vectors.Vector; - Media : in Media_Maps.Map; + Models : in Datatypes.Model_Map; + Notes : in Datatypes.Note_Vector; + Media : in Datatypes.Media_Map; Overwrite : in Boolean := False) with Pre => Matches (Models, Notes); |