public abstract class CachingDirectoryFactory extends DirectoryFactory
DirectoryFactory
impl base class for caching Directory instances
per path. Most DirectoryFactory implementations will want to extend this
class and simply implement DirectoryFactory.create(String, LockFactory, DirContext)
.
This is an expert class and these API's are subject to change.Modifier and Type | Class and Description |
---|---|
protected static class |
CachingDirectoryFactory.CacheValue |
static interface |
CachingDirectoryFactory.CloseListener |
DirectoryFactory.DirContext
Modifier and Type | Field and Description |
---|---|
protected Map<Directory,CachingDirectoryFactory.CacheValue> |
byDirectoryCache |
protected Map<String,CachingDirectoryFactory.CacheValue> |
byPathCache |
protected Map<Directory,List<CachingDirectoryFactory.CloseListener>> |
closeListeners |
protected Set<CachingDirectoryFactory.CacheValue> |
removeEntries |
coreContainer, INDEX_W_TIMESTAMP_REGEX, IOCONTEXT_NO_CACHE, LOCK_TYPE_HDFS, LOCK_TYPE_NATIVE, LOCK_TYPE_NONE, LOCK_TYPE_SIMPLE, LOCK_TYPE_SINGLE
Constructor and Description |
---|
CachingDirectoryFactory() |
Modifier and Type | Method and Description |
---|---|
void |
addCloseListener(Directory dir,
CachingDirectoryFactory.CloseListener closeListener)
Adds a close listener for a Directory.
|
void |
close()
Close the this and all of the Directories it contains.
|
protected boolean |
deleteOldIndexDirectory(String oldDirPath) |
void |
doneWithDirectory(Directory directory)
Indicates a Directory will no longer be used, and when its ref count
hits 0, it can be closed.
|
boolean |
exists(String path)
Returns true if a Directory exists for a given path.
|
Directory |
get(String path,
DirectoryFactory.DirContext dirContext,
String rawLockType)
Returns the Directory for a given path, using the specified rawLockType.
|
Set<String> |
getLivePaths()
Method for inspecting the cache
|
protected String |
getPath(Directory directory) |
void |
incRef(Directory directory)
Increment the number of references to the given Directory.
|
void |
init(NamedList args) |
String |
normalize(String path)
Normalize a given path.
|
void |
release(Directory directory)
Releases the Directory so that it may be closed when it is no longer
referenced.
|
void |
remove(Directory dir)
Removes the Directory's persistent storage.
|
void |
remove(Directory dir,
boolean deleteAfterCoreClose)
Removes the Directory's persistent storage.
|
void |
remove(String path)
This remove is special in that it may be called even after
the factory has been closed.
|
void |
remove(String path,
boolean deleteAfterCoreClose)
This remove is special in that it may be called even after
the factory has been closed.
|
protected void |
removeDirectory(CachingDirectoryFactory.CacheValue cacheValue) |
protected String |
stripTrailingSlash(String path) |
cleanupOldIndexDirectories, create, createLockFactory, empty, getBaseDir, getDataHome, initCoreContainer, isAbsolute, isPersistent, isSharedStorage, move, offerMBeans, renameWithOverwrite, searchersReserveCommitPoints, size, size, sizeOf, sizeOfDirectory
protected Map<String,CachingDirectoryFactory.CacheValue> byPathCache
protected Map<Directory,CachingDirectoryFactory.CacheValue> byDirectoryCache
protected Map<Directory,List<CachingDirectoryFactory.CloseListener>> closeListeners
protected Set<CachingDirectoryFactory.CacheValue> removeEntries
public void addCloseListener(Directory dir, CachingDirectoryFactory.CloseListener closeListener)
DirectoryFactory
addCloseListener
in class DirectoryFactory
public void doneWithDirectory(Directory directory) throws IOException
DirectoryFactory
doneWithDirectory
in class DirectoryFactory
IOException
- If there is a low-level I/O error.public void close() throws IOException
DirectoryFactory
close
in interface Closeable
close
in interface AutoCloseable
close
in class DirectoryFactory
IOException
- If there is a low-level I/O error.public boolean exists(String path) throws IOException
DirectoryFactory
exists
in class DirectoryFactory
IOException
- If there is a low-level I/O error.public final Directory get(String path, DirectoryFactory.DirContext dirContext, String rawLockType) throws IOException
DirectoryFactory
get
in class DirectoryFactory
IOException
- If there is a low-level I/O error.public void incRef(Directory directory)
DirectoryFactory
incRef
in class DirectoryFactory
public void init(NamedList args)
public void release(Directory directory) throws IOException
DirectoryFactory
release
in class DirectoryFactory
IOException
- If there is a low-level I/O error.public void remove(String path) throws IOException
DirectoryFactory
remove
in class DirectoryFactory
path
- to removeIOException
- If there is a low-level I/O error.public void remove(Directory dir) throws IOException
DirectoryFactory
remove
in class DirectoryFactory
IOException
- If there is a low-level I/O error.public void remove(String path, boolean deleteAfterCoreClose) throws IOException
DirectoryFactory
remove
in class DirectoryFactory
path
- to removedeleteAfterCoreClose
- whether to wait until after the core is closed.IOException
- If there is a low-level I/O error.public void remove(Directory dir, boolean deleteAfterCoreClose) throws IOException
DirectoryFactory
remove
in class DirectoryFactory
IOException
- If there is a low-level I/O error.protected void removeDirectory(CachingDirectoryFactory.CacheValue cacheValue) throws IOException
IOException
public String normalize(String path) throws IOException
DirectoryFactory
normalize
in class DirectoryFactory
path
- to normalizeIOException
- on io errorpublic Set<String> getLivePaths()
doneWithDirectory(org.apache.lucene.store.Directory)
protected boolean deleteOldIndexDirectory(String oldDirPath) throws IOException
deleteOldIndexDirectory
in class DirectoryFactory
IOException
Copyright © 2000-2017 Apache Software Foundation. All Rights Reserved.