mirror of
https://github.com/esp8266/Arduino.git
synced 2025-07-27 18:02:17 +03:00
BREAKING: Add Print::availableForWrite method (#7658)
* Add Print::availableForWrite method Adds an availableForWrite() method to the Print class, matching current ArduinoCore-API commit 398e70f188e2b861c10d9ffe5e2bfcb6a4a4f489 . Hook availableForWrite into the SDFS filesystem (other FSes don't have this capability built-in). Fixes #7650 * WiFiClient::availableForWrite proto matching Print * Fix Netdump signedness warning * Clean up Serial availableForWrite This is evidently a breaking change due to the type difference. Arduino's `availableForWrite` returns an `int`, while the (multiply-implemented, non-virtual) core `availableForWrite` returned `size_t`.
This commit is contained in:
committed by
GitHub
parent
95de525af9
commit
7f38e141c7
@ -173,10 +173,10 @@ void loop() {
|
||||
|
||||
// determine maximum output size "fair TCP use"
|
||||
// client.availableForWrite() returns 0 when !client.connected()
|
||||
size_t maxToTcp = 0;
|
||||
int maxToTcp = 0;
|
||||
for (int i = 0; i < MAX_SRV_CLIENTS; i++)
|
||||
if (serverClients[i]) {
|
||||
size_t afw = serverClients[i].availableForWrite();
|
||||
int afw = serverClients[i].availableForWrite();
|
||||
if (afw) {
|
||||
if (!maxToTcp) {
|
||||
maxToTcp = afw;
|
||||
@ -190,11 +190,11 @@ void loop() {
|
||||
}
|
||||
|
||||
//check UART for data
|
||||
size_t len = std::min((size_t)Serial.available(), maxToTcp);
|
||||
size_t len = std::min(Serial.available(), maxToTcp);
|
||||
len = std::min(len, (size_t)STACK_PROTECTOR);
|
||||
if (len) {
|
||||
uint8_t sbuf[len];
|
||||
size_t serial_got = Serial.readBytes(sbuf, len);
|
||||
int serial_got = Serial.readBytes(sbuf, len);
|
||||
// push UART data to all connected telnet clients
|
||||
for (int i = 0; i < MAX_SRV_CLIENTS; i++)
|
||||
// if client.availableForWrite() was 0 (congested)
|
||||
|
@ -195,7 +195,7 @@ bool WiFiClient::getSync() const
|
||||
return _client->getSync();
|
||||
}
|
||||
|
||||
size_t WiFiClient::availableForWrite ()
|
||||
int WiFiClient::availableForWrite ()
|
||||
{
|
||||
return _client? _client->availableForWrite(): 0;
|
||||
}
|
||||
|
@ -86,7 +86,7 @@ public:
|
||||
|
||||
static void setLocalPortStart(uint16_t port) { _localPort = port; }
|
||||
|
||||
size_t availableForWrite();
|
||||
int availableForWrite() override;
|
||||
|
||||
friend class WiFiServer;
|
||||
|
||||
|
Reference in New Issue
Block a user