7#include <Vector/BLF/platform.h>
9#include <condition_variable>
15#include <Vector/BLF/AbstractFile.h>
16#include <Vector/BLF/LogContainer.h>
18#include <Vector/BLF/vector_blf_export.h>
36class VECTOR_BLF_EXPORT UncompressedFile final :
public AbstractFile {
38 UncompressedFile() =
default;
39 ~UncompressedFile()
override;
41 std::streamsize
gcount()
const override;
42 void read(
char * s, std::streamsize n)
override;
43 std::streampos
tellg()
override;
44 void seekg(std::streamoff off,
const std::ios_base::seekdir way = std::ios_base::cur)
override;
45 void write(
const char * s, std::streamsize n)
override;
46 std::streampos
tellp()
override;
47 bool good()
const override;
48 bool eof()
const override;
60 virtual void write(
const std::shared_ptr<LogContainer> & logContainer);
72 virtual std::streamsize
fileSize()
const;
119 std::list<std::shared_ptr<LogContainer>> m_data {};
122 std::streampos m_tellg {};
125 std::streampos m_tellp {};
128 std::streamsize m_gcount {};
131 std::streamsize m_fileSize {std::numeric_limits<std::streamsize>::max()};
134 std::streamsize m_bufferSize {std::numeric_limits<std::streamsize>::max()};
137 std::ios_base::iostate m_rdstate {std::ios_base::goodbit};
140 mutable std::mutex m_mutex {};
143 uint32_t m_defaultLogContainerSize {0x20000};
155 std::shared_ptr<LogContainer> logContainerContaining(
const std::streampos pos)
const;
std::streamsize gcount() const override
Definition UncompressedFile.cpp:24
bool eof() const override
Definition UncompressedFile.cpp:177
void seekg(std::streamoff off, const std::ios_base::seekdir way=std::ios_base::cur) override
Definition UncompressedFile.cpp:92
std::condition_variable tellpChanged
Definition UncompressedFile.h:112
bool good() const override
Definition UncompressedFile.cpp:170
virtual void setDefaultLogContainerSize(uint32_t defaultLogContainerSize)
Definition UncompressedFile.cpp:297
virtual void setFileSize(std::streamsize fileSize)
Definition UncompressedFile.cpp:250
void write(const char *s, std::streamsize n) override
Definition UncompressedFile.cpp:103
void read(char *s, std::streamsize n) override
Definition UncompressedFile.cpp:31
std::streampos tellp() override
Definition UncompressedFile.cpp:160
virtual void nextLogContainer()
Definition UncompressedFile.cpp:224
virtual uint32_t defaultLogContainerSize() const
Definition UncompressedFile.cpp:290
virtual void setBufferSize(std::streamsize bufferSize)
Definition UncompressedFile.cpp:261
virtual void dropOldData()
Definition UncompressedFile.cpp:269
std::condition_variable tellgChanged
Definition UncompressedFile.h:109
virtual void abort()
Definition UncompressedFile.cpp:184
virtual std::streamsize fileSize() const
Definition UncompressedFile.cpp:242
std::streampos tellg() override
Definition UncompressedFile.cpp:82