/* */ #ifndef D_BT_RUNTIME_H #define D_BT_RUNTIME_H #include "common.h" #include "SharedHandle.h" namespace aria2 { class BtRuntime { private: uint64_t uploadLengthAtStartup_; bool halt_; unsigned int connections_; bool ready_; // Maximum number of peers to hold connections at the same time. // 0 means unlimited. unsigned 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. unsigned int minPeers_; static const unsigned int DEFAULT_MIN_PEERS = 40; public: BtRuntime(); ~BtRuntime(); uint64_t getUploadLengthAtStartup() const { return uploadLengthAtStartup_; } void setUploadLengthAtStartup(uint64_t length) { uploadLengthAtStartup_ = length; } bool isHalt() const { return halt_; } void setHalt(bool halt) { halt_ = halt; } unsigned 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(unsigned int maxPeers); unsigned int getMaxPeers() const { return maxPeers_; } static const unsigned int DEFAULT_MAX_PEERS = 55; }; typedef SharedHandle BtRuntimeHandle; } // namespace aria2 #endif // D_BT_RUNTIME_H