/* */ #ifndef D_BT_RUNTIME_H #define D_BT_RUNTIME_H #include "common.h" namespace aria2 { class BtRuntime { private: int64_t uploadLengthAtStartup_; bool halt_; int connections_; bool ready_; // Maximum number of peers to hold connections at the same time. // 0 means unlimited. int maxPeers_; // Minimum number of peers. This value is used for getting more peers from // tracker. 0 means always the number of peers is under minimum. int minPeers_; public: BtRuntime(); ~BtRuntime(); int64_t getUploadLengthAtStartup() const { return uploadLengthAtStartup_; } void setUploadLengthAtStartup(int64_t length) { uploadLengthAtStartup_ = length; } bool isHalt() const { return halt_; } void setHalt(bool halt) { halt_ = halt; } int getConnections() const { return connections_; } void increaseConnections() { ++connections_; } void decreaseConnections() { --connections_; } bool lessThanMaxPeers() const { return maxPeers_ == 0 || connections_ < maxPeers_; } bool lessThanMinPeers() const { return minPeers_ == 0 || connections_ < minPeers_; } bool lessThanEqMinPeers() const { return minPeers_ == 0 || connections_ <= minPeers_; } bool ready() { return ready_; } void setReady(bool go) { ready_ = go; } void setMaxPeers(int maxPeers); int getMaxPeers() const { return maxPeers_; } static const int DEFAULT_MAX_PEERS = 55; static const int DEFAULT_MIN_PEERS = 40; }; } // namespace aria2 #endif // D_BT_RUNTIME_H