diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2006-08-14 13:48:31 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2006-08-14 13:48:31 +0000 |
| commit | 2f14fec78dfc96b88a905621d35f1d726df0791d (patch) | |
| tree | 8eb4dc9cf94f021ccbdf77dca88924c2c9bf4cea /src/DownloadEngine.h | |
| parent | 43dae4fd916bb35bf7fd8554fc86ce34c3e7a31b (diff) | |
| parent | 7ca1b43eddd1aba1c71a38dfb46b5ac5685b43d0 (diff) | |
Tagging 0.7.0 release of aria2release-0.7.0
Diffstat (limited to 'src/DownloadEngine.h')
| -rw-r--r-- | src/DownloadEngine.h | 55 |
1 files changed, 30 insertions, 25 deletions
diff --git a/src/DownloadEngine.h b/src/DownloadEngine.h index d2dd0521..aa118ac7 100644 --- a/src/DownloadEngine.h +++ b/src/DownloadEngine.h @@ -32,22 +32,44 @@ typedef deque<SocketHandle> Sockets; typedef deque<Command*> Commands; typedef deque<CommandUuid> CommandUuids; -typedef multimap<SocketHandle, int> SockCmdMap; + +class SocketEntry { +public: + enum TYPE { + TYPE_RD, + TYPE_WR, + }; + + SocketHandle socket; + CommandUuid commandUuid; + TYPE type; +public: + SocketEntry(const SocketHandle& socket, + const CommandUuid& commandUuid, + TYPE type): + socket(socket), commandUuid(commandUuid), type(type) {} + ~SocketEntry() {} + + bool operator==(const SocketEntry& entry) { + return socket == entry.socket && + commandUuid == entry.commandUuid && + type == entry.type; + } +}; + +typedef deque<SocketEntry> SocketEntries; class DownloadEngine { private: - void waitData(CommandUuids& activeCommandUuids); - SockCmdMap rsockmap; - SockCmdMap wsockmap; + void waitData(CommandUuids& activeUuids); + SocketEntries socketEntries; fd_set rfdset; fd_set wfdset; int fdmax; void shortSleep() const; - bool addSocket(SockCmdMap& sockmap, const SocketHandle& socket, - const CommandUuid& commandUuid); - bool deleteSocket(SockCmdMap& sockmap, const SocketHandle& socket, - const CommandUuid& commandUuid); + bool addSocket(const SocketEntry& socketEntry); + bool deleteSocket(const SocketEntry& socketEntry); protected: const Logger* logger; virtual void initStatistics() = 0; @@ -80,22 +102,5 @@ public: }; -template<class T1, class T2> -class PairFind { -private: - T1 first; - T2 second; -public: - PairFind(T1 t1, T2 t2):first(t1), second(t2) {} - - bool operator()(const pair<T1, T2>& pa) { - if(pa.first == first && pa.second == second) { - return true; - } else { - return false; - } - } -}; - #endif // _D_DOWNLOAD_ENGINE_H_ |
