blob: d4596589b78f28952ebcb6e61c13c5048273c23b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
/*
* Copyright (c) 2010 Remko Tronçon
* Licensed under the GNU General Public License v3.
* See Documentation/Licenses/GPLv3.txt for more information.
*/
#pragma once
#include "Swiften/FileTransfer/ReadBytestream.h"
#include "Swiften/Base/ByteArray.h"
namespace Swift {
class ByteArrayReadBytestream : public ReadBytestream {
public:
ByteArrayReadBytestream(const ByteArray& data) : data(data), position(0) {
}
virtual ByteArray read(size_t size) {
size_t readSize = size;
if (position + readSize > data.getSize()) {
readSize = data.getSize() - position;
}
ByteArray result(data.getData() + position, readSize);
position += readSize;
return result;
}
virtual bool isFinished() const {
return position >= data.getSize();
}
private:
ByteArray data;
size_t position;
};
}
|