163class VECTOR_BLF_EXPORT
File final {
178 uint64_t currentUncompressedFileSize {};
185 std::atomic<uint32_t> currentObjectCount {};
200 int compressionLevel {1};
205 bool writeRestorePoints {
true};
213 virtual void open(
const char * filename,
const std::ios_base::openmode mode = std::ios_base::in);
221 virtual void open(
const std::string & filename,
const std::ios_base::openmode mode = std::ios_base::in);
228 virtual bool is_open()
const;
235 virtual bool good()
const;
242 virtual bool eof()
const;
271 virtual void close();
278 virtual uint32_t defaultLogContainerSize()
const;
285 virtual void setDefaultLogContainerSize(uint32_t defaultLogContainerSize);
299 std::ios_base::openmode m_openMode {};
313 ObjectQueue<ObjectHeaderBase> m_readWriteQueue {};
324 UncompressedFile m_uncompressedFile {};
329 std::thread m_uncompressedFileThread {};
334 std::exception_ptr m_uncompressedFileThreadException {
nullptr};
339 std::atomic<bool> m_uncompressedFileThreadRunning {};
350 CompressedFile m_compressedFile {};
355 std::thread m_compressedFileThread {};
360 std::exception_ptr m_compressedFileThreadException {
nullptr};
365 std::atomic<bool> m_compressedFileThreadRunning {};
372 void uncompressedFile2ReadWriteQueue();
377 void readWriteQueue2UncompressedFile();
382 void compressedFile2UncompressedFile();
387 void uncompressedFile2CompressedFile();
392 static void uncompressedFileReadThread(File * file);
397 static void uncompressedFileWriteThread(File * file);
402 static void compressedFileReadThread(File * file);
407 static void compressedFileWriteThread(File * file);