/* */ #ifndef _D_SEGMENT_H_ #define _D_SEGMENT_H_ #include "common.h" #include using namespace std; class Segment { public: int index; int length; int segmentLength; int writtenLength; Segment(int index, int length, int segmentLength, int writtenLength = 0) :index(index), length(length), segmentLength(segmentLength), writtenLength(writtenLength) {} Segment():index(-1), length(0), segmentLength(0), writtenLength(0) {} bool complete() const { return length <= writtenLength; } bool isNull() const { return index == -1; } long long int getPosition() const { return ((long long int)index)*segmentLength; } bool operator==(const Segment& segment) const { return index == segment.index && length == segment.length && segmentLength == segment.segmentLength && writtenLength == segment.writtenLength; } bool operator!=(const Segment& segment) const { return !(*this == segment); } friend ostream& operator<<(ostream& o, const Segment& segment); }; ostream& operator<<(ostream& o, const Segment& segment); #endif // _D_SEGMENT_H_