#include "logutil_doc.h"
+// temporary, remove after prepare_logs changes signature
+struct dlogutil_config {
+ dlogutil_filter_options_s *filter;
+ dlogutil_sorting_options_s *sorting;
+};
+
/**
* @addtogroup DLOG_IMPLEMENTATION
* @{
}
static int parse_options(int argc, char **argv, struct log_file *l_file, int *enabled_buffers, action_e *action,
- dlogutil_sorting_options_s *sorting, dlogutil_filter_options_s *filter, unsigned *mode, bool *monitor, dlogutil_sorting_order_e *sort_by)
+ dlogutil_config_s *config, unsigned *mode, bool *monitor, dlogutil_sorting_order_e *sort_by)
{
assert(argv);
assert(l_file);
assert(enabled_buffers);
assert(action);
- assert(sorting);
- assert(filter);
+ assert(config);
assert(mode);
assert(sort_by);
int tid;
if (sscanf(optarg, "%d", &tid) != 1)
err_arg_nondigit = 1;
- else if (dlogutil_filter_options_set_tid(filter, tid))
+ else if (dlogutil_config_filter_tid(config, tid))
goto enomem;
break;
}
int pid;
if (sscanf(optarg, "%d", &pid) != 1)
err_arg_nondigit = 1;
- else if (dlogutil_filter_options_set_pid(filter, pid))
+ else if (dlogutil_config_filter_pid(config, pid))
goto enomem;
break;
}
if (sscanf(optarg, "%u", &size) != 1)
err_arg_nondigit = 1;
if (size == 0)
- dlogutil_sorting_options_disable_sorting(sorting);
+ dlogutil_config_sorting_disable(config);
else
- dlogutil_sorting_options_enable_sorting_with_size(sorting, size);
+ dlogutil_config_sorting_enable_with_size(config, size);
break;
}
case 'f':
break;
}
case 's':
- if (dlogutil_filter_options_set_filterspec(filter, "*:S"))
+ if (dlogutil_config_filter_filterspec(config, "*:S"))
goto enomem;
break;
case 'r':
}
while (optind < argc) {
- int r = dlogutil_filter_options_set_filterspec(filter, argv[optind++]);
+ int r = dlogutil_config_filter_filterspec(config, argv[optind++]);
switch (r) {
case TIZEN_ERROR_INVALID_PARAMETER:
/* We assert filter is not NULL above, and the system should
return -ENOMEM;
}
-static void filter_cleanup(dlogutil_filter_options_s *const *filter) {
- assert(filter);
- dlogutil_filter_options_destroy(*filter);
-}
-
-static void sorting_cleanup(dlogutil_sorting_options_s *const *sorting) {
- assert(sorting);
- dlogutil_sorting_options_destroy(*sorting);
+static void config_cleanup(dlogutil_config_s *const *config) {
+ assert(config);
+ dlogutil_config_destroy(*config);
}
static int print_buffer_capacity(dlogutil_buffer_e buffer)
* @retval <0 Failure as denoted by value: -errno
*/
static int do_print(unsigned int mode, int enabled_buffers, bool monitor, dlogutil_sorting_order_e sort_by,
- dlogutil_sorting_options_s *sorting, dlogutil_filter_options_s *filter, struct log_file *l_file)
+ dlogutil_config_s *config, struct log_file *l_file)
{
/* Optimisation for short-lived (i.e. dumping) instances.
*
if (sort_by == DLOGUTIL_SORT_DEFAULT)
sort_by = get_format_sorting(l_file->format.format);
- dlogutil_sorting_options_set_sort_by(sorting, sort_by);
+ dlogutil_config_order_set(config, sort_by);
/* We implicitly assume three things here:
* 1. if a timestamp is available for one of the buffers,
struct logfile_callback_data data = { .file = l_file, .sort_by = sort_by };
if (monitor)
- return dlogutil_get_logs_monitor(enabled_buffers, logfile_callback, &data, sorting, filter);
+ return dlogutil_get_logs_monitor(enabled_buffers, logfile_callback, &data, config->sorting, config->filter);
else if (mode == DLOGUTIL_MODE_CONTINUOUS)
- return dlogutil_get_logs_continuous(enabled_buffers, logfile_callback, &data, sorting, filter);
+ return dlogutil_get_logs_continuous(enabled_buffers, logfile_callback, &data, config->sorting, config->filter);
else
- return dlogutil_get_logs_dump(enabled_buffers, mode, logfile_callback, &data, sorting, filter);
+ return dlogutil_get_logs_dump(enabled_buffers, mode, logfile_callback, &data, config->sorting, config->filter);
}
#ifndef UNIT_TEST
logfile_init(&l_file);
logfile_set_fd(&l_file, fileno(stdout), 0);
- __attribute__((cleanup(filter_cleanup))) dlogutil_filter_options_s *filter = dlogutil_filter_options_create();
- __attribute__((cleanup(sorting_cleanup))) dlogutil_sorting_options_s *sorting = dlogutil_sorting_options_create();
- if (!filter || !sorting) {
+ __attribute__((cleanup(config_cleanup))) dlogutil_config_s *config = dlogutil_config_create();
+ if (!config) {
errno = ENOMEM;
ERR("Error while initialising: %m\n");
return EXIT_FAILURE;
bool monitor = false;
dlogutil_sorting_order_e sort_by = DLOGUTIL_SORT_DEFAULT;
- int r = parse_options(argc, argv, &l_file, &enabled_buffers, &action, sorting, filter, &mode, &monitor, &sort_by);
+ int r = parse_options(argc, argv, &l_file, &enabled_buffers, &action, config, &mode, &monitor, &sort_by);
if (r)
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
switch (action) {
case ACTION_PRINT: {
- r = do_print(mode, enabled_buffers, monitor, sort_by, sorting, filter, &l_file);
+ r = do_print(mode, enabled_buffers, monitor, sort_by, config, &l_file);
break;
}
case ACTION_GET_CAPACITY: {