1*b9795fafSAugustin Cavalier /* 2*b9795fafSAugustin Cavalier * Copyright 2007, Ingo Weinhold, ingo_weinhold@gmx.de. 3*b9795fafSAugustin Cavalier * All rights reserved. Distributed under the terms of the MIT license. 4*b9795fafSAugustin Cavalier */ 5224e7c42SIngo Weinhold #ifndef ATTRIBUTE_INDEX_H 6224e7c42SIngo Weinhold #define ATTRIBUTE_INDEX_H 7224e7c42SIngo Weinhold 8224e7c42SIngo Weinhold #include "Index.h" 9224e7c42SIngo Weinhold 10224e7c42SIngo Weinhold class Attribute; 11224e7c42SIngo Weinhold 12224e7c42SIngo Weinhold class AttributeIndex : public Index { 13224e7c42SIngo Weinhold public: 14224e7c42SIngo Weinhold AttributeIndex(Volume *volume, const char *name, uint32 type, 15224e7c42SIngo Weinhold bool fixedKeyLength, size_t keyLength = 0); 16224e7c42SIngo Weinhold virtual ~AttributeIndex(); 17224e7c42SIngo Weinhold 18224e7c42SIngo Weinhold virtual status_t Added(Attribute *attribute) = 0; 19224e7c42SIngo Weinhold virtual bool Removed(Attribute *attribute) = 0; 20224e7c42SIngo Weinhold virtual status_t Changed(Attribute *attribute, 21224e7c42SIngo Weinhold const uint8 *oldKey, size_t length) = 0; 22224e7c42SIngo Weinhold }; 23224e7c42SIngo Weinhold 24224e7c42SIngo Weinhold #endif // ATTRIBUTE_INDEX_H 25