当前位置: 首页>>代码示例>>C++>>正文


C++ CHash类代码示例

本文整理汇总了C++中CHash的典型用法代码示例。如果您正苦于以下问题:C++ CHash类的具体用法?C++ CHash怎么用?C++ CHash使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了CHash类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: GetPos

uvar32_64 CMarkStyle::GetPos () {
	for (CHash<CMarkStyle*,CMarkStyle>* p = theApp.MarkStyles.m_pHashHead; p; p = p->GetNext ())
		if (p->m_hData == this)
			if (theApp.MarkStyles.m_nActive == p->GetPos ())
				return (p->GetPos ());
	return (uvar32_64(-1));
}
开发者ID:macx0r,项目名称:dias-desktop,代码行数:7,代码来源:MarkStyle.cpp

示例2: GetPos

uvar32_64 CVariable::GetPos () {
	m_pTesla->Variables.m_pHashHead = m_pTesla->Variables.m_pHashHead->GetHead ();
	for (CHash<CVariable*,CVariable>* p = m_pTesla->Variables.m_pHashHead; p; p = p->GetNext ())
		if (p->m_hData == this)
			return (p->GetPos ());
	return (-1);
}
开发者ID:macx0r,项目名称:dias-desktop,代码行数:7,代码来源:TESLA.cpp

示例3: GetPos

svar32_64 CImage::GetPos () {
	m_pDoc->Images.m_pHashHead = m_pDoc->Images.m_pHashHead->GetHead ();
	for (CHash<CImage*,CImage>* p = m_pDoc->Images.m_pHashHead; p; p = p->GetNext ())
		if (p->m_hData == this)
			return (p->GetPos ());
	return (-1);
}
开发者ID:macx0r,项目名称:dias-desktop,代码行数:7,代码来源:Image.cpp

示例4: return

uvar32_64 CDiasAPIDensScales::Insert (uvar32_64 pos, CDensScale& scale) {
	if ((pos = NameLookup (scale.m_strName)) != uvar32_64(-1))
		return ((uvar32_64)-1);
	CHash<CDensScale*,CDensScale>* p = new CHash<CDensScale*,CDensScale>(&scale);
	m_pHashHead->GetAt(pos)->InsertAfter (p);
	m_pHashHead = m_pHashHead->GetHead ();
	return ((uvar32_64)(p->GetPos ()));
}
开发者ID:macx0r,项目名称:dias-inet,代码行数:8,代码来源:DiasAPIDensScales.cpp

示例5: DeleteRules

void CBNFParser::DeleteRules()
{
	if (!m_pRootRule)
		return;
	CHash<CRule const *> hashRules;
	m_pRootRule->AddToHash(hashRules);
	hashRules.DeleteAll();
	m_pRootRule = 0;
}
开发者ID:aaalexandrov,项目名称:Alex,代码行数:9,代码来源:BNF.cpp

示例6:

void CBNFParser::CNonTerminal::AddToHash(CHash<CRule const *> &hashRules) const
{
	CHash<CRule const *>::TIter it = hashRules.Find(this);
	if (!it) {
		hashRules.Add(this);
		for (int i = 0; i < MAX_CHILD_RULES && m_pChildren[i]; ++i)
			m_pChildren[i]->AddToHash(hashRules);
	}
}
开发者ID:aaalexandrov,项目名称:Alex,代码行数:9,代码来源:BNF.cpp

示例7: Hash

static long Hash(tHashAlgo hashAlgo, const CByteArray & oData)
{
	CHash oHash;
	CByteArray oHashData = oHash.Hash(hashAlgo, oData);

	printf("Hash: %s\n", oHashData.ToString(true, false).c_str());
	WriteFile("", "hash.bin", oHashData);

	return 0;
}
开发者ID:12019,项目名称:svn.gov.pt,代码行数:10,代码来源:cardlayertool.cpp

示例8: GetSlove

