/* */ #ifndef _D_PEER_CHOKE_COMMAND_H_ #define _D_PEER_CHOKE_COMMAND_H_ #include "Command.h" #include "BtContextAwareCommand.h" #include "RequestGroupAware.h" #include "TimeA2.h" namespace aria2 { class DownloadEngine; class Peer; class PeerChokeCommand : public Command, public BtContextAwareCommand, public RequestGroupAware { private: int32_t interval; DownloadEngine* e; int32_t rotate; Time checkPoint; void orderByUploadRate(std::deque >& peers) const; void orderByDownloadRate(std::deque >& peers) const; void optUnchokingPeer(std::deque >& peers) const; public: PeerChokeCommand(int32_t cuid, RequestGroup* requestGroup, DownloadEngine* e, const SharedHandle& btContext, int32_t interval); virtual ~PeerChokeCommand(); virtual bool execute(); }; } // namespace aria2 #endif // _D_PEER_CHOKE_COMMAND_H_