summaryrefslogtreecommitdiff
path: root/src/crypto-types-random_source-file.ads
diff options
context:
space:
mode:
Diffstat (limited to 'src/crypto-types-random_source-file.ads')
-rw-r--r--src/crypto-types-random_source-file.ads50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/crypto-types-random_source-file.ads b/src/crypto-types-random_source-file.ads
new file mode 100644
index 0000000..8a3e960
--- /dev/null
+++ b/src/crypto-types-random_source-file.ads
@@ -0,0 +1,50 @@
+with Ada.Streams.Stream_IO;
+with Ada.Strings.Unbounded;
+
+package Crypto.Types.Random_Source.File is
+ package Rnd renames Crypto.Types.Random_Source;
+
+ type Random_Source_File is new Rnd.Random_Source with private;
+ type Random_Source_File_Access is access Random_Source_File;
+
+ Overriding
+ procedure Finalize(This : in out Random_Source_File);
+
+ Overriding
+ procedure Initialize(This : in out Random_Source_File);
+
+ procedure Initialize(This : in out Random_Source_File;
+ File_Path : in String);
+ Overriding
+ procedure Read(This : in out Random_Source_File; B : out Byte);
+
+ Overriding
+ procedure Read(This : in out Random_Source_File; Byte_Array : out Bytes);
+
+ Overriding
+ procedure Read(This : in out Random_Source_File; B : out B_Block128);
+
+ Overriding
+ procedure Read(This : in out Random_Source_File; W : out Word);
+
+ Overriding
+ Procedure Read(This : in out Random_Source_File; Word_Array : out Words);
+
+ Overriding
+ procedure Read(This : in out Random_Source_File; D : out DWord);
+
+ Overriding
+ procedure Read(This : in out Random_Source_File; DWord_Array : out DWords);
+private
+ type File_Access is access Ada.Streams.Stream_IO.File_Type;
+
+ type Random_Source_File is new Rnd.Random_Source with
+ record
+ Source_Path : Ada.Strings.Unbounded.Unbounded_String;
+ Source_File : File_Access;
+ end record;
+
+ function Path_Starts_With(This : Random_Source_File; S : String)
+ return Boolean;
+
+end Crypto.Types.Random_Source.File;