From b2119e0523dd212d6865efa2bec56dcd42d3e1b5 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Fri, 19 Jun 2020 09:35:28 +0000 Subject: [PATCH] refactored --- mariadbsink.c | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/mariadbsink.c b/mariadbsink.c index 41653bd..e157564 100644 --- a/mariadbsink.c +++ b/mariadbsink.c @@ -9,6 +9,7 @@ typedef struct { bool stopSignal; + ringbuffer_t *ringbuffer; } mariadbsinkThreadContext_t; void mariadbsinkStop(void *ptr) { @@ -19,17 +20,19 @@ void mariadbsinkStop(void *ptr) { fprintf(stderr, "mariadb sink thread, stop flagged\n"); } - -void *mariadbsink(void *ptr) { - fprintf(stderr, "mariadb sink entered\n"); - - commonThreadHandle_t *handle = (commonThreadHandle_t*)ptr; +mariadbsinkThreadContext_t *_mariadbsinkInit(commonThreadHandle_t *handle) { mariadbsinkThreadContext_t *context = (mariadbsinkThreadContext_t*) malloc(sizeof(mariadbsinkThreadContext_t)); handle->sinkContext = (void*)context; - context->stopSignal = false; + context->stopSignal = false; + context->ringbuffer = handle->ringbuffer; + + return context; +} + +int _mariadbsinkExec(mariadbsinkThreadContext_t *context) { while (! context->stopSignal) { - auditItem_t *auditItem = (auditItem_t*)ringbufferGet(handle->ringbuffer); + auditItem_t *auditItem = (auditItem_t*)ringbufferGet(context->ringbuffer); if (auditItem != NULL) { printf("AuditItem: Time: %ld\n", auditItem->ts); @@ -44,6 +47,26 @@ void *mariadbsink(void *ptr) { auditItem = NULL; } } + return 0; +} + +int _mariadbsinkDeInit(commonThreadHandle_t *handle) { + free((mariadbsinkThreadContext_t*)handle->sinkContext); + handle->sinkContext = NULL; + return 0; +} + + + + +void *mariadbsink(void *ptr) { + fprintf(stderr, "mariadb sink entered\n"); + + mariadbsinkThreadContext_t *context = _mariadbsinkInit((commonThreadHandle_t*)ptr); + + _mariadbsinkExec(context); + + _mariadbsinkDeInit((commonThreadHandle_t*)ptr); fprintf(stderr, "mariadb sink thread stopped\n"); return (void*)NULL;