diff options
author | Remko Tronçon <git@el-tramo.be> | 2011-09-29 20:21:01 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2011-09-29 20:21:01 (GMT) |
commit | eb25d910e7991503eaa74233f0b396648f512e88 (patch) | |
tree | caeb9c22e97991be73235285c53fc93197a5eebb /Swiften/FileTransfer/ByteArrayReadBytestream.h | |
parent | bea648fcd6bce4f0d7f19725f60e5b2b3ef0a340 (diff) | |
download | swift-contrib-eb25d910e7991503eaa74233f0b396648f512e88.zip swift-contrib-eb25d910e7991503eaa74233f0b396648f512e88.tar.bz2 |
Allow ReadBytestreams to be resumed.
Diffstat (limited to 'Swiften/FileTransfer/ByteArrayReadBytestream.h')
-rw-r--r-- | Swiften/FileTransfer/ByteArrayReadBytestream.h | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/Swiften/FileTransfer/ByteArrayReadBytestream.h b/Swiften/FileTransfer/ByteArrayReadBytestream.h index a6945c3..6cbdef0 100644 --- a/Swiften/FileTransfer/ByteArrayReadBytestream.h +++ b/Swiften/FileTransfer/ByteArrayReadBytestream.h @@ -8,12 +8,13 @@ #include <vector> +#include <Swiften/Base/Algorithm.h> #include <Swiften/FileTransfer/ReadBytestream.h> namespace Swift { class ByteArrayReadBytestream : public ReadBytestream { public: - ByteArrayReadBytestream(const std::vector<unsigned char>& data) : data(data), position(0) { + ByteArrayReadBytestream(const std::vector<unsigned char>& data) : data(data), position(0), dataComplete(true) { } virtual std::vector<unsigned char> read(size_t size) { @@ -29,11 +30,21 @@ namespace Swift { } virtual bool isFinished() const { - return position >= data.size(); + return position >= data.size() && dataComplete; + } + + virtual void setDataComplete(bool b) { + dataComplete = b; + } + + void addData(const std::vector<unsigned char>& moreData) { + append(data, moreData); + onDataAvailable(); } private: std::vector<unsigned char> data; size_t position; + bool dataComplete; }; } |