X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Ftools%2Fsysdb%2Finput.h;h=ba2b32d8d3553dad528bfda657d7f18f79b20234;hb=147e814d602f90e411a948613e85e627f5858018;hp=80f1bb5aeb669b6085c0b33c5c3daf65df6426f1;hpb=d85780ce9c65b6a38d7149c71e93e91d904f66a2;p=sysdb.git diff --git a/src/tools/sysdb/input.h b/src/tools/sysdb/input.h index 80f1bb5..ba2b32d 100644 --- a/src/tools/sysdb/input.h +++ b/src/tools/sysdb/input.h @@ -33,15 +33,20 @@ typedef struct { sdb_client_t *client; + char *user; sdb_strbuf_t *input; size_t tokenizer_pos; size_t query_len; - _Bool eof; + /* indicates that we've had non-empty input */ + bool have_input; + + bool interactive; + bool eof; } sdb_input_t; -#define SDB_INPUT_INIT { NULL, NULL, 0, 0, 0 } +#define SDB_INPUT_INIT { NULL, NULL, NULL, 0, 0, 0, 1, 0 } /* * sysdb_input: @@ -56,6 +61,18 @@ extern sdb_input_t *sysdb_input; int sdb_input_init(sdb_input_t *input); +/* + * sdb_input_mainloop: + * Wait for and handle all user and server input until end-of-file is read + * from the user (on the standard input channel). + * + * Returns: + * - 0 on success + * - a negative value else + */ +int +sdb_input_mainloop(void); + /* * sdb_input_readline: * This function is supposed to be used with a flex scanner's YY_INPUT. It @@ -68,7 +85,7 @@ sdb_input_init(sdb_input_t *input); * - A negative value in case of an error. */ ssize_t -sdb_input_readline(char *buf, int *n_chars, size_t max_chars); +sdb_input_readline(char *buf, size_t *n_chars, size_t max_chars); /* * sdb_input_exec_query: @@ -78,6 +95,14 @@ sdb_input_readline(char *buf, int *n_chars, size_t max_chars); int sdb_input_exec_query(void); +/* + * sdb_input_reconnect: + * Let the client reconnect to the server using the settings stored in + * sysdb_input. + */ +int +sdb_input_reconnect(void); + #endif /* SYSDB_INPUT_H */ /* vim: set tw=78 sw=4 ts=4 noexpandtab : */