From: José Fonseca Date: Sun, 27 Nov 2011 12:15:32 +0000 (+0000) Subject: Return read bytes in File::read(). X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=76d6c051cd4ff8a631c378d09a670d93051025b4;p=apitrace Return read bytes in File::read(). --- diff --git a/common/trace_file.hpp b/common/trace_file.hpp index 627659b..68f50b4 100644 --- a/common/trace_file.hpp +++ b/common/trace_file.hpp @@ -63,7 +63,7 @@ public: bool open(const std::string &filename, File::Mode mode); bool write(const void *buffer, size_t length); - bool read(void *buffer, size_t length); + size_t read(void *buffer, size_t length); void close(); void flush(void); int getc(); @@ -76,7 +76,7 @@ public: protected: virtual bool rawOpen(const std::string &filename, File::Mode mode) = 0; virtual bool rawWrite(const void *buffer, size_t length) = 0; - virtual bool rawRead(void *buffer, size_t length) = 0; + virtual size_t rawRead(void *buffer, size_t length) = 0; virtual int rawGetc() = 0; virtual void rawClose() = 0; virtual void rawFlush() = 0; @@ -117,10 +117,10 @@ inline bool File::write(const void *buffer, size_t length) return rawWrite(buffer, length); } -inline bool File::read(void *buffer, size_t length) +inline size_t File::read(void *buffer, size_t length) { if (!m_isOpened || m_mode != File::Read) { - return false; + return 0; } return rawRead(buffer, length); } diff --git a/common/trace_file_snappy.cpp b/common/trace_file_snappy.cpp index 5901bfb..e4c17cd 100644 --- a/common/trace_file_snappy.cpp +++ b/common/trace_file_snappy.cpp @@ -82,7 +82,7 @@ public: protected: virtual bool rawOpen(const std::string &filename, File::Mode mode); virtual bool rawWrite(const void *buffer, size_t length); - virtual bool rawRead(void *buffer, size_t length); + virtual size_t rawRead(void *buffer, size_t length); virtual int rawGetc(); virtual void rawClose(); virtual void rawFlush(); @@ -209,10 +209,10 @@ bool SnappyFile::rawWrite(const void *buffer, size_t length) return true; } -bool SnappyFile::rawRead(void *buffer, size_t length) +size_t SnappyFile::rawRead(void *buffer, size_t length) { if (endOfData()) { - return false; + return 0; } if (freeCacheSize() >= length) { @@ -231,18 +231,18 @@ bool SnappyFile::rawRead(void *buffer, size_t length) flushReadCache(); } if (!m_cacheSize) { - break; + return length - sizeToRead; } } } - return true; + return length; } int SnappyFile::rawGetc() { int c = 0; - if (!rawRead(&c, 1)) + if (rawRead(&c, 1) != 1) return -1; return c; } diff --git a/common/trace_file_zlib.cpp b/common/trace_file_zlib.cpp index b299b5a..5d47d53 100644 --- a/common/trace_file_zlib.cpp +++ b/common/trace_file_zlib.cpp @@ -53,7 +53,7 @@ public: protected: virtual bool rawOpen(const std::string &filename, File::Mode mode); virtual bool rawWrite(const void *buffer, size_t length); - virtual bool rawRead(void *buffer, size_t length); + virtual size_t rawRead(void *buffer, size_t length); virtual int rawGetc(); virtual void rawClose(); virtual void rawFlush(); @@ -100,9 +100,10 @@ bool ZLibFile::rawWrite(const void *buffer, size_t length) return gzwrite(m_gzFile, buffer, length) != -1; } -bool ZLibFile::rawRead(void *buffer, size_t length) +size_t ZLibFile::rawRead(void *buffer, size_t length) { - return gzread(m_gzFile, buffer, length) != -1; + int ret = gzread(m_gzFile, buffer, length); + return ret < 0 ? 0 : ret; } int ZLibFile::rawGetc()