Skip to content

Commit

Permalink
Make cowboy_req:req() opaque
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
essen committed Sep 17, 2012
1 parent 58edd4c commit 183bf7f
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 58 deletions.
56 changes: 0 additions & 56 deletions include/http.hrl

This file was deleted.

44 changes: 42 additions & 2 deletions src/cowboy_req.erl
Expand Up @@ -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.
Expand Down

0 comments on commit 183bf7f

Please sign in to comment.