|
@@ -0,0 +1,75 @@
|
|
|
+# See LICENSE for licensing information.
|
|
|
+
|
|
|
+# Plain HTTP handlers.
|
|
|
+define tpl_cowboy.http
|
|
|
+-module($(n)).
|
|
|
+-behavior(cowboy_handler).
|
|
|
+
|
|
|
+-export([init/2]).
|
|
|
+
|
|
|
+init(Req, State) ->
|
|
|
+ {ok, Req, State}.
|
|
|
+endef
|
|
|
+
|
|
|
+# Loop handlers.
|
|
|
+define tpl_cowboy.loop
|
|
|
+-module($(n)).
|
|
|
+-behavior(cowboy_loop).
|
|
|
+
|
|
|
+-export([init/2]).
|
|
|
+-export([info/3]).
|
|
|
+
|
|
|
+init(Req, State) ->
|
|
|
+ {cowboy_loop, Req, State, 5000, hibernate}.
|
|
|
+
|
|
|
+info(_Info, Req, State) ->
|
|
|
+ {ok, Req, State, hibernate}.
|
|
|
+endef
|
|
|
+
|
|
|
+# REST handlers.
|
|
|
+define tpl_cowboy.rest
|
|
|
+-module($(n)).
|
|
|
+-behavior(cowboy_rest).
|
|
|
+
|
|
|
+-export([init/2]).
|
|
|
+-export([content_types_provided/2]).
|
|
|
+-export([to_html/2]).
|
|
|
+
|
|
|
+init(Req, State) ->
|
|
|
+ {cowboy_rest, Req, State}.
|
|
|
+
|
|
|
+content_types_provided(Req, State) ->
|
|
|
+ {[
|
|
|
+ {{<<"text">>, <<"html">>, '*'}, to_html}
|
|
|
+ ], Req, State}.
|
|
|
+
|
|
|
+to_html(Req, State) ->
|
|
|
+ {<<"<html><body>This is REST!</body></html>">>, Req, State}.
|
|
|
+endef
|
|
|
+
|
|
|
+# Websocket handlers.
|
|
|
+define tpl_cowboy.ws
|
|
|
+-module($(n)).
|
|
|
+-behavior(cowboy_websocket).
|
|
|
+
|
|
|
+-export([init/2]).
|
|
|
+-export([websocket_init/1]).
|
|
|
+-export([websocket_handle/2]).
|
|
|
+-export([websocket_info/2]).
|
|
|
+
|
|
|
+init(Req, State) ->
|
|
|
+ {cowboy_websocket, Req, State}.
|
|
|
+
|
|
|
+websocket_init(State) ->
|
|
|
+ {ok, State}.
|
|
|
+
|
|
|
+websocket_handle({text, Data}, State) ->
|
|
|
+ {reply, {text, Data}, State};
|
|
|
+websocket_handle({binary, Data}, State) ->
|
|
|
+ {reply, {binary, Data}, State};
|
|
|
+websocket_handle(_Frame, State) ->
|
|
|
+ {ok, State}.
|
|
|
+
|
|
|
+websocket_info(_Info, State) ->
|
|
|
+ {ok, State}.
|
|
|
+endef
|