static void pm_norepeat_data_available(nx_module_t *module) { nx_logdata_t *logdata; nx_pm_norepeat_conf_t *modconf; log_debug("nx_pm_norepeat_data_available()"); modconf = (nx_pm_norepeat_conf_t *) module->config; if ( nx_module_get_status(module) != NX_MODULE_STATUS_RUNNING ) { log_debug("module %s not running, not processing any more data", module->name); return; } if ( (logdata = nx_module_logqueue_peek(module)) == NULL ) { return; } logdata = pm_norepeat_process(module, logdata); // add logdata to the next modules' queue if ( logdata != NULL ) { nx_module_progress_logdata(module, logdata); } }
static void om_kafka_write(nx_module_t *module) { nx_om_kafka_conf_t* modconf; modconf = (nx_om_kafka_conf_t*) module->config; nx_logdata_t *logdata; if (nx_module_get_status(module) != NX_MODULE_STATUS_RUNNING) { log_warn("Kafka module not running."); return; } if (module->output.buflen == 0) { if ((logdata = nx_module_logqueue_peek(module)) != NULL) { module->output.logdata = logdata; if (rd_kafka_produce(modconf->rkt, modconf->partition, RD_KAFKA_MSG_F_COPY, /* Payload and length */ logdata->raw_event->buf, (int) logdata->raw_event->len, /* Optional key and its length */ NULL, 0, /* Message opaque, provided in delivery report callback as msg_opaque. */ NULL) == -1) { log_error("Unable to produce message"); rd_kafka_poll(modconf->rk, 0); } else { //TODO: report on message log_debug("Message sent"); rd_kafka_poll(modconf->rk, 0); nx_module_logqueue_pop(module, module->output.logdata); nx_logdata_free(module->output.logdata); module->output.logdata = NULL; } } } }