From: José Fonseca Date: Sun, 11 Sep 2011 13:12:12 +0000 (+0100) Subject: Implement ZlibFile::currentOffset. X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=7b1d0135921b9f5e795798e9a020c59a58301e8c;p=apitrace Implement ZlibFile::currentOffset. It helps making the parsing code simpler, and should not have any performance impact. --- 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);