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 
25 {
26 public:
28  {
29  delete stream;
30  }
31 
32  StreamType getStreamType() const override
33  {
34  return eSST_Memory;
35  }
36 
37  uint16_t readMemoryBlock(char* data, int bufSize) override
38  {
39  return stream ? stream->readMemoryBlock(data, bufSize) : 0;
40  }
41 
42  bool seek(int len) override;
43 
49  size_t write(const uint8_t* buffer, size_t size) override;
50 
51  bool isFinished() override
52  {
53  return false;
54  }
55 
56 private:
57  MemoryDataStream* stream = nullptr;
58 };
~EndlessMemoryStream()
Definition: EndlessMemoryStream.h:27
uint16_t readMemoryBlock(char *data, int bufSize) override
Read a block of memory.
Definition: EndlessMemoryStream.h:37
Memory data stream.
Definition: DataSourceStream.h:28
bool seek(int len) override
Move read cursor.
StreamType getStreamType() const override
Get the stream type.
Definition: EndlessMemoryStream.h:32
StreamType
Data stream type.
Definition: DataSourceStream.h:26
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:51
Memory stream that stores unlimited number of bytes.
Definition: EndlessMemoryStream.h:24
size_t write(const uint8_t *buffer, size_t size) override
Write chars to stream.
Base class for read/write stream.
Definition: ReadWriteStream.h:19
Read/write stream using expandable memory buffer.
Definition: MemoryDataStream.h:26