OGRFeature *OGRGFTLayer::GetNextFeature() { GetLayerDefn(); while( true ) { if (nNextInSeq < nOffset || nNextInSeq >= nOffset + static_cast<int>(aosRows.size())) { if (bEOF) return nullptr; nOffset += static_cast<int>(aosRows.size()); if (!FetchNextRows()) return nullptr; } OGRFeature *poFeature = GetNextRawFeature(); if (poFeature == nullptr) return nullptr; if((m_poFilterGeom == nullptr || FilterGeometry( poFeature->GetGeometryRef() ) ) && (m_poAttrQuery == nullptr || m_poAttrQuery->Evaluate( poFeature )) ) { return poFeature; } else delete poFeature; } }
OGRFeature *OGRGFTLayer::GetNextFeature() { OGRFeature *poFeature; GetLayerDefn(); while(TRUE) { if (nNextInSeq < nOffset || nNextInSeq >= nOffset + (int)aosRows.size()) { if (bEOF) return NULL; nOffset += aosRows.size(); if (!FetchNextRows()) return NULL; } poFeature = GetNextRawFeature(); if (poFeature == NULL) return NULL; if((m_poFilterGeom == NULL || FilterGeometry( poFeature->GetGeometryRef() ) ) && (m_poAttrQuery == NULL || m_poAttrQuery->Evaluate( poFeature )) ) { return poFeature; } else delete poFeature; } }
bool OGRCouchDBRowsLayer::BuildFeatureDefn() { bool bRet = FetchNextRows(); if (!bRet) return false; bRet = BuildFeatureDefnFromRows(poFeatures); if (!bRet) return false; if( bEOF ) bAllInOne = true; return true; }