X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=common%2Ftrace_file.hpp;h=0c176aabe652c4699a707da6f475ba9973c34372;hb=HEAD;hp=0105a2a73e6f27d57aaa99f201067d0a7bdd14ad;hpb=4159a6196b23dae0be22dde17a85783fe4036517;p=apitrace diff --git a/common/trace_file.hpp b/common/trace_file.hpp index 0105a2a..0c176aa 100644 --- a/common/trace_file.hpp +++ b/common/trace_file.hpp @@ -31,7 +31,12 @@ #include #include -namespace Trace { + +#define SNAPPY_BYTE1 'a' +#define SNAPPY_BYTE2 't' + + +namespace trace { class File { public: @@ -49,10 +54,10 @@ public: }; public: - static bool isZLibCompressed(const std::string &filename); - static bool isSnappyCompressed(const std::string &filename); static File *createZLib(void); static File *createSnappy(void); + static File *createForRead(const char *filename); + static File *createForWrite(const char *filename); public: File(const std::string &filename = std::string(), File::Mode mode = File::Read); @@ -63,7 +68,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 +81,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 +122,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); } @@ -199,6 +204,6 @@ operator<=(const File::Offset &one, const File::Offset &two) } -} +} /* namespace trace */ #endif