This is an automated email from the git hooks/post-receive script.

smcv pushed a commit to branch debian/master
in repository openjk.

commit 149fcb96272fc9d4a17373dcca0761014688f7cf
Author: bibendovsky <[email protected]>
Date:   Fri Aug 5 20:07:35 2016 +0300

    Split ISavedGame into two classes
---
 code/CMakeLists.txt                                |   9 +-
 code/game/CMakeLists.txt                           |   7 +-
 code/rd-vanilla/CMakeLists.txt                     |   7 +-
 codeJK2/game/CMakeLists.txt                        |   7 +-
 shared/qcommon/ojk_i_saved_game_stream.h           | 103 ++++++++++++++
 ...{ojk_saved_game.cpp => ojk_saved_game_file.cpp} |  86 ++++++------
 .../{ojk_saved_game.h => ojk_saved_game_file.h}    |  61 ++++-----
 ...saved_game.h => ojk_saved_game_stream_helper.h} | 130 +++++++++---------
 ...me_fwd.h => ojk_saved_game_stream_helper_fwd.h} | 149 ++++-----------------
 9 files changed, 287 insertions(+), 272 deletions(-)

diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt
index 571aba2..db03e34 100644
--- a/code/CMakeLists.txt
+++ b/code/CMakeLists.txt
@@ -176,12 +176,13 @@ if(BuildSPEngine OR BuildJK2SPEngine)
 
                "${SharedDir}/qcommon/ojk_exception.h"
                "${SharedDir}/qcommon/ojk_exception.cpp"
-               "${SharedDir}/qcommon/ojk_i_saved_game.h"
-               "${SharedDir}/qcommon/ojk_i_saved_game_fwd.h"
-               "${SharedDir}/qcommon/ojk_saved_game.h"
-               "${SharedDir}/qcommon/ojk_saved_game.cpp"
                "${SharedDir}/qcommon/ojk_saved_game_exception.h"
                "${SharedDir}/qcommon/ojk_saved_game_exception.cpp"
+               "${SharedDir}/qcommon/ojk_i_saved_game_stream.h"
+               "${SharedDir}/qcommon/ojk_saved_game_file.h"
+               "${SharedDir}/qcommon/ojk_saved_game_file.cpp"
+               "${SharedDir}/qcommon/ojk_saved_game_stream_helper.h"
+               "${SharedDir}/qcommon/ojk_saved_game_stream_helper_fwd.h"
                "${SharedDir}/qcommon/ojk_scope_guard.h"
 
                ${SharedCommonFiles}
diff --git a/code/game/CMakeLists.txt b/code/game/CMakeLists.txt
index 9438679..df94c7e 100644
--- a/code/game/CMakeLists.txt
+++ b/code/game/CMakeLists.txt
@@ -261,8 +261,11 @@ set(SPGameCommonFiles
        "${SPDir}/qcommon/q_shared.cpp"
        "${SPDir}/qcommon/q_shared.h"
        "${SPDir}/rd-common/mdx_format.h"
-       "${SharedDir}/qcommon/ojk_i_saved_game.h"
-       "${SharedDir}/qcommon/ojk_i_saved_game_fwd.h"
+       "${SharedDir}/qcommon/ojk_i_saved_game_stream.h"
+       "${SharedDir}/qcommon/ojk_saved_game_file.h"
+       "${SharedDir}/qcommon/ojk_saved_game_file.cpp"
+       "${SharedDir}/qcommon/ojk_saved_game_stream_helper.h"
+       "${SharedDir}/qcommon/ojk_saved_game_stream_helper_fwd.h"
        "${SharedDir}/qcommon/ojk_scope_guard.h"
        ${SharedCommonFiles}
        )
diff --git a/code/rd-vanilla/CMakeLists.txt b/code/rd-vanilla/CMakeLists.txt
index 5172eb9..dd4e50b 100644
--- a/code/rd-vanilla/CMakeLists.txt
+++ b/code/rd-vanilla/CMakeLists.txt
@@ -78,8 +78,11 @@ if(BuildSPRdVanilla OR BuildJK2SPRdVanilla)
                "${SPDir}/qcommon/q_math.cpp"
                "${SPDir}/qcommon/q_shared.cpp"
                "${SPDir}/qcommon/q_shared.h"
-               "${SharedDir}/qcommon/ojk_i_saved_game.h"
-               "${SharedDir}/qcommon/ojk_i_saved_game_fwd.h"
+               "${SharedDir}/qcommon/ojk_i_saved_game_stream.h"
+               "${SharedDir}/qcommon/ojk_saved_game_file.h"
+               "${SharedDir}/qcommon/ojk_saved_game_file.cpp"
+               "${SharedDir}/qcommon/ojk_saved_game_stream_helper.h"
+               "${SharedDir}/qcommon/ojk_saved_game_stream_helper_fwd.h"
                "${SharedDir}/qcommon/ojk_scope_guard.h"
                ${SharedCommonFiles}
                )
