Package cppclassanalyzer.data.typeinfo
Class GnuClassTypeInfoDB
java.lang.Object
ghidra.program.database.DatabaseObject
cppclassanalyzer.data.typeinfo.ClassTypeInfoDB
cppclassanalyzer.data.typeinfo.AbstractClassTypeInfoDB
cppclassanalyzer.data.typeinfo.GnuClassTypeInfoDB
- All Implemented Interfaces:
ClassTypeInfo,TypeInfo
public class GnuClassTypeInfoDB extends AbstractClassTypeInfoDB
-
Nested Class Summary
Nested classes/interfaces inherited from class cppclassanalyzer.data.typeinfo.AbstractClassTypeInfoDB
AbstractClassTypeInfoDB.TypeId -
Field Summary
Fields inherited from class cppclassanalyzer.data.typeinfo.AbstractClassTypeInfoDB
CLASS_TYPEINFO_TABLE_NAME, managerFields 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 GnuClassTypeInfoDB(ProgramRttiRecordManager worker, ArchivedClassTypeInfo type, ClassTypeInfoRecord record)GnuClassTypeInfoDB(ProgramRttiRecordManager worker, ClassTypeInfoRecord record)GnuClassTypeInfoDB(ProgramRttiRecordManager worker, ClassTypeInfo type, ClassTypeInfoRecord record) -
Method Summary
Modifier and Type Method Description protected voidfillModelData(ClassTypeInfoRecord record)protected voidfillModelData(ClassTypeInfo type, ClassTypeInfoRecord record)VtablefindVtable(TaskMonitor monitor)Locates the TypeInfo's Vtable Modelstatic intgetBaseCount(ClassTypeInfoRecord record)protected long[]getBaseKeys()static long[]getBaseKeys(ClassTypeInfoRecord record)protected GccCppClassBuildergetClassBuilder()NamespacegetNamespace()Gets the namespace for this TypeInfoprotected long[]getNonVirtualBaseKeys()protected int[]getOffsets()ClassTypeInfoDB[]getParentModels()Retrieves the Models of this ClassTypeInfo classes base classesprotected StringgetPureVirtualFunctionName()protected long[]getVirtualBaseKeys()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 typeprotected booleanrefresh(ClassTypeInfoRecord record)static voidupdateRecord(ClassTypeInfoRecord record, LongIntHashtable keyMap)Methods inherited from class cppclassanalyzer.data.typeinfo.AbstractClassTypeInfoDB
decodeAddress, encodeAddress, equals, getAddress, getBaseOffsets, getClassData, getClassDataType, getClassDataTypeId, getDataType, getGhidraClass, getIdentifier, getIdentifier, getManager, getName, getProgram, getRawType, getRecord, getTypeId, getTypeName, getVtableSearched, hashCode, isAbstract, isModifiable, isVtableSearched, refresh, refresh, refreshDataType, setClassDataType, setVtable, setVtableSearched, toString, updateKeysMethods inherited from class cppclassanalyzer.data.typeinfo.ClassTypeInfoDB
checkIsValid, getSuperClassDataTypeMethods inherited from class ghidra.program.database.DatabaseObject
checkDeleted, checkIsValid, getKey, isDeleted, isInvalid, keyChanged, setInvalid, validateMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface ghidra.app.cmd.data.rtti.ClassTypeInfo
findVtable, getFullName, getRepresentedDataType, getSymbolPath, getUniqueTypeName, isExternal
-
Constructor Details
-
GnuClassTypeInfoDB
-
GnuClassTypeInfoDB
public GnuClassTypeInfoDB(ProgramRttiRecordManager worker, ClassTypeInfo type, ClassTypeInfoRecord record) -
GnuClassTypeInfoDB
public GnuClassTypeInfoDB(ProgramRttiRecordManager worker, ArchivedClassTypeInfo type, ClassTypeInfoRecord record)
-
-
Method Details
-
hasParent
public boolean hasParent()Description copied from interface:ClassTypeInfoChecks if this ClassTypeInfo is a subclass of another type- Returns:
- true if this is a subclass
-
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
-
getVirtualParents
Description copied from interface:ClassTypeInfoRetrieves an ordered set of all virtually inherited base classes- Returns:
- the set of virtual bases
-
findVtable
Description copied from interface:ClassTypeInfoLocates the TypeInfo's Vtable Model- 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
-
getBaseKeys
-
getBaseCount
-
updateRecord
-
getBaseKeys
protected long[] getBaseKeys()- Specified by:
getBaseKeysin classAbstractClassTypeInfoDB
-
getOffsets
protected int[] getOffsets()- Specified by:
getOffsetsin classAbstractClassTypeInfoDB
-
getNonVirtualBaseKeys
protected long[] getNonVirtualBaseKeys() -
getVirtualBaseKeys
protected long[] getVirtualBaseKeys() -
getVtable
Description copied from interface:ClassTypeInfoGets the TypeInfo's Vtable Model- Specified by:
getVtablein interfaceClassTypeInfo- Overrides:
getVtablein classAbstractClassTypeInfoDB- Returns:
- The TypeInfo's Vtable Model or
Vtable.NO_VTABLEif none exists
-
fillModelData
- Specified by:
fillModelDatain classAbstractClassTypeInfoDB
-
refresh
- Overrides:
refreshin classAbstractClassTypeInfoDB
-
getNamespace
Description copied from interface:TypeInfoGets the namespace for this TypeInfo- Returns:
- the TypeInfo's namespace
-
getPureVirtualFunctionName
- Specified by:
getPureVirtualFunctionNamein classAbstractClassTypeInfoDB
-
getClassBuilder
- Specified by:
getClassBuilderin classAbstractClassTypeInfoDB
-
fillModelData
- Specified by:
fillModelDatain classAbstractClassTypeInfoDB
-