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);
}
Esempio n. 2
0
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;
}
Esempio n. 3
0
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;
}
Esempio n. 4
0
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;
}
Esempio n. 5
0
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);
	}
}
Esempio n. 6
0
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();
}