/* */ #ifndef _D_REQUEST_SLOT_H_ #define _D_REQUEST_SLOT_H_ #include "common.h" #include "TimeA2.h" #include namespace aria2 { class RequestSlot { private: Time dispatchedTime; size_t index; uint32_t begin; size_t length; size_t blockIndex; void copy(const RequestSlot& requestSlot); public: RequestSlot(size_t index, uint32_t begin, size_t length, size_t blockIndex); RequestSlot(const RequestSlot& requestSlot); ~RequestSlot() {} RequestSlot& operator=(const RequestSlot& requestSlot); bool operator==(const RequestSlot& requestSlot) const; bool operator!=(const RequestSlot& requestSlot) const; bool operator<(const RequestSlot& requestSlot) const; void setDispatchedTime(); void setDispatchedTime(time_t secFromEpoch); bool isTimeout(time_t timeoutSec) const; unsigned int getLatencyInMillis() const; size_t getIndex() const { return index; } void setIndex(size_t index) { this->index = index; } uint32_t getBegin() const { return begin; } void setBegin(uint32_t begin) { this->begin = begin; } size_t getLength() const { return length; } void setLength(size_t length) { this->length = length; } size_t getBlockIndex() const { return blockIndex; } void setBlockIndex(size_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_