diff --git a/codeJK2/game/CMakeLists.txt b/codeJK2/game/CMakeLists.txt
index 06faddc..4ddfdaf 100644
--- a/codeJK2/game/CMakeLists.txt
+++ b/codeJK2/game/CMakeLists.txt
@@ -233,8 +233,11 @@ set(JK2SPGameCommonFiles
        "${SPDir}/qcommon/q_shared.h"
        "${SPDir}/qcommon/strippublic.h"
        "${SPDir}/rd-common/mdx_format.h"
-       "${SharedDir}/qcommon/ojk_i_saved_game.h"
-       "${SharedDir}/qcommon/ojk_i_saved_game_fwd.h"
+       "${SharedDir}/qcommon/ojk_i_saved_game_stream.h"
+       "${SharedDir}/qcommon/ojk_saved_game_file.h"
+       "${SharedDir}/qcommon/ojk_saved_game_file.cpp"
+       "${SharedDir}/qcommon/ojk_saved_game_stream_helper.h"
+       "${SharedDir}/qcommon/ojk_saved_game_stream_helper_fwd.h"
        "${SharedDir}/qcommon/ojk_scope_guard.h"
        ${SharedCommonFiles}
        )
diff --git a/shared/qcommon/ojk_i_saved_game_stream.h 
b/shared/qcommon/ojk_i_saved_game_stream.h
new file mode 100644
index 0000000..4c6a6bf
--- /dev/null
+++ b/shared/qcommon/ojk_i_saved_game_stream.h
@@ -0,0 +1,103 @@
+//
+// Saved game stream interface.
+//
+
+
+#ifndef OJK_I_SAVED_GAME_STREAM_INCLUDED
+#define OJK_I_SAVED_GAME_STREAM_INCLUDED
+
+
+#include <cstdint>
+
+
+namespace ojk
+{
+
+
+class ISavedGameStream
+{
+public:
+       ISavedGameStream()
+       {
+       }
+
+       ISavedGameStream(
+               const ISavedGameStream& that) = delete;
+
+       ISavedGameStream& operator=(
+               const ISavedGameStream& that) = delete;
+
+       virtual ~ISavedGameStream()
+       {
+       }
+
+
+       // Returns true if the saved game opened for reading.
+       virtual bool is_readable() const = 0;
+
+       // Returns true if the saved game opened for writing.
+       virtual bool is_writable() const = 0;
+
+
+       // Reads a chunk from the file into the internal buffer.
+       virtual void read_chunk(
+               const uint32_t chunk_id) = 0;
+
+       // Returns true if all data read from the internal buffer.
+       virtual bool is_all_data_read() const = 0;
+
+       // Throws an exception if all data not read.
+       virtual void ensure_all_data_read() const = 0;
+
+
+       // Writes a chunk into the file from the internal buffer.
+       virtual void write_chunk(
+               const uint32_t chunk_id) = 0;
+
+
+       // Reads a raw data from the internal buffer.
+       virtual void read(
+               void* dst_data,
+               int dst_size) = 0;
+
+       // Writes a raw data into the internal buffer.
+       virtual void write(
+               const void* src_data,
+               int src_size) = 0;
+
+       // Increments buffer's offset by the specified non-negative count.
+       virtual void skip(
+               int count) = 0;
+
+
+       // Stores current I/O buffer and it's position.
+       virtual void save_buffer() = 0;
+
+       // Restores saved I/O buffer and it's position.
+       virtual void load_buffer() = 0;
+
+       // Returns a pointer to data in the I/O buffer.
+       virtual const void* get_buffer_data() const = 0;
+
+       // Returns a current size of the I/O buffer.
+       virtual int get_buffer_size() const = 0;
+
+
+       // Clears buffer and resets it's offset to the beginning.
+       virtual void reset_buffer() = 0;
+
+       // Resets buffer offset to the beginning.
+       virtual void reset_buffer_offset() = 0;
+
+
+       // If true won't throw an exception when buffer offset is beyond it's 
size.
+       // Although, no data will be read beyond the buffer.
+       virtual void allow_read_overflow(
+               bool value) = 0;
+}; // ISavedGameStream
+
+
+} // ojk
+
+
+#endif // OJK_I_SAVED_GAME_STREAM_INCLUDED
diff --git a/shared/qcommon/ojk_saved_game.cpp 
b/shared/qcommon/ojk_saved_game_file.cpp
similarity index 89%
rename from shared/qcommon/ojk_saved_game.cpp
rename to shared/qcommon/ojk_saved_game_file.cpp
index a5a9748..bcee5f7 100644
--- a/shared/qcommon/ojk_saved_game.cpp
+++ b/shared/qcommon/ojk_saved_game_file.cpp
@@ -1,4 +1,10 @@
-#include "ojk_saved_game.h"
+//
+// Saved game file.
+//
+
+
+#include "ojk_saved_game_file.h"
+#include "ojk_saved_game_stream_helper.h"
 #include <algorithm>
 #include "ojk_saved_game_exception.h"
 #include "qcommon/qcommon.h"
