Package ghidra.program.database.symbol
Class NamespaceManager
java.lang.Object
ghidra.program.database.symbol.NamespaceManager
- All Implemented Interfaces:
 ManagerDB
Class to manage namespaces.
- 
Constructor Summary
ConstructorsConstructorDescriptionNamespaceManager(DBHandle handle, ErrorHandler errHandler, AddressMap addrMap, OpenMode openMode, Lock lock, TaskMonitor monitor) Construct a new namespace manager. - 
Method Summary
Modifier and TypeMethodDescriptionvoiddeleteAddressRange(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.getAddressSet(Namespace namespace) Gets the body for the given namespace.Get the global namespace.Get the Namespace containing the given address.Get all Namespaces whose body overlaps the specified address set.voidinvalidateCache(boolean all) Clears all data caches.voidmoveAddressRange(Address fromAddr, Address toAddr, long length, TaskMonitor monitor) Move all objects within an address range to a new location.Checks if an existing namespace's address set intersects with the given set.voidprogramReady(OpenMode openMode, int currentRevision, TaskMonitor monitor) Callback from program made to each manager after the program has completed initialization.removeBody(Namespace namespace) Removes any associated body with the given namespace.voidsetBody(Namespace namespace, AddressSetView set) Sets the body of a namespace.voidsetProgram(ProgramDB program) Callback from program used to indicate all manager have been created. 
- 
Constructor Details
- 
NamespaceManager
public NamespaceManager(DBHandle handle, ErrorHandler errHandler, AddressMap addrMap, OpenMode openMode, Lock lock, TaskMonitor monitor) throws VersionException Construct a new namespace manager.- Parameters:
 handle- the database handle.errHandler- the error handler.addrMap- the address mapopenMode- the open modelock- the program synchronization lockmonitor- the task monitor.- Throws:
 VersionException- if the table version is different from this adapter.
 
 - 
 - 
Method Details
- 
deleteAddressRange
public void deleteAddressRange(Address startAddr, Address endAddr, TaskMonitor monitor) throws CancelledException Description copied from interface:ManagerDBDelete all objects which have been applied to the address range startAddr to endAddr and update the database accordingly. The specified start and end addresses must form a valid range within a singleAddressSpace.- Specified by:
 deleteAddressRangein 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.
 - 
invalidateCache
Description copied from interface:ManagerDBClears all data caches.- Specified by:
 invalidateCachein 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.- Throws:
 IOException- if a database io error occurs.
 - 
setProgram
Description copied from interface:ManagerDBCallback 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:
 setProgramin interfaceManagerDB- Parameters:
 program- the program is set when all the initializations have been completed.
 - 
programReady
public void programReady(OpenMode openMode, int currentRevision, TaskMonitor monitor) throws IOException, CancelledException Description copied from interface:ManagerDBCallback 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:
 programReadyin 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:
 IOException- if a database io error occurs.CancelledException- if the user cancelled the operation via the task monitor.
 - 
getGlobalNamespace
Get the global namespace.- Returns:
 - global namespace
 
 - 
setBody
Sets the body of a namespace.- Parameters:
 namespace- the namespace whose body is to be modified.set- the address set for the new body.- Throws:
 OverlappingNamespaceException- if specified set overlaps another namespace
 - 
removeBody
Removes any associated body with the given namespace.- Parameters:
 namespace- the namespace whose body is to be cleared.- Returns:
 - old body
 
 - 
getNamespaceContaining
Get the Namespace containing the given address. If the address is not in a defined namespace (e.g., Function), the global namespace is returned.- Parameters:
 addr- the address for which to find a namespace.- Returns:
 - namespace which contains address or the 
 
global namespaceif a specific namespace not found. 
 - 
overlapsNamespace
Checks if an existing namespace's address set intersects with the given set. If so, return the first overlapping range.- Parameters:
 set- address set to check for intersection- Returns:
 - null if no overlaps, or an address range of the first overlap
 
 - 
getNamespacesOverlapping
Get all Namespaces whose body overlaps the specified address set.- Parameters:
 set- the address for which to find namespace's that intersect it.- Returns:
 - a LongField function key iterator.
 
 - 
getAddressSet
Gets the body for the given namespace.- Parameters:
 namespace- the namespace for which to get its body.- Returns:
 - body for the given namespace
 
 - 
moveAddressRange
public void moveAddressRange(Address fromAddr, Address toAddr, long length, TaskMonitor monitor) throws AddressOverflowException, CancelledException Description copied from interface:ManagerDBMove all objects within an address range to a new location.- Specified by:
 moveAddressRangein 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:
 AddressOverflowException- if the length is such that a address wrap occursCancelledException- if the user cancelled the operation via the task monitor.
 
 -