summaryrefslogtreecommitdiff
path: root/src/BufferedFile.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/BufferedFile.cc')
-rw-r--r--src/BufferedFile.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/BufferedFile.cc b/src/BufferedFile.cc
index 078acb27..080d251d 100644
--- a/src/BufferedFile.cc
+++ b/src/BufferedFile.cc
@@ -35,6 +35,7 @@
#include "BufferedFile.h"
#include <cstring>
+#include <ostream>
#include "a2io.h"
#include "util.h"
@@ -102,4 +103,19 @@ bool BufferedFile::eof()
return open_ && feof(fp_);
}
+size_t BufferedFile::transfer(std::ostream& out)
+{
+ size_t count = 0;
+ char buf[4096];
+ while(1) {
+ size_t r = this->read(buf, sizeof(buf));
+ out.write(buf, r);
+ count += r;
+ if(r < sizeof(buf)) {
+ break;
+ }
+ }
+ return count;
+}
+
} // namespace aria2