From 59fc56424d968df7cc7d2f6b9aa1e59f12d1eb82 Mon Sep 17 00:00:00 2001 From: Dmitry Simonenko Date: Wed, 9 Nov 2016 14:01:08 +0300 Subject: [PATCH] odissey: add server abstraction --- core/od_server.h | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 core/od_server.h diff --git a/core/od_server.h b/core/od_server.h new file mode 100644 index 00000000..f788f27e --- /dev/null +++ b/core/od_server.h @@ -0,0 +1,53 @@ +#ifndef OD_SERVER_H_ +#define OD_SERVER_H_ + +/* + * odissey. + * + * PostgreSQL connection pooler and request router. +*/ + +typedef struct odserver_t odserver_t; + +typedef enum { + OD_SUNDEF, + OD_SIDLE, + OD_SCONNECT, + OD_SACTIVE +} odserver_state_t; + +struct odserver_t { + odserver_state_t state; + odscheme_server_t *scheme; + ftio_t io; + /* user, database */ + /* key */ + odlist_t link; +}; + +static inline void +od_serverinit(odserver_t *s) +{ + s->state = OD_SUNDEF; + s->scheme = NULL; + s->io = NULL; + od_listinit(&s->link); +} + +static inline odserver_t* +od_serveralloc(void) +{ + odserver_t *s = malloc(sizeof(*s)); + if (s == NULL) + return NULL; + od_serverinit(s); + return s; +} + +static inline void +od_serverfree(odserver_t *s) +{ + free(s); +} + +#endif