dummyserver_1.0.0_9a6e8708/src/black/black-parsing.ads

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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;