Exemple #1
0
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;
			}
		}
	}
}