summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-05-27 21:45:33 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-05-27 21:45:33 +0900
commite4bf9b9cc584d5e0da573a142d00ce63f8d3eff9 (patch)
tree1aaa870a3c112018ae30541424c1ec57ea87d04a /src
parentdc8ed34cb014a0bdf22168fc73563086c8d8d1f2 (diff)
Implement DownloadResultDH::getOption()/getOptions()
Diffstat (limited to 'src')
-rw-r--r--src/aria2api.cc39
-rw-r--r--src/includes/aria2/aria2.h4
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;
};