#ifndef LCB_MCSERVER_H
#define LCB_MCSERVER_H
#include <libcouchbase/couchbase.h>
#include <lcbio/lcbio.h>
#include <lcbio/timer-ng.h>
#include <mc/mcreq.h>
#include <netbuf/netbuf.h>
#ifdef __cplusplus
extern "C" {
#endif
struct lcb_settings_st;
struct lcb_server_st;
typedef struct mc_SERVER_st {
mc_PIPELINE pipeline;
lcb_t instance;
lcb_settings *settings;
int state;
short compsupport;
short mutation_tokens;
lcbio_pTIMER io_timer;
lcbio_CTX *connctx;
lcbio_CONNREQ connreq;
lcb_host_t *curhost;
} mc_SERVER;
#define MCSERVER_TIMEOUT(c) (c)->settings->operation_timeout
mc_SERVER *
mcserver_alloc(lcb_t instance, int ix);
void
mcserver_close(mc_SERVER *server);
void
mcserver_flush(mc_SERVER *server);
void
mcserver_fail_chain(mc_SERVER *server, lcb_error_t err);
LCB_INTERNAL_API
int
mcserver_has_pending(mc_SERVER *server);
#define mcserver_get_host(server) (server)->curhost->host
#define mcserver_get_port(server) (server)->curhost->port
#ifdef __cplusplus
}
#endif
#endif