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