File indexing completed on 2024-05-12 05:39:52

0001 #ifndef CONNECTIONACCEPTER_H
0002 #define CONNECTIONACCEPTER_H
0003 
0004 #include "network_global.h"
0005 #include <QMap>
0006 #include <QString>
0007 #include <QVariant>
0008 
0009 /**
0010  * @brief The ConnectionAccepter class abstract class to implement chain of responsability
0011  */
0012 class NETWORK_EXPORT ConnectionAccepter
0013 {
0014 public:
0015     ConnectionAccepter();
0016     virtual ~ConnectionAccepter();
0017     void setNext(ConnectionAccepter* next);
0018 
0019     bool runAccepter(const QMap<QString, QVariant>& data) const;
0020 
0021     bool isActive() const;
0022     void setIsActive(bool isActive);
0023 
0024 protected:
0025     virtual bool isValid(const QMap<QString, QVariant>& data) const= 0;
0026 
0027 protected:
0028     ConnectionAccepter* m_next{nullptr};
0029     bool m_isActive;
0030 };
0031 
0032 #endif // CONNECTIONACCEPTER_H