Package cppclassanalyzer.data.typeinfo
Class VsClassTypeInfoDB
java.lang.Object
ghidra.program.database.DatabaseObject
cppclassanalyzer.data.typeinfo.ClassTypeInfoDB
cppclassanalyzer.data.typeinfo.AbstractClassTypeInfoDB
cppclassanalyzer.data.typeinfo.VsClassTypeInfoDB
- All Implemented Interfaces:
VsClassTypeInfo
,ClassTypeInfo
,TypeInfo
public class VsClassTypeInfoDB extends AbstractClassTypeInfoDB implements VsClassTypeInfo
-
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
Fields inherited from interface cppclassanalyzer.vs.VsClassTypeInfo
BASE_ARRAY_SYMBOL_NAME, DEFAULT_OPTIONS, HIERARCHY_SYMBOL_NAME, LOCATOR_SYMBOL_NAME
-
Constructor Summary
Constructors Constructor Description VsClassTypeInfoDB(ProgramRttiRecordManager worker, ClassTypeInfoRecord record)
VsClassTypeInfoDB(ProgramRttiRecordManager worker, VsClassTypeInfo 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 Modelghidra.app.cmd.data.rtti.Rtti2Model
getBaseClassArray()
static int
getBaseCount(ClassTypeInfoRecord record)
protected long[]
getBaseKeys()
static long[]
getBaseKeys(ClassTypeInfoRecord record)
ghidra.app.cmd.data.rtti.Rtti1Model
getBaseModel()
protected VsCppClassBuilder
getClassBuilder()
ghidra.app.cmd.data.rtti.Rtti3Model
getHierarchyDescriptor()
Namespace
getNamespace()
Gets the namespace for this TypeInfoprotected int[]
getOffsets()
ClassTypeInfoDB[]
getParentModels()
Retrieves the Models of this ClassTypeInfo classes base classesprotected String
getPureVirtualFunctionName()
TypeDescriptorModel
getTypeDescriptor()
Set<ClassTypeInfo>
getVirtualParents()
Retrieves an ordered set of all virtually inherited base classesboolean
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, getVtable, 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, getClassDataType, getFullName, getGhidraClass, getRepresentedDataType, getSymbolPath, getUniqueTypeName, getVtable, isExternal
Methods inherited from interface ghidra.app.cmd.data.rtti.TypeInfo
getAddress, getDataType, getIdentifier, getName, getTypeName
Methods inherited from interface cppclassanalyzer.vs.VsClassTypeInfo
getBaseOffsets, isAbstract
-
Constructor Details
-
VsClassTypeInfoDB
-
VsClassTypeInfoDB
public VsClassTypeInfoDB(ProgramRttiRecordManager worker, VsClassTypeInfo type, ClassTypeInfoRecord record)
-
-
Method Details
-
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
-
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- Specified by:
getVirtualParents
in interfaceClassTypeInfo
- Returns:
- the set of virtual bases
-
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
-
getBaseKeys
-
getBaseModel
public ghidra.app.cmd.data.rtti.Rtti1Model getBaseModel()- Specified by:
getBaseModel
in interfaceVsClassTypeInfo
-
getBaseClassArray
public ghidra.app.cmd.data.rtti.Rtti2Model getBaseClassArray()- Specified by:
getBaseClassArray
in interfaceVsClassTypeInfo
-
getHierarchyDescriptor
public ghidra.app.cmd.data.rtti.Rtti3Model getHierarchyDescriptor()- Specified by:
getHierarchyDescriptor
in interfaceVsClassTypeInfo
-
getBaseCount
-
updateRecord
-
getBaseKeys
protected long[] getBaseKeys()- Specified by:
getBaseKeys
in classAbstractClassTypeInfoDB
-
getOffsets
protected int[] getOffsets()- Specified by:
getOffsets
in classAbstractClassTypeInfoDB
-
refresh
- Overrides:
refresh
in classAbstractClassTypeInfoDB
-
getNamespace
Description copied from interface:TypeInfo
Gets the namespace for this TypeInfo- Specified by:
getNamespace
in interfaceTypeInfo
- Returns:
- the TypeInfo's namespace
-
getPureVirtualFunctionName
- Specified by:
getPureVirtualFunctionName
in classAbstractClassTypeInfoDB
-
getClassBuilder
- Specified by:
getClassBuilder
in classAbstractClassTypeInfoDB
-
fillModelData
- Specified by:
fillModelData
in classAbstractClassTypeInfoDB
-
getTypeDescriptor
- Specified by:
getTypeDescriptor
in interfaceVsClassTypeInfo
-
fillModelData
- Specified by:
fillModelData
in classAbstractClassTypeInfoDB
-