1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-27 21:16:50 +03:00

add template methods for stream to stream writes to SD and FS

This commit is contained in:
ficeto 2015-05-14 12:41:24 +03:00
parent 5181f90725
commit 2e9a038f68
2 changed files with 44 additions and 0 deletions

View File

@ -55,6 +55,28 @@ public:
char * name(); char * name();
boolean isDirectory(void); boolean isDirectory(void);
template<typename T> size_t write(T &src){
uint8_t obuf[64];
size_t doneLen = 0;
size_t sentLen;
int i;
while (src.available() > 64){
src.read(obuf, 64);
sentLen = write(obuf, 64);
doneLen = doneLen + sentLen;
if(sentLen != 64){
return doneLen;
}
}
size_t leftLen = src.available();
src.read(obuf, leftLen);
sentLen = write(obuf, leftLen);
doneLen = doneLen + sentLen;
return doneLen;
}
using Print::write; using Print::write;
}; };

View File

@ -49,6 +49,28 @@ public:
File openNextFile(uint8_t mode = O_RDONLY); File openNextFile(uint8_t mode = O_RDONLY);
void rewindDirectory(void); void rewindDirectory(void);
template<typename T> size_t write(T &src){
uint8_t obuf[512];
size_t doneLen = 0;
size_t sentLen;
int i;
while (src.available() > 512){
src.read(obuf, 512);
sentLen = write(obuf, 512);
doneLen = doneLen + sentLen;
if(sentLen != 512){
return doneLen;
}
}
size_t leftLen = src.available();
src.read(obuf, leftLen);
sentLen = write(obuf, leftLen);
doneLen = doneLen + sentLen;
return doneLen;
}
using Print::write; using Print::write;
}; };