void CPlayerLoop::timerEvent(QTimerEvent *event) { if (event->timerId() == m_FrameTimer.timerId()) //если сработал таймер кадров { if(!m_Log.is_open()) { std::cerr << "Ошибка открытия файла журнала!!!" << std::endl << std::flush; m_FrameTimer.stop(); return; } //читаем очередной блок из файла журнала //создаем объект - парсер файла жкрнала CLogParser logParser; //Читаем блок из входного потока, пока не встретится пустая строка, признак конца файла или ошибка в данных if(!ReadBlockFromStream(m_Log, &logParser) && !m_Log.eof()) { if(logParser.IsError()) { std::cerr << "Ошибка в CLogParser: " << logParser.GetErrorMessage().c_str() << std::endl << std::flush; } else { std::cerr << "Ошибка чтения файла!!!" << std::endl << std::flush; } m_FrameTimer.stop(); return; } else { // отладочный вывод на консоль прочитанных из файла данных // ShowMapInText(logParser.GetFrame()); if (m_Log.eof()) { std::cerr << "Файл успешно прочитан!!!\n"; m_FrameTimer.stop(); return; } UpdatePlayer(logParser); ShowFrame(); } } }
void CWordBinaryMetadataDiscoveryWorker::GetReviewers() { if(NULL == m_pStreamTable) throw Workshare::Exception(_T("NULL pointer encountered (m_pStreamTable)")); if(0 == m_FIB.FIBH.nFib) throw Workshare::Exception(_T("FIB was not loaded.")); if (NULL == m_pStrategy) throw Workshare::Exception(_T("Encountered NULL pointer (m_pStrategy)")); __raise m_pStrategy->OnReviewersBegin(); //ensure the table of associated strings of reviewers is present if(0 == m_FIB.rgfclcb.SttbfRMark.lcb) { __raise m_pStrategy->OnReviewersEnd(); return; } //allocate buffer for associated strings and read them in char *pSttbfRMark = new char[m_FIB.rgfclcb.SttbfRMark.lcb]; ASSERT(pSttbfRMark); try { ReadBlockFromStream(m_pStreamTable, m_FIB.rgfclcb.SttbfRMark, pSttbfRMark); } catch (std::exception&) { delete [] pSttbfRMark; throw; } STTBFASSOCHdr* pSttbfAssocHdr = (STTBFASSOCHdr*)pSttbfRMark; unsigned short usStringCount = 0; bool bExtended = (-1 == pSttbfAssocHdr->extended.sExtended); if(bExtended) usStringCount = pSttbfAssocHdr->extended.usStringCount; else usStringCount = pSttbfAssocHdr->normal.usStringCount; if(0 < usStringCount) { char *pStrings = NULL; unsigned short usExtraData = 0; if(bExtended) { pStrings = (char*)&(pSttbfAssocHdr->extended.XstzHdr); usExtraData = pSttbfAssocHdr->extended.cbExtraData; } else { pStrings = (char*)&(pSttbfAssocHdr->normal.CharHdr); usExtraData = pSttbfAssocHdr->normal.cbExtraData; } _bstr_t bstrNextReviewer; for(unsigned short usStringIndex = 0; usStringIndex < usStringCount; usStringIndex++) { bstrNextReviewer = GetStringInSTTBF(bExtended, pStrings, usExtraData).c_str(); __raise m_pStrategy->OnReviewer(bstrNextReviewer); } } delete [] pSttbfRMark; __raise m_pStrategy->OnReviewersEnd(); }
void CWordBinaryMetadataDiscoveryWorker::GetLastTenAuthors() { if(NULL == m_pStreamTable) throw Workshare::Exception(_T("NULL pointer encountered (m_pStreamTable)")); if(0 == m_FIB.FIBH.nFib) throw Workshare::Exception(_T("FIB was not loaded.")); if (NULL == m_pStrategy) throw Workshare::Exception(_T("Encountered NULL pointer (m_pStrategy)")); __raise m_pStrategy->OnAuthorsBegin(); //ensure the table of associated strings of authors is present if(0 >= m_FIB.rgpgdbkd.SttbSavedBy.lcb) { __raise m_pStrategy->OnAuthorsEnd(); return; } //allocate buffer for associated strings and read them in char *pSttbSavedBy = new char[m_FIB.rgpgdbkd.SttbSavedBy.lcb]; ASSERT(pSttbSavedBy); try { ReadBlockFromStream(m_pStreamTable, m_FIB.rgpgdbkd.SttbSavedBy, pSttbSavedBy); } catch (std::exception&) { delete [] pSttbSavedBy; throw; } STTBFASSOCHdr* pSttbfAssocHdr = (STTBFASSOCHdr*)pSttbSavedBy; unsigned short usStringCount = 0; bool bExtended = (-1 == pSttbfAssocHdr->extended.sExtended); if(bExtended) usStringCount = pSttbfAssocHdr->extended.usStringCount; else usStringCount = pSttbfAssocHdr->normal.usStringCount; if(0 < usStringCount) { char *pStrings = NULL; unsigned short usExtraData = 0; if(bExtended) { pStrings = (char*)&(pSttbfAssocHdr->extended.XstzHdr); usExtraData = pSttbfAssocHdr->extended.cbExtraData; } else { pStrings = (char*)&(pSttbfAssocHdr->normal.CharHdr); usExtraData = pSttbfAssocHdr->normal.cbExtraData; } _bstr_t bstrNextPath; _bstr_t bstrNextAuthor; for(unsigned short usStringIndex = 0; usStringIndex < usStringCount; usStringIndex += 2) { //Each author is optionally followed by the path to the saved file bstrNextAuthor = GetStringInSTTBF(bExtended, pStrings, usExtraData).c_str(); bstrNextPath = GetStringInSTTBF(bExtended, pStrings, usExtraData).c_str(); __raise m_pStrategy->OnAuthor(bstrNextPath, bstrNextAuthor); } } delete [] pSttbSavedBy; __raise m_pStrategy->OnAuthorsEnd(); }