diff options
Diffstat (limited to 'src/rulebase.h')
-rw-r--r-- | src/rulebase.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/rulebase.h b/src/rulebase.h new file mode 100644 index 0000000..7d8b0b0 --- /dev/null +++ b/src/rulebase.h @@ -0,0 +1,68 @@ +/* + * The ManaPlus Client + * Copyright (C) 2014 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef RULEBASE_H +#define RULEBASE_H + +#include <set> +#include <string> + +#include "localconsts.h" + +class RuleBase +{ + public: + RuleBase(); + + virtual ~RuleBase() + { } + + virtual void init() + { } + + virtual void parseLine(const std::string &data A_UNUSED) + { } + + virtual void parseFile(const std::string &data A_UNUSED) + { } + + const std::set<std::string> &getMasks() const + { return mFileMasks; } + + void setFile(const std::string &file0) + { file = file0; } + + void setLine(const int line0) + { line = line0; } + + protected: + void print(const std::string &text) const; + + void printRaw(const std::string &text) const; + + void addMask(const std::string &mask); + + std::set<std::string> mFileMasks; + + std::string file; + int line; +}; + +#endif // RULEBASE_H |