diff --git a/hardware/arduino/cores/arduino/Stream.cpp b/hardware/arduino/cores/arduino/Stream.cpp index aafb7fcf97d..5f3a0cd0379 100644 --- a/hardware/arduino/cores/arduino/Stream.cpp +++ b/hardware/arduino/cores/arduino/Stream.cpp @@ -50,6 +50,15 @@ int Stream::timedPeek() return -1; // -1 indicates timeout } +// virtual copy constructor to allow child classes to use Stream as reference +Stream& Stream::operator=(Stream const& src) +{ + // copy the timeout time + _timeout = src._timeout; + // return a reference to this object + return *this; +} + // returns peek of the next digit in the stream or -1 if timeout // discards non-numeric characters int Stream::peekNextDigit() diff --git a/hardware/arduino/cores/arduino/Stream.h b/hardware/arduino/cores/arduino/Stream.h index 58bbf752f33..40f44cc8636 100644 --- a/hardware/arduino/cores/arduino/Stream.h +++ b/hardware/arduino/cores/arduino/Stream.h @@ -49,6 +49,7 @@ class Stream : public Print virtual int read() = 0; virtual int peek() = 0; virtual void flush() = 0; + virtual Stream& operator=(Stream const& src); Stream() {_timeout=1000;}