18cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/** 28cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @file symbol_functors.h 38cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * Functors for symbol/sample comparison 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_FUNCTORS_H 138cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#define SYMBOL_FUNCTORS_H 148cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 158cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include "symbol.h" 168cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 178cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/// compare based on file location 188cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstruct less_by_file_loc { 198cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd bool operator()(sample_entry const * lhs, 208cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd sample_entry const * rhs) const { 218cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd return lhs->file_loc < rhs->file_loc; 228cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd } 238cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 248cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd bool operator()(symbol_entry const * lhs, 258cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd symbol_entry const * rhs) const { 268cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd return lhs->sample.file_loc < rhs->sample.file_loc; 278cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd } 288cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}; 298cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 308cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 318cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/// compare based on symbol contents 328cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstruct less_symbol { 338cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd // implementation compare by id rather than by string 348cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd bool operator()(symbol_entry const & lhs, 358cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd symbol_entry const & rhs) const; 368cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}; 378cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 388cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#endif /* SYMBOL_FUNCTORS_H */ 39