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
75 CPL_DISALLOW_COPY_ASSIGN(OGRLayerAttrIndex)
78 virtual ~OGRLayerAttrIndex();
80 virtual OGRErr Initialize(
const char *pszIndexPath,
OGRLayer * ) = 0;
82 virtual OGRErr CreateIndex(
int iField ) = 0;
83 virtual OGRErr DropIndex(
int iField ) = 0;
84 virtual OGRErr IndexAllFeatures(
int iField = -1 ) = 0;
86 virtual OGRErr AddToIndex( OGRFeature *poFeature,
int iField = -1 ) = 0;
87 virtual OGRErr RemoveFromIndex( OGRFeature *poFeature ) = 0;
89 virtual OGRAttrIndex *GetFieldIndex(
int iField ) = 0;
92 OGRLayerAttrIndex CPL_DLL *OGRCreateDefaultLayerIndex();
Definition: ogrsf_frmts.h:70