summaryrefslogtreecommitdiff
path: root/src/AbstractCommand.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-07-17 03:23:56 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-07-17 03:23:56 +0000
commitd0b727f6dc7131ea5c478bcfdff3b0408f2b26f3 (patch)
treef501ae4dfa91fd00a28076c762dc67d4dea6cb17 /src/AbstractCommand.cc
parent036abeee1182ccac0c80351d7d7dd3cbac7ae3ac (diff)
2010-07-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Count the number of command used in HTTP(S)/FTP and the number of connections in HTTP(S)/FTP independently. The former is used to determin whether additional command is needed. The latter is used to report user to how many connections are used in a download. * src/AbstractCommand.cc * src/AbstractCommand.h * src/CreateRequestCommand.cc * src/RequestGroup.cc * src/RequestGroup.h
Diffstat (limited to 'src/AbstractCommand.cc')
-rw-r--r--src/AbstractCommand.cc16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/AbstractCommand.cc b/src/AbstractCommand.cc
index fde9c7e5..29e9beb5 100644
--- a/src/AbstractCommand.cc
+++ b/src/AbstractCommand.cc
@@ -79,18 +79,23 @@ AbstractCommand::AbstractCommand(cuid_t cuid,
const SharedHandle<FileEntry>& fileEntry,
RequestGroup* requestGroup,
DownloadEngine* e,
- const SocketHandle& s):
+ const SocketHandle& s,
+ bool incNumConnection):
Command(cuid), checkPoint_(global::wallclock),
timeout_(requestGroup->getTimeout()),
requestGroup_(requestGroup),
req_(req), fileEntry_(fileEntry), e_(e), socket_(s),
checkSocketIsReadable_(false), checkSocketIsWritable_(false),
- nameResolverCheck_(false)
+ nameResolverCheck_(false),
+ incNumConnection_(incNumConnection)
{
if(!socket_.isNull() && socket_->isOpen()) {
setReadCheckSocket(socket_);
}
- requestGroup_->increaseStreamConnection();
+ if(incNumConnection_) {
+ requestGroup->increaseStreamConnection();
+ }
+ requestGroup_->increaseStreamCommand();
requestGroup_->increaseNumCommand();
}
@@ -101,7 +106,10 @@ AbstractCommand::~AbstractCommand() {
disableNameResolverCheck(asyncNameResolver_);
#endif // ENABLE_ASYNC_DNS
requestGroup_->decreaseNumCommand();
- requestGroup_->decreaseStreamConnection();
+ requestGroup_->decreaseStreamCommand();
+ if(incNumConnection_) {
+ requestGroup_->decreaseStreamConnection();
+ }
}
bool AbstractCommand::execute() {