Package ghidra.program.database.symbol
Class OldVariableStorageManagerDB
- java.lang.Object
-
- ghidra.program.database.symbol.OldVariableStorageManagerDB
-
-
Constructor Summary
Constructors Constructor Description OldVariableStorageManagerDB(DBHandle handle, AddressMap addrMap, int openMode, Lock lock, TaskMonitor monitor)
Construct a new variable manager.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
deleteAddressRange(Address startAddr, Address endAddr, TaskMonitor monitor)
Delete all objects which have been applied to the address range startAddr to endAddr and update the database accordingly.Address
getStorageAddress(Address variableAddr)
void
invalidateCache(boolean all)
Clears all data caches.static boolean
isOldVariableStorageManagerUpgradeRequired(DBHandle handle)
boolean
isUpgradeOldVariableAddressesRequired()
void
moveAddressRange(Address fromAddr, Address toAddr, long length, TaskMonitor monitor)
Move all objects within an address range to a new location.void
programReady(int openMode, int currentRevision, TaskMonitor monitor)
Callback from program made to each manager after the program has completed initialization.void
setLanguage(LanguageTranslator translator, TaskMonitor monitor)
Update storage locations to reflect register changes resulting from a new/updated language.void
setProgram(ProgramDB program)
Callback from program used to indicate all manager have been created.
-
-
-
Constructor Detail
-
OldVariableStorageManagerDB
public OldVariableStorageManagerDB(DBHandle handle, AddressMap addrMap, int openMode, Lock lock, TaskMonitor monitor) throws VersionException, java.io.IOException, CancelledException
Construct a new variable manager.- Parameters:
handle
- the database handle.addrMap
- the address mapopenMode
- the open modelock
- the program synchronization lockmonitor
- the task monitor.- Throws:
java.io.IOException
- if a database error occurs.VersionException
- if the table version is different from this adapter.java.io.IOException
CancelledException
- if the user cancels the upgrade.
-
-
Method Detail
-
isOldVariableStorageManagerUpgradeRequired
public static boolean isOldVariableStorageManagerUpgradeRequired(DBHandle handle)
-
invalidateCache
public void invalidateCache(boolean all)
Description copied from interface:ManagerDB
Clears all data caches.- Specified by:
invalidateCache
in interfaceManagerDB
- Parameters:
all
- if false, some managers may not need to update their cache if they can tell that its not necessary. If this flag is true, then all managers should clear their cache no matter what.
-
programReady
public void programReady(int openMode, int currentRevision, TaskMonitor monitor) throws java.io.IOException, CancelledException
Description copied from interface:ManagerDB
Callback from program made to each manager after the program has completed initialization. This method may be used by managers to perform additional upgrading which may have been deferred.- Specified by:
programReady
in interfaceManagerDB
- Parameters:
openMode
- the mode that the program is being opened.currentRevision
- current program revision. If openMode is UPGRADE, this value reflects the pre-upgrade value.monitor
- the task monitor to use in any upgrade operations.- Throws:
java.io.IOException
- if a database io error occurs.CancelledException
- if the user cancelled the operation via the task monitor.
-
setProgram
public void setProgram(ProgramDB program)
Description copied from interface:ManagerDB
Callback from program used to indicate all manager have been created. When this method is invoked, all managers have been instantiated but may not be fully initialized.- Specified by:
setProgram
in interfaceManagerDB
- Parameters:
program
- the program is set when all the initializations have been completed.
-
getStorageAddress
public Address getStorageAddress(Address variableAddr) throws java.io.IOException
- Throws:
java.io.IOException
-
isUpgradeOldVariableAddressesRequired
public boolean isUpgradeOldVariableAddressesRequired()
-
deleteAddressRange
public void deleteAddressRange(Address startAddr, Address endAddr, TaskMonitor monitor) throws CancelledException
Description copied from interface:ManagerDB
Delete all objects which have been applied to the address range startAddr to endAddr and update the database accordingly.- Specified by:
deleteAddressRange
in interfaceManagerDB
- Parameters:
startAddr
- the first address in the range.endAddr
- the last address in the range.monitor
- the task monitor to use in any upgrade operations.- Throws:
CancelledException
- if the user cancelled the operation via the task monitor.
-
moveAddressRange
public void moveAddressRange(Address fromAddr, Address toAddr, long length, TaskMonitor monitor) throws CancelledException
Description copied from interface:ManagerDB
Move all objects within an address range to a new location.- Specified by:
moveAddressRange
in interfaceManagerDB
- Parameters:
fromAddr
- the first address of the range to be moved.toAddr
- the address where to the range is to be moved.length
- the number of addresses to move.monitor
- the task monitor to use in any upgrade operations.- Throws:
CancelledException
- if the user cancelled the operation via the task monitor.
-
setLanguage
public void setLanguage(LanguageTranslator translator, TaskMonitor monitor) throws CancelledException, java.io.IOException
Update storage locations to reflect register changes resulting from a new/updated language. Programs address map must already be updated to reflect new language.- Parameters:
translator
-monitor
-- Throws:
CancelledException
java.io.IOException
-
-