• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * @file symbol_sort.h
3  * Sorting symbols
4  *
5  * @remark Copyright 2002, 2003 OProfile authors
6  * @remark Read the file COPYING
7  *
8  * @author Philippe Elie
9  * @author John Levon
10  */
11 
12 #ifndef SYMBOL_SORT_H
13 #define SYMBOL_SORT_H
14 
15 #include "symbol.h"
16 
17 #include <vector>
18 #include <string>
19 
20 struct sort_options {
21 	enum sort_order {
22 		// order give sort order if caller doesn't specify one
23 		first,
24 		sample = first,
25 		image,
26 		app_name,
27 		symbol,
28 		debug,
29 		vma,
30 		last
31 	};
32 
sort_optionssort_options33 	sort_options() {}
34 
35 	void add_sort_option(std::string const & name);
36 	void add_sort_option(sort_order order);
37 
38 	/**
39 	 * Sort the given container by the given criteria.
40 	 */
41 	void sort(symbol_collection & syms, bool reverse_sort,
42 	          bool long_filenames) const;
43 
44 	/**
45 	 * Sort the given container by the given criteria.
46 	 */
47 	void sort(diff_collection & syms, bool reverse_sort,
48 	          bool long_filenames) const;
49 
50 	std::vector<sort_order> options;
51 };
52 
53 #endif // SYMBOL_SORT_H
54