1 /** 2 * @file parse_filename.h 3 * Split a sample filename into its constituent parts 4 * 5 * @remark Copyright 2003 OProfile authors 6 * @remark Read the file COPYING 7 * 8 * @author Philippe Elie 9 */ 10 11 #ifndef PARSE_FILENAME_H 12 #define PARSE_FILENAME_H 13 14 #include <string> 15 16 class extra_images; 17 18 /** 19 * a convenience class to store result of parse_filename() 20 */ 21 struct parsed_filename 22 { 23 std::string image; 24 std::string lib_image; 25 /// destination image for call graph file, empty if this sample 26 /// file is not a callgraph file. 27 std::string cg_image; 28 std::string event; 29 std::string count; 30 std::string unitmask; 31 std::string tgid; 32 std::string tid; 33 std::string cpu; 34 35 /// return true if the profile specification are identical. 36 bool profile_spec_equal(parsed_filename const & parsed); 37 38 /** 39 * the original sample filename from which the 40 * above components are built 41 */ 42 std::string filename; 43 bool jit_dumpfile_exists; 44 }; 45 46 47 /// debugging helper 48 std::ostream & operator<<(std::ostream &, parsed_filename const &); 49 50 51 /** 52 * parse a sample filename 53 * @param filename in: a sample filename 54 * @param extra_found_images binary image location 55 * 56 * filename is split into constituent parts, the lib_image is optional 57 * and can be empty on successfull call. All other error are fatal. 58 * Filenames are encoded as according to PP:3.19 to PP:3.25 59 * 60 * all errors throw an std::invalid_argument exception 61 */ 62 parsed_filename parse_filename(std::string const & filename, 63 extra_images const & extra_found_images); 64 65 #endif /* !PARSE_FILENAME_H */ 66