static GDALDataset *OGRBNADriverOpen( GDALOpenInfo* poOpenInfo ) { // -------------------------------------------------------------------- // Does this appear to be a .bna file? // -------------------------------------------------------------------- const char* pszFilename = poOpenInfo->pszFilename; if( STARTS_WITH_CI(pszFilename, "BNA:") ) { pszFilename += 4; } else if( poOpenInfo->fpL == nullptr || !(EQUAL( CPLGetExtension(pszFilename), "bna" ) || ((STARTS_WITH_CI(pszFilename, "/vsigzip/") || STARTS_WITH_CI(pszFilename, "/vsizip/")) && (strstr( pszFilename, ".bna") || strstr( pszFilename, ".BNA")))) ) { return nullptr; } OGRBNADataSource *poDS = new OGRBNADataSource(); if( !poDS->Open( pszFilename, poOpenInfo->eAccess == GA_Update ) ) { delete poDS; poDS = nullptr; } return poDS; }
OGRDataSource *OGRBNADriver::Open( const char * pszFilename, int bUpdate ) { OGRBNADataSource *poDS = new OGRBNADataSource(); if( !poDS->Open( pszFilename, bUpdate ) ) { delete poDS; poDS = NULL; } return poDS; }
OGRDataSource *OGRBNADriver::CreateDataSource( const char * pszName, char **papszOptions ) { OGRBNADataSource *poDS = new OGRBNADataSource(); if( !poDS->Create( pszName, papszOptions ) ) { delete poDS; poDS = NULL; } return poDS; }
static GDALDataset *OGRBNADriverCreate( const char * pszName, int /* nBands */, int /* nXSize */, int /* nYSize */, GDALDataType /* eDT */, char **papszOptions ) { OGRBNADataSource *poDS = new OGRBNADataSource(); if( !poDS->Create( pszName, papszOptions ) ) { delete poDS; poDS = nullptr; } return poDS; }