odyssey/core/od_server_pool.h

41 lines
862 B
C
Raw Normal View History

2016-11-09 12:01:48 +00:00
#ifndef OD_SERVER_POOL_H_
#define OD_SERVER_POOL_H_
/*
* odissey.
*
* PostgreSQL connection pooler and request router.
*/
typedef struct odserver_pool_t odserver_pool_t;
typedef int (*odserver_pool_cb_t)(odserver_t*, void*);
2016-11-09 12:01:48 +00:00
struct odserver_pool_t {
odlist_t active;
odlist_t connect;
2016-11-14 13:53:26 +00:00
odlist_t reset;
odlist_t expire;
2016-11-09 12:01:48 +00:00
odlist_t idle;
int count_active;
int count_connect;
2016-11-14 13:53:26 +00:00
int count_reset;
int count_expire;
2016-11-09 12:01:48 +00:00
int count_idle;
odlist_t link;
};
void od_serverpool_init(odserver_pool_t*);
void od_serverpool_free(odserver_pool_t*);
void od_serverpool_set(odserver_pool_t*, odserver_t*,
odserver_state_t);
odserver_t*
od_serverpool_pop(odserver_pool_t*, odserver_state_t);
odserver_t*
od_serverpool_foreach(odserver_pool_t*, odserver_state_t,
odserver_pool_cb_t, void*);
2016-11-09 12:01:48 +00:00
#endif