Package ghidra.formats.gfilesystem
Class FileSystemRefManager
- java.lang.Object
-
- ghidra.formats.gfilesystem.FileSystemRefManager
-
public class FileSystemRefManager extends java.lang.ObjectA threadsafe helper class that manages creating and releasingFileSystemRefinstances and broadcasting events toFileSystemEventListenerlisteners.
-
-
Constructor Summary
Constructors Constructor Description FileSystemRefManager(GFileSystem fs)Creates a newFileSystemRefManagerpointing at the specifiedGFileSystem.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddListener(FileSystemEventListener listener)booleancanClose(FileSystemRef callersRef)Returns true if the onlyFileSystemRefpinning this filesystem is the caller's ref.FileSystemRefcreate()Creates a newFileSystemRefthat points at the owningfilesystem.voidfinalize()longgetLastUsedTimestamp()voidonClose()Called from theCloseable.close()before any destructive changes have been made to gracefully shutdown the ref manager.voidrelease(FileSystemRef ref)Releases an existingFileSystemRefand broadcastsFileSystemEventListener.onFilesystemRefChange(GFileSystem, FileSystemRefManager)to listeners.voidremoveListener(FileSystemEventListener listener)Removes a previously addedlistener.
-
-
-
Constructor Detail
-
FileSystemRefManager
public FileSystemRefManager(GFileSystem fs)
Creates a newFileSystemRefManagerpointing at the specifiedGFileSystem.- Parameters:
fs-GFileSystemto manage.
-
-
Method Detail
-
addListener
public void addListener(FileSystemEventListener listener)
- Parameters:
listener-FileSystemEventListenerto receive callbacks, weakly refd and automagically removed if a reference isn't held to the listener somewhere else.
-
removeListener
public void removeListener(FileSystemEventListener listener)
Removes a previously addedlistener.- Parameters:
listener-FileSystemEventListenerto remove.
-
create
public FileSystemRef create()
Creates a newFileSystemRefthat points at the owningfilesystem.- Returns:
- new
FileSystemRefpointing at the filesystem, never null.
-
release
public void release(FileSystemRef ref)
Releases an existingFileSystemRefand broadcastsFileSystemEventListener.onFilesystemRefChange(GFileSystem, FileSystemRefManager)to listeners.- Parameters:
ref- theFileSystemRefto release.
-
canClose
public boolean canClose(FileSystemRef callersRef)
Returns true if the onlyFileSystemRefpinning this filesystem is the caller's ref.- Parameters:
callersRef-FileSystemRefto test- Returns:
- boolean true if the tested
FileSystemRefis the only ref pinning the filesystem.
-
onClose
public void onClose()
Called from theCloseable.close()before any destructive changes have been made to gracefully shutdown the ref manager.Broadcasts
FileSystemEventListener.onFilesystemClose(GFileSystem).
-
finalize
public void finalize()
- Overrides:
finalizein classjava.lang.Object
-
getLastUsedTimestamp
public long getLastUsedTimestamp()
-
-