Skip to content

Commit de9873d

Browse files
ficetoficeto
ficeto
authored and
ficeto
committed
add template client write
can read streams that have "available()" and "read(buf, len)" methods thanks @igrr
1 parent 2fc2bcb commit de9873d

File tree

1 file changed

+22
-0
lines changed
  • hardware/esp8266com/esp8266/libraries/ESP8266WiFi/src

1 file changed

+22
-0
lines changed

hardware/esp8266com/esp8266/libraries/ESP8266WiFi/src/WiFiClient.h

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,28 @@ class WiFiClient : public Client {
5656
IPAddress remoteIP();
5757
uint16_t remotePort();
5858

59+
template<typename T> size_t write(T &src){
60+
uint8_t obuf[1460];
61+
size_t doneLen = 0;
62+
size_t sentLen;
63+
int i;
64+
65+
while (src.available() > 1460){
66+
src.read(obuf, 1460);
67+
sentLen = write(obuf, 1460);
68+
doneLen = doneLen + sentLen;
69+
if(sentLen != 1460){
70+
return doneLen;
71+
}
72+
}
73+
74+
uint16_t leftLen = src.available();
75+
src.read(obuf, leftLen);
76+
sentLen = write(obuf, leftLen);
77+
doneLen = doneLen + sentLen;
78+
return doneLen;
79+
}
80+
5981
friend class WiFiServer;
6082

6183
using Print::write;

0 commit comments

Comments
 (0)