From 6f17bb1455574012b4a15ad780585f964d85b7f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Mon, 9 Jul 2012 13:07:50 +0200 Subject: Add a bullet clock example --- examples/clock/src/stream_handler.erl | 36 +++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 examples/clock/src/stream_handler.erl (limited to 'examples/clock/src/stream_handler.erl') diff --git a/examples/clock/src/stream_handler.erl b/examples/clock/src/stream_handler.erl new file mode 100644 index 0000000..4f18b9d --- /dev/null +++ b/examples/clock/src/stream_handler.erl @@ -0,0 +1,36 @@ +%% Feel free to use, reuse and abuse the code in this file. + +%% @doc Stream handler for clock synchronizing. +-module(stream_handler). + +-export([init/4]). +-export([stream/3]). +-export([info/3]). +-export([terminate/2]). + +-define(PERIOD, 1000). + +init(_Transport, Req, _Opts, _Active) -> + io:format("bullet init~n"), + _ = erlang:send_after(?PERIOD, self(), refresh), + {ok, Req, undefined}. + +stream(<<"ping">>, Req, State) -> + io:format("ping received~n"), + {reply, <<"pong">>, Req, State}; +stream(Data, Req, State) -> + io:format("stream received ~s~n", [Data]), + {ok, Req, State}. + +info(refresh, Req, State) -> + _ = erlang:send_after(?PERIOD, self(), refresh), + DateTime = cowboy_clock:rfc1123(), + io:format("clock refresh timeout: ~s~n", [DateTime]), + {reply, DateTime, Req, State}; +info(Info, Req, State) -> + io:format("info received ~p~n", [Info]), + {ok, Req, State}. + +terminate(_Req, _State) -> + io:format("bullet terminate~n"), + ok. -- cgit v1.2.3