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 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.getVersion* ()
 | 
			
		||||
^^^^^^^^^^^^^^^^^^^^^
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -245,6 +245,7 @@ Usage: #{program_name} addUri URI... [options]
 | 
			
		|||
       #{program_name} getUris    GID [options]
 | 
			
		||||
       #{program_name} getPeers   GID [options]
 | 
			
		||||
       #{program_name} purgeDownloadResult [options]
 | 
			
		||||
       #{program_name} removeDownloadResult GID [options]
 | 
			
		||||
       #{program_name} changeOption GID [options]
 | 
			
		||||
       #{program_name} changeGlobalOption [options]
 | 
			
		||||
       #{program_name} getVersion [options]
 | 
			
		||||
| 
						 | 
				
			
			@ -338,6 +339,8 @@ elsif command == "getPeers" then
 | 
			
		|||
  result=client.call("aria2."+command, resources[0])
 | 
			
		||||
elsif command == "purgeDownloadResult" then
 | 
			
		||||
  result=client.call("aria2."+command)
 | 
			
		||||
elsif command == "removeDownloadResult" then
 | 
			
		||||
  result=client.call("aria2."+command, resources[0])
 | 
			
		||||
elsif command == "changeOption" then
 | 
			
		||||
  result=client.call("aria2."+command, resources[0], options)
 | 
			
		||||
elsif command == "changeGlobalOption" then
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -748,6 +748,18 @@ RequestGroupMan::findDownloadResult(gid_t gid) const
 | 
			
		|||
  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)
 | 
			
		||||
{
 | 
			
		||||
  if(maxDownloadResult_ == 0) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -214,6 +214,10 @@ public:
 | 
			
		|||
  // Removes all download results.
 | 
			
		||||
  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);
 | 
			
		||||
 | 
			
		||||
  SharedHandle<ServerStat> findServerStat(const std::string& hostname,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -105,6 +105,8 @@ XmlRpcMethodFactory::create(const std::string& methodName)
 | 
			
		|||
    return SharedHandle<XmlRpcMethod>(new ChangeGlobalOptionXmlRpcMethod());
 | 
			
		||||
  } else if(methodName == PurgeDownloadResultXmlRpcMethod::getMethodName()) {
 | 
			
		||||
    return SharedHandle<XmlRpcMethod>(new PurgeDownloadResultXmlRpcMethod());
 | 
			
		||||
  } else if(methodName == RemoveDownloadResultXmlRpcMethod::getMethodName()) {
 | 
			
		||||
    return SharedHandle<XmlRpcMethod>(new RemoveDownloadResultXmlRpcMethod());
 | 
			
		||||
  } else if(methodName == GetVersionXmlRpcMethod::getMethodName()) {
 | 
			
		||||
    return SharedHandle<XmlRpcMethod>(new GetVersionXmlRpcMethod());
 | 
			
		||||
  } else if(methodName == GetSessionInfoXmlRpcMethod::getMethodName()) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -986,6 +986,18 @@ SharedHandle<ValueBase> PurgeDownloadResultXmlRpcMethod::process
 | 
			
		|||
  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
 | 
			
		||||
(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 {
 | 
			
		||||
protected:
 | 
			
		||||
  virtual SharedHandle<ValueBase> process
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue