acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
buffered_file.h
1#pragma once
2
3
4#include "acme/prototype/prototype/memory.h"
5#include "file.h"
6
7
8namespace file
9{
10
11
12 class CLASS_DECL_ACME buffered_file :
13 virtual public ::file::file
14 {
15 public:
16
17
18 file_pointer m_pfile;
19
20 memsize m_uiBufferSize;
21 filesize m_uiPosition;
22 filesize m_uiBufLPos;
23 filesize m_uiBufUPos;
24 bool m_bDirty;
25 filesize m_uiWriteLPos;
26 filesize m_uiWriteUPos;
27 memory m_storage;
28
29
30 buffered_file(file_pointer pfile, memsize iBufferSize = 1024 * 128);
31 ~buffered_file() override;
32
33
34 bool is_valid() const override;
35 void translate(filesize offset, ::enum_seek eseek) override;
36 filesize get_position() const override;
37 filesize size() const override;
38
39
40 using ::file::file::read;
41 memsize read(void * p, ::memsize s) override;
42
43
44 using ::file::file::write;
45 void write(const void * p, ::memsize s) override;
46
47
48 void put_byte_back(::u8 uch) override;
49
50 void flush() override;
51 bool buffer(memsize uiGrow = 0);
52 void set_size(filesize dwNewLen) override;
53
54 virtual memsize get_buffer_size();
55
56
57 };
58
59
60} // namespace file
61
62
void flush() override
Definition buffered_buffer.cpp:346
Definition memory.h:33
Definition filesystem.h:16