Go to the documentation of this file.
100 while (logger && store) {
108 logger = logger->
next;
129 SCLogDebug(
"OutputFlowLogThreadInit happy (*data %p)", *data);
140 ts->thread_data = retptr;
142 if (td->
store == NULL) {
146 while (tmp->
next != NULL)
155 logger = logger->
next;
164 if (op_thread_data == NULL)
170 while (logger && store) {
178 logger = logger->
next;
191 logger = next_logger;
TmEcode OutputFlowLog(ThreadVars *tv, void *thread_data, Flow *f)
Run flow logger(s)
TmEcode OutputFlowLogThreadInit(ThreadVars *tv, void **data)
thread init for the flow logger This will run the thread init functions for the individual registered...
struct OutputLoggerThreadStore_ * next
int(* FlowLogger)(ThreadVars *, void *thread_data, Flow *f)
Flow logger function pointer type.
struct OutputFlowLoggerThreadData_ OutputFlowLoggerThreadData
int SCOutputRegisterFlowLogger(const char *name, FlowLogger LogFunc, void *initdata, ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit)
Register a flow logger.
struct OutputFlowLogger_ * next
struct OutputFlowLogger_ OutputFlowLogger
Per thread variable structure.
TmEcode(* ThreadInitFunc)(ThreadVars *, const void *, void **)
TmEcode(* ThreadInit)(ThreadVars *, const void *, void **)
OutputLoggerThreadStore * store
TmEcode OutputFlowLogThreadDeinit(ThreadVars *tv, void *thread_data)
void OutputFlowShutdown(void)
#define DEBUG_VALIDATE_BUG_ON(exp)
TmEcode(* ThreadDeinit)(ThreadVars *, void *)
TmEcode(* ThreadDeinitFunc)(ThreadVars *, void *)