diff options
author | Loïc Hoguin <[email protected]> | 2012-09-17 01:11:44 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2012-09-17 13:57:29 +0200 |
commit | 183bf7f1439773b62f417a817cebfb194ef28d35 (patch) | |
tree | 9e06117bc7c486eaca79667e5b652adc1a7a8505 /src | |
parent | 58edd4c35a0490701a87d94676a63c87e8dec8a0 (diff) | |
download | cowboy-183bf7f1439773b62f417a817cebfb194ef28d35.tar.gz cowboy-183bf7f1439773b62f417a817cebfb194ef28d35.tar.bz2 cowboy-183bf7f1439773b62f417a817cebfb194ef28d35.zip |
Make cowboy_req:req() opaque
Remove http.hrl in the process.
If you feel furious about this change after reaching this commit,
don't worry! You probably just need a few access or modification
functions to be added in cowboy_req for your needs. Problem is,
I don't know these. I'll be very thankful if you can open a ticket
and tell me all about it so the best solution can be swiftly
implemented to make you happy again.
Diffstat (limited to 'src')
-rw-r--r-- | src/cowboy_req.erl | 44 |
1 files changed, 42 insertions, 2 deletions
diff --git a/src/cowboy_req.erl b/src/cowboy_req.erl index 98fc895..3c81254 100644 --- a/src/cowboy_req.erl +++ b/src/cowboy_req.erl @@ -118,10 +118,50 @@ -export([to_list/1]). -export([transport/1]). --include("http.hrl"). -include_lib("eunit/include/eunit.hrl"). --type req() :: #http_req{}. +-record(http_req, { + %% Transport. + socket = undefined :: undefined | inet:socket(), + transport = undefined :: undefined | module(), + connection = keepalive :: keepalive | close, + + %% Request. + pid = undefined :: pid(), + method = 'GET' :: cowboy_http:method(), + version = {1, 1} :: cowboy_http:version(), + peer = undefined :: undefined | {inet:ip_address(), inet:port_number()}, + host = undefined :: undefined | binary(), + host_info = undefined :: undefined | cowboy_dispatcher:tokens(), + port = undefined :: undefined | inet:port_number(), + path = undefined :: binary(), + path_info = undefined :: undefined | cowboy_dispatcher:tokens(), + qs_vals = undefined :: undefined | list({binary(), binary() | true}), + raw_qs = undefined :: binary(), + bindings = undefined :: undefined | cowboy_dispatcher:bindings(), + headers = [] :: cowboy_http:headers(), + p_headers = [] :: [any()], %% @todo Improve those specs. + cookies = undefined :: undefined | [{binary(), binary()}], + meta = [] :: [{atom(), any()}], + + %% Request body. + body_state = waiting :: waiting | done | {stream, fun(), any(), fun()}, + multipart = undefined :: undefined | {non_neg_integer(), fun()}, + buffer = <<>> :: binary(), + + %% Response. + resp_state = waiting :: locked | waiting | chunks | done, + resp_headers = [] :: cowboy_http:headers(), + resp_body = <<>> :: iodata() + | {non_neg_integer(), fun(() -> {sent, non_neg_integer()})}, + + %% Functions. + onresponse = undefined :: undefined | fun((cowboy_http:status(), + cowboy_http:headers(), Req) -> Req), + urldecode :: {fun((binary(), T) -> binary()), T} +}). + +-opaque req() :: #http_req{}. -export_type([req/0]). %% Request API. |