← All compilation units

Flyology.HTTP.Server.Connections

Description

Adapts an owned plain Flyology connection to the HTTP transport boundary.

Arm_IO_Acquisition

procedure Arm_IO_Acquisition
  (Item      : in out Connection_Transport;
   Operation : in out Flyology.Operations.Operation'Class)

Arm the HTTP operation for connection-lease readiness.

Parameters
Item

Plain HTTP transport

Operation

HTTP operation that owns readiness

Arm_IO_Transport

procedure Arm_IO_Transport
  (Item      : in out Connection_Transport;
   Operation : in out Flyology.Operations.Operation'Class;
   Required  : Flyology.IO.Connections.Drivers.Step_Result)

Arm the HTTP operation for the readiness required by an I/O step.

Parameters
Item

Plain HTTP transport

Operation

HTTP operation that owns readiness

Required

Need_Read or Need_Write from the preceding step

Connection_Transport

type Connection_Transport
  (Channel : not null access Flyology.IO.Connections.Connection)
is limited new Flyology.HTTP.Server.Operation_Transport with private;

Borrowing adapter. Channel remains the sole closing owner and must outlive this object and every HTTP.Server.Connection that refers to it. The discriminant is the borrowed plain connection.

Poll_IO

procedure Poll_IO
  (Item   : in out Connection_Transport;
   Result : out Flyology.IO.Connections.Drivers.Acquisition_Result)

Poll an armed connection-driver acquisition.

Parameters
Item

Plain HTTP transport

Result

Immediate acquisition result

Receive

procedure Receive
  (Item    : in out Connection_Transport;
   Data    : out Ada.Streams.Stream_Element_Array;
   Last    : out Ada.Streams.Stream_Element_Offset;
   Timeout : Duration;
   Token   : access Flyology.Cancellation.Token)

Forward a receive through the owned plain connection.

Parameters
Item

Plain HTTP transport

Data

Destination buffer

Last

Last received byte or close sentinel

Timeout

Operation deadline

Token

Optional cancellation source

Receive_IO

procedure Receive_IO
  (Item   : in out Connection_Transport;
   Data   : out Ada.Streams.Stream_Element_Array;
   Last   : out Ada.Streams.Stream_Element_Offset;
   Result : out Flyology.IO.Connections.Drivers.Step_Result)

Perform one immediate bounded receive step.

Parameters
Item

Plain HTTP transport

Data

Destination buffer

Last

Last received byte or no-progress sentinel

Result

Progress, required readiness, or peer closure

Release_IO

procedure Release_IO (Item : in out Connection_Transport)

Release the connection-driver capability before terminal publication.

Parameters
Item

Plain HTTP transport

Send_All

procedure Send_All
  (Item    : in out Connection_Transport;
   Data    : Ada.Streams.Stream_Element_Array;
   Timeout : Duration;
   Token   : access Flyology.Cancellation.Token)

Forward a complete send through the owned plain connection.

Parameters
Item

Plain HTTP transport

Data

Source bytes

Timeout

Operation deadline

Token

Optional cancellation source

Send_IO

procedure Send_IO
  (Item   : in out Connection_Transport;
   Data   : Ada.Streams.Stream_Element_Array;
   Last   : out Ada.Streams.Stream_Element_Offset;
   Result : out Flyology.IO.Connections.Drivers.Step_Result)

Perform one immediate bounded send step.

Parameters
Item

Plain HTTP transport

Data

Source buffer

Last

Last sent byte or no-progress sentinel

Result

Progress, required readiness, or peer closure

Start_IO

procedure Start_IO
  (Item      : in out Connection_Transport;
   Operation : in out Flyology.Operations.Operation'Class;
   Timeout   : Duration;
   Token     : access Flyology.Cancellation.Token;
   Result    : out
     Flyology.IO.Connections.Drivers.Acquisition_Result)

Start one bounded connection-driver acquisition.

Parameters
Item

Plain HTTP transport

Operation

HTTP operation that owns readiness

Timeout

Shared acquisition and transport deadline

Token

Optional cancellation source

Result

Immediate acquisition result