with Ada.Streams; use Ada.Streams; with Ada.Numerics.Float_Random; use Ada.Numerics.Float_Random; with GNATCOLL.Strings; use GNATCOLL.Strings; package Test_Streams is type Stream_Type is new Root_Stream_Type with private; -- Stream checking that all data taken from Read have to be the same -- accepted by Write. overriding procedure Read (Stream : in out Stream_Type; Item : out Stream_Element_Array; Last : out Stream_Element_Offset); overriding procedure Write (Stream : in out Stream_Type; Item : Stream_Element_Array); procedure Set_Limit (Stream : in out Stream_Type; Limit : Stream_Element_Count); -- Set the data limit to get from Read routine. private type Stream_Type is new Root_Stream_Type with record Read_Started : Boolean := False; Write_Started : Boolean := False; Limit : Stream_Element_Count := Stream_Element_Count'Last; Read_Generator : Generator; Write_Generator : Generator; Init_State : State; Read_Remain : XString; Write_Remain : XString; end record; end Test_Streams;