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 StringTABLE_NAMEFields inherited from class cppclassanalyzer.data.typeinfo.ClassTypeInfoDB
INVALID_KEYFields inherited from class ghidra.program.database.DatabaseObject
keyFields 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 VtablefindVtable(TaskMonitor monitor)Locates the TypeInfo's Vtable ModelAddressgetAddress()Gets the address of this TypeInfo structure.AddressgetAddress(Program program)ArchivedClassTypeInfo[]getArchivedVirtualParents()ArchivedGnuVtablegetArchivedVtable()protected long[]getBaseKeys()Map<ClassTypeInfo,Integer>getBaseOffsets()Gets a map of this types bases and offsetsint[]getBaseOffsetValues()CategoryPathgetCategoryPath()StructuregetClassDataType()Gets the underlying structure of the class for this ClassTypeInfolonggetClassDataTypeId()Gets the id for this type's class data typebytegetClassId()StructuregetDataType()Gets corresponding structure for this TypeInfo ModelDataTypeManagergetDataTypeManager()AddressgetExternalAddress(Program program)GhidraClassgetGhidraClass()Gets the corresponding Ghidra Class for this TypeInfo and creates it if none exists.StringgetIdentifier()Gets The TypeInfo's Identifier StringClassTypeInfoManagergetManager()Gets the manager containing this typeStringgetName()Gets name for the TypeInfo DataType ModelNamespacegetNamespace()Gets the namespace for this TypeInfoprotected long[]getNonVirtualBaseKeys()ArchivedClassTypeInfo[]getParentModels()Retrieves the Models of this ClassTypeInfo classes base classesStringgetProgramName()StructuregetSuperDataType()StringgetSymbolName()SymbolPathgetSymbolPath()StringgetTypeName()Gets The TypeInfo's typename stringprotected long[]getVirtualKeys()Set<ClassTypeInfo>getVirtualParents()Retrieves an ordered set of all virtually inherited base classesVtablegetVtable()Gets the TypeInfo's Vtable ModelbooleanhasParent()Checks if this ClassTypeInfo is a subclass of another typebooleanisAbstract()Determines if the represented class is an abstract basebooleanisModifiable()Checks if this type is modifiableprotected booleanrefresh()Methods inherited from class cppclassanalyzer.data.typeinfo.ClassTypeInfoDB
checkIsValid, getSuperClassDataTypeMethods inherited from class ghidra.program.database.DatabaseObject
checkDeleted, checkIsValid, getKey, isDeleted, isInvalid, keyChanged, refresh, setInvalid, validateMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods 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:
refreshin classDatabaseObject
-
getManager
Description copied from class:ClassTypeInfoDBGets the manager containing this type- Specified by:
getManagerin classClassTypeInfoDB- Returns:
- the manager containing this type
-
getDataTypeManager
-
getClassId
public byte getClassId() -
getTypeName
Description copied from interface:TypeInfoGets The TypeInfo's typename string- Specified by:
getTypeNamein interfaceTypeInfo- Returns:
- the TypeInfo's typename
-
getSymbolName
-
getDataType
Description copied from interface:TypeInfoGets corresponding structure for this TypeInfo Model- Specified by:
getDataTypein interfaceTypeInfo- Returns:
- the datatype
-
getSuperDataType
-
getCategoryPath
-
getArchivedVtable
-
getParentModels
Description copied from interface:ClassTypeInfoRetrieves the Models of this ClassTypeInfo classes base classes- Specified by:
getParentModelsin interfaceClassTypeInfo- Specified by:
getParentModelsin 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:ClassTypeInfoDBGets a map of this types bases and offsets- Specified by:
getBaseOffsetsin classClassTypeInfoDB- Returns:
- a map of bases to offsets
-
getName
Description copied from interface:TypeInfoGets name for the TypeInfo DataType Model -
getNamespace
Description copied from interface:TypeInfoGets the namespace for this TypeInfo- Specified by:
getNamespacein interfaceTypeInfo- Returns:
- the TypeInfo's namespace
-
getIdentifier
Description copied from interface:TypeInfoGets The TypeInfo's Identifier String- Specified by:
getIdentifierin interfaceTypeInfo- Returns:
- the TypeInfo's ID_STRING field
- See Also:
TypeInfoModel.ID_STRING
-
getAddress
Description copied from interface:TypeInfoGets the address of this TypeInfo structure.- Specified by:
getAddressin interfaceTypeInfo- Returns:
- the TypeInfo's address.
-
getGhidraClass
Description copied from interface:ClassTypeInfoGets the corresponding Ghidra Class for this TypeInfo and creates it if none exists.- Specified by:
getGhidraClassin interfaceClassTypeInfo- Returns:
- The class representation of this TypeInfo instance
-
hasParent
public boolean hasParent()Description copied from interface:ClassTypeInfoChecks if this ClassTypeInfo is a subclass of another type- Specified by:
hasParentin interfaceClassTypeInfo- Returns:
- true if this is a subclass
-
getVirtualParents
Description copied from interface:ClassTypeInfoRetrieves an ordered set of all virtually inherited base classes- Specified by:
getVirtualParentsin interfaceClassTypeInfo- Returns:
- the set of virtual bases
-
isAbstract
public boolean isAbstract()Description copied from interface:ClassTypeInfoDetermines if the represented class is an abstract base- Specified by:
isAbstractin interfaceClassTypeInfo- Returns:
- true if abstract
-
findVtable
Description copied from interface:ClassTypeInfoLocates the TypeInfo's Vtable Model- Specified by:
findVtablein interfaceClassTypeInfo- Parameters:
monitor- the task monitor to be used while searching for the vtable- Returns:
- The TypeInfo's Vtable Model or
Vtable.NO_VTABLEif none exists - Throws:
CancelledException- if the search is cancelled
-
getVtable
Description copied from interface:ClassTypeInfoGets the TypeInfo's Vtable Model- Specified by:
getVtablein interfaceClassTypeInfo- Returns:
- The TypeInfo's Vtable Model or
Vtable.NO_VTABLEif none exists
-
getClassDataType
Description copied from interface:ClassTypeInfoGets the underlying structure of the class for this ClassTypeInfo- Specified by:
getClassDataTypein interfaceClassTypeInfo- Returns:
- the structure datatype for this class
-
getSymbolPath
- Specified by:
getSymbolPathin interfaceClassTypeInfo
-
getClassDataTypeId
public long getClassDataTypeId()Description copied from class:ClassTypeInfoDBGets the id for this type's class data type- Specified by:
getClassDataTypeIdin classClassTypeInfoDB- Returns:
- the class data type's id
-
isModifiable
public boolean isModifiable()Description copied from class:ClassTypeInfoDBChecks if this type is modifiable- Specified by:
isModifiablein classClassTypeInfoDB- Returns:
- true if this type is modifiable
-