CPLErr OGRMutexedLayer::SetMetadataItem( const char * pszName, const char * pszValue, const char * pszDomain ) { CPLMutexHolderOptionalLockD(m_hMutex); return OGRLayerDecorator::SetMetadataItem(pszName, pszValue, pszDomain); }
CPLErr OGRMutexedDataSource::SetMetadataItem( const char * pszName, const char * pszValue, const char * pszDomain ) { CPLMutexHolderOptionalLockD(m_hGlobalMutex); return m_poBaseDataSource->SetMetadataItem(pszName, pszValue, pszDomain); }
OGRLayer *OGRMutexedDataSource::CopyLayer( OGRLayer *poSrcLayer, const char *pszNewName, char **papszOptions ) { CPLMutexHolderOptionalLockD(m_hGlobalMutex); return WrapLayerIfNecessary(m_poBaseDataSource->CopyLayer(poSrcLayer, pszNewName, papszOptions )); }
OGRLayer *OGRMutexedDataSource::ICreateLayer( const char *pszName, OGRSpatialReference *poSpatialRef, OGRwkbGeometryType eGType, char ** papszOptions) { CPLMutexHolderOptionalLockD(m_hGlobalMutex); return WrapLayerIfNecessary(m_poBaseDataSource->CreateLayer(pszName, poSpatialRef, eGType, papszOptions)); }
OGRLayer * OGRMutexedDataSource::ExecuteSQL( const char *pszStatement, OGRGeometry *poSpatialFilter, const char *pszDialect ) { CPLMutexHolderOptionalLockD(m_hGlobalMutex); return WrapLayerIfNecessary(m_poBaseDataSource->ExecuteSQL(pszStatement, poSpatialFilter, pszDialect)); }
void OGRMutexedDataSource::ReleaseResultSet( OGRLayer * poResultsSet ) { CPLMutexHolderOptionalLockD(m_hGlobalMutex); if( poResultsSet && m_bWrapLayersInMutexedLayer ) { std::map<OGRMutexedLayer*, OGRLayer*>::iterator oIter = m_oReverseMapLayers.find((OGRMutexedLayer*)poResultsSet); CPLAssert(oIter != m_oReverseMapLayers.end()); delete poResultsSet; poResultsSet = oIter->second; m_oMapLayers.erase(poResultsSet); m_oReverseMapLayers.erase(oIter); } m_poBaseDataSource->ReleaseResultSet(poResultsSet); }
OGRErr OGRMutexedDataSource::DeleteLayer(int iIndex) { CPLMutexHolderOptionalLockD(m_hGlobalMutex); OGRLayer* poLayer = m_bWrapLayersInMutexedLayer ? GetLayer(iIndex) : NULL; OGRErr eErr = m_poBaseDataSource->DeleteLayer(iIndex); if( eErr == OGRERR_NONE && poLayer) { std::map<OGRLayer*, OGRMutexedLayer*>::iterator oIter = m_oMapLayers.find(poLayer); if(oIter != m_oMapLayers.end()) { delete oIter->second; m_oReverseMapLayers.erase(oIter->second); m_oMapLayers.erase(oIter); } } return eErr; }
void FGdbDriver::Release(const char* pszName) { CPLMutexHolderOptionalLockD(hMutex); FGdbDatabaseConnection* pConnection = oMapConnections[pszName]; if( pConnection != NULL ) { pConnection->m_nRefCount --; CPLDebug("FileGDB", "ref_count of %s = %d now", pszName, pConnection->m_nRefCount); if( pConnection->m_nRefCount == 0 ) { pConnection->CloseGeodatabase(); delete pConnection; oMapConnections.erase(pszName); } } }
OGRFeature *OGRMutexedLayer::GetNextFeature() { CPLMutexHolderOptionalLockD(m_hMutex); return OGRLayerDecorator::GetNextFeature(); }
OGRErr OGRMutexedLayer::SetAttributeFilter( const char * poAttrFilter ) { CPLMutexHolderOptionalLockD(m_hMutex); return OGRLayerDecorator::SetAttributeFilter(poAttrFilter); }
void OGRMutexedLayer::SetSpatialFilter( int iGeomField, OGRGeometry * poGeom ) { CPLMutexHolderOptionalLockD(m_hMutex); OGRLayerDecorator::SetSpatialFilter(iGeomField, poGeom); }
OGRErr OGRMutexedLayer::SetIgnoredFields( const char **papszFields ) { CPLMutexHolderOptionalLockD(m_hMutex); return OGRLayerDecorator::SetIgnoredFields(papszFields); }
OGRErr OGRMutexedLayer::RollbackTransaction() { CPLMutexHolderOptionalLockD(m_hMutex); return OGRLayerDecorator::RollbackTransaction(); }
GIntBig OGRMutexedLayer::GetFeatureCount( int bForce ) { CPLMutexHolderOptionalLockD(m_hMutex); return OGRLayerDecorator::GetFeatureCount(bForce); }
OGRSpatialReference *OGRMutexedLayer::GetSpatialRef() { CPLMutexHolderOptionalLockD(m_hMutex); return OGRLayerDecorator::GetSpatialRef(); }
OGRStyleTable *OGRMutexedLayer::GetStyleTable() { CPLMutexHolderOptionalLockD(m_hMutex); return OGRLayerDecorator::GetStyleTable(); }
void OGRMutexedLayer::SetStyleTable(OGRStyleTable *poStyleTable) { CPLMutexHolderOptionalLockD(m_hMutex); return OGRLayerDecorator::SetStyleTable(poStyleTable); }
OGRErr OGRMutexedLayer::GetExtent(OGREnvelope *psExtent, int bForce) { CPLMutexHolderOptionalLockD(m_hMutex); return OGRLayerDecorator::GetExtent(psExtent, bForce); }
const char *OGRMutexedLayer::GetGeometryColumn() { CPLMutexHolderOptionalLockD(m_hMutex); return OGRLayerDecorator::GetGeometryColumn(); }
int OGRMutexedLayer::TestCapability( const char * pszCapability ) { CPLMutexHolderOptionalLockD(m_hMutex); return OGRLayerDecorator::TestCapability(pszCapability); }
CPLErr OGRMutexedLayer::SetMetadata( char ** papszMetadata, const char * pszDomain ) { CPLMutexHolderOptionalLockD(m_hMutex); return OGRLayerDecorator::SetMetadata(papszMetadata, pszDomain); }
OGRErr OGRMutexedLayer::CreateField( OGRFieldDefn *poField, int bApproxOK ) { CPLMutexHolderOptionalLockD(m_hMutex); return OGRLayerDecorator::CreateField(poField, bApproxOK); }
OGRGeometry *OGRMutexedLayer::GetSpatialFilter() { CPLMutexHolderOptionalLockD(m_hMutex); return OGRLayerDecorator::GetSpatialFilter(); }
OGRErr OGRMutexedLayer::DeleteField( int iField ) { CPLMutexHolderOptionalLockD(m_hMutex); return OGRLayerDecorator::DeleteField(iField); }
void OGRMutexedLayer::SetSpatialFilterRect( int iGeomField, double dfMinX, double dfMinY, double dfMaxX, double dfMaxY ) { CPLMutexHolderOptionalLockD(m_hMutex); OGRLayerDecorator::SetSpatialFilterRect(iGeomField, dfMinX, dfMinY, dfMaxX, dfMaxY); }
OGRErr OGRMutexedLayer::ReorderFields( int* panMap ) { CPLMutexHolderOptionalLockD(m_hMutex); return OGRLayerDecorator::ReorderFields(panMap); }
void OGRMutexedLayer::ResetReading() { CPLMutexHolderOptionalLockD(m_hMutex); OGRLayerDecorator::ResetReading(); }
OGRErr OGRMutexedLayer::AlterFieldDefn( int iField, OGRFieldDefn* poNewFieldDefn, int nFlags ) { CPLMutexHolderOptionalLockD(m_hMutex); return OGRLayerDecorator::AlterFieldDefn(iField, poNewFieldDefn, nFlags); }
OGRErr OGRMutexedLayer::SetNextByIndex( GIntBig nIndex ) { CPLMutexHolderOptionalLockD(m_hMutex); return OGRLayerDecorator::SetNextByIndex(nIndex); }
OGRErr OGRMutexedLayer::SyncToDisk() { CPLMutexHolderOptionalLockD(m_hMutex); return OGRLayerDecorator::SyncToDisk(); }