Package cppclassanalyzer.data
Interface ProgramClassTypeInfoManager
- All Superinterfaces:
ClassTypeInfoManager
,ErrorHandler
,TypeInfoManager
- All Known Implementing Classes:
ClassTypeInfoManagerDB
,ItaniumAbiClassTypeInfoManager
,VsClassTypeInfoManager
public interface ProgramClassTypeInfoManager extends TypeInfoManager, ClassTypeInfoManager
ClassTypeInfoManager
for a Program
-
Field Summary
Fields inherited from interface cppclassanalyzer.data.ClassTypeInfoManager
INVALID_KEY
-
Method Summary
Modifier and Type Method Description default void
addListener(DomainObjectListener listener)
Program
getProgram()
Gets the programClassTypeInfoDB
getType(Address address)
Gets the ClassTypeInfo at the specified addressClassTypeInfoDB
getType(UniversalID id)
Gets the type with a class data type that has the provided idTypeInfo
getTypeInfo(Address address, boolean resolve)
Gets the Type info at the specified address.default Iterable<ClassTypeInfoDB>
getTypes()
Gets an iterable over all the managed ClassTypeInfosIterable<ClassTypeInfoDB>
getTypes(boolean reverse)
Gets an iterable over all the managed ClassTypeInfos in the specified directiondefault Stream<ClassTypeInfoDB>
getTypeStream()
Gets a stream of all the managed ClassTypeInfosStream<ClassTypeInfoDB>
getTypeStream(boolean reverse)
Gets a stream of all the managed ClassTypeInfos in the specified directionVtable
getVtable(Address address)
Gets the Vtable at the specified addressint
getVtableCount()
Gets the number of managed VtablesIterable<Vtable>
getVtableIterable(boolean reverse)
Gets an iterable over all the managed Vtables in the specified directiondefault Iterable<Vtable>
getVtables()
Gets an iterable over all the managed VtablesStream<Vtable>
getVtableStream()
Gets a stream of all the managed Vtablesdefault void
removeListener(DomainObjectListener listener)
ClassTypeInfoDB
resolve(ArchivedClassTypeInfo type)
Returns a ClassTypeInfo that is managed by this ClassTypeInfoManager.Vtable
resolve(ArchivedGnuVtable vtable)
Returns a Vtable that is managed by this ClassTypeInfoManager.Vtable
resolve(Vtable vtable)
Returns a Vtable that is managed by this ProgramClassTypeInfoManager.Methods inherited from interface cppclassanalyzer.data.ClassTypeInfoManager
getIcon, getName, getTreeNodeManager, getType, getType, getType, getType, getType, getTypeCount, resolve
Methods inherited from interface db.util.ErrorHandler
dbError
Methods inherited from interface cppclassanalyzer.data.TypeInfoManager
getTypeInfo, isTypeInfo
-
Method Details
-
getProgram
Program getProgram()Gets the program- Returns:
- the program
-
getType
Gets the ClassTypeInfo at the specified address- Parameters:
address
- the address of the ClassTypeInfo- Returns:
- the ClassTypeInfo or null if invalid
- Throws:
UnresolvedClassTypeInfoException
- if this type requires a copy relocation which cannot be resolved.
-
resolve
Returns a Vtable that is managed by this ProgramClassTypeInfoManager. If one does not currently exist a new one is created.- Parameters:
vtable
- the vtable to resolve- Returns:
- the equivalent vtable managed by this ProgramClassTypeInfoManager
-
getVtable
Gets the Vtable at the specified address- Parameters:
address
- the address of the vtable- Returns:
- the vtable at the address or null if none is present
-
getTypes
Description copied from interface:ClassTypeInfoManager
Gets an iterable over all the managed ClassTypeInfos- Specified by:
getTypes
in interfaceClassTypeInfoManager
- Returns:
- an iterable over all the managed ClassTypeInfos
-
getTypes
Gets an iterable over all the managed ClassTypeInfos in the specified direction- Parameters:
reverse
- true if the types should be provided in reverse- Returns:
- an iterable over all the managed ClassTypeInfos
-
getVtables
Gets an iterable over all the managed Vtables- Returns:
- an iterable over all the managed Vtables
-
getVtableIterable
Gets an iterable over all the managed Vtables in the specified direction- Parameters:
reverse
- true if the Vtables should be provided in reverse- Returns:
- an iterable over all the managed Vtables
-
getVtableCount
int getVtableCount()Gets the number of managed Vtables- Returns:
- the number of managed Vtables
-
getTypeStream
Description copied from interface:ClassTypeInfoManager
Gets a stream of all the managed ClassTypeInfos- Specified by:
getTypeStream
in interfaceClassTypeInfoManager
- Returns:
- a stream of all the managed ClassTypeInfos
-
getTypeStream
Gets a stream of all the managed ClassTypeInfos in the specified direction- Parameters:
reverse
- true if the types should be provided in reverse- Returns:
- a stream of all the managed ClassTypeInfos
-
getVtableStream
Gets a stream of all the managed Vtables- Returns:
- a stream of all the managed Vtables
-
resolve
Returns a ClassTypeInfo that is managed by this ClassTypeInfoManager. If the ArchivedClassTypeInfo hasn't already been resolved the type will be created and all required data will be added to the program.- Parameters:
type
- the type to resolve- Returns:
- the equivalent type managed by this ClassTypeInfoManager
-
resolve
Returns a Vtable that is managed by this ClassTypeInfoManager. If the ArchivedGnuVtable hasn't already been resolved the vtable will be created and all required data will be added to the program.- Parameters:
vtable
- the vtable to resolve- Returns:
- the equivalent vtable managed by this ClassTypeInfoManager
-
getTypeInfo
Gets the Type info at the specified address. If the TypeInfo is a ClassTypeInfo it can be resolved if requested.- Parameters:
address
- the address of the TypeInforesolve
- true to resolve the TypeInfo if it happens to be a ClassTypeInfo- Returns:
- the TypeInfo at the address
-
getType
Gets the type with a class data type that has the provided id- Parameters:
id
- the universal id- Returns:
- the type with the corresponding data type id or null
-
addListener
- Specified by:
addListener
in interfaceClassTypeInfoManager
-
removeListener
- Specified by:
removeListener
in interfaceClassTypeInfoManager
-