Ocamlnet 3 Reference Manual : Nethttpd_engine.http_engine_config

# Class type Nethttpd_engine.http_engine_config

    class type http_engine_config = object .. end

Inherits

- `Nethttpd_reactor.http_processor_config`

    method config_input_flow_control : bool

If `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

If `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`.