summaryrefslogtreecommitdiff
path: root/src/aria2api.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-05-01 21:28:04 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-05-01 21:28:04 +0900
commit24a6896bf44dcda62c9bbf0b41eb61b178ba6954 (patch)
tree22a7cebb815ccaa3bb6e27834d20681cc462835c /src/aria2api.cc
parenta456d83de00340f6777defa369ddc261fc5a308b (diff)
Add sessionConfigSetKeepRunning and shutdown API function
Setting sessionConfigSetKeepRunning to true makes aria2 core keep running even if there is no download to perform, just like --enable-rpc option.
Diffstat (limited to 'src/aria2api.cc')
-rw-r--r--src/aria2api.cc19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/aria2api.cc b/src/aria2api.cc
index 9f46e957..72352266 100644
--- a/src/aria2api.cc
+++ b/src/aria2api.cc
@@ -106,6 +106,13 @@ int sessionFinal(Session* session)
return rv;
}
+int sessionConfigSetKeepRunning(Session* session, bool flag)
+{
+ session->context->reqinfo->getDownloadEngine()->getRequestGroupMan()
+ ->setKeepRunning(flag);
+ return 0;
+}
+
int run(Session* session, RUN_MODE mode)
{
const SharedHandle<DownloadEngine>& e =
@@ -113,6 +120,18 @@ int run(Session* session, RUN_MODE mode)
return e->run(mode == RUN_ONCE);
}
+int shutdown(Session* session, bool force)
+{
+ const SharedHandle<DownloadEngine>& e =
+ session->context->reqinfo->getDownloadEngine();
+ if(force) {
+ e->requestForceHalt();
+ } else {
+ e->requestHalt();
+ }
+ return 0;
+}
+
std::string gidToHex(const A2Gid& gid)
{
return GroupId::toHex(gid);