Index: src/libchcore/TOverlappedReader.cpp =================================================================== diff -u -N -r518d1a3484cde91ff17c071211df5e40cb3487e3 -rd99302fce795dbb5139659016a5da7948f141fb4 --- src/libchcore/TOverlappedReader.cpp (.../TOverlappedReader.cpp) (revision 518d1a3484cde91ff17c071211df5e40cb3487e3) +++ src/libchcore/TOverlappedReader.cpp (.../TOverlappedReader.cpp) (revision d99302fce795dbb5139659016a5da7948f141fb4) @@ -24,19 +24,24 @@ namespace chcore { - TOverlappedReader::TOverlappedReader(const logger::TLogFileDataPtr& spLogFileData, const TBufferListPtr& spEmptyBuffers, + TOverlappedReader::TOverlappedReader(const logger::TLogFileDataPtr& spLogFileData, + const TBufferListPtr& spEmptyBuffers, const TOverlappedProcessorRangePtr& spDataRange, - DWORD dwChunkSize) : + DWORD dwChunkSize, + size_t stMaxOtfBuffers, size_t stMaxReadAheadBuffers, + TSharedCountPtr spOtfBuffersCount) : m_spLog(logger::MakeLogger(spLogFileData, L"DataBuffer")), - m_tInputBuffers(spEmptyBuffers, spDataRange ? spDataRange->GetResumePosition() : 0, dwChunkSize), - m_spFullBuffers(std::make_shared(spEmptyBuffers, spDataRange ? spDataRange->GetResumePosition() : 0)) + m_spFullBuffers(std::make_shared(spEmptyBuffers, spDataRange ? spDataRange->GetResumePosition() : 0)), + m_tInputBuffers(spEmptyBuffers, spDataRange ? spDataRange->GetResumePosition() : 0, dwChunkSize, stMaxOtfBuffers, stMaxReadAheadBuffers, spOtfBuffersCount, m_spFullBuffers->GetSharedCount()) { if(!spLogFileData) throw TCoreException(eErr_InvalidArgument, L"spLogFileData is NULL", LOCATION); if(!spEmptyBuffers) throw TCoreException(eErr_InvalidArgument, L"spMemoryPool", LOCATION); if(!spDataRange) throw TCoreException(eErr_InvalidArgument, L"spDataRange is NULL", LOCATION); + if(!spOtfBuffersCount) + throw TCoreException(eErr_InvalidArgument, L"spOtfBuffersCount is NULL", LOCATION); m_dataRangeChanged = spDataRange->GetNotifier().connect(boost::bind(&TOverlappedReader::UpdateProcessingRange, this, _1)); }