X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=common%2Ftrace_file.cpp;h=3657fd2943088012fa4c69abc790bb753a151f8e;hb=39a9f3650233206061134772417bfada16cd07be;hp=8eb3bd46e5b47082a104f46fe444af011a5ab49e;hpb=f6548d1c7accc959ef53f8c08c1d7a71f94c7f53;p=apitrace diff --git a/common/trace_file.cpp b/common/trace_file.cpp index 8eb3bd4..3657fd2 100644 --- a/common/trace_file.cpp +++ b/common/trace_file.cpp @@ -26,19 +26,10 @@ #include "trace_file.hpp" -#include "trace_snappyfile.hpp" - #include -#include - -#include -#include -#include "os.hpp" -#include - -using namespace Trace; +using namespace trace; File::File(const std::string &filename, @@ -53,7 +44,8 @@ File::File(const std::string &filename, File::~File() { - close(); + // We can't invoke any overriden virtual method here anymore + assert(!m_isOpened); } @@ -62,112 +54,3 @@ void File::setCurrentOffset(const File::Offset &offset) assert(0); } -bool File::isZLibCompressed(const std::string &filename) -{ - std::fstream stream(filename.c_str(), - std::fstream::binary | std::fstream::in); - if (!stream.is_open()) - return false; - - unsigned char byte1, byte2; - stream >> byte1; - stream >> byte2; - stream.close(); - - return (byte1 == 0x1f && byte2 == 0x8b); -} - - -bool File::isSnappyCompressed(const std::string &filename) -{ - std::fstream stream(filename.c_str(), - std::fstream::binary | std::fstream::in); - if (!stream.is_open()) - return false; - - unsigned char byte1, byte2; - stream >> byte1; - stream >> byte2; - stream.close(); - - return (byte1 == SNAPPY_BYTE1 && byte2 == SNAPPY_BYTE2); -} - -ZLibFile::ZLibFile(const std::string &filename, - File::Mode mode) - : File(filename, mode), - m_gzFile(NULL) -{ -} - -ZLibFile::~ZLibFile() -{ -} - -bool ZLibFile::rawOpen(const std::string &filename, File::Mode mode) -{ - m_gzFile = gzopen(filename.c_str(), - (mode == File::Write) ? "wb" : "rb"); - - if (mode == File::Read && m_gzFile) { - //XXX: unfortunately zlib doesn't support - // SEEK_END or we could've done: - //m_endOffset = gzseek(m_gzFile, 0, SEEK_END); - //gzrewind(m_gzFile); - gz_state *state = (gz_state *)m_gzFile; - off_t loc = lseek(state->fd, 0, SEEK_CUR); - m_endOffset = lseek(state->fd, 0, SEEK_END); - lseek(state->fd, loc, SEEK_SET); - } - - return m_gzFile != NULL; -} - -bool ZLibFile::rawWrite(const void *buffer, size_t length) -{ - return gzwrite(m_gzFile, buffer, length) != -1; -} - -bool ZLibFile::rawRead(void *buffer, size_t length) -{ - return gzread(m_gzFile, buffer, length) != -1; -} - -int ZLibFile::rawGetc() -{ - return gzgetc(m_gzFile); -} - -void ZLibFile::rawClose() -{ - if (m_gzFile) { - gzclose(m_gzFile); - m_gzFile = NULL; - } -} - -void ZLibFile::rawFlush() -{ - gzflush(m_gzFile, Z_SYNC_FLUSH); -} - -File::Offset ZLibFile::currentOffset() -{ - return File::Offset(gztell(m_gzFile)); -} - -bool ZLibFile::supportsOffsets() const -{ - return false; -} - -bool ZLibFile::rawSkip(size_t) -{ - return false; -} - -int ZLibFile::rawPercentRead() -{ - gz_state *state = (gz_state *)m_gzFile; - return 100 * (lseek(state->fd, 0, SEEK_CUR) / m_endOffset); -}