X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Finclude%2Ffrontend%2Fconnection.h;h=98c41360a990ba11175f2a24150a922185769458;hb=740f1a8839faaf3033ea23f4cf2eea0dc0209d13;hp=803a195e45c31c2233e4348556368ea8b88538b3;hpb=af24300b64d721ec7e3be3edee1477d83b135f8b;p=sysdb.git diff --git a/src/include/frontend/connection.h b/src/include/frontend/connection.h index 803a195..98c4136 100644 --- a/src/include/frontend/connection.h +++ b/src/include/frontend/connection.h @@ -58,6 +58,12 @@ typedef struct { } sdb_conn_node_t; #define SDB_CONN_NODE(obj) ((sdb_conn_node_t *)(obj)) +/* + * sdb_conn_setup_cb is a callback function used to setup a connection. For + * example, it may be used to initialize session information. + */ +typedef int (*sdb_conn_setup_cb)(sdb_conn_t *, void *); + /* * sdb_connection_enable_logging: * Enable logging of connection-related messages to the current client @@ -75,14 +81,16 @@ sdb_connection_enable_logging(void); /* * sdb_connection_accpet: * Accept a new connection on the specified file-descriptor 'fd' and return a - * newly allocated connection object. + * newly allocated connection object. If specified, the setup callback is used + * to setup the newly created connection. It will receive the connection + * object and the specified user data as its arguments. * * Returns: * - 0 on success * - a negative value else */ sdb_conn_t * -sdb_connection_accept(int fd); +sdb_connection_accept(int fd, sdb_conn_setup_cb setup, void *user_data); /* * sdb_connection_close: @@ -127,13 +135,23 @@ sdb_connection_send(sdb_conn_t *conn, uint32_t code, int sdb_connection_ping(sdb_conn_t *conn); +/* + * sdb_connection_server_version: + * Send back the backend server version to the connected client. + * + * Returns: + * - 0 on success + * - a negative value else + */ +int +sdb_connection_server_version(sdb_conn_t *conn); + /* * sdb_fe_parse: * Parse the query text specified in 'query' of length 'len' and return a list - * of parse trees (for each command) to be executed by sdb_fe_exec. The list - * has to be freed by the caller. If 'len' is less than zero, parse the whole - * (nul-terminated) string. If specified, errbuf will be used to record parse - * errors. + * of parse trees (for each command). The list has to be freed by the caller. + * If 'len' is less than zero, parse the whole (nul-terminated) string. If + * specified, errbuf will be used to record parse errors. * * Returns: * - an sdb_llist_t object of sdb_conn_node_t on success @@ -142,17 +160,6 @@ sdb_connection_ping(sdb_conn_t *conn); sdb_llist_t * sdb_fe_parse(const char *query, int len, sdb_strbuf_t *errbuf); -/* - * sdb_fe_exec: - * Execute the command identified by 'node' on the specified connection. - * - * Returns: - * - 0 on success - * - a negative value else - */ -int -sdb_fe_exec(sdb_conn_t *conn, sdb_conn_node_t *node); - /* * session handling */