odyssey/core/od_server_pool.h

43 lines
920 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 od_serverpool_t od_serverpool_t;
2016-11-09 12:01:48 +00:00
typedef int (*od_serverpool_cb_t)(od_server_t*, void*);
struct od_serverpool_t {
2016-11-29 13:03:39 +00:00
od_list_t active;
od_list_t connect;
od_list_t reset;
od_list_t expire;
2016-12-13 14:46:41 +00:00
od_list_t close;
2016-11-29 13:03:39 +00:00
od_list_t idle;
int count_active;
int count_connect;
int count_reset;
int count_expire;
2016-12-13 14:46:41 +00:00
int count_close;
2016-11-29 13:03:39 +00:00
int count_idle;
od_list_t link;
2016-11-09 12:01:48 +00:00
};
void od_serverpool_init(od_serverpool_t*);
void od_serverpool_free(od_serverpool_t*);
void od_serverpool_set(od_serverpool_t*, od_server_t*,
od_serverstate_t);
2016-11-09 12:01:48 +00:00
od_server_t*
2016-12-13 14:46:41 +00:00
od_serverpool_next(od_serverpool_t*, od_serverstate_t);
od_server_t*
od_serverpool_foreach(od_serverpool_t*, od_serverstate_t,
od_serverpool_cb_t, void*);
2016-11-09 12:01:48 +00:00
#endif