/* */ #ifndef _D_RANGE_H_ #define _D_RANGE_H_ #include "common.h" #include "SharedHandle.h" namespace aria2 { class Range { private: off_t startByte_; off_t endByte_; uint64_t entityLength_; public: Range():startByte_(0), endByte_(0), entityLength_(0) {} Range(off_t startByte, off_t endByte, uint64_t entityLength): startByte_(startByte), endByte_(endByte), entityLength_(entityLength) {} bool operator==(const Range& range) const { return startByte_ == range.startByte_ && endByte_ == range.endByte_ && entityLength_ == range.entityLength_; } bool operator!=(const Range& range) const { return !(*this == range); } off_t getStartByte() const { return startByte_; } off_t getEndByte() const { return endByte_; } uint64_t getEntityLength() const { return entityLength_; } uint64_t getContentLength() const { if(endByte_ >= startByte_) { return endByte_-startByte_+1; } else { return 0; } } }; typedef SharedHandle RangeHandle; } // namespace aria2 #endif // _D_RANGE_H_