FileManager v1.7.0
Manage access to files with async model
Loading...
Searching...
No Matches
ReadFileHandle.h
1#pragma once
2
3#include <functional>
4#include <sstream>
5
6#include "FileHandle.h"
7
8namespace file_manager
9{
11 class FILE_MANAGER_API ReadFileHandle : public FileHandle
12 {
13 private:
14 class ReadOnlyBuffer : public std::stringbuf
15 {
16 public:
17 ReadOnlyBuffer(std::string_view view);
18 };
19
20 private:
21 std::string data;
22 std::unique_ptr<ReadOnlyBuffer> buffer;
23
24 protected:
25 ReadFileHandle(const std::filesystem::path& filePath, std::ios_base::openmode mode = std::ios_base::in);
26
27 public:
31 const std::string& readAllData();
32
39 std::streamsize readSome(std::string& outData, std::streamsize count, bool shrinkOutData = true, bool resizeOutData = true);
40
43 std::istream& getStream();
44
45 virtual ~ReadFileHandle();
46
47 friend class FileManager;
48 };
49}
Provides files accessing from multiple threads. Singleton.
Definition FileManager.h:25
Provides reading files.