From ccdd5b31a3dfa07cd13d6f7f0f5eaa3d8ff8a61e Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Thu, 31 May 2007 15:56:20 +0000 Subject: 2007-06-01 Tatsuhiro Tsujikawa * src/FileAllocationCommand.cc: Derived from RealtimeCommand. * src/CheckIntegrityCommand.cc: Derived from RealtimeCommand. * src/MetalinkEntry.h (checksum): Changed to ChecksumHandle * src/MetalinkRequestInfo.cc (checksum): Changed to ChecksumHandle * src/File.cc (mkdirs): OPEN_MODE -> DIR_OPEN_MODE * src/common.h (DIR_OPEN_MODE): New definition * src/RequestGroup.cc (prepareForNextAction): Added an argument. * src/message.h (MSG_GOOD_CHECKSUM): New definition (MSG_BAD_CHECKSUM): New definition * src/HttpResponseCommand.cc (handleDefaultEncoding): Continue download sequence in new non-segmented download. * src/FileAllocationEntry.h (_nextDownloadCommand): New variable. * src/DownloadCommand.cc (prepareForNextSegment): Create ChecksumCommand if checksum is available. * src/RealtimeCommand.h, src/RealtimeCommand.cc: New class. * src/IteratableChecksumValidator.h, src/IteratableChecksumValidator.cc: New class. * src/ChecksumCommand.h, src/ChecksumCommand.cc: New class. --- src/CheckIntegrityCommand.h | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) (limited to 'src/CheckIntegrityCommand.h') diff --git a/src/CheckIntegrityCommand.h b/src/CheckIntegrityCommand.h index 88f19eb6..414b70da 100644 --- a/src/CheckIntegrityCommand.h +++ b/src/CheckIntegrityCommand.h @@ -35,25 +35,22 @@ #ifndef _D_CHECK_INTEGRITY_COMMAND_H_ #define _D_CHECK_INTEGRITY_COMMAND_H_ -#include "Command.h" +#include "RealtimeCommand.h" #include "Request.h" -#include "RequestGroup.h" -#include "DownloadEngine.h" #include "IteratableChunkChecksumValidator.h" +#include "DownloadCommand.h" -class CheckIntegrityCommand : public Command { +class CheckIntegrityCommand : public RealtimeCommand { private: RequestHandle _req; - RequestGroup* _requestGroup; - DownloadEngine* _e; IteratableChunkChecksumValidatorHandle _validator; + DownloadCommand* _nextDownloadCommand; public: CheckIntegrityCommand(int cuid, const RequestHandle& req, RequestGroup* requestGroup, DownloadEngine* e): - Command(cuid), + RealtimeCommand(cuid, requestGroup, e), _req(req), - _requestGroup(requestGroup), - _e(e), - _validator(0) + _validator(0), + _nextDownloadCommand(0) { ++_requestGroup->numConnection; } @@ -61,11 +58,19 @@ public: virtual ~CheckIntegrityCommand() { --_requestGroup->numConnection; + delete _nextDownloadCommand; } void initValidator(); - virtual bool execute(); + virtual bool executeInternal(); + + virtual bool handleException(Exception* e); + + void setNextDownloadCommand(DownloadCommand* command) + { + _nextDownloadCommand = command; + } }; #endif // _D_CHECK_INTEGRITY_COMMAND_H_ -- cgit