summaryrefslogtreecommitdiff
path: root/src/deck_io.ads
diff options
context:
space:
mode:
Diffstat (limited to 'src/deck_io.ads')
-rw-r--r--src/deck_io.ads78
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);