static void im_ssl_event(nx_module_t *module, nx_event_t *event) { nx_module_input_t *input = NULL; ASSERT(event != NULL); switch ( event->type ) { case NX_EVENT_READ: im_ssl_read(module, event); break; case NX_EVENT_WRITE: im_ssl_write(module, event); break; case NX_EVENT_DISCONNECT: CHECKERR_MSG(apr_socket_data_get((void **) &input, "input", (apr_socket_t *) event->data), "couldn't get input data from socket"); im_ssl_disconnect(input); break; case NX_EVENT_POLL: if ( nx_module_get_status(module) == NX_MODULE_STATUS_RUNNING ) { nx_module_pollset_poll(module, TRUE); } break; default: nx_panic("invalid event type: %d", event->type); } }
static void im_tcp_resume(nx_module_t *module) { if ( nx_module_get_status(module) != NX_MODULE_STATUS_STOPPED ) { nx_module_pollset_poll(module, TRUE); } }
static void im_exec_event(nx_module_t *module, nx_event_t *event) { nx_im_exec_conf_t *imconf; nx_exception_t e; ASSERT(event != NULL); imconf = (nx_im_exec_conf_t *) module->config; switch ( event->type ) { case NX_EVENT_DISCONNECT: // FIXME: restart if imconf->restart == TRUE log_warn("im_exec process %s exited", imconf->cmd); imconf->running = FALSE; im_exec_add_restart_event(module); break; case NX_EVENT_READ: try { im_exec_read(module); } catch(e) { log_exception(e); im_exec_add_restart_event(module); } break; case NX_EVENT_POLL: #ifdef WIN32 nx_panic("pollset based im_exec implementation doesn't work on windows"); #else if ( nx_module_get_status(module) == NX_MODULE_STATUS_RUNNING ) { nx_module_pollset_poll(module, TRUE); } break; #endif default: nx_panic("invalid event type: %d", event->type); } }
static void im_tcp_event(nx_module_t *module, nx_event_t *event) { ASSERT(event != NULL); switch ( event->type ) { case NX_EVENT_READ: im_tcp_read(module, event); break; case NX_EVENT_DISCONNECT: im_tcp_got_disconnect(module, event); break; case NX_EVENT_POLL: if ( nx_module_get_status(module) == NX_MODULE_STATUS_RUNNING ) { nx_module_pollset_poll(module, TRUE); } break; default: nx_panic("invalid event type: %d", event->type); } }
static void om_kafka_event(nx_module_t *module, nx_event_t *event) { log_debug("Kafka module event entrypoint"); nx_exception_t e; ASSERT(module != NULL); ASSERT(event != NULL); nx_om_kafka_conf_t* modconf; modconf = (nx_om_kafka_conf_t*) module->config; switch (event->type) { case NX_EVENT_DATA_AVAILABLE: log_debug("Output buflen: %d, bufstart: %d", (int) module->output.buflen, (int) module->output.bufstart); try { om_kafka_write(module); } catch (e) { io_err_handler(module, &e); } break; case NX_EVENT_READ: break; case NX_EVENT_WRITE: break; case NX_EVENT_RECONNECT: break; case NX_EVENT_DISCONNECT: break; case NX_EVENT_TIMEOUT: break; case NX_EVENT_POLL: if (nx_module_get_status(module) == NX_MODULE_STATUS_RUNNING) { nx_module_pollset_poll(module, FALSE); } break; default: nx_panic("invalid event type: %d", event->type); } }