summaryrefslogtreecommitdiff
path: root/src/SocketRecvBuffer.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2014-06-05 23:40:19 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2014-06-05 23:40:19 +0900
commitaff92b5115e322574f885cdd32f65c745cc343c1 (patch)
tree35eec43821e975d38e98e43f7307d434cf80e8f6 /src/SocketRecvBuffer.cc
parent0aac49d55e80a5cab4001ca39d81295c713c47a5 (diff)
SocketRecvBuffer: Cleanup with C++11 features
Diffstat (limited to 'src/SocketRecvBuffer.cc')
-rw-r--r--src/SocketRecvBuffer.cc17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/SocketRecvBuffer.cc b/src/SocketRecvBuffer.cc
index 690e660d..beb163c5 100644
--- a/src/SocketRecvBuffer.cc
+++ b/src/SocketRecvBuffer.cc
@@ -39,28 +39,27 @@
#include "SocketCore.h"
#include "LogFactory.h"
+#include "a2functional.h"
namespace aria2 {
SocketRecvBuffer::SocketRecvBuffer
-(const std::shared_ptr<SocketCore>& socket,
+(std::shared_ptr<SocketCore> socket,
size_t capacity)
- : socket_(socket),
+ : socket_(std::move(socket)),
capacity_(capacity),
- buf_(new unsigned char[capacity_]),
+ buf_(make_unique<unsigned char[]>(capacity_)),
bufLen_(0)
{}
SocketRecvBuffer::~SocketRecvBuffer()
-{
- delete [] buf_;
-}
+{}
ssize_t SocketRecvBuffer::recv()
{
- size_t len = capacity_-bufLen_;
+ size_t len = capacity_ - bufLen_;
if(len > 0) {
- socket_->readData(buf_+bufLen_, len);
+ socket_->readData(buf_.get() + bufLen_, len);
bufLen_ += len;
} else {
A2_LOG_DEBUG("Buffer full");
@@ -71,7 +70,7 @@ ssize_t SocketRecvBuffer::recv()
void SocketRecvBuffer::shiftBuffer(size_t offset)
{
assert(offset <= bufLen_);
- memmove(buf_, buf_+offset, bufLen_-offset);
+ memmove(buf_.get(), buf_.get() + offset, bufLen_ - offset);
bufLen_ -= offset;
}