]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - src/modules/m_regex_glob.cpp
Fix a bunch of really obvious unnecessary includes.
[user/henk/code/inspircd.git] / src / modules / m_regex_glob.cpp
1 /*
2  * InspIRCd -- Internet Relay Chat Daemon
3  *
4  *   Copyright (C) 2013 Sadie Powell <sadie@witchery.services>
5  *   Copyright (C) 2013 Attila Molnar <attilamolnar@hush.com>
6  *   Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be>
7  *   Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
8  *   Copyright (C) 2009 Uli Schlachter <psychon@inspircd.org>
9  *   Copyright (C) 2008 Thomas Stagner <aquanight@inspircd.org>
10  *   Copyright (C) 2008 Craig Edwards <brain@inspircd.org>
11  *
12  * This file is part of InspIRCd.  InspIRCd is free software: you can
13  * redistribute it and/or modify it under the terms of the GNU General Public
14  * License as published by the Free Software Foundation, version 2.
15  *
16  * This program is distributed in the hope that it will be useful, but WITHOUT
17  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
18  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
19  * details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
23  */
24
25
26 #include "inspircd.h"
27 #include "modules/regex.h"
28
29 class GlobRegex : public Regex
30 {
31 public:
32         GlobRegex(const std::string& rx) : Regex(rx)
33         {
34         }
35
36         bool Matches(const std::string& text) CXX11_OVERRIDE
37         {
38                 return InspIRCd::Match(text, this->regex_string);
39         }
40 };
41
42 class GlobFactory : public RegexFactory
43 {
44  public:
45         Regex* Create(const std::string& expr) CXX11_OVERRIDE
46         {
47                 return new GlobRegex(expr);
48         }
49
50         GlobFactory(Module* m) : RegexFactory(m, "regex/glob") {}
51 };
52
53 class ModuleRegexGlob : public Module
54 {
55         GlobFactory gf;
56 public:
57         ModuleRegexGlob()
58                 : gf(this)
59         {
60         }
61
62         Version GetVersion() CXX11_OVERRIDE
63         {
64                 return Version("Provides a regular expression engine which uses the built-in glob matching system.", VF_VENDOR);
65         }
66 };
67
68 MODULE_INIT(ModuleRegexGlob)