arduino / ArduinoCore-API

Hardware independent layer of the Arduino cores defining the official API
https://www.arduino.cc/reference/en/
GNU Lesser General Public License v2.1
216 stars 120 forks source link

Stream - new virtual method `clear()` to clear the receive buffer #233

Open JAndrassy opened 6 months ago

JAndrassy commented 6 months ago

A very long time ago, in Arduino, flush() changed from "purge input" to "send output buffer" and moved from Stream to Print. But now there is no method to "purge input" and there is demand as I see it on forums.

Arduino classes and methods are inspired by the Processing language. Processing has Stream.clear().

The goal of this PR is to establish the name clear for "purge input" functions in Stream implementations.

For backward compatibility the method can not be added as pure virtual so some implementation has to be provided. An empty implementation would be confusing, so I took the flush() implementation from Arduino 0023 Ethernet library's Client class.