30 #ifndef OGR_ATTRIND_H_INCLUDED
31 #define OGR_ATTRIND_H_INCLUDED
43 class CPL_DLL OGRAttrIndex
49 virtual ~OGRAttrIndex();
51 virtual GIntBig GetFirstMatch( OGRField *psKey ) = 0;
52 virtual GIntBig *GetAllMatches( OGRField *psKey ) = 0;
53 virtual GIntBig *GetAllMatches( OGRField *psKey, GIntBig* panFIDList,
int* nFIDCount,
int* nLength ) = 0;
55 virtual OGRErr AddEntry( OGRField *psKey, GIntBig nFID ) = 0;
56 virtual OGRErr RemoveEntry( OGRField *psKey, GIntBig nFID ) = 0;
58 virtual OGRErr Clear() = 0;
68 class CPL_DLL OGRLayerAttrIndex
77 virtual ~OGRLayerAttrIndex();
79 virtual OGRErr Initialize(
const char *pszIndexPath,
OGRLayer * ) = 0;
81 virtual OGRErr CreateIndex(
int iField ) = 0;
82 virtual OGRErr DropIndex(
int iField ) = 0;
83 virtual OGRErr IndexAllFeatures(
int iField = -1 ) = 0;
85 virtual OGRErr AddToIndex( OGRFeature *poFeature,
int iField = -1 ) = 0;
86 virtual OGRErr RemoveFromIndex( OGRFeature *poFeature ) = 0;
88 virtual OGRAttrIndex *GetFieldIndex(
int iField ) = 0;
91 OGRLayerAttrIndex CPL_DLL *OGRCreateDefaultLayerIndex();
Definition: ogrsf_frmts.h:68