void ByteStreamFifoSource::doGetNextFrame() { #ifdef READ_FROM_FILES_SYNCHRONOUSLY doReadFromFile(); #else if (!fHaveStartedReading) { // Await readable data from the file: envir().taskScheduler().turnOnBackgroundReadHandling(fFid, (TaskScheduler::BackgroundHandlerProc*)&fileReadableHandler, this); fHaveStartedReading = True; } #endif }
void ByteStreamFileSource::doGetNextFrame() { if (feof(fFid) || ferror(fFid) || (fLimitNumBytesToStream && fNumBytesToStream == 0)) { handleClosure(); return; } #ifdef READ_FROM_FILES_SYNCHRONOUSLY doReadFromFile(); #else if (!fHaveStartedReading) { // Await readable data from the file: envir().taskScheduler().turnOnBackgroundReadHandling(fileno(fFid), (TaskScheduler::BackgroundHandlerProc*)&fileReadableHandler, this); fHaveStartedReading = True; } #endif }
void ByteStreamFileSource::doGetNextFrame() { // printf("ByteStreamFileSource::doGetNextFrame\n"); //jay if (feof(fFid) || ferror(fFid)) { handleClosure(this); return; } #ifdef READ_FROM_FILES_SYNCHRONOUSLY doReadFromFile(); #else // printf("fHaveStartedReading %d\n", fHaveStartedReading); //jay if (!fHaveStartedReading) { // Await readable data from the file: // printf("ByteStreamFileSource: turnOnBackgroundReadHandling\n"); //jay envir().taskScheduler().turnOnBackgroundReadHandling(fileno(fFid), (TaskScheduler::BackgroundHandlerProc*)&fileReadableHandler, this); fHaveStartedReading = True; } #endif }
void ByteStreamFileSource::doGetNextFrame() { DEBUG_LOG(INF, "ByteStreamFileSource::doGetNextFrame"); if (feof(fFid) || ferror(fFid)) { handleClosure(this); return; } #ifdef READ_FROM_FILES_SYNCHRONOUSLY //win32下是同步读 doReadFromFile(); #else if (!fHaveStartedReading) { // Await readable data from the file: // fileno返回打开文件的文件描述符 envir().taskScheduler().turnOnBackgroundReadHandling(fileno(fFid), (TaskScheduler::BackgroundHandlerProc*)&fileReadableHandler, this); fHaveStartedReading = True; DEBUG_LOG(INF, "turnOnBackgroundReadHandling: handle=%d, func='fileReadableHandler'", fileno(fFid)); } #endif }