@@ -288,6 +288,15 @@ arrow::dataset::FileSource DataInputDescriptor::getFileFolder(int counter, int n
288288 return {fmt::format (" DF_{}" , mfilenames[counter].listOfTimeFrameNumbers [numTF]), mCurrentFilesystem };
289289}
290290
291+ uint64_t DataInputDescriptor::markTimeFrameSkipped (int numTF)
292+ {
293+ if (mCurrentFileID >= 0 && numTF >= 0 && numTF < mfilenames[mCurrentFileID ].numberOfTimeFrames ) {
294+ mfilenames[mCurrentFileID ].alreadyRead [numTF] = false ;
295+ return ++mfilenames[mCurrentFileID ].invalidReadSkipped ;
296+ }
297+ return 0 ;
298+ }
299+
291300std::shared_ptr<DataInputDescriptor> DataInputDescriptor::getParentFile (int counter, int numTF, std::string treename, int wantedParentLevel, std::string_view wantedOrigin)
292301{
293302 if (!mParentFileMap ) {
@@ -364,8 +373,8 @@ void DataInputDescriptor::printFileStatistics()
364373 }
365374 auto rootFS = std::dynamic_pointer_cast<TFileFileSystem>(mCurrentFilesystem );
366375 auto f = dynamic_cast <TFile*>(rootFS->GetFile ());
367- std::string monitoringInfo (fmt::format (" lfn={},size={},total_df={},read_df={},read_bytes={},read_calls={},io_time={:.1f},wait_time={:.1f},level={}" , f->GetName (),
368- f->GetSize (), getTimeFramesInFile (mCurrentFileID ), getReadTimeFramesInFile (mCurrentFileID ), f->GetBytesRead (), f->GetReadCalls (),
376+ std::string monitoringInfo (fmt::format (" lfn={},size={},total_df={},read_df={},skipped_df={}, read_bytes={},read_calls={},io_time={:.1f},wait_time={:.1f},level={}" , f->GetName (),
377+ f->GetSize (), getTimeFramesInFile (mCurrentFileID ), getReadTimeFramesInFile (mCurrentFileID ), mfilenames. at ( mCurrentFileID ). invalidReadSkipped , f->GetBytesRead (), f->GetReadCalls (),
369378 ((float )mIOTime / 1e9 ), ((float )wait_time / 1e9 ), mLevel ));
370379#if __has_include(<TJAlienFile.h>)
371380 auto alienFile = dynamic_cast <TJAlienFile*>(f);
@@ -879,6 +888,15 @@ arrow::dataset::FileSource DataInputDirector::getFileFolder(header::DataHeader d
879888 return didesc->getFileFolder (counter, numTF, wantedLevel, origin);
880889}
881890
891+ void DataInputDirector::markTimeFrameSkipped (header::DataHeader dh, int numTF)
892+ {
893+ auto didesc = getDataInputDescriptor (dh);
894+ if (!didesc) {
895+ didesc = mdefaultDataInputDescriptor.get ();
896+ }
897+ didesc->markTimeFrameSkipped (numTF);
898+ }
899+
882900int DataInputDirector::getTimeFramesInFile (header::DataHeader dh, int counter)
883901{
884902 auto didesc = getDataInputDescriptor (dh);
0 commit comments