4
This file is part of OpenSpades.
6
OpenSpades is free software: you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation, either version 3 of the License, or
9
(at your option) any later version.
11
OpenSpades is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU General Public License for more details.
16
You should have received a copy of the GNU General Public License
17
along with OpenSpades. If not, see <http://www.gnu.org/licenses/>.
26
class MemoryStream : public IStream {
27
unsigned char *memory;
33
MemoryStream(char *buffer, size_t length, bool allowWrite);
34
MemoryStream(const char *buffer, size_t length);
37
int ReadByte() override;
38
size_t Read(void *, size_t bytes) override;
39
std::string Read(size_t maxBytes) override;
41
void WriteByte(int) override;
42
void Write(const void *, size_t bytes) override;
44
uint64_t GetPosition() override;
45
void SetPosition(uint64_t) override;
47
uint64_t GetLength() override;
49
void SetLength(uint64_t) override;