esp32_ethernet_milight_hub/lib/Settings/StringStream.h
2021-01-15 22:49:01 +01:00

29 lines
No EOL
766 B
C++

/*
* Adapated from https://gist.github.com/cmaglie/5883185
*/
#ifndef _STRING_STREAM_H_INCLUDED_
#define _STRING_STREAM_H_INCLUDED_
#include <Stream.h>
class StringStream : public Stream
{
public:
StringStream(String &s) : string(s), position(0) { }
// Stream methods
virtual int available() { return string.length() - position; }
virtual int read() { return position < string.length() ? string[position++] : -1; }
virtual int peek() { return position < string.length() ? string[position] : -1; }
virtual void flush() { };
// Print methods
virtual size_t write(uint8_t c) { string += (char)c; return 1; };
private:
String &string;
unsigned int length;
unsigned int position;
};
#endif // _STRING_STREAM_H_INCLUDED_