Mercurial > hg > classical
view common/Matcher.h @ 32:abd5d022c85d
* Some sketchy track lookup code
author | Chris Cannam |
---|---|
date | Fri, 19 Mar 2010 12:21:59 +0000 |
parents | 8bed05455706 |
children | 84d6acb6b3ba |
line wrap: on
line source
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ #ifndef _CLASSICAL_DATA_MATCHER_H_ #define _CLASSICAL_DATA_MATCHER_H_ #include <dataquay/Uri.h> #include <QHash> namespace ClassicalData { class Composer; class NamedEntity; class Guess { public: Guess(float c, NamedEntity *e) : m_confidence(c), m_entity(e) { } float confidence() const { return m_confidence; } void setConfidence(float c) { m_confidence = c; } NamedEntity *entity() { return m_entity; } void setEntity(NamedEntity *e) { m_entity = e; } bool operator<(const Guess &g) const { return (confidence() > g.confidence()); } private: float m_confidence; NamedEntity *m_entity; }; typedef QList<Guess> GuessList; class Matcher { public: // Results are guaranteed to be returned in order from most to // least confident virtual GuessList match(QString text, int maxResults) const = 0; }; class ComposerTypingQuickMatcher : public Matcher { public: ComposerTypingQuickMatcher(QList<Composer *> cl); virtual GuessList match(QString text, int maxResults) const; private: QHash<Dataquay::Uri, Composer *> m_composers; }; class ComposerTypingThoroughMatcher : public Matcher { public: ComposerTypingThoroughMatcher(QList<Composer *> cl); virtual GuessList match(QString text, int maxResults) const; private: QHash<Dataquay::Uri, Composer *> m_composers; }; } Q_DECLARE_METATYPE(ClassicalData::Guess*); #endif