summaryrefslogtreecommitdiff
path: root/src/SingleFileAllocationIterator.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2007-12-05 17:11:22 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2007-12-05 17:11:22 +0000
commit2850c16f8aff7637b3a2b602f98805c2e704ddc5 (patch)
treee48ca6f186b375db3b7b0a988f1a59f94e271e9f /src/SingleFileAllocationIterator.cc
parent84e896eb095ddc9ea94942233711c89a903dfa5c (diff)
2007-12-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten direct I/O support routine * src/SingleFileAllocationIterator.cc * src/MultiDiskAdaptor.{h, cc} * src/ByteArrayDiskWriter.h * src/AbstractSingleDiskAdaptor.h * src/AbstractDiskWriter.cc * src/DefaultPieceStorage.cc * src/DiskWriter.h * src/BinaryStream.h * src/IteratableChunkChecksumValidator.cc * src/IteratableChecksumValidator.cc * src/CheckIntegrityEntry.cc * src/FileAllocationEntry.cc
Diffstat (limited to 'src/SingleFileAllocationIterator.cc')
-rw-r--r--src/SingleFileAllocationIterator.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/SingleFileAllocationIterator.cc b/src/SingleFileAllocationIterator.cc
index 620410fa..ae6d513e 100644
--- a/src/SingleFileAllocationIterator.cc
+++ b/src/SingleFileAllocationIterator.cc
@@ -40,11 +40,16 @@
#define BUFSIZE (256*1024)
SingleFileAllocationIterator::SingleFileAllocationIterator(BinaryStream* stream, int64_t offset, int64_t totalLength):_stream(stream), _offset(offset), _totalLength(totalLength), _buffer(0)
-{}
+{
+ if(_offset%512 == 0) {
+ _stream->enableDirectIO();
+ }
+}
SingleFileAllocationIterator::~SingleFileAllocationIterator()
{
delete [] _buffer;
+ _stream->disableDirectIO();
}
void SingleFileAllocationIterator::init()