| /** |
| * @file parse_filename.h |
| * Split a sample filename into its constituent parts |
| * |
| * @remark Copyright 2003 OProfile authors |
| * @remark Read the file COPYING |
| * |
| * @author Philippe Elie |
| */ |
| |
| #ifndef PARSE_FILENAME_H |
| #define PARSE_FILENAME_H |
| |
| #include <string> |
| |
| class extra_images; |
| |
| /** |
| * a convenience class to store result of parse_filename() |
| */ |
| struct parsed_filename |
| { |
| std::string image; |
| std::string lib_image; |
| /// destination image for call graph file, empty if this sample |
| /// file is not a callgraph file. |
| std::string cg_image; |
| std::string event; |
| std::string count; |
| std::string unitmask; |
| std::string tgid; |
| std::string tid; |
| std::string cpu; |
| |
| /// return true if the profile specification are identical. |
| bool profile_spec_equal(parsed_filename const & parsed); |
| |
| /** |
| * the original sample filename from which the |
| * above components are built |
| */ |
| std::string filename; |
| bool jit_dumpfile_exists; |
| }; |
| |
| |
| /// debugging helper |
| std::ostream & operator<<(std::ostream &, parsed_filename const &); |
| |
| |
| /** |
| * parse a sample filename |
| * @param filename in: a sample filename |
| * @param extra_found_images binary image location |
| * |
| * filename is split into constituent parts, the lib_image is optional |
| * and can be empty on successfull call. All other error are fatal. |
| * Filenames are encoded as according to PP:3.19 to PP:3.25 |
| * |
| * all errors throw an std::invalid_argument exception |
| */ |
| parsed_filename parse_filename(std::string const & filename, |
| extra_images const & extra_found_images); |
| |
| #endif /* !PARSE_FILENAME_H */ |