瀏覽代碼

2009-05-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

	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
Tatsuhiro Tsujikawa 16 年之前
父節點
當前提交
e1f32b6b66

+ 16 - 0
ChangeLog

@@ -1,3 +1,19 @@
+2009-05-04  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
+
+	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  <t-tujikawa@users.sourceforge.net>
 
 	Now the constructor of AbstractDiskWriter takes filename as an

+ 1 - 0
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()

+ 4 - 0
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();

+ 0 - 5
src/AbstractSingleDiskAdaptor.cc

@@ -119,11 +119,6 @@ void AbstractSingleDiskAdaptor::disableDirectIO()
   diskWriter->disableDirectIO();
 }
 
-bool AbstractSingleDiskAdaptor::directIOAllowed() const
-{
-  return diskWriter->directIOAllowed();
-}
-
 void AbstractSingleDiskAdaptor::enableReadOnly()
 {
   diskWriter->enableReadOnly();

+ 0 - 2
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();
 

+ 0 - 2
src/BinaryStream.h

@@ -62,8 +62,6 @@ public:
   virtual void enableDirectIO() = 0;
 
   virtual void disableDirectIO() = 0;
-  
-  virtual bool directIOAllowed() const = 0;
 };
 
 typedef SharedHandle<BinaryStream> BinaryStreamHandle;

+ 0 - 5
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);

+ 6 - 2
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;

+ 2 - 13
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

+ 3 - 1
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();
       }

+ 2 - 7
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();