FirewallϞδϡʔϧ
• ४උɿErlangଆͰPipelineॲཧΛ࣮ߦͰ͖ΔΑ͏ʹ͢Δ
save_before_ip_pipeline(Func) when is_function(Func, 2) ->
mnesia:transaction(fun() ->
mnesia:write(pipeline, #pipeline{type=?BEFORE_IP, module=undefined, func=Func}, write)
end)
before_ip_pipeline(Data, Opt) ->
Filter = mnesia:dirty_match_object(pipeline,
{'_', ?BEFORE_IP, '$1', '$2'}
),
pipeline(Filter, Data, Opt)
pipeline([#pipeline{module=undefined, func=Func}| Tail], Data0, Opt0) ->
case apply(Func, [Data0, Opt0]) of
{error, Msg} ->
{error, Msg};
{ok, Data, Opt} ->
pipeline(Tail, Data, Opt)
end;
FuncʢϝιουʣΛ
[Data0, Opt0] ͷҾͰ࣮ߦ͢Δ