void lcb_server_v1_read_handler(lcb_sockdata_t *sockptr, lcb_ssize_t nr) { lcb_server_t *c; int rv; hrtime_t stop; if (!lcb_sockrw_v1_cb_common(sockptr, NULL, (void **)&c)) { return; } lcb_sockrw_v1_onread_common(sockptr, &c->connection.input, nr); c->inside_handler = 1; if (nr < 1) { event_complete_common(c, LCB_NETWORK_ERROR); return; } lcb_connection_delay_timer(&c->connection); stop = gethrtime(); while ((rv = lcb_proto_parse_single(c, stop)) > 0) { /* do nothing */ } if (rv >= 0) { /* Schedule the read request again */ lcb_sockrw_set_want(&c->connection, LCB_READ_EVENT, 0); } event_complete_common(c, LCB_SUCCESS); }
void lcb_server_v1_error_handler(lcb_sockdata_t *sockptr) { lcb_server_t *c; if (!lcb_sockrw_v1_cb_common(sockptr, NULL, (void **)&c)) { return; } event_complete_common(c, LCB_NETWORK_ERROR); }
static void config_v1_error_handler(lcb_sockdata_t *sockptr) { lcb_t instance; if (!lcb_sockrw_v1_cb_common(sockptr, NULL, (void **)&instance)) { return; } v1_error_common(instance); }
static void v1_generic_read_handler(lcb_sockdata_t *sd, lcb_ssize_t nr) { lcb_connection_t conn = sd->lcbconn; if (!lcb_sockrw_v1_cb_common(sd, NULL, NULL)) { return; } lcb_sockrw_v1_onread_common(sd, &sd->lcbconn->input, nr); if (nr < 1) { conn->easy.error(conn); return; } else { conn->easy.read(conn); } }
static void config_v1_write_handler(lcb_sockdata_t *sockptr, lcb_io_writebuf_t *wbuf, int status) { lcb_t instance; lcb_connection_t conn = sockptr->lcbconn; if (!lcb_sockrw_v1_cb_common(sockptr, wbuf, (void **)&instance)) { return; } lcb_sockrw_v1_onwrite_common(sockptr, wbuf, &conn->output); if (status) { v1_error_common(instance); } lcb_sockrw_set_want(conn, LCB_READ_EVENT, 1); lcb_sockrw_apply_want(conn); }
static void config_v1_read_handler(lcb_sockdata_t *sockptr, lcb_ssize_t nr) { lcb_t instance; lcb_connection_t conn = sockptr->lcbconn; if (!lcb_sockrw_v1_cb_common(sockptr, NULL, (void **)&instance)) { return; } lcb_sockrw_v1_onread_common(sockptr, &conn->input, nr); if (nr < 1) { v1_error_common(instance); return; } lcb_sockrw_set_want(conn, LCB_READ_EVENT, 1); /* automatically does apply_want */ handle_vbstream_read(instance); }
void lcb_server_v1_write_handler(lcb_sockdata_t *sockptr, lcb_io_writebuf_t *wbuf, int status) { lcb_server_t *c; if (!lcb_sockrw_v1_cb_common(sockptr, wbuf, (void **)&c)) { return; } lcb_sockrw_v1_onwrite_common(sockptr, wbuf, &c->connection.output); c->inside_handler = 1; if (status) { event_complete_common(c, LCB_NETWORK_ERROR); } else { lcb_sockrw_set_want(&c->connection, LCB_READ_EVENT, 0); event_complete_common(c, LCB_SUCCESS); } }
static void v1_generic_write_handler(lcb_sockdata_t *sd, lcb_io_writebuf_t *wbuf, int status) { lcb_t instance; lcb_connection_t conn = sd->lcbconn; if (!lcb_sockrw_v1_cb_common(sd, wbuf, (void **)&instance)) { return; } lcb_sockrw_v1_onwrite_common(sd, wbuf, &sd->lcbconn->output); if (status) { conn->easy.error(conn); } else { lcb_sockrw_set_want(conn, LCB_READ_EVENT, 1); lcb_sockrw_apply_want(conn); } }