From e1f32b6b667143274c1d67c88c611c0ac91e7f7f Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Mon, 4 May 2009 08:11:40 +0000 Subject: [PATCH] 2009-05-04 Tatsuhiro Tsujikawa Removed directIOAllowed() from BinaryStream, DiskWriter, DiskAdaptor. setDirectIOAllowed() was renamed as allowDirectIO(). Removed _directIOAllowed member from DiskWriter. * src/AbstractDiskWriter.cc * src/AbstractDiskWriter.h * src/AbstractSingleDiskAdaptor.cc * src/AbstractSingleDiskAdaptor.h * src/BinaryStream.h * src/ByteArrayDiskWriter.h * src/DefaultPieceStorage.cc * src/DiskWriter.h * src/MultiDiskAdaptor.cc * src/MultiDiskAdaptor.h --- ChangeLog | 16 ++++++++++++++++ src/AbstractDiskWriter.cc | 1 + src/AbstractDiskWriter.h | 4 ++++ src/AbstractSingleDiskAdaptor.cc | 5 ----- src/AbstractSingleDiskAdaptor.h | 2 -- src/BinaryStream.h | 2 -- src/ByteArrayDiskWriter.h | 5 ----- src/DefaultPieceStorage.cc | 8 ++++++-- src/DiskWriter.h | 15 ++------------- src/MultiDiskAdaptor.cc | 4 +++- src/MultiDiskAdaptor.h | 9 ++------- 11 files changed, 34 insertions(+), 37 deletions(-) diff --git a/ChangeLog b/ChangeLog index fa65446b..6ddfc714 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,19 @@ +2009-05-04 Tatsuhiro Tsujikawa + + Removed directIOAllowed() from BinaryStream, DiskWriter, + DiskAdaptor. setDirectIOAllowed() was renamed as allowDirectIO(). + Removed _directIOAllowed member from DiskWriter. + * src/AbstractDiskWriter.cc + * src/AbstractDiskWriter.h + * src/AbstractSingleDiskAdaptor.cc + * src/AbstractSingleDiskAdaptor.h + * src/BinaryStream.h + * src/ByteArrayDiskWriter.h + * src/DefaultPieceStorage.cc + * src/DiskWriter.h + * src/MultiDiskAdaptor.cc + * src/MultiDiskAdaptor.h + 2009-05-04 Tatsuhiro Tsujikawa Now the constructor of AbstractDiskWriter takes filename as an diff --git a/src/AbstractDiskWriter.cc b/src/AbstractDiskWriter.cc index 224eac38..779fdd80 100644 --- a/src/AbstractDiskWriter.cc +++ b/src/AbstractDiskWriter.cc @@ -60,6 +60,7 @@ AbstractDiskWriter::AbstractDiskWriter(const std::string& filename): _filename(filename), fd(-1), _readOnly(false), + _directIOAllowed(false), logger(LogFactory::getInstance()) {} AbstractDiskWriter::~AbstractDiskWriter() diff --git a/src/AbstractDiskWriter.h b/src/AbstractDiskWriter.h index 0a55e141..4f594d38 100644 --- a/src/AbstractDiskWriter.h +++ b/src/AbstractDiskWriter.h @@ -49,6 +49,8 @@ protected: bool _readOnly; + bool _directIOAllowed; + Logger* logger; void createFile(int addFlags = 0); @@ -85,6 +87,8 @@ public: virtual void disableDirectIO(); + virtual void allowDirectIO() { _directIOAllowed = true; } + virtual void enableReadOnly(); virtual void disableReadOnly(); diff --git a/src/AbstractSingleDiskAdaptor.cc b/src/AbstractSingleDiskAdaptor.cc index 488c9fa1..698f9e3a 100644 --- a/src/AbstractSingleDiskAdaptor.cc +++ b/src/AbstractSingleDiskAdaptor.cc @@ -119,11 +119,6 @@ void AbstractSingleDiskAdaptor::disableDirectIO() diskWriter->disableDirectIO(); } -bool AbstractSingleDiskAdaptor::directIOAllowed() const -{ - return diskWriter->directIOAllowed(); -} - void AbstractSingleDiskAdaptor::enableReadOnly() { diskWriter->enableReadOnly(); diff --git a/src/AbstractSingleDiskAdaptor.h b/src/AbstractSingleDiskAdaptor.h index 5ba80f2d..9ccb2734 100644 --- a/src/AbstractSingleDiskAdaptor.h +++ b/src/AbstractSingleDiskAdaptor.h @@ -77,8 +77,6 @@ public: virtual void disableDirectIO(); - virtual bool directIOAllowed() const; - // Make sure that DiskWriter is set before calling this function. virtual void enableReadOnly(); diff --git a/src/BinaryStream.h b/src/BinaryStream.h index 38688e44..405da444 100644 --- a/src/BinaryStream.h +++ b/src/BinaryStream.h @@ -62,8 +62,6 @@ public: virtual void enableDirectIO() = 0; virtual void disableDirectIO() = 0; - - virtual bool directIOAllowed() const = 0; }; typedef SharedHandle BinaryStreamHandle; diff --git a/src/ByteArrayDiskWriter.h b/src/ByteArrayDiskWriter.h index a82423ba..b1b2388d 100644 --- a/src/ByteArrayDiskWriter.h +++ b/src/ByteArrayDiskWriter.h @@ -66,11 +66,6 @@ public: virtual void disableDirectIO() {} - virtual bool directIOAllowed() const - { - return false; - } - void setString(const std::string& s) { buf.str(s); diff --git a/src/DefaultPieceStorage.cc b/src/DefaultPieceStorage.cc index f557c3b5..08d48515 100644 --- a/src/DefaultPieceStorage.cc +++ b/src/DefaultPieceStorage.cc @@ -491,7 +491,9 @@ void DefaultPieceStorage::initStorage() DiskWriterHandle writer = _diskWriterFactory->newDiskWriter(directDiskAdaptor->getFilePath()); - writer->setDirectIOAllowed(option->getAsBool(PREF_ENABLE_DIRECT_IO)); + if(option->getAsBool(PREF_ENABLE_DIRECT_IO)) { + writer->allowDirectIO(); + } directDiskAdaptor->setDiskWriter(writer); this->diskAdaptor = directDiskAdaptor; @@ -500,7 +502,9 @@ void DefaultPieceStorage::initStorage() logger->debug("Instantiating MultiDiskAdaptor"); MultiDiskAdaptorHandle multiDiskAdaptor(new MultiDiskAdaptor()); multiDiskAdaptor->setFileEntries(downloadContext->getFileEntries()); - multiDiskAdaptor->setDirectIOAllowed(option->getAsBool(PREF_ENABLE_DIRECT_IO)); + if(option->getAsBool(PREF_ENABLE_DIRECT_IO)) { + multiDiskAdaptor->allowDirectIO(); + } multiDiskAdaptor->setPieceLength(downloadContext->getPieceLength()); multiDiskAdaptor->setMaxOpenFiles(option->getAsInt(PREF_BT_MAX_OPEN_FILES)); this->diskAdaptor = multiDiskAdaptor; diff --git a/src/DiskWriter.h b/src/DiskWriter.h index 663e3407..a0cf8417 100644 --- a/src/DiskWriter.h +++ b/src/DiskWriter.h @@ -44,11 +44,8 @@ namespace aria2 { * */ class DiskWriter:public BinaryStream { -protected: - bool _directIOAllowed; - public: - DiskWriter():_directIOAllowed(false) {} + DiskWriter() {} virtual ~DiskWriter() {} /** @@ -77,15 +74,7 @@ public: virtual void disableDirectIO() = 0; - virtual bool directIOAllowed() const - { - return _directIOAllowed; - } - - void setDirectIOAllowed(bool f) - { - _directIOAllowed = f; - } + virtual void allowDirectIO() {} // Enables read-only mode. After this call, openExistingFile() opens // file in read-only mode. This is an optional functionality. The diff --git a/src/MultiDiskAdaptor.cc b/src/MultiDiskAdaptor.cc index ac9f0b4b..b30e46dc 100644 --- a/src/MultiDiskAdaptor.cc +++ b/src/MultiDiskAdaptor.cc @@ -273,7 +273,9 @@ void MultiDiskAdaptor::resetDiskWriterEntries() logger->debug("Creating DiskWriter for filename=%s", (*i)->getFilePath().c_str()); (*i)->setDiskWriter(dwFactory.newDiskWriter((*i)->getFilePath())); - (*i)->getDiskWriter()->setDirectIOAllowed(_directIOAllowed); + if(_directIOAllowed) { + (*i)->getDiskWriter()->allowDirectIO(); + } if(_readOnly) { (*i)->getDiskWriter()->enableReadOnly(); } diff --git a/src/MultiDiskAdaptor.h b/src/MultiDiskAdaptor.h index 21fa60a6..a9e0f09f 100644 --- a/src/MultiDiskAdaptor.h +++ b/src/MultiDiskAdaptor.h @@ -165,14 +165,9 @@ public: return pieceLength; } - virtual bool directIOAllowed() const + void allowDirectIO() { - return _directIOAllowed; - } - - void setDirectIOAllowed(bool b) - { - _directIOAllowed = b; + _directIOAllowed = true; } virtual void cutTrailingGarbage();