with
Ada.Streams,
Ada.Strings.Unbounded;
with
Black.HTTP;
private
package Black.Parsing is
function Parse (Line : Ada.Strings.Unbounded.Unbounded_String)
return HTTP.Statuses;
type Header is private;
function Get (Stream : not null access Ada.Streams.Root_Stream_Type'Class)
return Header;
function End_Of_Header (Item : in Header) return Boolean;
type Header_Line is tagged private;
procedure Read (Stream : not null access Ada.Streams.Root_Stream_Type'Class;
From : in out Header;
Item : out Header_Line);
function Parse (Line : in Ada.Strings.Unbounded.Unbounded_String)
return Header_Line;
function Key (Item : in Header_Line) return HTTP.Header_Key;
function Value (Item : in Header_Line) return String;
function Value (Item : in Header_Line)
return Ada.Strings.Unbounded.Unbounded_String;
function Value (Item : in Header_Line) return Integer;
function Value (Item : in Header_Line) return Boolean;
function Value (Item : in Header_Line) return Duration;
private
type Header is
record
Previous_Line : Ada.Strings.Unbounded.Unbounded_String;
Current_Line : Ada.Strings.Unbounded.Unbounded_String;
end record;
type Header_Line is tagged
record
Line : Ada.Strings.Unbounded.Unbounded_String;
Split_Position : Positive;
end record;
end Black.Parsing;