diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-10-31 19:31:51 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-10-31 19:31:51 +0000 |
commit | 21f9acdb6c5c35b26d926f75845135f16c3c54e9 (patch) | |
tree | 0e8c863ccce13c2951622cb2d34262eb3027521c /include | |
parent | 31eaefa6a6244bc1226bacf9b3d9e527f49f035f (diff) |
Add factories for other types
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8439 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'include')
-rw-r--r-- | include/xline.h | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/include/xline.h b/include/xline.h index edde8d91a..ff33da7d2 100644 --- a/include/xline.h +++ b/include/xline.h @@ -373,6 +373,9 @@ class InspIRCd; class GLineFactory; class ELineFactory; +class QLineFactory; +class ZLineFactory; +class KLineFactory; /** XLineManager is a class used to manage glines, klines, elines, zlines and qlines. */ @@ -397,6 +400,9 @@ class CoreExport XLineManager GLineFactory* GFact; ELineFactory* EFact; + KLineFactory* KFact; + QLineFactory* QFact; + ZLineFactory* ZFact; public: @@ -573,6 +579,38 @@ class CoreExport ELineFactory : public XLineFactory } }; +class CoreExport KLineFactory : public XLineFactory +{ + public: + KLineFactory(InspIRCd* Instance) : XLineFactory(Instance, 'K') { } -#endif + XLine* Generate(time_t set_time, long duration, const char* source, const char* reason, const char* xline_specific_mask) + { + IdentHostPair ih = ServerInstance->XLines->IdentSplit(xline_specific_mask); + return new KLine(ServerInstance, set_time, duration, source, reason, ih.first.c_str(), ih.second.c_str()); + } +}; +class CoreExport QLineFactory : public XLineFactory +{ + public: + QLineFactory(InspIRCd* Instance) : XLineFactory(Instance, 'Q') { } + + XLine* Generate(time_t set_time, long duration, const char* source, const char* reason, const char* xline_specific_mask) + { + return new QLine(ServerInstance, set_time, duration, source, reason, xline_specific_mask); + } +}; + +class CoreExport ZLineFactory : public XLineFactory +{ + public: + ZLineFactory(InspIRCd* Instance) : XLineFactory(Instance, 'Z') { } + + XLine* Generate(time_t set_time, long duration, const char* source, const char* reason, const char* xline_specific_mask) + { + return new ZLine(ServerInstance, set_time, duration, source, reason, xline_specific_mask); + } +}; + +#endif |