[openjk] 42/130: Add method to advance the buffer offset
Simon McVittie
smcv at debian.org
Fri Oct 28 11:09:16 UTC 2016
This is an automated email from the git hooks/post-receive script.
smcv pushed a commit to branch debian/master
in repository openjk.
commit 0b8140cc1b0a40fea9edd012cbc5523a366431cc
Author: bibendovsky <bibendovsky at hotmail.com>
Date: Sat Jul 16 20:10:34 2016 +0300
Add method to advance the buffer offset
---
shared/qcommon/ojk_i_saved_game_fwd.h | 5 ++++
shared/qcommon/ojk_saved_game.cpp | 43 +++++++++++++++++++++++++++++++++++
shared/qcommon/ojk_saved_game.h | 3 +++
3 files changed, 51 insertions(+)
diff --git a/shared/qcommon/ojk_i_saved_game_fwd.h b/shared/qcommon/ojk_i_saved_game_fwd.h
index 141d8bb..1a989c1 100644
--- a/shared/qcommon/ojk_i_saved_game_fwd.h
+++ b/shared/qcommon/ojk_i_saved_game_fwd.h
@@ -116,6 +116,11 @@ public:
int src_count);
+ // Increments buffer's offset by the specified non-negative count.
+ virtual void advance_buffer(
+ int count) = 0;
+
+
// Returns an I/O buffer.
virtual const Buffer& get_buffer() const = 0;
diff --git a/shared/qcommon/ojk_saved_game.cpp b/shared/qcommon/ojk_saved_game.cpp
index 3ab447d..5ceeab7 100644
--- a/shared/qcommon/ojk_saved_game.cpp
+++ b/shared/qcommon/ojk_saved_game.cpp
@@ -510,6 +510,49 @@ void SavedGame::set_preview_mode(
is_preview_mode_ = value;
}
+void SavedGame::advance_buffer(
+ int count)
+{
+ if (!is_readable_ && !is_writable_)
+ {
+ throw_error(
+ "Not open or created.");
+ }
+
+ if (count < 0)
+ {
+ throw_error(
+ "Negative count.");
+ }
+
+ if (count == 0)
+ {
+ return;
+ }
+
+ auto new_offset = io_buffer_offset_ + count;
+ auto buffer_size = io_buffer_.size();
+
+ if (new_offset > buffer_size)
+ {
+ if (is_readable_)
+ {
+ throw_error(
+ "Not enough data.");
+ }
+ else if (is_writable_)
+ {
+ io_buffer_offset_ = new_offset;
+
+ if (new_offset > buffer_size)
+ {
+ io_buffer_.resize(
+ new_offset);
+ }
+ }
+ }
+}
+
const SavedGame::Buffer& SavedGame::get_buffer() const
{
return io_buffer_;
diff --git a/shared/qcommon/ojk_saved_game.h b/shared/qcommon/ojk_saved_game.h
index 7511a2b..d0ece43 100644
--- a/shared/qcommon/ojk_saved_game.h
+++ b/shared/qcommon/ojk_saved_game.h
@@ -91,6 +91,9 @@ public:
void set_preview_mode(
bool value);
+ // Increments buffer's offset by the specified non-negative count.
+ void advance_buffer(
+ int count) override;
// Returns an I/O buffer.
const Buffer& get_buffer() const override;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/openjk.git
More information about the Pkg-games-commits
mailing list