blob: d024f9b89a8909cba8a174da9734a7a032f55bc4 [file] [log] [blame]
* @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
#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 */