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 #include <memory>
15 
26 {
27 public:
28  StreamType getStreamType() const override
29  {
30  return eSST_Memory;
31  }
32 
33  uint16_t readMemoryBlock(char* data, int bufSize) override
34  {
35  return stream ? stream->readMemoryBlock(data, bufSize) : 0;
36  }
37 
38  bool seek(int len) override;
39 
45  size_t write(const uint8_t* buffer, size_t size) override;
46 
47  bool isFinished() override
48  {
49  return false;
50  }
51 
52 private:
53  std::unique_ptr<MemoryDataStream> stream;
54 };
Memory stream that stores unlimited number of bytes.
Definition: EndlessMemoryStream.h:26
StreamType getStreamType() const override
Get the stream type.
Definition: EndlessMemoryStream.h:28
bool isFinished() override
Check if all data has been read.
Definition: EndlessMemoryStream.h:47
bool seek(int len) override
Move read cursor.
size_t write(const uint8_t *buffer, size_t size) override
Write chars to stream.
uint16_t readMemoryBlock(char *data, int bufSize) override
Read a block of memory.
Definition: EndlessMemoryStream.h:33
Base class for read/write stream.
Definition: ReadWriteStream.h:20
StreamType
Data stream type.
Definition: DataSourceStream.h:25
@ eSST_Memory
Memory stream.
Definition: DataSourceStream.h:27