Current section

Files

Jump to
lhttpc include lhttpc_types.hrl
Raw

include/lhttpc_types.hrl

%%% ----------------------------------------------------------------------------
%%% Copyright (c) 2009, Erlang Training and Consulting Ltd.
%%% All rights reserved.
%%%
%%% Redistribution and use in source and binary forms, with or without
%%% modification, are permitted provided that the following conditions are met:
%%% * Redistributions of source code must retain the above copyright
%%% notice, this list of conditions and the following disclaimer.
%%% * Redistributions in binary form must reproduce the above copyright
%%% notice, this list of conditions and the following disclaimer in the
%%% documentation and/or other materials provided with the distribution.
%%% * Neither the name of Erlang Training and Consulting Ltd. nor the
%%% names of its contributors may be used to endorse or promote products
%%% derived from this software without specific prior written permission.
%%%
%%% THIS SOFTWARE IS PROVIDED BY Erlang Training and Consulting Ltd. ''AS IS''
%%% AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
%%% IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
%%% ARE DISCLAIMED. IN NO EVENT SHALL Erlang Training and Consulting Ltd. BE
%%% LIABLE SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
%%% BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
%%% WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
%%% OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
%%% ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
%%% ----------------------------------------------------------------------------
-type header() :: 'Cache-Control' | 'Connection' | 'Date' | 'Pragma'
| 'Transfer-Encoding' | 'Upgrade' | 'Via' | 'Accept' | 'Accept-Charset'
| 'Accept-Encoding' | 'Accept-Language' | 'Authorization' | 'From' | 'Host'
| 'If-Modified-Since' | 'If-Match' | 'If-None-Match' | 'If-Range'
| 'If-Unmodified-Since' | 'Max-Forwards' | 'Proxy-Authorization' | 'Range'
| 'Referer' | 'User-Agent' | 'Age' | 'Location' | 'Proxy-Authenticate'
| 'Public' | 'Retry-After' | 'Server' | 'Vary' | 'Warning'
| 'Www-Authenticate' | 'Allow' | 'Content-Base' | 'Content-Encoding'
| 'Content-Language' | 'Content-Length' | 'Content-Location'
| 'Content-Md5' | 'Content-Range' | 'Content-Type' | 'Etag'
| 'Expires' | 'Last-Modified' | 'Accept-Ranges' | 'Set-Cookie'
| 'Set-Cookie2' | 'X-Forwarded-For' | 'Cookie' | 'Keep-Alive'
| 'Proxy-Connection' | binary() | string().
-type headers() :: [{header(), iodata()}].
-type method() :: string() | atom().
-type pos_timeout() :: pos_integer() | 'infinity'.
-type bodypart() :: iodata() | 'http_eob'.
-type socket() :: _.
-type port_num() :: 1..65535.
-type poolsize() :: non_neg_integer() | atom().
-type invalid_option() :: any().
-type pool_id() :: pid() | atom().
-type destination() :: {string(), pos_integer(), boolean()}.
-type raw_headers() :: [{atom() | binary() | string(), binary() | string()}].
-type partial_download_option() ::
{'window_size', window_size()} |
{'part_size', non_neg_integer() | 'infinity'} |
invalid_option().
-type option() ::
{'connect_timeout', timeout()} |
{'send_retry', non_neg_integer()} |
{'partial_upload', non_neg_integer() | 'infinity'} |
{'partial_download', [partial_download_option()]} |
{'connect_options', socket_options()} |
{'proxy', string()} |
{'proxy_ssl_options', socket_options()} |
{'pool', pid() | atom()} |
invalid_option().
-type options() :: [option()].
-type host() :: string() | {integer(), integer(), integer(), integer()}.
-type http_status() :: {integer(), string() | binary()} | {'nil','nil'}.
-type socket_options() :: [{atom(), term()} | atom()].
-type window_size() :: non_neg_integer() | 'infinity'.
-type upload_state() :: {pid(), window_size()}.
-type body() :: binary() |
'undefined' | % HEAD request.
pid(). % When partial_download option is used.
-type result() ::
{ok, {{pos_integer(), string()}, headers(), body()}} |
{ok, upload_state()} |
{error, atom()}.