@@ -9,7 +15,7 @@ namespace ojk
 {
 
 
-SavedGame::SavedGame() :
+SavedGameFile::SavedGameFile() :
                file_handle_(),
                io_buffer_(),
                saved_io_buffer_(),
@@ -23,12 +29,12 @@ SavedGame::SavedGame() :
 {
 }
 
-SavedGame::~SavedGame()
+SavedGameFile::~SavedGameFile()
 {
        close();
 }
 
-bool SavedGame::open(
+bool SavedGameFile::open(
        const std::string& base_file_name)
 {
        close();
@@ -66,7 +72,9 @@ bool SavedGame::open(
 
        if (is_succeed)
        {
-               static_cast<void>(read_chunk<int32_t>(
+               SavedGameStreamHelper sgsh(this);
+
+               static_cast<void>(sgsh.read_chunk<int32_t>(
                        INT_ID('_', 'V', 'E', 'R'),
                        sg_version));
 
@@ -90,7 +98,7 @@ bool SavedGame::open(
        return is_succeed;
 }
 
-bool SavedGame::create(
+bool SavedGameFile::create(
        const std::string& base_file_name)
 {
        close();
@@ -123,14 +131,16 @@ bool SavedGame::create(
 
        const auto sg_version = iSAVEGAME_VERSION;
 
-       write_chunk<int32_t>(
+       SavedGameStreamHelper sgsh(this);
+
+       sgsh.write_chunk<int32_t>(
                INT_ID('_', 'V', 'E', 'R'),
                sg_version);
 
        return true;
 }
 
-void SavedGame::close()
+void SavedGameFile::close()
 {
        if (file_handle_ != 0)
        {
@@ -146,18 +156,18 @@ void SavedGame::close()
        is_write_failed_ = false;
 }
 
-bool SavedGame::is_readable() const
+bool SavedGameFile::is_readable() const
 {
        return is_readable_;
 }
 
-bool SavedGame::is_writable() const
+bool SavedGameFile::is_writable() const
 {
        return is_writable_;
 }
 
-void SavedGame::read_chunk(
-       const SavedGame::ChunkId chunk_id)
+void SavedGameFile::read_chunk(
+       const uint32_t chunk_id)
 {
        io_buffer_offset_ = 0;
 
@@ -316,12 +326,12 @@ void SavedGame::read_chunk(
        }
 }
 
-bool SavedGame::is_all_data_read() const
+bool SavedGameFile::is_all_data_read() const
 {
        return io_buffer_.size() == io_buffer_offset_;
 }
 
-void SavedGame::ensure_all_data_read() const
+void SavedGameFile::ensure_all_data_read() const
 {
        if (!is_all_data_read())
        {
@@ -330,8 +340,8 @@ void SavedGame::ensure_all_data_read() const
        }
 }
 
-void SavedGame::write_chunk(
-       const SavedGame::ChunkId chunk_id)
+void SavedGameFile::write_chunk(
+       const uint32_t chunk_id)
 {
        const auto&& chunk_id_string = get_chunk_id_string(
                chunk_id);
@@ -490,7 +500,7 @@ void SavedGame::write_chunk(
        }
 }
 
-void SavedGame::raw_read(
+void SavedGameFile::read(
        void* dst_data,
        int dst_size)
 {
@@ -539,7 +549,7 @@ void SavedGame::raw_read(
        io_buffer_offset_ += dst_size;
 }
 
-void SavedGame::raw_write(
+void SavedGameFile::write(
        const void* src_data,
        int src_size)
 {
@@ -579,12 +589,12 @@ void SavedGame::raw_write(
        io_buffer_offset_ = new_buffer_size;
 }
 
-bool SavedGame::is_write_failed() const
+bool SavedGameFile::is_write_failed() const
 {
        return is_write_failed_;
 }
 
-void SavedGame::skip(
+void SavedGameFile::skip(
        int count)
 {
        if (!is_readable_ && !is_writable_)
@@ -627,29 +637,29 @@ void SavedGame::skip(
        io_buffer_offset_ = new_offset;
 }
 
-void SavedGame::save_buffer()
+void SavedGameFile::save_buffer()
 {
        saved_io_buffer_ = io_buffer_;
        saved_io_buffer_offset_ = io_buffer_offset_;
 }
 
-void SavedGame::load_buffer()
+void SavedGameFile::load_buffer()
 {
        io_buffer_ = saved_io_buffer_;
        io_buffer_offset_ = saved_io_buffer_offset_;
 }
 
-const void* SavedGame::get_buffer_data() const
+const void* SavedGameFile::get_buffer_data() const
 {
        return io_buffer_.data();
 }
 
-int SavedGame::get_buffer_size() const
+int SavedGameFile::get_buffer_size() const
 {
        return static_cast<int>(io_buffer_.size());
 }
 
-void SavedGame::rename(
+void SavedGameFile::rename(
        const std::string& old_base_file_name,
        const std::string& new_base_file_name)
 {
@@ -672,7 +682,7 @@ void SavedGame::rename(
        }
 }
 
-void SavedGame::remove(
+void SavedGameFile::remove(
        const std::string& base_file_name)
 {
        const auto&& path = generate_path(
@@ -682,33 +692,33 @@ void SavedGame::remove(
                path.c_str());
 }
 
-SavedGame& SavedGame::get_instance()
+SavedGameFile& SavedGameFile::get_instance()
 {
-       static SavedGame result;
+       static SavedGameFile result;
        return result;
 }
 
-void SavedGame::allow_read_overflow(
+void SavedGameFile::allow_read_overflow(
        bool value)
 {
        is_read_overflow_allowed_ = value;
 }
 
-void SavedGame::throw_error(
+void SavedGameFile::throw_error(
        const char* message)
 {
        throw SavedGameException(
                message);
 }
 
-void SavedGame::throw_error(
+void SavedGameFile::throw_error(
        const std::string& message)
 {
        throw SavedGameException(
                message);
 }
 
-void SavedGame::compress(
+void SavedGameFile::compress(
        const Buffer& src_buffer,
        Buffer& dst_buffer)
 {
@@ -771,7 +781,7 @@ void SavedGame::compress(
                dst_index);
 }
 
-void SavedGame::decompress(
+void SavedGameFile::decompress(
        const Buffer& src_buffer,
        Buffer& dst_buffer)
 {
@@ -811,7 +821,7 @@ void SavedGame::decompress(
        }
 }
 
-std::string SavedGame::generate_path(
+std::string SavedGameFile::generate_path(
        const std::string& base_file_name)
 {
        auto normalized_file_name = base_file_name;
@@ -827,7 +837,7 @@ std::string SavedGame::generate_path(
        return path;
 }
 
-std::string SavedGame::get_chunk_id_string(
+std::string SavedGameFile::get_chunk_id_string(
        uint32_t chunk_id)
 {
        std::string result(4, '\0');
@@ -840,18 +850,18 @@ std::string SavedGame::get_chunk_id_string(
        return result;
 }
 
-void SavedGame::reset_buffer()
+void SavedGameFile::reset_buffer()
 {
        io_buffer_.clear();
        reset_buffer_offset();
 }
 
-void SavedGame::reset_buffer_offset()
+void SavedGameFile::reset_buffer_offset()
 {
        io_buffer_offset_ = 0;
 }
 
-constexpr uint32_t SavedGame::get_jo_magic_value()
+constexpr uint32_t SavedGameFile::get_jo_magic_value()
 {
        return 0x1234ABCD;
 }
diff --git a/shared/qcommon/ojk_saved_game.h 
b/shared/qcommon/ojk_saved_game_file.h
similarity index 84%
rename from shared/qcommon/ojk_saved_game.h
rename to shared/qcommon/ojk_saved_game_file.h
index 6e874a4..1ffa06c 100644
--- a/shared/qcommon/ojk_saved_game.h
+++ b/shared/qcommon/ojk_saved_game_file.h
@@ -1,39 +1,36 @@
 //
-// Saved game.
+// Saved game file.
 // (forward declaration)
 //
 
 
-#ifndef OJK_SAVED_GAME_FWD_INCLUDED
-#define OJK_SAVED_GAME_FWD_INCLUDED
+#ifndef OJK_SAVED_GAME_FILE_INCLUDED
+#define OJK_SAVED_GAME_FILE_INCLUDED
 
 
 #include <cstdint>
 #include <string>
 #include <vector>
-#include "ojk_i_saved_game.h"
+#include "ojk_i_saved_game_stream.h"
 
 
 namespace ojk
 {
 
 
-class SavedGame :
-       public ISavedGame
+class SavedGameFile :
+       public ISavedGameStream
 {
 public:
-       using ChunkId = uint32_t;
+       SavedGameFile();
 
+       SavedGameFile(
+               const SavedGameFile& that) = delete;
 
-       SavedGame();
+       SavedGameFile& operator=(
+               const SavedGameFile& that) = delete;
 
-       SavedGame(
-               const SavedGame& that) = delete;
-
-       SavedGame& operator=(
-               const SavedGame& that) = delete;
-
-       virtual ~SavedGame();
+       virtual ~SavedGameFile();
 
 
        // Creates a new saved game file for writing.
@@ -57,9 +54,9 @@ public:
 
        // Reads a chunk from the file into the internal buffer.
        void read_chunk(
-               const ChunkId chunk_id) override;
+               const uint32_t chunk_id) override;
 
-       using ISavedGame::read_chunk;
+       using ISavedGameStream::read_chunk;
 
 
        // Returns true if all data read from the internal buffer.
@@ -71,26 +68,20 @@ public:
 
        // Writes a chunk into the file from the internal buffer.
        void write_chunk(
-               const ChunkId chunk_id) override;
-
-       using ISavedGame::write_chunk;
+               const uint32_t chunk_id) override;
 
 
        // Reads a raw data from the internal buffer.
-       void raw_read(
+       void read(
                void* dst_data,
                int dst_size) override;
 
-       using ISavedGame::read;
-
 
        // Writes a raw data into the internal buffer.
-       void raw_write(
+       void write(
                const void* src_data,
                int src_size) override;
 
-       using ISavedGame::write;
-
 
        bool is_write_failed() const;
 
@@ -119,6 +110,11 @@ public:
        // Resets buffer offset to the beginning.
        void reset_buffer_offset() override;
 
+       // If true won't throw an exception when buffer offset is beyond it's 
size.
+       // Although, no data will be read beyond the buffer.
+       void allow_read_overflow(
+               bool value) override;
+
 
        // Renames a saved game file.
        static void rename(
@@ -130,14 +126,7 @@ public:
                const std::string& base_file_name);
 
        // Returns a default instance of the class.
-       static SavedGame& get_instance();
-
-
-protected:
-       // If true won't throw an exception when buffer offset is beyond it's 
size.
-       // Although, no data will be read beyond the buffer.
-       void allow_read_overflow(
-               bool value) override;
+       static SavedGameFile& get_instance();
 
 
 private:
@@ -206,10 +195,10 @@ private:
                uint32_t chunk_id);
 
        static constexpr uint32_t get_jo_magic_value();
-}; // SavedGame
+}; // SavedGameFile
 
 
 } // ojk
 
 
-#endif // OJK_SAVED_GAME_FWD_INCLUDED
+#endif // OJK_SAVED_GAME_FILE_INCLUDED
diff --git a/shared/qcommon/ojk_i_saved_game.h 
b/shared/qcommon/ojk_saved_game_stream_helper.h
similarity index 81%
rename from shared/qcommon/ojk_i_saved_game.h
rename to shared/qcommon/ojk_saved_game_stream_helper.h
index ed8eaed..6af5dd0 100644
--- a/shared/qcommon/ojk_i_saved_game.h
+++ b/shared/qcommon/ojk_saved_game_stream_helper.h
@@ -1,15 +1,15 @@
 //
-// Saved game interface.
+// Saved game stream helper.
 //
 
 
-#ifndef OJK_I_SAVED_GAME_INCLUDED
-#define OJK_I_SAVED_GAME_INCLUDED
+#ifndef OJK_SAVED_GAME_STREAM_HELPER_INCLUDED
+#define OJK_SAVED_GAME_STREAM_HELPER_INCLUDED
 
 
 #include <cstdint>
 #include <type_traits>
-#include "ojk_i_saved_game_fwd.h"
+#include "ojk_saved_game_stream_helper_fwd.h"
 #include "ojk_scope_guard.h"
 
 
@@ -20,11 +20,9 @@ namespace ojk
 // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 // Class stuff
 
-inline ISavedGame::ISavedGame()
-{
-}
-
-inline ISavedGame::~ISavedGame()
+inline SavedGameStreamHelper::SavedGameStreamHelper(
+       ISavedGameStream* saved_game_stream) :
+               saved_game_stream_(saved_game_stream)
 {
 }
 
@@ -36,33 +34,33 @@ inline ISavedGame::~ISavedGame()
 // read_chunk
 
 template<typename TSrc, typename TDst>
-void ISavedGame::read_chunk(
-       const ChunkId chunk_id,
+void SavedGameStreamHelper::read_chunk(
+       const uint32_t chunk_id,
        TDst& dst_value)
 {
-       read_chunk(
+       saved_game_stream_->read_chunk(
                chunk_id);
 
        read<TSrc>(
                dst_value);
 
-       ensure_all_data_read();
+       saved_game_stream_->ensure_all_data_read();
 }
 
 template<typename TSrc, typename TDst>
-void ISavedGame::read_chunk(
-       const ChunkId chunk_id,
+void SavedGameStreamHelper::read_chunk(
+       const uint32_t chunk_id,
        TDst* dst_values,
        int dst_count)
 {
-       read_chunk(
+       saved_game_stream_->read_chunk(
                chunk_id);
 
        read<TSrc>(
                dst_values,
                dst_count);
 
-       ensure_all_data_read();
+       saved_game_stream_->ensure_all_data_read();
 }
 
 // read_chunk
@@ -73,53 +71,53 @@ void ISavedGame::read_chunk(
 // write_chunk
 
 template<typename TSize>
-void ISavedGame::write_chunk_and_size(
-       const ChunkId size_chunk_id,
-       const ChunkId data_chunk_id)
+void SavedGameStreamHelper::write_chunk_and_size(
+       const uint32_t size_chunk_id,
+       const uint32_t data_chunk_id)
 {
-       save_buffer();
+       saved_game_stream_->save_buffer();
 
-       auto data_size = get_buffer_size();
+       auto data_size = saved_game_stream_->get_buffer_size();
 
-       reset_buffer();
+       saved_game_stream_->reset_buffer();
 
        write_chunk<TSize>(
                size_chunk_id,
                data_size);
 
-       load_buffer();
+       saved_game_stream_->load_buffer();
 
-       write_chunk(
+       saved_game_stream_->write_chunk(
                data_chunk_id);
 }
 
 template<typename TDst, typename TSrc>
-void ISavedGame::write_chunk(
-       const ChunkId chunk_id,
+void SavedGameStreamHelper::write_chunk(
+       const uint32_t chunk_id,
        const TSrc& src_value)
 {
-       reset_buffer();
+       saved_game_stream_->reset_buffer();
 
        write<TDst>(
                src_value);
 
-       write_chunk(
+       saved_game_stream_->write_chunk(
                chunk_id);
 }
 
 template<typename TDst, typename TSrc>
-void ISavedGame::write_chunk(
-       const ChunkId chunk_id,
+void SavedGameStreamHelper::write_chunk(
+       const uint32_t chunk_id,
        const TSrc* src_values,
        int src_count)
 {
-       reset_buffer();
+       saved_game_stream_->reset_buffer();
 
        write<TDst>(
                src_values,
                src_count);
 
-       write_chunk(
+       saved_game_stream_->write_chunk(
                chunk_id);
 }
 
@@ -131,7 +129,7 @@ void ISavedGame::write_chunk(
 // read
 
 template<typename TSrc, typename TDst>
-void ISavedGame::read(
+void SavedGameStreamHelper::read(
        TDst& dst_value)
 {
        using Tag = typename std::conditional <
@@ -170,7 +168,7 @@ void ISavedGame::read(
 }
 
 template<typename TSrc, typename TDst>
-void ISavedGame::read(
+void SavedGameStreamHelper::read(
        TDst& dst_value,
        BooleanTag)
 {
@@ -178,7 +176,7 @@ void ISavedGame::read(
 
        TSrc src_value;
 
-       raw_read(
+       saved_game_stream_->read(
                &src_value,
                static_cast<int>(sizeof(TSrc)));
 
@@ -189,7 +187,7 @@ void ISavedGame::read(
 }
 
 template<typename TSrc, typename TDst>
-void ISavedGame::read(
+void SavedGameStreamHelper::read(
        TDst& dst_value,
        NumericTag)
 {
@@ -197,7 +195,7 @@ void ISavedGame::read(
 
        TSrc src_value;
 
-       raw_read(
+       saved_game_stream_->read(
                &src_value,
                src_size);
 
@@ -208,7 +206,7 @@ void ISavedGame::read(
 }
 
 template<typename TSrc, typename TDst>
-void ISavedGame::read(
+void SavedGameStreamHelper::read(
        TDst*& dst_value,
        PointerTag)
 {
@@ -233,7 +231,7 @@ void ISavedGame::read(
 }
 
 template<typename TSrc, typename TDst>
-void ISavedGame::read(
+void SavedGameStreamHelper::read(
        TDst& dst_value,
        ClassTag)
 {
@@ -242,11 +240,11 @@ void ISavedGame::read(
                "Unsupported types.");
 
        dst_value.sg_import(
-               this);
+               saved_game_stream_);
 }
 
 template<typename TSrc, typename TDst, int TCount>
-void ISavedGame::read(
+void SavedGameStreamHelper::read(
        TDst(&dst_values)[TCount],
        Array1dTag)
 {
@@ -256,7 +254,7 @@ void ISavedGame::read(
 }
 
 template<typename TSrc, typename TDst, int TCount1, int TCount2>
-void ISavedGame::read(
+void SavedGameStreamHelper::read(
        TDst(&dst_values)[TCount1][TCount2],
        Array2dTag)
 {
@@ -273,19 +271,19 @@ void ISavedGame::read(
 // try_read
 
 template<typename TSrc, typename TDst>
-bool ISavedGame::try_read(
+bool SavedGameStreamHelper::try_read(
        TDst& dst_value)
 {
        ScopeGuard scope_guard(
-               [this]()
+               [saved_game_stream_]()
                {
-                       this->allow_read_overflow(
+                       saved_game_stream_->allow_read_overflow(
                                true);
                },
 
-               [this]()
+               [saved_game_stream_]()
                {
-                       this->allow_read_overflow(
+                       saved_game_stream_->allow_read_overflow(
                                false);
                }
        );
@@ -294,7 +292,7 @@ bool ISavedGame::try_read(
        read<TSrc>(
                dst_value);
 
-       return is_all_data_read();
+       return saved_game_stream_->is_all_data_read();
 }
 
 // try_read
@@ -305,7 +303,7 @@ bool ISavedGame::try_read(
 // read (C-array)
 
 template<typename TSrc, typename TDst>
-void ISavedGame::read(
+void SavedGameStreamHelper::read(
        TDst* dst_values,
        int dst_count)
 {
@@ -362,14 +360,14 @@ void ISavedGame::read(
 }
 
 template<typename TSrc, typename TDst>
-void ISavedGame::read(
+void SavedGameStreamHelper::read(
        TDst* dst_values,
        int dst_count,
        InplaceTag)
 {
        const auto dst_size = dst_count * static_cast<int>(sizeof(TDst));
 
-       raw_read(
+       saved_game_stream_->read(
                dst_values,
                dst_size);
 
@@ -378,7 +376,7 @@ void ISavedGame::read(
 }
 
 template<typename TSrc, typename TDst>
-void ISavedGame::read(
+void SavedGameStreamHelper::read(
        TDst* dst_values,
        int dst_count,
        CastTag)
@@ -413,7 +411,7 @@ void ISavedGame::read(
 // write
 
 template<typename TDst, typename TSrc>
-void ISavedGame::write(
+void SavedGameStreamHelper::write(
        const TSrc& src_value)
 {
        using Tag = typename std::conditional<
@@ -448,7 +446,7 @@ void ISavedGame::write(
 }
 
 template<typename TDst, typename TSrc>
-void ISavedGame::write(
+void SavedGameStreamHelper::write(
        const TSrc& src_value,
        NumericTag)
 {
@@ -459,13 +457,13 @@ void ISavedGame::write(
        // FIXME Byte order
        //
 
-       raw_write(
+       saved_game_stream_->write(
                &dst_value,
                dst_size);
 }
 
 template<typename TDst, typename TSrc>
-void ISavedGame::write(
+void SavedGameStreamHelper::write(
        const TSrc* src_value,
        PointerTag)
 {
@@ -483,7 +481,7 @@ void ISavedGame::write(
 }
 
 template<typename TDst, typename TSrc>
-void ISavedGame::write(
+void SavedGameStreamHelper::write(
        const TSrc& src_value,
        ClassTag)
 {
@@ -492,11 +490,11 @@ void ISavedGame::write(
                "Unsupported types.");
 
        src_value.sg_export(
-               this);
+               saved_game_stream_);
 }
 
 template<typename TDst, typename TSrc, int TCount>
-void ISavedGame::write(
+void SavedGameStreamHelper::write(
        const TSrc(&src_values)[TCount],
        Array1dTag)
 {
@@ -506,7 +504,7 @@ void ISavedGame::write(
 }
 
 template<typename TDst, typename TSrc, int TCount1, int TCount2>
-void ISavedGame::write(
+void SavedGameStreamHelper::write(
        const TSrc(&src_values)[TCount1][TCount2],
        Array2dTag)
 {
@@ -523,7 +521,7 @@ void ISavedGame::write(
 // write (C-array)
 
 template<typename TDst, typename TSrc>
-void ISavedGame::write(
+void SavedGameStreamHelper::write(
        const TSrc* src_values,
        int src_count)
 {
@@ -579,14 +577,14 @@ void ISavedGame::write(
 }
 
 template<typename TDst, typename TSrc>
-void ISavedGame::write(
+void SavedGameStreamHelper::write(
        const TSrc* src_values,
        int src_count,
        InplaceTag)
 {
        const auto src_size = src_count * static_cast<int>(sizeof(TSrc));
 
-       raw_write(
+       saved_game_stream_->write(
                src_values,
                src_size);
 
@@ -595,7 +593,7 @@ void ISavedGame::write(
 }
 
 template<typename TDst, typename TSrc>
-void ISavedGame::write(
+void SavedGameStreamHelper::write(
        const TSrc* src_values,
        int src_count,
        CastTag)
@@ -629,4 +627,4 @@ void ISavedGame::write(
 } // ojk
 
 
-#endif // OJK_I_SAVED_GAME_INCLUDED
+#endif // OJK_SAVED_GAME_STREAM_HELPER_INCLUDED
diff --git a/shared/qcommon/ojk_i_saved_game_fwd.h 
b/shared/qcommon/ojk_saved_game_stream_helper_fwd.h
similarity index 58%
rename from shared/qcommon/ojk_i_saved_game_fwd.h
rename to shared/qcommon/ojk_saved_game_stream_helper_fwd.h
index 7a3bb59..63d2fe6 100644
--- a/shared/qcommon/ojk_i_saved_game_fwd.h
+++ b/shared/qcommon/ojk_saved_game_stream_helper_fwd.h
@@ -1,103 +1,64 @@
 //
-// Saved game interface.
+// Saved game stream helper.
 // (forward declaration)
 //
 
 
-#ifndef OJK_I_SAVED_GAME_FWD_INCLUDED
-#define OJK_I_SAVED_GAME_FWD_INCLUDED
+#ifndef OJK_SAVED_GAME_STREAM_HELPER_FWD_INCLUDED
+#define OJK_SAVED_GAME_STREAM_HELPER_FWD_INCLUDED
 
 
-#include <cstdint>
-#include <string>
+#include "ojk_i_saved_game_stream.h"
 
 
 namespace ojk
 {
 
 
-class ISavedGame
+class SavedGameStreamHelper
 {
 public:
-       using ChunkId = uint32_t;
+       SavedGameStreamHelper(
+               ISavedGameStream* saved_game_stream);
 
 
-       ISavedGame();
-
-       ISavedGame(
-               const ISavedGame& that) = delete;
-
-       ISavedGame& operator=(
-               const ISavedGame& that) = delete;
-
-       virtual ~ISavedGame();
-
-
-       // Returns true if the saved game opened for reading.
-       virtual bool is_readable() const = 0;
-
-       // Returns true if the saved game opened for writing.
-       virtual bool is_writable() const = 0;
-
-
-       // Reads a chunk from the file into the internal buffer.
-       virtual void read_chunk(
-               const ChunkId chunk_id) = 0;
-
        // Reads a value or an array of values from the file via
        // the internal buffer.
        template<typename TSrc = void, typename TDst = void>
        void read_chunk(
-               const ChunkId chunk_id,
+               const uint32_t chunk_id,
                TDst& dst_value);
 
        // Reads an array of values with specified count from
        // the file via the internal buffer.
        template<typename TSrc = void, typename TDst = void>
        void read_chunk(
-               const ChunkId chunk_id,
+               const uint32_t chunk_id,
                TDst* dst_values,
                int dst_count);
 
-       // Returns true if all data read from the internal buffer.
-       virtual bool is_all_data_read() const = 0;
-
-       // Throws an exception if all data not read.
-       virtual void ensure_all_data_read() const = 0;
-
-
-       // Writes a chunk into the file from the internal buffer.
-       virtual void write_chunk(
-               const ChunkId chunk_id) = 0;
-
        // Writes a data-chunk into the file from the internal buffer
        // prepended with a size-chunk that holds a size of the data-chunk.
        template<typename TSize>
        void write_chunk_and_size(
-               const ChunkId size_chunk_id,
-               const ChunkId data_chunk_id);
+               const uint32_t size_chunk_id,
+               const uint32_t data_chunk_id);
 
        // Writes a value or an array of values into the file via
        // the internal buffer.
        template<typename TDst = void, typename TSrc = void>
        void write_chunk(
-               const ChunkId chunk_id,
+               const uint32_t chunk_id,
                const TSrc& src_value);
 
        // Writes an array of values with specified count into
        // the file via the internal buffer.
        template<typename TDst = void, typename TSrc = void>
        void write_chunk(
-               const ChunkId chunk_id,
+               const uint32_t chunk_id,
                const TSrc* src_values,
                int src_count);
 
-
-       // Reads a raw data from the internal buffer.
-       virtual void raw_read(
-               void* dst_data,
-               int dst_size) = 0;
-
        // Reads a value or array of values from the internal buffer.
        template<typename TSrc = void, typename TDst = void>
        void read(
@@ -117,11 +78,6 @@ public:
                TDst& dst_value);
 
 
-       // Writes a raw data into the internal buffer.
-       virtual void raw_write(
-               const void* src_data,
-               int src_size) = 0;
-
        // Writes a value or array of values into the internal buffer.
        template<typename TDst = void, typename TSrc = void>
        void write(
@@ -134,71 +90,19 @@ public:
                int src_count);
 
 
-       // Increments buffer's offset by the specified non-negative count.
-       virtual void skip(
-               int count) = 0;
-
-
-       // Stores current I/O buffer and it's position.
-       virtual void save_buffer() = 0;
-
-       // Restores saved I/O buffer and it's position.
-       virtual void load_buffer() = 0;
+private:
+       ISavedGameStream* saved_game_stream_;
 
-       // Returns a pointer to data in the I/O buffer.
-       virtual const void* get_buffer_data() const = 0;
 
-       // Returns a current size of the I/O buffer.
-       virtual int get_buffer_size() const = 0;
-
-
-       // Clears buffer and resets it's offset to the beginning.
-       virtual void reset_buffer() = 0;
-
-       // Resets buffer offset to the beginning.
-       virtual void reset_buffer_offset() = 0;
-
-
-protected:
        // Tags for dispatching.
-       class BooleanTag
-       {
-       public:
-       };
-       class NumericTag
-       {
-       public:
-       };
-       class PointerTag
-       {
-       public:
-       };
-       class ClassTag
-       {
-       public:
-       };
-       class Array1dTag
-       {
-       public:
-       };
-       class Array2dTag
-       {
-       public:
-       };
-       class InplaceTag
-       {
-       public:
-       };
-       class CastTag
-       {
-       public:
-       };
-
-
-       // If true won't throw an exception when buffer offset is beyond it's 
size.
-       // Although, no data will be read beyond the buffer.
-       virtual void allow_read_overflow(
-               bool value) = 0;
+       class BooleanTag { public: };
+       class NumericTag { public: };
+       class PointerTag { public: };
+       class ClassTag { public: };
+       class Array1dTag { public: };
+       class Array2dTag { public: };
+       class InplaceTag { public: };
+       class CastTag { public: };
 
 
        template<typename TSrc, typename TDst>
@@ -282,10 +186,11 @@ protected:
                const TSrc* src_values,
                int src_count,
                CastTag);
-}; // ISavedGame
+}; // SavedGameStreamHelper
+
 
+}
 
-} // ojk
 
+#endif // OJK_SAVED_GAME_STREAM_HELPER_FWD_INCLUDED
 
-#endif // OJK_I_SAVED_GAME_FWD_INCLUDED

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-games/openjk.git

_______________________________________________
Pkg-games-commits mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

Reply via email to