-class CoreExport ELineFactory : public XLineFactory
-{
- public:
- ELineFactory(InspIRCd* Instance) : XLineFactory(Instance, "E") { }
-
- 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 ELine(ServerInstance, set_time, duration, source, reason, ih.first.c_str(), ih.second.c_str());
- }
-};
-
-class CoreExport KLineFactory : public XLineFactory
-{
- public:
- KLineFactory(InspIRCd* Instance) : XLineFactory(Instance, "K") { }
-
- 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") { }
+ /** Generates a /STATS response for the given X-line type.
+ * @param type The type of X-line to look up.
+ * @param context The stats context to respond with.
+ * @return True if a response was sent; otherwise, false.
+ */
+ bool InvokeStats(const std::string& type, Stats::Context& context);