ib_api_status_t IBCompletionQueue::pollCQRead( IN OUT ib_wc_t** const freeWclist, OUT ib_wc_t** const doneWclist) { eq::base::ScopedMutex mutex( _mutex ); return ib_poll_cq( getReadHandle(), freeWclist, doneWclist); }
bool MCF::crcCheck() { bool res = true; UTIL::FS::FileHandle hFile; getReadHandle(hFile); size_t size = m_pFileList.size(); for (size_t x=0; x<size; x++) { if (!m_pFileList[x]) continue; if (m_pFileList[x]->getCRCCount() == 0) { printf("No crc's for file %s\n", m_pFileList[x]->getName()); continue; } if (!m_pFileList[x]->crcCheck(hFile)) res = false; } return res; }
bool MCF::fixMD5AndCRC() { gcString empty("d41d8cd98f00b204e9800998ecf8427e"); bool fixed = false; UTIL::FS::FileHandle handle; getReadHandle(handle); for (size_t x=0; x<m_pFileList.size(); x++) { if (m_pFileList[x]->isSaved() == false) continue; if (m_pFileList[x]->isCompressed() && empty == m_pFileList[x]->getCCsum()) { fixed = true; m_pFileList[x]->generateMD5(handle); } fixed = true; m_pFileList[x]->generateCRC(handle); } handle.close(); if (fixed) { saveMCF_Header(); return true; } return false; }
bool MCF::verifyMCF() { if (m_sHeader) m_sHeader->addFlags(MCFCore::MCFHeaderI::FLAG_NONVERIFYED); bool complete = true; UTIL::FS::FileHandle hFile; getReadHandle(hFile); size_t size = m_pFileList.size(); for (size_t x=0; x<size; x++) { if (m_bStopped) { complete = false; break; } MCFCore::Misc::ProgressInfo temp; temp.percent = (uint8)(x*100/size); onProgressEvent(temp); if (!m_pFileList[x] || !m_pFileList[x]->isSaved()) continue; try { m_pFileList[x]->verifyMcf(hFile, m_bStopped); } catch (gcException &) { } if (m_pFileList[x]->isComplete() == false) complete = false; } if (complete) { if (m_sHeader) m_sHeader->delFlags(MCFCore::MCFHeaderI::FLAG_NONVERIFYED); } return complete; }
void MCF::parseMCF() { if (m_bStopped) return; UTIL::FS::FileHandle hFile; getReadHandle(hFile); safe_delete(m_pFileList); MCFCore::MCFHeader tempHeader; tempHeader.readFromFile(hFile); setHeader(&tempHeader); hFile.seek(tempHeader.getXmlStart()); uint32 xmlBuffLen = tempHeader.getXmlSize()+1; UTIL::MISC::Buffer xmlBuff(xmlBuffLen, true); hFile.read(xmlBuff, tempHeader.getXmlSize()); if (getHeader()->getFlags() & MCFCore::MCFHeaderI::FLAG_NOTCOMPRESSED) { parseXml(xmlBuff, xmlBuffLen); } else { UTIL::MISC::BZ2Worker worker(UTIL::MISC::BZ2_DECOMPRESS); worker.write(xmlBuff, xmlBuffLen, true); worker.doWork(); if (worker.getLastStatus() != BZ_STREAM_END) throw gcException(ERR_BZ2, worker.getLastStatus(), "Failed to decompress mcf header xml"); size_t bz2BuffLen = worker.getReadSize(); UTIL::MISC::Buffer bz2Buff(bz2BuffLen); worker.read(bz2Buff, bz2BuffLen); parseXml(bz2Buff, bz2BuffLen); } }
void MCF::makeCRC() { printf("Making crc's\n"); UTIL::FS::FileHandle hFile; getReadHandle(hFile); for (size_t x=0; x<m_pFileList.size(); x++) { if (!m_pFileList[x] || !m_pFileList[x]->isSaved()) continue; m_pFileList[x]->generateCRC(hFile); } hFile.close(); saveMCF_Header(); }