UINT CEightPuzzleGame::GetSlove ()
{
	int nCurValue = this->ConvertMetrixToInt ( this->bBegMetrix ) ;
	int nEndValue = this->ConvertMetrixToInt ( this->bEndMetrix ) ;

	vector<ITEM> Queue ;				// 广搜的辅助队列
	CHash Hash ;						// Hash表,用于保存状态
	Queue.clear () ;			
	Queue.push_back ( ITEM(-1,nCurValue) ) ;
	Hash.AddValue ( nCurValue ) ;

	int nCurIndex = 0, nTotalIndex = 1 ;
	while ( nCurIndex < nTotalIndex )
	{
		if ( nCurIndex == 200000 )
			return 0 ;

		nCurValue = Queue[nCurIndex].nValue ;
		for ( int i = 0; i < 4; i++ )		// 枚举4个方向
		{
			this->ConvertIntToCurMetrix ( nCurValue ) ;
			if ( this->SingleMove ( i ) == FALSE )
				continue ;
			int nValue = this->ConvertMetrixToInt ( this->bCurMetrix ) ;
			// 如果这个状态首次出现,则添加辅助队列并保存到hash表
			if ( Hash.IsValueExist ( nValue ) == FALSE )
			{
				nTotalIndex ++ ;
				Hash.AddValue ( nValue ) ;
				Queue.push_back ( ITEM(nCurIndex,nValue) ) ;
				// 达到目标状态时,提取路径,注意路径为倒序
				if ( nValue == nEndValue )
				{
					this->PathList.clear () ;
					this->PathList.push_back ( nValue ) ;

					int nIndex = nCurIndex, nStep = 0 ;
					while ( TRUE )
					{
						nStep ++ ;
						this->PathList.push_back ( Queue[nIndex].nValue ) ;
						if ( ( nIndex = Queue[nIndex].nIndex ) == -1 )
							break ;
					}
					return nStep ;
				}
			}
		}
		nCurIndex++ ;
	}

	return 0 ;
}
开发者ID:karllen,项目名称:Windows_Program,代码行数:53,代码来源:EightPuzzleGame.cpp

示例9:

CDiasAPIChnlRange& CDiasAPIChannels::operator() (aImAPIRngType type) {
	m_rngInt.Reset ();
	CHash<CChannel*, CChannel>* p;
	switch (type) {
		case aimAll:
			for (p = m_pHashHead ; p ; p = p->GetNext ())
				m_rngInt.Include (p);
			break;
		case aimVisible:
			// #### TODO: Place code here
			break;
		default:
			throw (CaImAPIException (0));
	}
	return (m_rngInt);
}
开发者ID:macx0r,项目名称:dias-inet,代码行数:16,代码来源:DiasAPIChannels.cpp

示例10: Sign

CByteArray CPkiCard::Sign(const tPrivKey & key, const tPin & Pin,
    unsigned long algo, CHash & oHash)
{
	CByteArray oHashResult = oHash.GetHash();

	return Sign(key, Pin, algo, oHashResult);
}
开发者ID:giapdangle,项目名称:eid-mw,代码行数:7,代码来源:pkicard.cpp

示例11: Insert

	//拷贝oSrc中的元素进来。
	inline void Insert(const CHash<TKey, TData, TGetKey, TCompareKey, THashArithmetic> &oSrc)
	{
		if(this == &oSrc)
		{
			if(!m_bUnique)
			{
				uint32 i;
				CHash<TKey, TData, TGetKey, TCompareKey, THashArithmetic> o(oSrc);
				for(i=0; i<m_nBucketSize; ++i)
					m_pBuckets[i].Append(NULL, o.m_pBuckets[i]);
			}
		}
		else
		{
			CHashIterator oIt=oSrc.First(), oEnd=oSrc.End();
			for(; !oSrc.IteratorEqual(oIt, oEnd);  oIt=oSrc.GetNext(oIt))
				Insert(oSrc.GetItem(oIt));
		}
	}
开发者ID:nightstyles,项目名称:focp,代码行数:20,代码来源:Hash.hpp

示例12: SignVerify

