#include #include #include #include #include "commonTypes.h" #include "ringbuffer.h" typedef struct { bool stopSignal; } sinkThreadContext_t; void sinkStop(void *ptr) { commonThreadHandle_t *handle = (commonThreadHandle_t*)ptr; sinkThreadContext_t *context = (sinkThreadContext_t*)handle->sinkContext; context->stopSignal = true; fprintf(stderr, "sink thread, stop flagged\n"); } void *sink(void *ptr) { fprintf(stderr, "sink entered\n"); commonThreadHandle_t *handle = (commonThreadHandle_t*)ptr; sinkThreadContext_t *context = (sinkThreadContext_t*) malloc(sizeof(sinkThreadContext_t)); handle->sinkContext = (void*)context; context->stopSignal = false; while (! context->stopSignal) { auditItem_t *auditItem = (auditItem_t*)ringbufferGet(handle->ringbuffer); if (auditItem != NULL) { printf("AuditItem: Time: %ld\n", auditItem->ts); printf("AuditItem: Topic: %s\n", auditItem->topic); printf("AuditItem: Payload: %s\n", auditItem->payload); free(auditItem->topic); auditItem->topic = NULL; free(auditItem->payload); auditItem->payload = NULL; free(auditItem); auditItem = NULL; } } fprintf(stderr, "sink thread stopped\n"); return (void*)NULL; }