This commit is the result of the squash of the following main commits:
Author: Eric Bollengier <eric@baculasystems.com>
Date: Mon Mar 30 14:58:01 2020 +0200
Add OutputWriter boolean type
Author: Eric Bollengier <eric@baculasystems.com>
Date: Thu Mar 19 18:09:32 2020 +0100
more work on QT5 for windows
Author: Eric Bollengier <eric@baculasystems.com>
Date: Mon Feb 3 19:01:21 2020 +0100
Allow to use empty options in OutputWriter
Author: Eric Bollengier <eric@baculasystems.com>
Date: Tue Jan 28 09:15:23 2014 +0100
Implement .api v2 and use computer friendly output to status commands.
For example, we can use the following code:
static void api_list_dir_status_header(UAContext *ua)
{
OutputWriter wt;
ua->send_msg("%s",
wt.get_output(
OT_STRING, "name", my_name,
OT_STRING, "version", VERSION " (" BDATE ")",
OT_STRING, "uname", HOST_OS " " DISTNAME " " DISTVER,
OT_UTIME, "started", daemon_start_time,
OT_UTIME, "reloaded", last_reload_time,
OT_INT, "jobs_run", num_jobs_run,
OT_INT, "jobs_running",job_count(),
OT_END
));
}
It will display
name=bacula-dir
version=6.6.3 (
12Dec13)
uname=....
The OutputWriter class can be configured to use a custom
separator (\t or \n for example), custom date format, and
will handle basic formating such as time, string, integer,
list of strings, etc...