Skip to content

Instantly share code, notes, and snippets.

@capflam
Last active August 29, 2015 14:15
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save capflam/ef330cb3f09f032c0645 to your computer and use it in GitHub Desktop.
Appmod skeleton
out(Arg) ->
case Arg#arg.clidata of
undefined ->
%% No body
do_something_without_clidata(Arg);
{partial, Bin} when Arg#arg.state == undefined ->
%% chunked request: first chunk received
{get_more, Arg#arg.cont, [Bin]};
{partial, Bin} ->
%% chunked request: accumulate data and request the next chunk
{get_more, Arg#arg.cont, [Bin|Arg#arg.state]};
Bin when Arg#arg.state /= undefined ->
%% chunked request: final chunk
Data = iolist_to_binary(lists:reverse([Bin|Arg#arg.state])),
do_something_with_clidata(Arg#arg{clidata=Data, state=undefined});
Bin ->
%% non-chunked request: all data received
do_something_with_clidata(Arg)
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment