CachedRegexMatcher.h 813 B

1234567891011121314151617181920212223242526272829303132
  1. //
  2. // Created by Tobias Hieta on 20/08/15.
  3. //
  4. #ifndef KONVERGO_CACHEDREGEXMATCHER_H
  5. #define KONVERGO_CACHEDREGEXMATCHER_H
  6. #include <QRegExp>
  7. #include <QVariant>
  8. #include <QString>
  9. #include <QHash>
  10. typedef QPair<QRegExp, QVariant> MatcherValuePair;
  11. typedef QList<MatcherValuePair> MatcherValueList;
  12. class CachedRegexMatcher : public QObject
  13. {
  14. public:
  15. explicit CachedRegexMatcher(bool allowMultiplePatterns = true, QObject* parent = nullptr)
  16. : QObject(parent), m_allowMultiplePatterns(allowMultiplePatterns) {}
  17. bool addMatcher(const QString& pattern, const QVariant& result);
  18. QVariantList match(const QString& input);
  19. void clear();
  20. private:
  21. MatcherValueList m_matcherList;
  22. QHash<QString, QVariantList> m_matcherCache;
  23. bool m_allowMultiplePatterns;
  24. };
  25. #endif //KONVERGO_CACHEDREGEXMATCHER_H