X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmain%2Foption.c;h=7532073ed95c6e9f90f902c4833c66e7694512ed;hb=08b1c66e3a5ad9588d08f9477af98c0cda4f070c;hp=c6de05413ebe9b2d860b1f63a0fcf68e417ac54b;hpb=9c3123113f395e7ea634c522e340604331359e7e;p=lttv.git diff --git a/ltt/branches/poly/lttv/main/option.c b/ltt/branches/poly/lttv/main/option.c index c6de0541..7532073e 100644 --- a/ltt/branches/poly/lttv/main/option.c +++ b/ltt/branches/poly/lttv/main/option.c @@ -19,11 +19,9 @@ #include #include +#include #include -#define g_info(format...) g_log (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, format) -#define g_debug(format...) g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, format) - typedef struct _LttvOption { char *long_name; char char_name; @@ -55,32 +53,6 @@ free_option(LttvOption *option) } -void lttv_option_init(int argc, char **argv) -{ - g_info("Init option.c"); - options = g_hash_table_new(g_str_hash, g_str_equal); -} - - -void lttv_option_destroy() -{ - LttvOption option; - - GPtrArray *list = g_ptr_array_new(); - - int i; - - g_info("Destroy option.c"); - g_hash_table_foreach(options, list_options, list); - g_hash_table_destroy(options); - - for(i = 0 ; i < list->len ; i++) { - free_option((LttvOption *)list->pdata[i]); - } - g_ptr_array_free(list, TRUE); -} - - void lttv_option_add(const char *long_name, const char char_name, const char *description, const char *arg_description, const LttvOptionType t, void *p, @@ -88,7 +60,7 @@ void lttv_option_add(const char *long_name, const char char_name, { LttvOption *option; - g_info("Add option %s", long_name); + g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "Add option %s", long_name); if(g_hash_table_lookup(options, long_name) != NULL) { g_warning("duplicate option"); return; @@ -112,7 +84,7 @@ lttv_option_remove(const char *long_name) { LttvOption *option = g_hash_table_lookup(options, long_name); - g_info("Remove option %s", long_name); + g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "Remove option %s", long_name); if(option == NULL) { g_warning("trying to remove unknown option %s", long_name); return; @@ -209,17 +181,20 @@ void lttv_option_parse(int argc, char **argv) if(rc > 0) { option = (LttvOption *)(list->pdata[rc - 1]); - g_info("Option %s encountered", option->long_name); + g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "Option %s encountered", + option->long_name); if(option->hook != NULL) { - g_info("Option %s hook called", option->long_name); + g_log(G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Option %s hook called", + option->long_name); option->hook(option->hook_data); } i++; } else if(rc == POPT_ERROR_BADOPT && i != first_arg) { - g_info("Option %s not recognized, rescan options with new additions", - poptBadOption(c,0)); + g_log(G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, + "Option %s not recognized, rescan options with new additions", + poptBadOption(c,0)); /* Perhaps this option is newly added, restart parsing */ @@ -232,7 +207,8 @@ void lttv_option_parse(int argc, char **argv) for(i = 0; i < first_arg; i++) { rc = poptGetNextOpt(c); option = (LttvOption *)(list->pdata[rc - 1]); - g_info("Option %s rescanned, skipped", option->long_name); + g_log(G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Option %s rescanned, skipped", + option->long_name); } } @@ -250,6 +226,7 @@ void lttv_option_parse(int argc, char **argv) destroy_popts(&list, &popts, &c); } +/* CHECK */ static void show_help(LttvOption *option) { printf("--%s -%c argument: %s\n" , option->long_name, @@ -280,3 +257,31 @@ void lttv_option_show_help(void) } +static void init() +{ + g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "Init option.c"); + options = g_hash_table_new(g_str_hash, g_str_equal); +} + + +static void destroy() +{ + LttvOption option; + + GPtrArray *list = g_ptr_array_new(); + + int i; + + g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "Destroy option.c"); + g_hash_table_foreach(options, list_options, list); + g_hash_table_destroy(options); + + for(i = 0 ; i < list->len ; i++) { + free_option((LttvOption *)list->pdata[i]); + } + g_ptr_array_free(list, TRUE); +} + +LTTV_MODULE("option", "Command line options processing", \ + "Functions to add, remove and parse command line options", \ + init, destroy)