From 7b1d0135921b9f5e795798e9a020c59a58301e8c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Sun, 11 Sep 2011 14:12:12 +0100 Subject: [PATCH] Implement ZlibFile::currentOffset. It helps making the parsing code simpler, and should not have any performance impact. --- trace_file.cpp | 9 ++++----- trace_file.hpp | 9 +++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/trace_file.cpp b/trace_file.cpp index 45473b3..81bc343 100644 --- a/trace_file.cpp +++ b/trace_file.cpp @@ -57,11 +57,6 @@ File::~File() } -File::Offset File::currentOffset() -{ - return File::Offset(); -} - void File::setCurrentOffset(const File::Offset &offset) { } @@ -163,6 +158,10 @@ void ZLibFile::rawFlush() gzflush(m_gzFile, Z_SYNC_FLUSH); } +File::Offset ZLibFile::currentOffset() +{ + return File::Offset(gztell(m_gzFile)); +} bool ZLibFile::supportsOffsets() const { diff --git a/trace_file.hpp b/trace_file.hpp index f6e77ae..7214d78 100644 --- a/trace_file.hpp +++ b/trace_file.hpp @@ -40,9 +40,9 @@ public: Write }; struct Offset { - Offset() - : chunk(0), - offsetInChunk(0) + Offset(uint64_t _chunk = 0, uint32_t _offsetInChunk = 0) + : chunk(_chunk), + offsetInChunk(_offsetInChunk) {} uint64_t chunk; uint32_t offsetInChunk; @@ -71,7 +71,7 @@ public: int percentRead(); virtual bool supportsOffsets() const = 0; - virtual File::Offset currentOffset(); + virtual File::Offset currentOffset() = 0; virtual void setCurrentOffset(const File::Offset &offset); protected: virtual bool rawOpen(const std::string &filename, File::Mode mode) = 0; @@ -178,6 +178,7 @@ public: virtual bool supportsOffsets() const; + virtual File::Offset currentOffset(); protected: virtual bool rawOpen(const std::string &filename, File::Mode mode); virtual bool rawWrite(const void *buffer, size_t length); -- 2.45.2