summaryrefslogtreecommitdiff
path: root/src/Command.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2007-03-16 14:21:29 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2007-03-16 14:21:29 +0000
commit113c8fac7f175db8a415c368ceefd62428d45967 (patch)
tree84b4f1b4d30f25e31d055397462f4293f316a825 /src/Command.cc
parent11907c175d9e3e6f4069df79dade320b6f93cd7f (diff)
2007-03-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
To reduce overhead to find commands whose socket is either readable or writable in the download engine loop: * src/Command.h, src/Command.cc (STATUS): New enum. (status): New variable. (statusMatch): New function. (setStatusActive): New function. (setStatusInactive): New function. * src/DownloadEngine.h, src/DownloadEngine.cc (executeCommand): New function. (run): Simplified. (waitData): Call Command::setStatusActive() when command's socket is readable or writable.
Diffstat (limited to 'src/Command.cc')
-rw-r--r--src/Command.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/Command.cc b/src/Command.cc
index 7f701883..de53c59a 100644
--- a/src/Command.cc
+++ b/src/Command.cc
@@ -35,3 +35,14 @@
#include "Command.h"
int Command::uuidGen = 0;
+
+bool Command::statusMatch(Command::STATUS statusFilter) const
+{
+ if(statusFilter == STATUS_ALL) {
+ return true;
+ } else if(statusFilter == status) {
+ return true;
+ } else {
+ return false;
+ }
+}