Mercurial > hg > classical
view common/Matcher.h @ 30:8bed05455706
* Make classical code build
author | Chris Cannam |
---|---|
date | Tue, 16 Mar 2010 17:36:28 +0000 |
parents | 7d8a6167febb |
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