Slide 8
Slide 8 text
-module(gen_flow_example).
-behaviour(gen_flow).
-export([start_link/1]).
-export([init/1, read/1, process/2]).
-record(state, {pid}).
start_link(Args) ->
gen_flow:start_link(?MODULE, Args).
init([Pid]) ->
{ok, #state{pid=Pid}}.
read(State) ->
ReadFuns = [
fun(_) -> sets:from_list([1,2,3]) end,
fun(_) -> sets:from_list([3,4,5]) end
],
{ok, ReadFuns, State}.
process(Args, #state{pid=Pid}=State) ->
case Args of
[undefined, _] ->
ok;
[_, undefined] ->
ok;
[X, Y] ->
Set = sets:intersection(X, Y),
Pid ! {ok, sets:to_list(Set)},
ok
end,
{ok, State}.