From ba0ab43f87a5bc20bf72a5f3b3b939bface92bcb Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Sat, 1 Mar 2025 10:04:46 +0100
Subject: [PATCH] remove stream in multiversions

---
 src/public/streammultiversion.cpp | 15 ++++-----
 src/public/streammultiversion.h   | 51 ++++++++++++++++++++++---------
 2 files changed, 42 insertions(+), 24 deletions(-)

diff --git a/src/public/streammultiversion.cpp b/src/public/streammultiversion.cpp
index e664611..6cafb24 100644
--- a/src/public/streammultiversion.cpp
+++ b/src/public/streammultiversion.cpp
@@ -7,18 +7,15 @@ StreamMultiversion::StreamMultiversion() {
 
 }
 
-QDataStream &StreamMultiversion::fromStream(QDataStream &stream) {
-    stream >> _realVersion ;
-    return stream;
+void StreamMultiversion::saveVersion(char version, QDataStream &stream) const {
+    stream << version;
 }
 
-QDataStream &StreamMultiversion::toStream(QDataStream &stream) const {
-    stream << _realVersion;
+char StreamMultiversion::readVersion(QDataStream &stream) const {
+    char version;
+    stream >> version;
 
-    return stream;
-}
+    return version;
 
-int StreamMultiversion::realVersion() const {
-    return _realVersion;
 }
 }
diff --git a/src/public/streammultiversion.h b/src/public/streammultiversion.h
index 744a3e1..c1e5dd5 100644
--- a/src/public/streammultiversion.h
+++ b/src/public/streammultiversion.h
@@ -14,6 +14,26 @@ namespace QH {
 
 /**
  * @brief The StreamMultiversion class this parser works with simple multiversion packages.
+ *
+ * This class used to save and read version of the object in file.
+ *
+ * @see StreamBase
+ *
+ * @code{cpp}
+ * class myClass: public StreamMultiversion {
+ *      protected:
+ *      QDataStream &fromStream(QDataStream &stream) override {
+ *          char version = readVersion();
+ *          return stream;
+ *      }
+ *
+ *      QDataStream &toStream(QDataStream &stream) const override {
+ *          saveVersion(1, stream);
+ *          return stream;
+ *      }
+ *
+ * }
+ *
  */
 class HEARTSHARED_EXPORT StreamMultiversion: public StreamBase
 {
@@ -22,26 +42,27 @@ public:
     StreamMultiversion();
 
     // StreamBase interface
-    /**
-     * @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..
+     * @brief saveVersion save version of the object to the stream.
+     * @param version - version of the object.
+     * @param stream - stream to save.
+     *
+     * This method used to save version of the object in file.
+     * @see toStream
      */
-    virtual int realVersion() const;
-protected:
-    QDataStream &fromStream(QDataStream &stream) override;
-    QDataStream &toStream(QDataStream &stream) const override;
+    void saveVersion(char version, QDataStream &stream) const;
+
+    /**
+     * @brief readVersion read version of the object from the stream.
+     * @param stream - stream to read.
+     * @return version of the object.
+     * @see fromStream
+
+     */
+    char readVersion(QDataStream &stream) const;
 
 
-
-private:
-    int _realVersion = 0;
 };
 }
 #endif // STREAMMULTIVERSION_H