zimodem/include/stringstream.h

28 lines
691 B
C++

#ifndef _STRING_STREAM_H_INCLUDED_
#define _STRING_STREAM_H_INCLUDED_
class StringStream : public Stream
{
public:
StringStream(const String &s)
{
str = s;
position = 0;
}
// Stream methods
virtual int available() { return str.length() - position; }
virtual int read() { return position < str.length() ? str[position++] : -1; }
virtual int peek() { return position < str.length() ? str[position] : -1; }
virtual void flush() { };
// Print methods
virtual size_t write(uint8_t c) { str += (char)c; return 1;};
private:
String str;
int length;
int position;
};
#endif // _STRING_STREAM_H_INCLUDED_