|
|
- -include_lib("eNet/include/eNet.hrl").
-
- %% @type version(). HTTP version as a tuple, i.e. `{0, 9} | {1, 0} | {1, 1}'.
- -type version() :: {0, 9} | {1, 0} | {1, 1}.
-
- -export_type([version/0]).
-
- -define(DefWsOpts, [
- binary
- , {packet, 4}
- , {active, false}
- , {reuseaddr, true}
- , {nodelay, false}
- , {delay_send, true}
- , {send_timeout, 15000}
- , {keepalive, true}
- , {exit_on_close, true}
- , {back_log, 1024}
- ]).
-
- -export_type([wsOpt/0]).
- -type wsOpt() ::
- listenOpt() |
- {wsMod, module()}.
-
- -record(wsReq, {
- method :: method(),
- scheme :: undefined | binary(),
- host :: undefined | binary(),
- port :: undefined | 1..65535,
- path :: [binary()],
- args :: [{binary(), any()}],
- raw_path :: binary(),
- version :: wsHttp:version(),
- headers :: headers(),
- original_headers :: headers(),
- body :: body(),
- pid :: pid()
- }).
-
- -export_type([req/0, method/0, body/0, headers/0, response_code/0]).
-
- %% @type req(). A record representing an HTTP request.
- -type req() :: #wsReq{}.
-
- %% @type http_method(). An uppercase atom representing a known HTTP verb or a
- %% binary for other verbs.
- -type method() :: 'OPTIONS' | 'GET' | 'HEAD' | 'POST'| 'PUT' | 'DELETE' | 'TRACE' | binary().
-
- %% @type body(). A binary or iolist.
- -type body() :: binary() | iolist().
-
- -type header() :: {Key :: binary(), Value :: binary() | string()}.
- -type headers() :: [header()].
-
- -type response_code() :: 100..999.
-
-
- -define(EXAMPLE_CONF, [{callback, elli_example_callback}, {callback_args, []}]).
-
- -define(CONTENT_LENGTH_HEADER, <<"content-length">>).
- -define(EXPECT_HEADER, <<"expect">>).
- -define(CONNECTION_HEADER, <<"connection">>).
- -define(TRANSFER_ENCODING_HEADER, <<"Transfer-Encoding">>).
-
-
-
- -export_type([callback/0, callback_mod/0, callback_args/0, event/0, result/0]).
-
- %% @type callback(). A tuple of a {@type callback_mod()} and {@type
- %% callback_args()}.
- -type callback() :: {callback_mod(), callback_args()}.
-
- %% @type callback_mod(). A callback module.
- -type callback_mod() :: module().
-
- %% @type callback_args(). Arguments to pass to a {@type callback_mod()}.
- -type callback_args() :: list().
-
- %% @type event(). Fired throughout processing a request.
- %% See {@link elli_example_callback:handle_event/3} for descriptions.
- -type event() ::
- elli_startup|
- bad_request |
- file_error|
- chunk_complete |
- request_complete|
- request_throw |
- request_error |
- request_exit|
- request_closed |
- request_parse_error|
- client_closed |
- client_timeout|
- invalid_return.
-
- -type result() ::
- {elli:response_code() |ok, elli:headers(), {file, file:name_all()}|
- {file, file:name_all(), wsUtil:range()}}|
- {elli:response_code() | ok, elli:headers(), elli:body()}|
- {elli:response_code() | ok, elli:body()}|
- {chunk, elli:headers()}|
- {chunk, elli:headers(), elli:body()}|
- ignore.
-
- -type sendfile_opts() :: [{chunk_size, non_neg_integer()}].
|