12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- //
- // Created by robin on 1/7/18.
- //
-
- #ifndef QDNSAGG_QDNSHEADER_H
- #define QDNSAGG_QDNSHEADER_H
-
- #include <qplatformdefs.h>
- #include <QByteArray>
-
- namespace QDNS
- {
-
- class QDnsHeader
- {
- public:
- QDnsHeader();
-
- static QDnsHeader parse(const QByteArray& data);
-
- bool isValid() const;
-
- quint16 getId() const;
- void setId(quint16 id);
-
-
- quint16 getFlags() const;
- void setFlags(quint16 flags);
- void setFlagBits(quint8 bit, quint16 value, quint8 bitCount);
- quint16 getFlagBits(quint8 bit, quint8 bitCount) const;
- static quint8 getFlagBitIndex(quint8 bit);
-
- bool isQuery() const;
- void setIsQuery(bool isQuery);
-
- quint8 getOpcode() const;
- void setOpcode(quint8 opcode);
-
- bool isAuthoritative() const;
- void setIsAuthoritative(bool isAuthoritative);
-
- bool isTruncated() const;
- void setIsTruncated(bool isTruncated);
-
- bool isRecursionDesired() const;
- void setIsRecursionDesired(bool isRecursionDesired);
-
- bool isRecursionAvailable() const;
- void setIsRecursionAvailable(bool isRecursionAvailable);
-
- bool isAnswerAuthenticated() const;
- void setIsAnswerAuthenticated(bool isAnswerAuthenticated);
-
- bool isNonAuthenticatedAcceptable() const;
- void setNonAuthenticatedAcceptable(bool isNonAuthenticatedAcceptable);
-
- quint8 getReplyCode() const;
- void setReplyCode(quint8 replyCode);
-
-
- quint16 getQuestionCount() const;
- void setQuestionCount(quint16 questionCount);
-
- quint16 getAnswerCount() const;
- void setAnswerCount(quint16 answerCount);
-
- quint16 getAuthorityCount() const;
- void setAuthorityCount(quint16 authorityCount);
-
- quint16 getAdditionalCount() const;
- void setAdditionalCount(quint16 additionalCount);
-
- private:
- bool m_isValid;
- quint16 m_id;
- quint16 m_flags;
- quint16 m_questionCount;
- quint16 m_answerCount;
- quint16 m_authorityCount;
- quint16 m_additionalCount;
- };
-
- }
-
- #endif //QDNSAGG_QDNSHEADER_H
|