odyssey/sources/route_pool.h

47 lines
1.0 KiB
C

#ifndef OD_ROUTE_POOL_H
#define OD_ROUTE_POOL_H
/*
* Odissey.
*
* Advanced PostgreSQL connection pooler.
*/
typedef struct od_routepool od_routepool_t;
typedef int (*od_routepool_stats_function_t)
(char *database,
int database_len,
od_serverstat_t *total,
od_serverstat_t *avg, void *arg);
struct od_routepool
{
od_list_t list;
int count;
};
void od_routepool_init(od_routepool_t*);
void od_routepool_free(od_routepool_t*);
void od_routepool_gc(od_routepool_t*);
od_route_t*
od_routepool_new(od_routepool_t*, od_schemeroute_t*,
od_routeid_t*);
od_route_t*
od_routepool_match(od_routepool_t*, od_routeid_t*, od_schemeroute_t*);
od_server_t*
od_routepool_next(od_routepool_t*, od_serverstate_t);
od_server_t*
od_routepool_foreach(od_routepool_t*, od_serverstate_t,
od_serverpool_cb_t, void*);
int od_routepool_stats(od_routepool_t *pool,
od_routepool_stats_function_t,
void*);
#endif /* OD_ROUTE_POOL_H */