--- a/src/evpq.c Sat Oct 11 21:35:48 2008 +0300
+++ b/src/evpq.c Sun Oct 12 00:17:09 2008 +0300
@@ -9,6 +9,7 @@
struct evpq_conn {
struct event_base *ev_base;
struct evpq_callback_info user_cb;
+ void *user_cb_arg;
PGconn *pg_conn;
@@ -25,7 +26,7 @@
conn->state = EVPQ_FAILURE;
// notify
- conn->user_cb.fn_failure(conn, conn->user_cb.cb_arg);
+ conn->user_cb.fn_failure(conn, conn->user_cb_arg);
}
/*
@@ -36,7 +37,7 @@
conn->state = EVPQ_CONNECTED;
// notify
- conn->user_cb.fn_connected(conn, conn->user_cb.cb_arg);
+ conn->user_cb.fn_connected(conn, conn->user_cb_arg);
}
/*
@@ -61,14 +62,14 @@
conn->state = EVPQ_CONNECTED;
// tell the user the query is done
- conn->user_cb.fn_done(conn, conn->user_cb.cb_arg);
+ conn->user_cb.fn_done(conn, conn->user_c_arg);
// stop waiting for more results
return 1;
} else {
// got a result, give it to the user
- conn->user_cb.fn_result(conn, result, conn->user_cb.cb_arg);
+ conn->user_cb.fn_result(conn, result, conn->user_cb_arg);
// great
return 0;
@@ -206,7 +207,7 @@
}
-struct evpq_conn *evpq_connect (struct event_base *ev_base, const char *conninfo, const struct evpq_callback_info cb_info) {
+struct evpq_conn *evpq_connect (struct event_base *ev_base, const char *conninfo, const struct evpq_callback_info cb_info, void *cb_arg) {
struct evpq_conn *conn = NULL;
// alloc our context
@@ -216,6 +217,7 @@
// initial state
conn->ev_base = ev_base;
conn->user_cb = cb_info;
+ conn->user_cb_arg = cb_arg;
conn->state = EVPQ_INIT;
// create our PGconn
@@ -272,6 +274,10 @@
return -1;
}
+enum evpq_state evpq_state (struct evpq_conn *conn) {
+ return conn->state;
+}
+
const PGconn *evpq_pgconn (struct evpq_conn *conn) {
return conn->pg_conn;
}