From b75dbc4bbe73133b18c3b2d64f457d8d0bd50d35 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Wed, 5 Dec 2007 13:41:56 +0000 Subject: 2007-12-05 Tatsuhiro Tsujikawa Enable direct I/O support in checksum checking. * src/IteratableChunkChecksumValidator.{h, cc} * test/IteratableChunkChecksumValidatorTest.cc * src/CheckIntegrityEntry.cc * src/PieceHashCheckIntegrityEntry.cc * src/IteratableChecksumValidator.{h, cc} * src/BtCheckIntegrityEntry.cc: Added doc. --- src/CheckIntegrityEntry.cc | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'src/CheckIntegrityEntry.cc') diff --git a/src/CheckIntegrityEntry.cc b/src/CheckIntegrityEntry.cc index 43f5a6a1..f05ba3d1 100644 --- a/src/CheckIntegrityEntry.cc +++ b/src/CheckIntegrityEntry.cc @@ -36,14 +36,27 @@ #include "Command.h" #include "RequestGroup.h" #include "IteratableValidator.h" +#include "prefs.h" +#include "PieceStorage.h" +#include "DownloadContext.h" +#include "DiskAdaptor.h" +#include "Option.h" CheckIntegrityEntry::CheckIntegrityEntry(RequestGroup* requestGroup, Command* nextCommand): RequestGroupEntry(requestGroup, nextCommand), _validator(0) -{} +{ + if(_requestGroup->getOption()->getAsBool(PREF_ENABLE_DIRECT_IO) && + _requestGroup->getDownloadContext()->getFileEntries().size() == 1) { + _requestGroup->getPieceStorage()->getDiskAdaptor()->enableDirectIO(); + } +} -CheckIntegrityEntry::~CheckIntegrityEntry() {} +CheckIntegrityEntry::~CheckIntegrityEntry() +{ + // TODO DiskAdaptor::disableIO() will be called from ~FileAllocationEntry +} void CheckIntegrityEntry::validateChunk() { -- cgit