diff --git a/index.go b/index.go index 8cc7322c..04e6f537 100644 --- a/index.go +++ b/index.go @@ -62,6 +62,10 @@ type Index interface { Mapping() *IndexMapping Stats() *IndexStat + + GetInternal(key []byte) ([]byte, error) + SetInternal(key, val []byte) error + DeleteInternal(key []byte) error } // A Classifier is an interface describing any object diff --git a/index_impl.go b/index_impl.go index fb11c385..5e2ae8a7 100644 --- a/index_impl.go +++ b/index_impl.go @@ -533,3 +533,27 @@ func (i *indexImpl) Close() { func (i *indexImpl) Stats() *IndexStat { return i.stats } + +func (i *indexImpl) GetInternal(key []byte) ([]byte, error) { + i.mutex.RLock() + defer i.mutex.RUnlock() + + reader := i.i.Reader() + defer reader.Close() + + return reader.GetInternal(key) +} + +func (i *indexImpl) SetInternal(key, val []byte) error { + i.mutex.RLock() + defer i.mutex.RUnlock() + + return i.i.SetInternal(key, val) +} + +func (i *indexImpl) DeleteInternal(key []byte) error { + i.mutex.RLock() + defer i.mutex.RUnlock() + + return i.i.DeleteInternal(key) +}