Package cppclassanalyzer.data.typeinfo
Class ArchivedClassTypeInfo
java.lang.Object
ghidra.program.database.DatabaseObject
cppclassanalyzer.data.typeinfo.ClassTypeInfoDB
cppclassanalyzer.data.typeinfo.ArchivedClassTypeInfo
- All Implemented Interfaces:
ArchivedRttiData
,ClassTypeInfo
,TypeInfo
public final class ArchivedClassTypeInfo extends ClassTypeInfoDB implements ArchivedRttiData
-
Field Summary
Fields Modifier and Type Field Description static String
TABLE_NAME
Fields inherited from class cppclassanalyzer.data.typeinfo.ClassTypeInfoDB
INVALID_KEY
Fields inherited from class ghidra.program.database.DatabaseObject
key
Fields inherited from interface ghidra.app.cmd.data.rtti.TypeInfo
SYMBOL_NAME, TYPENAME_SYMBOL_NAME
-
Constructor Summary
Constructors Constructor Description ArchivedClassTypeInfo(ArchiveRttiRecordManager manager, GnuClassTypeInfoDB type, ArchivedClassTypeInfoRecord record)
ArchivedClassTypeInfo(ArchiveRttiRecordManager manager, ArchivedClassTypeInfoRecord record)
-
Method Summary
Modifier and Type Method Description Vtable
findVtable(TaskMonitor monitor)
Locates the TypeInfo's Vtable ModelAddress
getAddress()
Gets the address of this TypeInfo structure.Address
getAddress(Program program)
ArchivedClassTypeInfo[]
getArchivedVirtualParents()
ArchivedGnuVtable
getArchivedVtable()
protected long[]
getBaseKeys()
Map<ClassTypeInfo,Integer>
getBaseOffsets()
Gets a map of this types bases and offsetsint[]
getBaseOffsetValues()
CategoryPath
getCategoryPath()
Structure
getClassDataType()
Gets the underlying structure of the class for this ClassTypeInfolong
getClassDataTypeId()
Gets the id for this type's class data typebyte
getClassId()
Structure
getDataType()
Gets corresponding structure for this TypeInfo ModelDataTypeManager
getDataTypeManager()
Address
getExternalAddress(Program program)
GhidraClass
getGhidraClass()
Gets the corresponding Ghidra Class for this TypeInfo and creates it if none exists.String
getIdentifier()
Gets The TypeInfo's Identifier StringClassTypeInfoManager
getManager()
Gets the manager containing this typeString
getName()
Gets name for the TypeInfo DataType ModelNamespace
getNamespace()
Gets the namespace for this TypeInfoprotected long[]
getNonVirtualBaseKeys()
ArchivedClassTypeInfo[]
getParentModels()
Retrieves the Models of this ClassTypeInfo classes base classesString
getProgramName()
Structure
getSuperDataType()
String
getSymbolName()
SymbolPath
getSymbolPath()
String
getTypeName()
Gets The TypeInfo's typename stringprotected long[]
getVirtualKeys()
Set<ClassTypeInfo>
getVirtualParents()
Retrieves an ordered set of all virtually inherited base classesVtable
getVtable()
Gets the TypeInfo's Vtable Modelboolean
hasParent()
Checks if this ClassTypeInfo is a subclass of another typeboolean
isAbstract()
Determines if the represented class is an abstract baseboolean
isModifiable()
Checks if this type is modifiableprotected boolean
refresh()
Methods inherited from class cppclassanalyzer.data.typeinfo.ClassTypeInfoDB
checkIsValid, getSuperClassDataType
Methods inherited from class ghidra.program.database.DatabaseObject
checkDeleted, checkIsValid, getKey, isDeleted, isInvalid, keyChanged, refresh, setInvalid, validate
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface ghidra.app.cmd.data.rtti.ClassTypeInfo
findVtable, getFullName, getRepresentedDataType, getUniqueTypeName, isExternal
-
Field Details
-
TABLE_NAME
- See Also:
- Constant Field Values
-
-
Constructor Details
-
ArchivedClassTypeInfo
public ArchivedClassTypeInfo(ArchiveRttiRecordManager manager, GnuClassTypeInfoDB type, ArchivedClassTypeInfoRecord record) -
ArchivedClassTypeInfo
-
-
Method Details
-
getProgramName
-
getAddress
-
getExternalAddress
-
refresh
protected boolean refresh()- Specified by:
refresh
in classDatabaseObject
-
getManager
Description copied from class:ClassTypeInfoDB
Gets the manager containing this type- Specified by:
getManager
in classClassTypeInfoDB
- Returns:
- the manager containing this type
-
getDataTypeManager
-
getClassId
public byte getClassId() -
getTypeName
Description copied from interface:TypeInfo
Gets The TypeInfo's typename string- Specified by:
getTypeName
in interfaceTypeInfo
- Returns:
- the TypeInfo's typename
-
getSymbolName
-
getDataType
Description copied from interface:TypeInfo
Gets corresponding structure for this TypeInfo Model- Specified by:
getDataType
in interfaceTypeInfo
- Returns:
- the datatype
-
getSuperDataType
-
getCategoryPath
-
getArchivedVtable
-
getParentModels
Description copied from interface:ClassTypeInfo
Retrieves the Models of this ClassTypeInfo classes base classes- Specified by:
getParentModels
in interfaceClassTypeInfo
- Specified by:
getParentModels
in classClassTypeInfoDB
- Returns:
- the parent models
-
getArchivedVirtualParents
-
getBaseKeys
protected long[] getBaseKeys()- Returns:
- the baseKeys
-
getNonVirtualBaseKeys
protected long[] getNonVirtualBaseKeys() -
getVirtualKeys
protected long[] getVirtualKeys() -
getBaseOffsetValues
public int[] getBaseOffsetValues()- Returns:
- the baseOffsets
-
getBaseOffsets
Description copied from class:ClassTypeInfoDB
Gets a map of this types bases and offsets- Specified by:
getBaseOffsets
in classClassTypeInfoDB
- Returns:
- a map of bases to offsets
-
getName
Description copied from interface:TypeInfo
Gets name for the TypeInfo DataType Model -
getNamespace
Description copied from interface:TypeInfo
Gets the namespace for this TypeInfo- Specified by:
getNamespace
in interfaceTypeInfo
- Returns:
- the TypeInfo's namespace
-
getIdentifier
Description copied from interface:TypeInfo
Gets The TypeInfo's Identifier String- Specified by:
getIdentifier
in interfaceTypeInfo
- Returns:
- the TypeInfo's ID_STRING field
- See Also:
TypeInfoModel.ID_STRING
-
getAddress
Description copied from interface:TypeInfo
Gets the address of this TypeInfo structure.- Specified by:
getAddress
in interfaceTypeInfo
- Returns:
- the TypeInfo's address.
-
getGhidraClass
Description copied from interface:ClassTypeInfo
Gets the corresponding Ghidra Class for this TypeInfo and creates it if none exists.- Specified by:
getGhidraClass
in interfaceClassTypeInfo
- Returns:
- The class representation of this TypeInfo instance
-
hasParent
public boolean hasParent()Description copied from interface:ClassTypeInfo
Checks if this ClassTypeInfo is a subclass of another type- Specified by:
hasParent
in interfaceClassTypeInfo
- Returns:
- true if this is a subclass
-
getVirtualParents
Description copied from interface:ClassTypeInfo
Retrieves an ordered set of all virtually inherited base classes- Specified by:
getVirtualParents
in interfaceClassTypeInfo
- Returns:
- the set of virtual bases
-
isAbstract
public boolean isAbstract()Description copied from interface:ClassTypeInfo
Determines if the represented class is an abstract base- Specified by:
isAbstract
in interfaceClassTypeInfo
- Returns:
- true if abstract
-
findVtable
Description copied from interface:ClassTypeInfo
Locates the TypeInfo's Vtable Model- Specified by:
findVtable
in interfaceClassTypeInfo
- Parameters:
monitor
- the task monitor to be used while searching for the vtable- Returns:
- The TypeInfo's Vtable Model or
Vtable.NO_VTABLE
if none exists - Throws:
CancelledException
- if the search is cancelled
-
getVtable
Description copied from interface:ClassTypeInfo
Gets the TypeInfo's Vtable Model- Specified by:
getVtable
in interfaceClassTypeInfo
- Returns:
- The TypeInfo's Vtable Model or
Vtable.NO_VTABLE
if none exists
-
getClassDataType
Description copied from interface:ClassTypeInfo
Gets the underlying structure of the class for this ClassTypeInfo- Specified by:
getClassDataType
in interfaceClassTypeInfo
- Returns:
- the structure datatype for this class
-
getSymbolPath
- Specified by:
getSymbolPath
in interfaceClassTypeInfo
-
getClassDataTypeId
public long getClassDataTypeId()Description copied from class:ClassTypeInfoDB
Gets the id for this type's class data type- Specified by:
getClassDataTypeId
in classClassTypeInfoDB
- Returns:
- the class data type's id
-
isModifiable
public boolean isModifiable()Description copied from class:ClassTypeInfoDB
Checks if this type is modifiable- Specified by:
isModifiable
in classClassTypeInfoDB
- Returns:
- true if this type is modifiable
-