diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-05-27 21:45:33 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-05-27 21:45:33 +0900 |
| commit | e4bf9b9cc584d5e0da573a142d00ce63f8d3eff9 (patch) | |
| tree | 1aaa870a3c112018ae30541424c1ec57ea87d04a /src | |
| parent | dc8ed34cb014a0bdf22168fc73563086c8d8d1f2 (diff) | |
Implement DownloadResultDH::getOption()/getOptions()
Diffstat (limited to 'src')
| -rw-r--r-- | src/aria2api.cc | 39 | ||||
| -rw-r--r-- | src/includes/aria2/aria2.h | 4 |
2 files changed, 27 insertions, 16 deletions
diff --git a/src/aria2api.cc b/src/aria2api.cc index 9b08089a..f295a6a1 100644 --- a/src/aria2api.cc +++ b/src/aria2api.cc @@ -662,6 +662,29 @@ void pushRequestOption } // namespace namespace { +const std::string& getRequestOption(const SharedHandle<Option>& option, + const std::string& name) +{ + const Pref* pref = option::k2p(name); + if(OptionParser::getInstance()->find(pref)) { + return option->get(pref); + } else { + return A2STR::NIL; + } +} +} // namespace + +namespace { +KeyVals getRequestOptions(const SharedHandle<Option>& option) +{ + KeyVals res; + pushRequestOption(std::back_inserter(res), option, + OptionParser::getInstance()); + return res; +} +} // namespace + +namespace { struct RequestGroupDH : public DownloadHandle { RequestGroupDH(const SharedHandle<RequestGroup>& group) : group(group), @@ -800,19 +823,11 @@ struct RequestGroupDH : public DownloadHandle { } virtual const std::string& getOption(const std::string& name) { - const Pref* pref = option::k2p(name); - if(OptionParser::getInstance()->find(pref)) { - return group->getOption()->get(pref); - } else { - return A2STR::NIL; - } + return getRequestOption(group->getOption(), name); } virtual KeyVals getOptions() { - KeyVals res; - pushRequestOption(std::back_inserter(res), group->getOption(), - OptionParser::getInstance()); - return res; + return getRequestOptions(group->getOption()); } SharedHandle<RequestGroup> group; TransferStat ts; @@ -917,11 +932,11 @@ struct DownloadResultDH : public DownloadHandle { } virtual const std::string& getOption(const std::string& name) { - return A2STR::NIL; + return getRequestOption(dr->option, name); } virtual KeyVals getOptions() { - return KeyVals(); + return getRequestOptions(dr->option); } SharedHandle<DownloadResult> dr; }; diff --git a/src/includes/aria2/aria2.h b/src/includes/aria2/aria2.h index 36c630e7..87077ca6 100644 --- a/src/includes/aria2/aria2.h +++ b/src/includes/aria2/aria2.h @@ -867,10 +867,6 @@ public: * not return options which have no default value and have not been * set by :func:`sessionNew()`, configuration files or API * functions. - * - * Calling this function for the download which is not in - * :c:macro:`DOWNLOAD_ACTIVE`, :c:macro:`DOWNLOAD_PAUSED` or - * :c:macro:`DOWNLOAD_WAITING` will return empty array. */ virtual KeyVals getOptions() = 0; }; |
