From 5378ed8c431045a211af4c0b078ca9de6369f2d2 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Sat, 6 Jul 2013 19:45:01 +0900 Subject: [PATCH] MultiUrlRequestFactory: Use std::unique_ptr for DownloadEngine --- src/DownloadEngineFactory.cc | 6 ++-- src/DownloadEngineFactory.h | 4 +-- src/MultiUrlRequestInfo.cc | 2 +- src/MultiUrlRequestInfo.h | 4 +-- src/aria2api.cc | 54 +++++++++++++----------------------- 5 files changed, 27 insertions(+), 43 deletions(-) diff --git a/src/DownloadEngineFactory.cc b/src/DownloadEngineFactory.cc index 0edb3ccc..2cfef18a 100644 --- a/src/DownloadEngineFactory.cc +++ b/src/DownloadEngineFactory.cc @@ -146,13 +146,13 @@ std::unique_ptr createEventPoll(Option* op) } } // namespace -std::shared_ptr +std::unique_ptr DownloadEngineFactory::newDownloadEngine -(Option* op, std::vector > requestGroups) +(Option* op, std::vector> requestGroups) { const size_t MAX_CONCURRENT_DOWNLOADS = op->getAsInt(PREF_MAX_CONCURRENT_DOWNLOADS); - auto e = std::make_shared(createEventPoll(op)); + auto e = make_unique(createEventPoll(op)); e->setOption(op); { auto requestGroupMan = make_unique diff --git a/src/DownloadEngineFactory.h b/src/DownloadEngineFactory.h index 7675971c..4e1d11bf 100644 --- a/src/DownloadEngineFactory.h +++ b/src/DownloadEngineFactory.h @@ -50,9 +50,9 @@ class DownloadEngineFactory { public: DownloadEngineFactory(); - std::shared_ptr + std::unique_ptr newDownloadEngine - (Option* op, std::vector > requestGroups); + (Option* op, std::vector> requestGroups); }; } // namespace aria2 diff --git a/src/MultiUrlRequestInfo.cc b/src/MultiUrlRequestInfo.cc index 4135bc3e..7eb171bf 100644 --- a/src/MultiUrlRequestInfo.cc +++ b/src/MultiUrlRequestInfo.cc @@ -391,7 +391,7 @@ void MultiUrlRequestInfo::resetSignalHandlers() #endif // SIGPIPE } -const std::shared_ptr& +const std::unique_ptr& MultiUrlRequestInfo::getDownloadEngine() const { return e_; diff --git a/src/MultiUrlRequestInfo.h b/src/MultiUrlRequestInfo.h index 2395ada1..b1e95e0c 100644 --- a/src/MultiUrlRequestInfo.h +++ b/src/MultiUrlRequestInfo.h @@ -60,7 +60,7 @@ private: std::shared_ptr uriListParser_; - std::shared_ptr e_; + std::unique_ptr e_; sigset_t mask_; @@ -99,7 +99,7 @@ public: // have completed. error_code::Value getResult(); - const std::shared_ptr& getDownloadEngine() const; + const std::unique_ptr& getDownloadEngine() const; // Signal handlers are not prepared if false is given. void setUseSignalHandler(bool useSignalHandler) diff --git a/src/aria2api.cc b/src/aria2api.cc index 4440cd85..32ae2046 100644 --- a/src/aria2api.cc +++ b/src/aria2api.cc @@ -149,15 +149,13 @@ int sessionFinal(Session* session) int run(Session* session, RUN_MODE mode) { - const std::shared_ptr& e = - session->context->reqinfo->getDownloadEngine(); + auto& e = session->context->reqinfo->getDownloadEngine(); return e->run(mode == RUN_ONCE); } int shutdown(Session* session, bool force) { - const std::shared_ptr& e = - session->context->reqinfo->getDownloadEngine(); + auto& e = session->context->reqinfo->getDownloadEngine(); if(force) { e->requestForceHalt(); } else { @@ -254,7 +252,7 @@ void apiGatherChangeableGlobalOption namespace { void addRequestGroup(const std::shared_ptr& group, - const std::shared_ptr& e, + DownloadEngine* e, int position) { if(position >= 0) { @@ -271,8 +269,7 @@ int addUri(Session* session, const KeyVals& options, int position) { - const std::shared_ptr& e = - session->context->reqinfo->getDownloadEngine(); + auto& e = session->context->reqinfo->getDownloadEngine(); std::shared_ptr