acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
string_buffer.h
1// Detemplatized refactored by camilo on 2023-07-06 07:28 <3ThomasBorregaardSorensen!!
2#pragma once
3
4
5class string_buffer;
6
7
8class CLASS_DECL_ACME string_buffer_base :
9 virtual public ::file::file
10{
11public:
12
13
14 string_buffer_base();
15 ~string_buffer_base() override;
16
17 void write(const void * dataToWrite, ::memsize amountToWrite) override;
18
19 void flush() override;
20
21 void close() override;
22
23 virtual bool is_empty() const;
24
25 virtual filesize length() const;
26
27 filesize get_position() const override;
28
29 bool unget_if(::ansi_character ch) override;
30
31};
32
33
34class CLASS_DECL_ACME string_reference_buffer :
35 virtual public ::string_buffer_base
36{
37public:
38
39
40 string & m_str;
41
42
43 string_reference_buffer(::string & str);
44 string_reference_buffer(const string_reference_buffer & buffer) = delete;
45 string_reference_buffer(string_reference_buffer & buffer) = delete;
46 ~string_reference_buffer() override;
47
48 void write(const void * dataToWrite, ::memsize amountToWrite) override;
49
50 void flush() override;
51
52 void close() override;
53
54 bool is_empty() const override;
55
56 filesize length() const override;
57
58 filesize get_position() const override;
59
60 bool unget_if(::ansi_character ch) override;
61
62};
63
64
65
66
67class CLASS_DECL_ACME string_buffer :
68 public string_reference_buffer
69{
70public:
71
72
73 ::string m_strOwnStorage;
74
75 string_buffer();
76 string_buffer(string_buffer && buffer);
77 ~string_buffer() override;
78
79
80};
81
Definition file.h:33
void flush() override
Definition file.cpp:192
Definition string_buffer.h:69