#ifndef __RULESET_RULE__ #define __RULESET_RULE__ #include using std::ostream; #include #include int rule_is_option(QString value); class Rule { public: Rule(const QString &buffer, const QString &raw_buffer); void addLogSample(const QString &line); void setRegex(const QString ®ex); int addOption(const QString &key, const QString &value); const QString & buffer() const { return _buffer; } const QString & rawBuffer() const { return _raw_buffer; } const QString & regex() const { return _regex; } const QStringList & logSamples() const { return _log_samples; } const QList options() const { return _dict.keys(); } QString getOption(const QString &key) const { return _dict[key]; } int setRuleOption(QString opt, QString value); int hasRuleOption(const QString opt) const; QString getRuleOption(const QString &opt) const { return _options_dict[opt]; } friend ostream & operator << (ostream &os, const Rule *r); private: QString _buffer; QString _raw_buffer; QStringList _log_samples; QString _regex; QMap _dict; QMap _options_dict; }; ostream & operator << (ostream &os, const Rule *r); #endif /* __RULESET_RULE__ */