mirror of https://github.com/aria2/aria2
Added aria2.removeDownloadResult XML-RPC method.
The method signature is aria2.removeDownloadResult(gid). This method removes completed/error/removed download denoted by gid from memory. This method returns "OK" for success.pull/1/head
parent
1ea01e84b2
commit
fe40876546
|
@ -2425,6 +2425,29 @@ Description
|
||||||
This method purges completed/error/removed downloads to free memory.
|
This method purges completed/error/removed downloads to free memory.
|
||||||
This method returns "OK".
|
This method returns "OK".
|
||||||
|
|
||||||
|
[[aria2_xmlrpc_aria2_removeDownloadResult]]
|
||||||
|
*aria2.removeDownloadResult* ('gid')
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Description
|
||||||
|
+++++++++++
|
||||||
|
|
||||||
|
This method removes completed/error/removed download denoted by 'gid'
|
||||||
|
from memory. This method returns "OK" for success.
|
||||||
|
|
||||||
|
Example
|
||||||
|
+++++++
|
||||||
|
|
||||||
|
The following example removes the download result of the download
|
||||||
|
whose GID is "1".
|
||||||
|
|
||||||
|
--------------------------------------------------------------------
|
||||||
|
>>> import xmlrpclib
|
||||||
|
>>> s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
|
||||||
|
>>> s.aria2.removeDownloadResult('1')
|
||||||
|
'OK'
|
||||||
|
--------------------------------------------------------------------
|
||||||
|
|
||||||
[[aria2_xmlrpc_aria2_getVersion]]
|
[[aria2_xmlrpc_aria2_getVersion]]
|
||||||
*aria2.getVersion* ()
|
*aria2.getVersion* ()
|
||||||
^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
|
@ -245,6 +245,7 @@ Usage: #{program_name} addUri URI... [options]
|
||||||
#{program_name} getUris GID [options]
|
#{program_name} getUris GID [options]
|
||||||
#{program_name} getPeers GID [options]
|
#{program_name} getPeers GID [options]
|
||||||
#{program_name} purgeDownloadResult [options]
|
#{program_name} purgeDownloadResult [options]
|
||||||
|
#{program_name} removeDownloadResult GID [options]
|
||||||
#{program_name} changeOption GID [options]
|
#{program_name} changeOption GID [options]
|
||||||
#{program_name} changeGlobalOption [options]
|
#{program_name} changeGlobalOption [options]
|
||||||
#{program_name} getVersion [options]
|
#{program_name} getVersion [options]
|
||||||
|
@ -338,6 +339,8 @@ elsif command == "getPeers" then
|
||||||
result=client.call("aria2."+command, resources[0])
|
result=client.call("aria2."+command, resources[0])
|
||||||
elsif command == "purgeDownloadResult" then
|
elsif command == "purgeDownloadResult" then
|
||||||
result=client.call("aria2."+command)
|
result=client.call("aria2."+command)
|
||||||
|
elsif command == "removeDownloadResult" then
|
||||||
|
result=client.call("aria2."+command, resources[0])
|
||||||
elsif command == "changeOption" then
|
elsif command == "changeOption" then
|
||||||
result=client.call("aria2."+command, resources[0], options)
|
result=client.call("aria2."+command, resources[0], options)
|
||||||
elsif command == "changeGlobalOption" then
|
elsif command == "changeGlobalOption" then
|
||||||
|
|
|
@ -748,6 +748,18 @@ RequestGroupMan::findDownloadResult(gid_t gid) const
|
||||||
return SharedHandle<DownloadResult>();
|
return SharedHandle<DownloadResult>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool RequestGroupMan::removeDownloadResult(gid_t gid)
|
||||||
|
{
|
||||||
|
for(std::deque<SharedHandle<DownloadResult> >::iterator i =
|
||||||
|
downloadResults_.begin(), eoi = downloadResults_.end(); i != eoi; ++i) {
|
||||||
|
if((*i)->gid == gid) {
|
||||||
|
downloadResults_.erase(i);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void RequestGroupMan::addDownloadResult(const SharedHandle<DownloadResult>& dr)
|
void RequestGroupMan::addDownloadResult(const SharedHandle<DownloadResult>& dr)
|
||||||
{
|
{
|
||||||
if(maxDownloadResult_ == 0) {
|
if(maxDownloadResult_ == 0) {
|
||||||
|
|
|
@ -214,6 +214,10 @@ public:
|
||||||
// Removes all download results.
|
// Removes all download results.
|
||||||
void purgeDownloadResult();
|
void purgeDownloadResult();
|
||||||
|
|
||||||
|
// Removes download result of given gid. Returns true if download
|
||||||
|
// result was removed. Otherwise returns false.
|
||||||
|
bool removeDownloadResult(gid_t gid);
|
||||||
|
|
||||||
void addDownloadResult(const SharedHandle<DownloadResult>& downloadResult);
|
void addDownloadResult(const SharedHandle<DownloadResult>& downloadResult);
|
||||||
|
|
||||||
SharedHandle<ServerStat> findServerStat(const std::string& hostname,
|
SharedHandle<ServerStat> findServerStat(const std::string& hostname,
|
||||||
|
|
|
@ -105,6 +105,8 @@ XmlRpcMethodFactory::create(const std::string& methodName)
|
||||||
return SharedHandle<XmlRpcMethod>(new ChangeGlobalOptionXmlRpcMethod());
|
return SharedHandle<XmlRpcMethod>(new ChangeGlobalOptionXmlRpcMethod());
|
||||||
} else if(methodName == PurgeDownloadResultXmlRpcMethod::getMethodName()) {
|
} else if(methodName == PurgeDownloadResultXmlRpcMethod::getMethodName()) {
|
||||||
return SharedHandle<XmlRpcMethod>(new PurgeDownloadResultXmlRpcMethod());
|
return SharedHandle<XmlRpcMethod>(new PurgeDownloadResultXmlRpcMethod());
|
||||||
|
} else if(methodName == RemoveDownloadResultXmlRpcMethod::getMethodName()) {
|
||||||
|
return SharedHandle<XmlRpcMethod>(new RemoveDownloadResultXmlRpcMethod());
|
||||||
} else if(methodName == GetVersionXmlRpcMethod::getMethodName()) {
|
} else if(methodName == GetVersionXmlRpcMethod::getMethodName()) {
|
||||||
return SharedHandle<XmlRpcMethod>(new GetVersionXmlRpcMethod());
|
return SharedHandle<XmlRpcMethod>(new GetVersionXmlRpcMethod());
|
||||||
} else if(methodName == GetSessionInfoXmlRpcMethod::getMethodName()) {
|
} else if(methodName == GetSessionInfoXmlRpcMethod::getMethodName()) {
|
||||||
|
|
|
@ -986,6 +986,18 @@ SharedHandle<ValueBase> PurgeDownloadResultXmlRpcMethod::process
|
||||||
return VLB_OK;
|
return VLB_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SharedHandle<ValueBase> RemoveDownloadResultXmlRpcMethod::process
|
||||||
|
(const XmlRpcRequest& req, DownloadEngine* e)
|
||||||
|
{
|
||||||
|
gid_t gid = getRequiredGidParam(req, 0);
|
||||||
|
if(!e->getRequestGroupMan()->removeDownloadResult(gid)) {
|
||||||
|
throw DL_ABORT_EX
|
||||||
|
(fmt("Could not remove download result of GID#%s",
|
||||||
|
util::itos(gid).c_str()));
|
||||||
|
}
|
||||||
|
return VLB_OK;
|
||||||
|
}
|
||||||
|
|
||||||
SharedHandle<ValueBase> ChangeOptionXmlRpcMethod::process
|
SharedHandle<ValueBase> ChangeOptionXmlRpcMethod::process
|
||||||
(const XmlRpcRequest& req, DownloadEngine* e)
|
(const XmlRpcRequest& req, DownloadEngine* e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -216,6 +216,18 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class RemoveDownloadResultXmlRpcMethod:public XmlRpcMethod {
|
||||||
|
protected:
|
||||||
|
virtual SharedHandle<ValueBase> process
|
||||||
|
(const XmlRpcRequest& req, DownloadEngine* e);
|
||||||
|
public:
|
||||||
|
static const std::string& getMethodName()
|
||||||
|
{
|
||||||
|
static std::string methodName = "aria2.removeDownloadResult";
|
||||||
|
return methodName;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
class GetUrisXmlRpcMethod:public XmlRpcMethod {
|
class GetUrisXmlRpcMethod:public XmlRpcMethod {
|
||||||
protected:
|
protected:
|
||||||
virtual SharedHandle<ValueBase> process
|
virtual SharedHandle<ValueBase> process
|
||||||
|
|
Loading…
Reference in New Issue