27 if (buffer_has_write_data())
51 destination.set_position(start);
56 const int64_t copy_size = std::min(size, int64_t(read_buffer_size));
57 destination.sequential_write(buffer.data,
size_t(copy_size));
75 std::string
s(size, 0);
88 s.resize(
size_t(size));
98 if (buffer_has_write_data())
101 try { write_buffer(); }
catch (...) {}
111 reader.
read(result.data(), result.size());
113 reading_past_end_of_file();
int64_t get_remaining() const
size_t read(char *buffer, size_t capacity)
bool is_end_of_file() const
void set_position(int64_t position)
size_t read_data(char *data, const size_t n)
void write_string(const std::string &s)
virtual std::string read_blob_data(Blob blob) const
std::string read_string()
void destructor_flush() noexcept
void write_data(const char *data, size_t n)
virtual void copy_to(Buffered_File &destination, int64_t start, int64_t size)
std::string safe_read_string(int64_t max_size)
Buffered_File(Open_Mode mode)
static void write(const char *message) noexcept
void sequential_seek(int64_t new_position)
@ shared_write
like write_existing_or_create_new, but does not lock the file, and does not fail if locked
@ read_existing
fails if does not exist