//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~ Zen::Engine::Navigation::I_Path::pNodeIterator_type Path::front() { pNodeIterator_type pIterator(new NodeIterator(m_path), &Path::destroy); return pIterator; }
CPDFSDK_Widget* CPDFSDK_InterForm::GetSibling(CPDFSDK_Widget* pWidget, FX_BOOL bNext) const { std::unique_ptr<CBA_AnnotIterator> pIterator(new CBA_AnnotIterator( pWidget->GetPageView(), CPDF_Annot::Subtype::WIDGET)); if (bNext) return static_cast<CPDFSDK_Widget*>(pIterator->GetNextAnnot(pWidget)); return static_cast<CPDFSDK_Widget*>(pIterator->GetPrevAnnot(pWidget)); }
bool CObjectDictionarySnapShot::Get() { bool oRetVal(false); if (m_pCommunicationModel) { __int64 value(0); BOOL oSuccess(FALSE); m_sObjectCount = 0; CObjectDictionary* pObjectDictionary(m_pCommunicationModel->GetObjectDictionary()); CObjectEntryIterator* pIterator(0); CObjectEntry* pObjectEntry(0); WORD usIndex(0); BYTE ucSubIndex(0); EAccessType accessType(AT_READ_WRITE); //Create object dictionary iterator. This method uses new!!! if(pObjectDictionary) { pIterator = pObjectDictionary->CreateObjectEntryIterator(); pIterator->First(); while(!pIterator->IsFinished()) { pObjectEntry = (CObjectEntry*)pIterator->Current(); if(pObjectEntry) { accessType = pObjectEntry->GetAccessType(); if((AT_READ_WRITE == accessType) || (AT_READ_WRITE_READ == accessType) || (AT_READ_WRITE_WRITE == accessType)) { usIndex = pObjectEntry->GetIndex(); if((FIRST_OBJECT_INDEX <= usIndex) && (ODT_DOMAIN != pObjectEntry->GetDataTypeNumber())) { ucSubIndex = pObjectEntry->GetSubIndex(); m_pCommunicationModel->GetObject(usIndex, ucSubIndex, &value, 0); m_aObjectDictionary[0][m_sObjectCount] = usIndex; m_aObjectDictionary[1][m_sObjectCount] = ucSubIndex; m_aObjectDictionary[2][m_sObjectCount] = value; m_sObjectCount++; } } } pIterator->Next(); } //Delete the iterator!! delete pIterator; } if(m_sObjectCount > 0) { oRetVal = true; } } return oRetVal; }
size_t Iterator::GetLengthEx(Environment &env) { if (IsFinitePredictable()) return GetLength(); Signal &sig = env.GetSignal(); if (IsInfinite()) { SetError_InfiniteNotAllowed(sig); return 0; } size_t len = 0; AutoPtr<Iterator> pIterator(Clone()); Value value; for ( ; pIterator->Next(env, value); len++) ; return sig.IsSignalled()? 0 : len; }