From 21f9acdb6c5c35b26d926f75845135f16c3c54e9 Mon Sep 17 00:00:00 2001 From: brain Date: Wed, 31 Oct 2007 19:31:51 +0000 Subject: Add factories for other types git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8439 e03df62e-2008-0410-955e-edbf42e46eb7 --- include/xline.h | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) (limited to 'include') 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 -- cgit v1.2.3