这篇教程C++ GetIterator函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中GetIterator函数的典型用法代码示例。如果您正苦于以下问题:C++ GetIterator函数的具体用法?C++ GetIterator怎么用?C++ GetIterator使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了GetIterator函数的24个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: Serializevoid CLibraryHistory::Serialize(CArchive& ar, int nVersion){ if ( nVersion < 7 ) return; int nCount = 0; POSITION pos; if ( ar.IsStoring() ) { for ( pos = GetIterator() ; pos ; ) { if ( GetNext( pos )->m_pFile != NULL ) nCount ++; } ar.WriteCount( nCount ); for ( pos = GetIterator() ; pos ; ) { CLibraryRecent* pRecent = GetNext( pos ); if ( pRecent->m_pFile != NULL ) pRecent->Serialize( ar, nVersion ); } ar << LastSeededTorrent.m_sPath; if ( LastSeededTorrent.m_sPath.GetLength() ) { ar << LastSeededTorrent.m_sName; ar << LastSeededTorrent.m_tLastSeeded; ar.Write( &LastSeededTorrent.m_pBTH, sizeof(SHA1) ); } } else { Clear(); for ( nCount = ar.ReadCount() ; nCount > 0 ; nCount-- ) { CLibraryRecent* pRecent = new CLibraryRecent(); pRecent->Serialize( ar, nVersion ); if ( pRecent->m_pFile != NULL ) { m_pList.AddTail( pRecent ); } else { delete pRecent; } } if ( nVersion > 22 ) { ar >> LastSeededTorrent.m_sPath; if ( LastSeededTorrent.m_sPath.GetLength() ) { ar >> LastSeededTorrent.m_sName; ar >> LastSeededTorrent.m_tLastSeeded; ar.Read( &LastSeededTorrent.m_pBTH, sizeof(SHA1) ); } }
开发者ID:ericfillipe1,项目名称:shareaza-code,代码行数:59,
示例2: sizeof//----------------------------------------------------------------------------------------------int ObjectSerializer::SerializeUserDefinedType(ISerializable *pObj, TypeNode* pType, bool isPtr, fstream& pen){ int size = 0; bool isNull = false; if (isPtr) { // Access the pointer pointed by the pointer to pointer pObj = (*(ISerializable**)pObj); int length = 0; string typeName; char buffer[MaxTypeNameLength + 1]; isNull = (NULL == pObj); pen.write(reinterpret_cast<char*>(&isNull), sizeof(bool)); if (!isNull) { auto objLayout = pObj->GetObjectLayout(); typeName = g_ObjectFactory.FromCName(objLayout.CName()); PerformLateBinding(pObj, pType); length = typeName.size(); _ASSERTE(length <= MaxTypeNameLength); strcpy_s(buffer, typeName.c_str()); buffer[length] = 0; pen.write(buffer, MaxTypeNameLength + 1); Iterator* addresses = objLayout.GetIterator(); unsigned* addr32; for (int memberIdx = 0; addresses->MoveNext(); ++memberIdx) { _ASSERTE(memberIdx < pType->Children.size()); addr32 = reinterpret_cast<unsigned*>(addresses->Current()); SerializeType(reinterpret_cast<char*>(*addr32), pType->Children[memberIdx].Ptr32, pen); } } size = sizeof(unsigned); } else { auto objLayout = pObj->GetObjectLayout(); Iterator* addresses = objLayout.GetIterator(); unsigned* addr32; for (int memberIdx = 0; addresses->MoveNext(); ++memberIdx) { _ASSERTE(memberIdx < pType->Children.size()); addr32 = reinterpret_cast<unsigned*>(addresses->Current()); SerializeType(reinterpret_cast<char*>(*addr32), pType->Children[memberIdx].Ptr32, pen); } size = objLayout.TypeSize(); } return size;}
开发者ID:MHesham,项目名称:Serialization,代码行数:59,
示例3: oLockvoid CSecurity::Clear(){ CQuickLock oLock( m_pSection ); for ( POSITION pos = m_Complains.GetStartPosition() ; pos ; ) { DWORD pAddress; CComplain* pComplain; m_Complains.GetNextAssoc( pos, pAddress, pComplain ); delete pComplain; } m_Complains.RemoveAll(); for ( POSITION pos = GetIterator() ; pos ; ) { delete GetNext( pos ); } m_pRules.RemoveAll(); m_Cache.clear(); m_AddressMap.clear(); m_pRuleIndexMap.clear(); for ( BYTE nType = 0 ; nType < urnLast ; nType++ ) m_HashMap[ nType ].clear();}
开发者ID:lemonxiao0,项目名称:peerproject,代码行数:25,
示例4: BNetworkCookieJar::~BNetworkCookieJar(){ BNetworkCookie* cookiePtr; for (Iterator it = GetIterator(); (cookiePtr = it.Next()) != NULL;) delete it.Remove();}
开发者ID:Barrett17,项目名称:haiku-contacts-kit-old,代码行数:7,
示例5: pLockvoid CDownloadWithSources::RemoveOverlappingSources(QWORD nOffset, QWORD nLength){ CQuickLock pLock( Transfers.m_pSection ); for ( POSITION posSource = GetIterator() ; posSource ; ) { CDownloadSource* pSource = GetNext( posSource ); if ( pSource->TouchedRange( nOffset, nLength ) ) { if ( GetTaskType() == dtaskMergeFile ) { // Merging process can produce corrupted blocks, retry connection after 30 seconds pSource->m_nFailures = 0; pSource->Close( 30 ); } else { theApp.Message( MSG_ERROR, IDS_DOWNLOAD_VERIFY_DROP, (LPCTSTR)CString( inet_ntoa( pSource->m_pAddress ) ), (LPCTSTR)pSource->m_sServer, (LPCTSTR)m_sName, nOffset, nOffset + nLength - 1 ); pSource->Remove( TRUE, FALSE ); } } }}
开发者ID:lemonxiao0,项目名称:peerproject,代码行数:25,
示例6: ClearTodaysvoid CLibraryHistory::ClearTodays(){ for ( POSITION pos = GetIterator() ; pos ; ) { GetNext( pos )->m_bToday = FALSE; }}
开发者ID:ericfillipe1,项目名称:shareaza-code,代码行数:7,
示例7: inet_ntoaCPrivateChatWnd* CChatWindows::FindED2KFrame(DWORD nClientID, const SOCKADDR_IN* pServerAddress) const{ // For Low ID clients if ( ( nClientID > 0 ) && ( nClientID < 16777216 ) ) // ED2K Low ID { CString strLowID; strLowID.Format( L"%[email C++ GetKeyName函数代码示例 C++ GetItemText函数代码示例
|