static int on_write_response_write1(struct query_state *qstate) { struct cache_write_response *write_response; ssize_t result; TRACE_IN(on_write_response_write1); write_response = get_cache_write_response(&qstate->response); result = qstate->write_func(qstate, &write_response->error_code, sizeof(int)); if (result != sizeof(int)) { TRACE_OUT(on_write_response_write1); return (-1); } finalize_comm_element(&qstate->request); finalize_comm_element(&qstate->response); qstate->kevent_watermark = sizeof(int); qstate->kevent_filter = EVFILT_READ; qstate->process_func = on_rw_mapper; TRACE_OUT(on_write_response_write1); return (0); }
static int on_read_response_write2(struct query_state *qstate) { struct cache_read_response *read_response; ssize_t result; TRACE_IN(on_read_response_write2); read_response = get_cache_read_response(&qstate->response); if (read_response->data_size > 0) { result = qstate->write_func(qstate, read_response->data, read_response->data_size); if (result != qstate->kevent_watermark) { TRACE_OUT(on_read_response_write2); return (-1); } } finalize_comm_element(&qstate->request); finalize_comm_element(&qstate->response); qstate->kevent_watermark = sizeof(int); qstate->kevent_filter = EVFILT_READ; qstate->process_func = on_rw_mapper; TRACE_OUT(on_read_response_write2); return (0); }
static int on_mp_write_session_write_response_write1(struct query_state *qstate) { struct cache_mp_write_session_write_response *write_response; ssize_t result; TRACE_IN(on_mp_write_session_write_response_write1); write_response = get_cache_mp_write_session_write_response( &qstate->response); result = qstate->write_func(qstate, &write_response->error_code, sizeof(int)); if (result != sizeof(int)) { LOG_ERR_3("on_mp_write_session_write_response_write1", "write failed"); TRACE_OUT(on_mp_write_session_write_response_write1); return (-1); } if (write_response->error_code == 0) { finalize_comm_element(&qstate->request); finalize_comm_element(&qstate->response); qstate->kevent_watermark = sizeof(int); qstate->process_func = on_mp_write_session_mapper; qstate->kevent_filter = EVFILT_READ; } else { qstate->kevent_watermark = 0; qstate->process_func = 0; } TRACE_OUT(on_mp_write_session_write_response_write1); return (0); }
static int on_mp_read_session_read_response_write2(struct query_state *qstate) { struct cache_mp_read_session_read_response *read_response; ssize_t result; TRACE_IN(on_mp_read_session_read_response_write2); read_response = get_cache_mp_read_session_read_response( &qstate->response); result = qstate->write_func(qstate, read_response->data, read_response->data_size); if (result < 0 || (size_t)result != qstate->kevent_watermark) { LOG_ERR_3("on_mp_read_session_read_response_write2", "write failed"); TRACE_OUT(on_mp_read_session_read_response_write2); return (-1); } finalize_comm_element(&qstate->request); finalize_comm_element(&qstate->response); qstate->kevent_watermark = sizeof(int); qstate->process_func = on_mp_read_session_mapper; qstate->kevent_filter = EVFILT_READ; TRACE_OUT(on_mp_read_session_read_response_write2); return (0); }
/* * The default query_destroy function */ static void on_query_destroy(struct query_state *qstate) { TRACE_IN(on_query_destroy); finalize_comm_element(&qstate->response); finalize_comm_element(&qstate->request); TRACE_OUT(on_query_destroy); }
/* * This function is used as the query_state's destroy_func to make the * proper cleanup in case of errors. */ static void on_mp_read_session_destroy(struct query_state *qstate) { TRACE_IN(on_mp_read_session_destroy); finalize_comm_element(&qstate->request); finalize_comm_element(&qstate->response); if (qstate->mdata != NULL) { configuration_lock_entry(qstate->config_entry, CELT_MULTIPART); close_cache_mp_read_session( (cache_mp_read_session)qstate->mdata); configuration_unlock_entry(qstate->config_entry, CELT_MULTIPART); } TRACE_OUT(on_mp_read_session_destroy); }
static int on_transform_response_write1(struct query_state *qstate) { struct cache_transform_response *transform_response; ssize_t result; TRACE_IN(on_transform_response_write1); transform_response = get_cache_transform_response(&qstate->response); result = qstate->write_func(qstate, &transform_response->error_code, sizeof(int)); if (result != sizeof(int)) { TRACE_OUT(on_transform_response_write1); return (-1); } finalize_comm_element(&qstate->request); finalize_comm_element(&qstate->response); qstate->kevent_watermark = 0; qstate->process_func = NULL; TRACE_OUT(on_transform_response_write1); return (0); }