summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-07-05 22:40:29 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-07-06 15:56:08 +0900
commitae84ff26e2ded61e19d38ddbd23bcbdb0279cc8a (patch)
tree0f1c6729408791c40b6cdc72b89be659f3ecc590 /src
parentf8d305fe639a2a458106f3f233f696157c6ab06d (diff)
AbstractSingleDiskAdaptor: Use std::unique_ptr for diskWriter_
Diffstat (limited to 'src')
-rw-r--r--src/AbstractSingleDiskAdaptor.cc4
-rw-r--r--src/AbstractSingleDiskAdaptor.h6
-rw-r--r--src/BtPostDownloadHandler.cc9
3 files changed, 9 insertions, 10 deletions
diff --git a/src/AbstractSingleDiskAdaptor.cc b/src/AbstractSingleDiskAdaptor.cc
index 197f00db..90c82ee0 100644
--- a/src/AbstractSingleDiskAdaptor.cc
+++ b/src/AbstractSingleDiskAdaptor.cc
@@ -188,9 +188,9 @@ void AbstractSingleDiskAdaptor::cutTrailingGarbage()
}
void AbstractSingleDiskAdaptor::setDiskWriter
-(const std::shared_ptr<DiskWriter>& diskWriter)
+(std::unique_ptr<DiskWriter> diskWriter)
{
- diskWriter_ = diskWriter;
+ diskWriter_ = std::move(diskWriter);
}
void AbstractSingleDiskAdaptor::setTotalLength(int64_t totalLength)
diff --git a/src/AbstractSingleDiskAdaptor.h b/src/AbstractSingleDiskAdaptor.h
index 6a6ea3de..0a23e84a 100644
--- a/src/AbstractSingleDiskAdaptor.h
+++ b/src/AbstractSingleDiskAdaptor.h
@@ -44,7 +44,7 @@ class FileAllocationIterator;
class AbstractSingleDiskAdaptor : public DiskAdaptor {
private:
- std::shared_ptr<DiskWriter> diskWriter_;
+ std::unique_ptr<DiskWriter> diskWriter_;
int64_t totalLength_;
bool readOnly_;
public:
@@ -89,9 +89,9 @@ public:
virtual const std::string& getFilePath() = 0;
- void setDiskWriter(const std::shared_ptr<DiskWriter>& diskWriter);
+ void setDiskWriter(std::unique_ptr<DiskWriter> diskWriter);
- const std::shared_ptr<DiskWriter>& getDiskWriter() const
+ const std::unique_ptr<DiskWriter>& getDiskWriter() const
{
return diskWriter_;
}
diff --git a/src/BtPostDownloadHandler.cc b/src/BtPostDownloadHandler.cc
index 9c432192..05d09f2e 100644
--- a/src/BtPostDownloadHandler.cc
+++ b/src/BtPostDownloadHandler.cc
@@ -73,11 +73,10 @@ void BtPostDownloadHandler::getNextRequestGroups
requestGroup->getFirstFilePath().c_str()));
std::shared_ptr<ValueBase> torrent;
if(requestGroup->inMemoryDownload()) {
- const std::shared_ptr<DiskWriter>& dw =
- std::static_pointer_cast<AbstractSingleDiskAdaptor>
- (requestGroup->getPieceStorage()->getDiskAdaptor())->getDiskWriter();
- const std::shared_ptr<bittorrent::BencodeDiskWriter>& bdw =
- std::static_pointer_cast<bittorrent::BencodeDiskWriter>(dw);
+ auto& dw = static_cast<AbstractSingleDiskAdaptor*>
+ (requestGroup->getPieceStorage()->getDiskAdaptor().get())
+ ->getDiskWriter();
+ auto bdw = static_cast<bittorrent::BencodeDiskWriter*>(dw.get());
int error = bdw->finalize();
if(error == 0) {
torrent = bdw->getResult();