EndlessMemoryStream.h
Go to the documentation of this file.
1 /****
2  * Sming Framework Project - Open Source framework for high efficiency native ESP8266 development.
3  * Created 2015 by Skurydin Alexey
4  * http://github.com/SmingHub/Sming
5  * All files of the Sming Core are provided under the LGPL v3 license.
6  *
7  * EndlessMemoryStream.h
8  *
9  ****/
10 
11 #pragma once
12 
13 #include "MemoryDataStream.h"
14 
28 {
29 public:
31  {
32  delete stream;
33  }
34 
35  StreamType getStreamType() const override
36  {
37  return eSST_Memory;
38  }
39 
40  uint16_t readMemoryBlock(char* data, int bufSize) override
41  {
42  return stream ? stream->readMemoryBlock(data, bufSize) : 0;
43  }
44 
45  bool seek(int len) override;
46 
52  size_t write(const uint8_t* buffer, size_t size) override;
53 
54  bool isFinished() override
55  {
56  return false;
57  }
58 
59 private:
60  MemoryDataStream* stream = nullptr;
61 };
62 
~EndlessMemoryStream()
Definition: EndlessMemoryStream.h:30
uint16_t readMemoryBlock(char *data, int bufSize) override
Read a block of memory.
Definition: EndlessMemoryStream.h:40
Memory data stream.
Definition: DataSourceStream.h:24
bool seek(int len) override
Move read cursor.
StreamType getStreamType() const override
Get the stream type.
Definition: EndlessMemoryStream.h:35
StreamType
Data stream type.
Definition: DataSourceStream.h:22
uint16_t readMemoryBlock(char *data, int bufSize) override
Read a block of memory.
bool isFinished() override
Check if all data has been read.
Definition: EndlessMemoryStream.h:54
Memory stream that stores unlimited number of bytes.
Definition: EndlessMemoryStream.h:27
size_t write(const uint8_t *buffer, size_t size) override
Write chars to stream.
Base class for read/write stream.
Definition: ReadWriteStream.h:22
Definition: MemoryDataStream.h:28