X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=src%2Ftools%2Fsysdb%2Finput.h;h=0aeabf8b7b653197f98ffa0678d13b769e0c21e2;hp=00b915beabea13735804bc3c1ebc480630d1aa84;hb=865b0a3b20fe3c1eb014e22e4b1f45f4fa931ce5;hpb=a2edc622eb8aa5ff956757a846405d7cbd05c646 diff --git a/src/tools/sysdb/input.h b/src/tools/sysdb/input.h index 00b915b..0aeabf8 100644 --- a/src/tools/sysdb/input.h +++ b/src/tools/sysdb/input.h @@ -33,13 +33,42 @@ typedef struct { sdb_client_t *client; + const char *user; sdb_strbuf_t *input; size_t tokenizer_pos; size_t query_len; + + bool interactive; + bool eof; } sdb_input_t; -#define SDB_INPUT_INIT { NULL, NULL, 0, 0 } +#define SDB_INPUT_INIT { NULL, NULL, NULL, 0, 0, 1, 0 } + +/* + * sysdb_input: + * Input object to be used by the 'sysdb' command line tool. + */ +extern sdb_input_t *sysdb_input; + +/* + * sdb_input_init: + * Initialize the input handler. + */ +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: @@ -53,8 +82,7 @@ typedef struct { * - A negative value in case of an error. */ ssize_t -sdb_input_readline(sdb_input_t *input, 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: @@ -62,14 +90,15 @@ sdb_input_readline(sdb_input_t *input, char *buf, * server's reply and prints errors or returned data to standard output. */ int -sdb_input_exec_query(sdb_input_t *input); +sdb_input_exec_query(void); /* - * scanner + * sdb_input_reconnect: + * Let the client reconnect to the server using the settings stored in + * sysdb_input. */ - -void -sdb_input_set(sdb_input_t *new_input); +int +sdb_input_reconnect(void); #endif /* SYSDB_INPUT_H */