class type http_engine_config =Inheritsobject
..end
method config_input_flow_control : bool
true
, the engine stops reading input tokens from the HTTP kernel when
there is data in the input channel of the engine not yet read. If false
,
all available input tokens are fetched from the kernel and buffered up
in the input channel.
In general, this should be set to true
. However, this is only possible
when the user of the engine is prepared for flow control. In particular,
all data contained in the input channel must be immediately read, or else
the engine blocks. By calling input_ch_async # request_notification
, the
user can be notified when there is data to read.
When set to false
, the engine never blocks, but the price is that the
input channel may become as large as needed to store the whole request.
The option config_limit_pipeline_size
does not have any effect for engines.
method config_output_flow_control : bool
true
, the engine signals the user when there is already enough data
to output, and no more output should be generated. The user can query
this state by calling output_ch_async # can_output
, and react
accordingly. The user can also ignore this signal, and the output channel
buffers all data.
If false
, the mentioned method can_output
returns always true
. This
turns off flow control in the case it is implemented by the user of the
engine, but actually not wanted.
The internal processing of data is not affected by this configuration option.
In doubt, set it to true
.