| /** |
| * @file common_option.h |
| * Declaration of entry point of pp tools, implementation file add common |
| * options of pp tools and some miscelleaneous functions |
| * |
| * @remark Copyright 2003 OProfile authors |
| * @remark Read the file COPYING |
| * |
| * @author John Levon |
| * @author Philippe Elie |
| */ |
| |
| #ifndef COMMON_OPTION_H |
| #define COMMON_OPTION_H |
| |
| #include <vector> |
| #include <list> |
| |
| #include "arrange_profiles.h" |
| #include "demangle_symbol.h" |
| |
| namespace options { |
| extern bool verbose; |
| extern double threshold; |
| extern std::string threshold_opt; |
| extern std::string command_options; |
| extern std::vector<std::string> image_path; |
| extern std::string root_path; |
| |
| struct spec { |
| std::list<std::string> common; |
| std::list<std::string> first; |
| std::list<std::string> second; |
| }; |
| } |
| |
| /** |
| * prototype of a pp tool entry point. This entry point is called |
| * by run_pp_tool |
| */ |
| typedef int (*pp_fct_run_t)(options::spec const & spec); |
| |
| /** |
| * @param argc command line number of argument |
| * @param argv command line argument pointer array |
| * @param fct function to run to start this pp tool |
| * |
| * Provide a common entry to all pp tools, parsing all options, handling |
| * common options and providing the necessary try catch clause |
| */ |
| int run_pp_tool(int argc, char const * argv[], pp_fct_run_t fct); |
| |
| /** |
| * @param option one of [smart,none,normal] |
| * |
| * return the demangle_type of option or throw an exception if option |
| * is not valid. |
| */ |
| demangle_type handle_demangle_option(std::string const & option); |
| |
| /** |
| * @param mergespec merge option |
| * @param allow_lib is merge)lib allowed in mergespec |
| * @param exclude_dependent user specified --exclude-dependent |
| * |
| * parse merge option and return a merge_option filled from it. |
| * |
| */ |
| merge_option handle_merge_option(std::vector<std::string> const & mergespec, |
| bool allow_lib, bool exclude_dependent); |
| |
| #endif /* !COMMON_OPTION_H */ |