18cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/** 28cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @file symbol_sort.h 38cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * Sorting symbols 48cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * 58cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @remark Copyright 2002, 2003 OProfile authors 68cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @remark Read the file COPYING 78cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * 88cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @author Philippe Elie 98cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @author John Levon 108cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd */ 118cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 128cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#ifndef SYMBOL_SORT_H 138cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#define SYMBOL_SORT_H 148cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 158cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include "symbol.h" 168cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 178cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include <vector> 188cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include <string> 198cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 208cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstruct sort_options { 218cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd enum sort_order { 228cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd // order give sort order if caller doesn't specify one 238cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd first, 248cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd sample = first, 258cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd image, 268cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd app_name, 278cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd symbol, 288cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd debug, 298cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd vma, 308cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd last 318cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd }; 328cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 338cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd sort_options() {} 348cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 358cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd void add_sort_option(std::string const & name); 368cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd void add_sort_option(sort_order order); 378cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 388cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd /** 398cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * Sort the given container by the given criteria. 408cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd */ 418cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd void sort(symbol_collection & syms, bool reverse_sort, 428cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd bool long_filenames) const; 438cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 448cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd /** 458cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * Sort the given container by the given criteria. 468cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd */ 478cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd void sort(diff_collection & syms, bool reverse_sort, 488cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd bool long_filenames) const; 498cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 508cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd std::vector<sort_order> options; 518cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}; 528cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 538cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#endif // SYMBOL_SORT_H 54