/* */ #ifndef _D_REQUEST_SLOT_H_ #define _D_REQUEST_SLOT_H_ #include "common.h" #include "TimeA2.h" #include namespace aria2 { class RequestSlot { private: Time dispatchedTime; int32_t index; int32_t begin; int32_t length; int32_t blockIndex; void copy(const RequestSlot& requestSlot); public: RequestSlot(int32_t index, int32_t begin, int32_t length, int32_t blockIndex); RequestSlot(const RequestSlot& requestSlot); ~RequestSlot() {} RequestSlot& operator=(const RequestSlot& requestSlot); bool operator==(const RequestSlot& requestSlot) const; void setDispatchedTime(); void setDispatchedTime(time_t secFromEpoch); bool isTimeout(time_t timeoutSec) const; int32_t getLatencyInMillis() const; int32_t getIndex() const { return index; } void setIndex(int32_t index) { this->index = index; } int32_t getBegin() const { return begin; } void setBegin(int32_t begin) { this->begin = begin; } int32_t getLength() const { return length; } void setLength(int32_t length) { this->length = length; } int32_t getBlockIndex() const { return blockIndex; } void setBlockIndex(int32_t blockIndex) { this->blockIndex = blockIndex; } static RequestSlot nullSlot; static bool isNull(const RequestSlot& requestSlot); }; typedef std::deque RequestSlots; } // namespace aria2 #endif // _D_REQUEST_SLOT_H_