summaryrefslogtreecommitdiff
path: root/src/CheckIntegrityCommand.h
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2007-05-31 15:56:20 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2007-05-31 15:56:20 +0000
commitccdd5b31a3dfa07cd13d6f7f0f5eaa3d8ff8a61e (patch)
tree4513f2373675d69e97170388b93a455cbb53b333 /src/CheckIntegrityCommand.h
parent8eeeac71928919fa5e4fb0c1c389fa229637bea3 (diff)
2007-06-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* 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.
Diffstat (limited to 'src/CheckIntegrityCommand.h')
-rw-r--r--src/CheckIntegrityCommand.h27
1 files changed, 16 insertions, 11 deletions
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_