mirror of
https://github.com/esp8266/Arduino.git
synced 2025-06-12 01:53:07 +03:00
add template methods for stream to stream writes to SD and FS
This commit is contained in:
@ -54,6 +54,28 @@ public:
|
|||||||
operator bool(){ return _file > 0; }
|
operator bool(){ return _file > 0; }
|
||||||
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;
|
||||||
};
|
};
|
||||||
|
@ -48,6 +48,28 @@ public:
|
|||||||
boolean isDirectory(void);
|
boolean isDirectory(void);
|
||||||
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;
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user