Sortix cross-nightly manual
This manual documents Sortix cross-nightly. You can instead view this document in the latest official manual.
NAME
UI_create_method, UI_destroy_method, UI_method_set_opener, UI_method_set_writer, UI_method_set_flusher, UI_method_set_reader, UI_method_set_closer, UI_method_set_prompt_constructor, UI_method_get_opener, UI_method_get_writer, UI_method_get_flusher, UI_method_get_reader, UI_method_get_closer, UI_method_get_prompt_constructor — user interface method creation and destructionSYNOPSIS
#include <openssl/ui.h>UI_create_method(const char *name);
UI_destroy_method(UI_METHOD *ui_method);
UI_method_set_opener(UI_METHOD *method, int (*opener)(UI *ui));
UI_method_set_writer(UI_METHOD *method, int (*writer)(UI *ui, UI_STRING *uis));
UI_method_set_flusher(UI_METHOD *method, int (*flusher)(UI *ui));
UI_method_set_reader(UI_METHOD *method, int (*reader)(UI *ui, UI_STRING *uis));
UI_method_set_closer(UI_METHOD *method, int (*closer)(UI *ui));
UI_method_set_prompt_constructor(UI_METHOD *method, char *(*prompt_constructor)(UI *ui, const char *object_desc, const char *object_name));
(*UI_method_get_opener(const UI_METHOD *method))(UI *);
(*UI_method_get_writer(const UI_METHOD *method))(UI *, UI_STRING *);
(*UI_method_get_flusher(const UI_METHOD *method))(UI *);
(*UI_method_get_reader(const UI_METHOD *method))(UI *, UI_STRING *);
(*UI_method_get_closer(const UI_METHOD *method))(UI *);
(*UI_method_get_prompt_constructor(UI_METHOD *method))(UI *, const char *, const char *);
DESCRIPTION
A method contains a few functions that implement the low level of the User Interface. These functions are:- an opener
- This function takes a reference to a UI and starts a session, for example by opening a channel to a tty, or by creating a dialog box.
- a writer
- This function takes a reference to a UI and a UI String, and writes the string where appropriate, maybe to the tty, maybe added as a field label in a dialog box. Note that this gets fed all strings associated with a UI, one after the other, so care must be taken which ones it actually uses.
- a flusher
- This function takes a reference to a UI, and flushes everything that has been output so far. For example, if the method builds up a dialog box, this can be used to actually display it and accepting input ended with a pressed button.
- a reader
- This function takes a reference to a UI and a UI string and reads off the given prompt, maybe from the tty, maybe from a field in a dialog box. Note that this gets fed all strings associated with a UI, one after the other, so care must be taken which ones it actually uses.
- a closer
- This function takes a reference to a UI, and closes the session, maybe by closing the channel to the tty, maybe by destroying a dialog box.
- Open the session using the opener function if that one is defined. If an error occurs, jump to 5.
- For every UI String associated with the UI, call the writer function if that one is defined. If an error occurs, jump to 5.
- Flush everything using the flusher function if that one is defined. If an error occurs, jump to 5.
- For every UI String associated with the UI, call the reader function if that one is defined. If an error occurs, jump to 5.
- Close the session using the closer function if that one is defined.