diff --git a/src/public/streambase.cpp b/src/public/streambase.cpp index cbc726f..1f63cb0 100644 --- a/src/public/streambase.cpp +++ b/src/public/streambase.cpp @@ -61,7 +61,7 @@ int StreamBase::parsingVersion() const { } unsigned int StreamBase::typeId() const { - return typeid (*this).hash_code(); + return typeid (this).hash_code(); } QDataStream &operator<<(QDataStream &stream, const StreamBase &obj) { diff --git a/src/public/streammultiversion.cpp b/src/public/streammultiversion.cpp new file mode 100644 index 0000000..e664611 --- /dev/null +++ b/src/public/streammultiversion.cpp @@ -0,0 +1,24 @@ +#include "streammultiversion.h" +#include + +namespace QH { + +StreamMultiversion::StreamMultiversion() { + +} + +QDataStream &StreamMultiversion::fromStream(QDataStream &stream) { + stream >> _realVersion ; + return stream; +} + +QDataStream &StreamMultiversion::toStream(QDataStream &stream) const { + stream << _realVersion; + + return stream; +} + +int StreamMultiversion::realVersion() const { + return _realVersion; +} +} diff --git a/src/public/streammultiversion.h b/src/public/streammultiversion.h new file mode 100644 index 0000000..e5cb9a6 --- /dev/null +++ b/src/public/streammultiversion.h @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2024-2024 QuasarApp. + * Distributed under the lgplv3 software license, see the accompanying + * Everyone is permitted to copy and distribute verbatim copies + * of this license document, but changing it is not allowed. +*/ + +#ifndef STREAMMULTIVERSION_H +#define STREAMMULTIVERSION_H + +#include "streambase.h" + +namespace QH { + +/** + * @brief The StreamMultiversion class this parser works with simple multiversion packages. + */ +class HEARTSHARED_EXPORT StreamMultiversion: public StreamBase +{ +public: + + StreamMultiversion(); + + // StreamBase interface +protected: + QDataStream &fromStream(QDataStream &stream) override; + QDataStream &toStream(QDataStream &stream) const override; + + /** + * @brief version override this method to sets version of package. + * @return + */ + virtual int version() const = 0; + + /** + * @brief realVersion This method return value of the version that was be saved in the bytes array. + * @return + * @note use this method to check version of read package in the fromStream method.. + */ + virtual int realVersion() const; + +private: + int _realVersion = 0; +}; +} +#endif // STREAMMULTIVERSION_H