View Source erldist_filter_logger behaviour (erldist_filter v1.1.0)
Link to this section Summary
Link to this section Types
-type batch_event() :: {erldist_filter_nif:logger_time(), erldist_filter_nif:logger_event()}.
-type data() :: #data{}.
-type gen_statem_event_content() :: eqwalizer:dynamic().
-type handle_batch_result() :: handle_batch_result(handler_state()).
-type handle_batch_result(State) :: handle_events | {handle_events, [batch_event()]} | {handle_events, [batch_event()], State} | stop | {stop, stop_reason()} | {stop, stop_reason(), State}.
-type handle_event_result() :: handle_event_result(handler_state()).
-type handle_event_result(State) :: cont | {cont, State} | stop | {stop, stop_reason()} | {stop, stop_reason(), State}.
-type handle_info_result() :: handle_info_result(handler_state()).
-type handle_info_result(State) :: cont | {cont, State} | stop | {stop, stop_reason()} | {stop, stop_reason(), State}.
-type handler() :: module().
-type handler_options() :: term() | eqwalizer:dynamic().
-type handler_state() :: term() | eqwalizer:dynamic().
-type init_data() :: #init_data{}.
-type init_result() :: init_result(handler_state()).
-type init_result(State) :: {ok, State} | ignore | {stop, stop_reason()}.
-type stop_reason() :: normal | shutdown | {shutdown, term()} | term() | eqwalizer:dynamic().
-type worker_number() :: pos_integer().
Link to this section Callbacks
-callback handle_batch(BatchSize :: non_neg_integer(), BatchDrop :: non_neg_integer(), BatchEvents :: [batch_event()], HandlerState :: handler_state()) -> handle_batch_result().
-callback handle_control_event(Time :: erldist_filter_nif:logger_time(), Sysname :: node(), Control :: eqwalizer:dynamic(), HandlerState :: handler_state()) -> handle_event_result().
-callback handle_info(Info :: term() | eqwalizer:dynamic(), HandlerState :: handler_state()) -> handle_info_result().
-callback handle_payload_event(Time :: erldist_filter_nif:logger_time(), Sysname :: node(), Control :: eqwalizer:dynamic(), Payload :: eqwalizer:dynamic(), HandlerState :: handler_state()) -> handle_event_result().
-callback init(HandlerOptions :: handler_options(), WorkerNumber :: worker_number()) -> init_result().
-callback terminate(Reason :: stop_reason(), HandlerState :: handler_state()) -> Ignored :: term().
Link to this section Functions
-spec callback_mode() -> gen_statem:callback_mode_result().
-spec child_name(Handler, WorkerNumber) -> atom() when Handler :: handler(), WorkerNumber :: worker_number().
-spec child_spec(Handler, HandlerOptions, WorkerNumber) -> supervisor:child_spec() when Handler :: handler(), HandlerOptions :: handler_options(), WorkerNumber :: worker_number().
-spec init(InitData) -> InitResult when InitData :: init_data(), State :: recv, Data :: data(), InitResult :: gen_statem:init_result(State, Data).
-spec recv(enter, State, Data) -> StateEnterResult when State :: recv | wait, Data :: data(), StateEnterResult :: gen_statem:state_enter_result(State, Data); (EventType, EventContent, Data) -> HandleEventResult when EventType :: gen_statem:event_type(), EventContent :: gen_statem_event_content(), State :: recv | wait, Data :: data(), HandleEventResult :: gen_statem:event_handler_result(State, Data).
-spec start_link(ServerName, Handler, HandlerOptions, WorkerNumber) -> gen_statem:start_ret() when ServerName :: gen_statem:server_name(), Handler :: handler(), HandlerOptions :: handler_options(), WorkerNumber :: worker_number().
-spec terminate(Reason, State, Data) -> Ignored when Reason :: stop_reason(), State :: recv | wait, Data :: data(), Ignored :: term().
-spec wait(enter, State, Data) -> StateEnterResult when State :: wait, Data :: data(), StateEnterResult :: gen_statem:state_enter_result(State, Data); (EventType, EventContent, Data) -> HandleEventResult when EventType :: gen_statem:event_type(), EventContent :: gen_statem_event_content(), State :: recv | wait, Data :: data(), HandleEventResult :: gen_statem:event_handler_result(State, Data).