summaryrefslogtreecommitdiff
path: root/src/SocketBuffer.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2016-05-22 20:57:33 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2016-05-22 20:57:33 +0900
commit9d40c47799bbec12bb02f7579736fbc1fcc35c08 (patch)
tree0ef02a9f17d6550667aa745829ff5146b1ccf6a6 /src/SocketBuffer.cc
parent9727b5b256bb12cff42e6aa230ba2020a933562f (diff)
parent0b906f40f1204e79cb43af3867468ab02a371075 (diff)
Merge branch 'master' into dynamic-select-file
Diffstat (limited to 'src/SocketBuffer.cc')
-rw-r--r--src/SocketBuffer.cc25
1 files changed, 14 insertions, 11 deletions
diff --git a/src/SocketBuffer.cc b/src/SocketBuffer.cc
index 9b3c6f22..95a0244a 100644
--- a/src/SocketBuffer.cc
+++ b/src/SocketBuffer.cc
@@ -47,31 +47,34 @@
namespace aria2 {
SocketBuffer::ByteArrayBufEntry::ByteArrayBufEntry(
- unsigned char* bytes, size_t length,
+ std::vector<unsigned char> bytes,
std::unique_ptr<ProgressUpdate> progressUpdate)
- : BufEntry(std::move(progressUpdate)), bytes_(bytes), length_(length)
+ : BufEntry(std::move(progressUpdate)), bytes_(std::move(bytes))
{
}
-SocketBuffer::ByteArrayBufEntry::~ByteArrayBufEntry() { delete[] bytes_; }
+SocketBuffer::ByteArrayBufEntry::~ByteArrayBufEntry() {}
ssize_t
SocketBuffer::ByteArrayBufEntry::send(const std::shared_ptr<SocketCore>& socket,
size_t offset)
{
- return socket->writeData(bytes_ + offset, length_ - offset);
+ return socket->writeData(bytes_.data() + offset, bytes_.size() - offset);
}
bool SocketBuffer::ByteArrayBufEntry::final(size_t offset) const
{
- return length_ <= offset;
+ return bytes_.size() <= offset;
}
-size_t SocketBuffer::ByteArrayBufEntry::getLength() const { return length_; }
+size_t SocketBuffer::ByteArrayBufEntry::getLength() const
+{
+ return bytes_.size();
+}
const unsigned char* SocketBuffer::ByteArrayBufEntry::getData() const
{
- return bytes_;
+ return bytes_.data();
}
SocketBuffer::StringBufEntry::StringBufEntry(
@@ -106,12 +109,12 @@ SocketBuffer::SocketBuffer(std::shared_ptr<SocketCore> socket)
SocketBuffer::~SocketBuffer() {}
-void SocketBuffer::pushBytes(unsigned char* bytes, size_t len,
+void SocketBuffer::pushBytes(std::vector<unsigned char> bytes,
std::unique_ptr<ProgressUpdate> progressUpdate)
{
- if (len > 0) {
- bufq_.push_back(
- make_unique<ByteArrayBufEntry>(bytes, len, std::move(progressUpdate)));
+ if (!bytes.empty()) {
+ bufq_.push_back(make_unique<ByteArrayBufEntry>(std::move(bytes),
+ std::move(progressUpdate)));
}
}