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, manager
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 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 void
fillModelData(ClassTypeInfoRecord record)
protected void
fillModelData(ClassTypeInfo type, ClassTypeInfoRecord record)
Vtable
findVtable(TaskMonitor monitor)
Locates the TypeInfo's Vtable Modelstatic int
getBaseCount(ClassTypeInfoRecord record)
protected long[]
getBaseKeys()
static long[]
getBaseKeys(ClassTypeInfoRecord record)
protected GccCppClassBuilder
getClassBuilder()
Namespace
getNamespace()
Gets the namespace for this TypeInfoprotected long[]
getNonVirtualBaseKeys()
protected int[]
getOffsets()
ClassTypeInfoDB[]
getParentModels()
Retrieves the Models of this ClassTypeInfo classes base classesprotected String
getPureVirtualFunctionName()
protected long[]
getVirtualBaseKeys()
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 typeprotected boolean
refresh(ClassTypeInfoRecord record)
static void
updateRecord(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, updateKeys
Methods inherited from class cppclassanalyzer.data.typeinfo.ClassTypeInfoDB
checkIsValid, getSuperClassDataType
Methods inherited from class ghidra.program.database.DatabaseObject
checkDeleted, checkIsValid, getKey, isDeleted, isInvalid, keyChanged, setInvalid, validate
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods 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:ClassTypeInfo
Checks if this ClassTypeInfo is a subclass of another type- Returns:
- true if this is a subclass
-
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
-
getVirtualParents
Description copied from interface:ClassTypeInfo
Retrieves an ordered set of all virtually inherited base classes- Returns:
- the set of virtual bases
-
findVtable
Description copied from interface:ClassTypeInfo
Locates 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_VTABLE
if none exists - Throws:
CancelledException
- if the search is cancelled
-
getBaseKeys
-
getBaseCount
-
updateRecord
-
getBaseKeys
protected long[] getBaseKeys()- Specified by:
getBaseKeys
in classAbstractClassTypeInfoDB
-
getOffsets
protected int[] getOffsets()- Specified by:
getOffsets
in classAbstractClassTypeInfoDB
-
getNonVirtualBaseKeys
protected long[] getNonVirtualBaseKeys() -
getVirtualBaseKeys
protected long[] getVirtualBaseKeys() -
getVtable
Description copied from interface:ClassTypeInfo
Gets the TypeInfo's Vtable Model- Specified by:
getVtable
in interfaceClassTypeInfo
- Overrides:
getVtable
in classAbstractClassTypeInfoDB
- Returns:
- The TypeInfo's Vtable Model or
Vtable.NO_VTABLE
if none exists
-
fillModelData
- Specified by:
fillModelData
in classAbstractClassTypeInfoDB
-
refresh
- Overrides:
refresh
in classAbstractClassTypeInfoDB
-
getNamespace
Description copied from interface:TypeInfo
Gets the namespace for this TypeInfo- Returns:
- the TypeInfo's namespace
-
getPureVirtualFunctionName
- Specified by:
getPureVirtualFunctionName
in classAbstractClassTypeInfoDB
-
getClassBuilder
- Specified by:
getClassBuilder
in classAbstractClassTypeInfoDB
-
fillModelData
- Specified by:
fillModelData
in classAbstractClassTypeInfoDB
-