static long SignVerify(CReader & oReader, tPrivKey & key,
	const CByteArray & oCertData, unsigned long ulSignAlgo)
{
	CByteArray oData(1000);
	for (int i = 0; i < 300; i++)
		oData.Append((unsigned char) rand());

	long lHashAlgo = sign2hashAlgo(ulSignAlgo);

	if (lHashAlgo != -1)
	{
		CByteArray oSignature;
	
		CHash oHash;
		oHash.Init((tHashAlgo) lHashAlgo);
		oHash.Update(oData);

		if (ulSignAlgo == SIGN_ALGO_RSA_PKCS)
		{
			// To test SIGN_ALGO_RSA_PKCS, we take as input the SHA1 AID
			// plus the SHA1 hash of oData. This way, we can use OpenSSL's
			// SHA1 signature verification in VerifySignature().
			const unsigned char SHA1_AID[] = {0x30, 0x21, 0x30, 0x09,
				0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x05, 0x00,0x04, 0x14};
			CByteArray oTobeSigned(SHA1_AID, sizeof(SHA1_AID));
			oTobeSigned.Append(oHash.GetHash());
			oSignature = oReader.Sign(key, ulSignAlgo, oTobeSigned);
		}
		else
			oSignature = oReader.Sign(key, ulSignAlgo, oHash);

		bool bVerified = VerifySignature(oData, oSignature, oCertData, ulSignAlgo);

		return bVerified ? 0 : 1;
	}
	else
	{
		printf("      Signature algo %s can't be tested yet\n", SignAlgo2String(ulSignAlgo));
		return 0;
	}
}
开发者ID:12019,项目名称:svn.gov.pt,代码行数:41,代码来源:testcardlayer.cpp

示例13: HashAndSign

static CByteArray HashAndSign(CReader & oReader, const tPrivKey & key,
	unsigned long signAlgo, const CByteArray & oData)
{
	tHashAlgo hashAlgo;
	if (signAlgo == SIGN_ALGO_MD5_RSA_PKCS)
		hashAlgo = ALGO_MD5;
	else if (signAlgo == SIGN_ALGO_SHA1_RSA_PKCS)
		hashAlgo = ALGO_SHA1;
	else if (signAlgo == SIGN_ALGO_SHA256_RSA_PKCS)
		hashAlgo = ALGO_SHA256;
	else
	{
		printf("Unsupport signature algorithm %d, can't sign\n", signAlgo);
		return CByteArray();
	}

	CHash oHash;
	oHash.Init(hashAlgo);
	oHash.Update(oData);

	return oReader.Sign(key, signAlgo, oHash);
}
开发者ID:12019,项目名称:svn.gov.pt,代码行数:22,代码来源:cardlayertool.cpp

示例14: Sign

CByteArray CReader::Sign(const tPrivKey & key, unsigned long algo,
    CHash & oHash)
{
    if (m_poCard == NULL)
        throw CMWEXCEPTION(EIDMW_ERR_NO_CARD);

	unsigned long ulSupportedAlgos = m_poCard->GetSupportedAlgorithms();
	if ((algo & ulSupportedAlgos & SIGN_ALGO_MD5_RSA_PKCS) ||
		(algo & ulSupportedAlgos & SIGN_ALGO_SHA1_RSA_PKCS) ||
		(algo & ulSupportedAlgos & SIGN_ALGO_SHA256_RSA_PKCS) ||
		(algo & ulSupportedAlgos & SIGN_ALGO_SHA384_RSA_PKCS) ||
		(algo & ulSupportedAlgos & SIGN_ALGO_SHA512_RSA_PKCS) ||
		(algo & ulSupportedAlgos & SIGN_ALGO_RIPEMD160_RSA_PKCS))
	{
	    return m_poCard->Sign(key, GetPinByID(key.ulAuthID), algo, oHash);
	}
	else
	{
		CByteArray oHashResult = oHash.GetHash();
		return Sign(key, algo, oHashResult);
	}
}
开发者ID:12019,项目名称:svn.gov.pt,代码行数:22,代码来源:Reader.cpp

示例15: CM_ShutdownShaderProperties

void CM_ShutdownShaderProperties(void)
{
	if(cmShaderTable.count())
	{
//		Com_Printf("Shutting down cmShaderTable .....\n");
		cmShaderTable.clear();
	}
}
开发者ID:3ddy,项目名称:Jedi-Outcast,代码行数:8,代码来源:cm_shader.cpp


注:本文中的CHash类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。