// concreterequests.h #ifndef CONCRETEREQUESTS_H #define CONCRETEREQUESTS_H #include "request.h" #include class Concreterequests { public: // Interface for defining specific request types (e.g., IMAP GET, SMTP AUTH) virtual Request* createRequest(const QString& type, const QString& target) = 0; virtual ~Concreterequests() = default; }; class ImapRequest : public Concreterequests { public: ImapRequest(Request* req); Request* createRequest(const QString& type, const QString& target) override; }; class SmtpRequest : public Concreterequests { public: SmtpRequest(Request* req); Request* createRequest(const QString& type, const QString& target) override; }; #endif // CONCRETEREQUESTS_H