/* */ #ifndef _D_GROW_SEGMENT_H_ #define _D_GROW_SEGMENT_H_ #include "Segment.h" namespace aria2 { class GrowSegment:public Segment { private: SharedHandle _piece; size_t _writtenLength; public: GrowSegment(const SharedHandle& piece); virtual ~GrowSegment(); virtual bool complete() const { return false; } virtual size_t getIndex() const { return 0; } virtual off_t getPosition() const { return 0; } virtual off_t getPositionToWrite() const { return _writtenLength; } virtual size_t getLength() const { return 0; } virtual size_t getSegmentLength() const { return 0; } virtual size_t getWrittenLength() const { return _writtenLength; } virtual size_t getOverflowLength() const { return 0; } virtual void updateWrittenLength(size_t bytes); #ifdef ENABLE_MESSAGE_DIGEST virtual bool updateHash(size_t begin, const unsigned char* data, size_t dataLength) { return false; } virtual bool isHashCalculated() const { return false; } virtual std::string getHashString(); #endif // ENABLE_MESSAGE_DIGEST virtual void clear(); virtual SharedHandle getPiece() const; }; typedef SharedHandle GrowSegmentHandle; } // namespace aria2 #endif // _D_GROW_SEGMENT_H_