mirror of https://github.com/aria2/aria2
Added aria2.getGlobalStat RPC method.
It returns overall download/upload speed and the number of active/stopped/waiting downloads.pull/1/head
parent
bb7e2e69db
commit
cc7bc0aad3
|
@ -255,6 +255,7 @@ Usage: #{program_name} addUri URI... [options]
|
||||||
#{program_name} getSessionInfo [options]
|
#{program_name} getSessionInfo [options]
|
||||||
#{program_name} shutdown [options]
|
#{program_name} shutdown [options]
|
||||||
#{program_name} forceShutdown [options]
|
#{program_name} forceShutdown [options]
|
||||||
|
#{program_name} getGlobalStat [options]
|
||||||
Options:
|
Options:
|
||||||
EOS
|
EOS
|
||||||
|
|
||||||
|
@ -356,6 +357,8 @@ elsif command == "shutdown" then
|
||||||
result=client.call("aria2."+command)
|
result=client.call("aria2."+command)
|
||||||
elsif command == "forceShutdown" then
|
elsif command == "forceShutdown" then
|
||||||
result=client.call("aria2."+command)
|
result=client.call("aria2."+command)
|
||||||
|
elsif command == "getGlobalStat" then
|
||||||
|
result=client.call("aria2."+command)
|
||||||
else
|
else
|
||||||
puts "Command not recognized"
|
puts "Command not recognized"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
|
@ -124,6 +124,8 @@ createMethod(const std::string& methodName)
|
||||||
return SharedHandle<RpcMethod>(new ShutdownRpcMethod());
|
return SharedHandle<RpcMethod>(new ShutdownRpcMethod());
|
||||||
} else if(methodName == ForceShutdownRpcMethod::getMethodName()) {
|
} else if(methodName == ForceShutdownRpcMethod::getMethodName()) {
|
||||||
return SharedHandle<RpcMethod>(new ForceShutdownRpcMethod());
|
return SharedHandle<RpcMethod>(new ForceShutdownRpcMethod());
|
||||||
|
} else if(methodName == GetGlobalStatRpcMethod::getMethodName()) {
|
||||||
|
return SharedHandle<RpcMethod>(new GetGlobalStatRpcMethod());
|
||||||
} else if(methodName == SystemMulticallRpcMethod::getMethodName()) {
|
} else if(methodName == SystemMulticallRpcMethod::getMethodName()) {
|
||||||
return SharedHandle<RpcMethod>(new SystemMulticallRpcMethod());
|
return SharedHandle<RpcMethod>(new SystemMulticallRpcMethod());
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -138,6 +138,9 @@ const std::string KEY_COMMENT = "comment";
|
||||||
const std::string KEY_CREATION_DATE = "creationDate";
|
const std::string KEY_CREATION_DATE = "creationDate";
|
||||||
const std::string KEY_MODE = "mode";
|
const std::string KEY_MODE = "mode";
|
||||||
const std::string KEY_SERVERS = "servers";
|
const std::string KEY_SERVERS = "servers";
|
||||||
|
const std::string KEY_NUM_WAITING = "numWaiting";
|
||||||
|
const std::string KEY_NUM_STOPPED = "numStopped";
|
||||||
|
const std::string KEY_NUM_ACTIVE = "numActive";
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
@ -1363,6 +1366,20 @@ SharedHandle<ValueBase> ForceShutdownRpcMethod::process
|
||||||
return goingShutdown(req, e, true);
|
return goingShutdown(req, e, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SharedHandle<ValueBase> GetGlobalStatRpcMethod::process
|
||||||
|
(const RpcRequest& req, DownloadEngine* e)
|
||||||
|
{
|
||||||
|
const SharedHandle<RequestGroupMan>& rgman = e->getRequestGroupMan();
|
||||||
|
TransferStat ts = rgman->calculateStat();
|
||||||
|
SharedHandle<Dict> res = Dict::g();
|
||||||
|
res->put(KEY_DOWNLOAD_SPEED, util::uitos(ts.downloadSpeed));
|
||||||
|
res->put(KEY_UPLOAD_SPEED, util::uitos(ts.uploadSpeed));
|
||||||
|
res->put(KEY_NUM_WAITING, util::uitos(rgman->getReservedGroups().size()));
|
||||||
|
res->put(KEY_NUM_STOPPED, util::uitos(rgman->getDownloadResults().size()));
|
||||||
|
res->put(KEY_NUM_ACTIVE, util::uitos(rgman->getRequestGroups().size()));
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
SharedHandle<ValueBase> SystemMulticallRpcMethod::process
|
SharedHandle<ValueBase> SystemMulticallRpcMethod::process
|
||||||
(const RpcRequest& req, DownloadEngine* e)
|
(const RpcRequest& req, DownloadEngine* e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -530,6 +530,18 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class GetGlobalStatRpcMethod:public RpcMethod {
|
||||||
|
protected:
|
||||||
|
virtual SharedHandle<ValueBase> process
|
||||||
|
(const RpcRequest& req, DownloadEngine* e);
|
||||||
|
public:
|
||||||
|
static const std::string& getMethodName()
|
||||||
|
{
|
||||||
|
static std::string methodName = "aria2.getGlobalStat";
|
||||||
|
return methodName;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
class ForceShutdownRpcMethod:public RpcMethod {
|
class ForceShutdownRpcMethod:public RpcMethod {
|
||||||
protected:
|
protected:
|
||||||
virtual SharedHandle<ValueBase> process
|
virtual SharedHandle<ValueBase> process
|
||||||
|
|
Loading…
Reference in New Issue