Class AbstractClassTypeInfoDB

All Implemented Interfaces:
ClassTypeInfo, TypeInfo
Direct Known Subclasses:
GnuClassTypeInfoDB, VsClassTypeInfoDB

public abstract class AbstractClassTypeInfoDB
extends ClassTypeInfoDB
  • Field Details

  • Constructor Details

  • Method Details

    • getBaseKeys

      protected abstract long[] getBaseKeys()
    • getOffsets

      protected abstract int[] getOffsets()
    • getPureVirtualFunctionName

      protected abstract String getPureVirtualFunctionName()
    • getClassBuilder

      protected abstract AbstractCppClassBuilder getClassBuilder()
    • fillModelData

      protected abstract void fillModelData​(ClassTypeInfoRecord record)
    • fillModelData

      protected abstract void fillModelData​(ClassTypeInfo type, ClassTypeInfoRecord record)
    • encodeAddress

      protected long encodeAddress​(Address addr)
    • decodeAddress

      protected Address decodeAddress​(long addr)
    • getRawType

      protected ClassTypeInfo getRawType()
    • getManager

      public ClassTypeInfoManagerDB getManager()
      Description copied from class: ClassTypeInfoDB
      Gets the manager containing this type
      Specified by:
      getManager in class ClassTypeInfoDB
      Returns:
      the manager containing this type
    • getBaseOffsets

      public Map<ClassTypeInfo,​Integer> getBaseOffsets()
      Description copied from class: ClassTypeInfoDB
      Gets a map of this types bases and offsets
      Specified by:
      getBaseOffsets in class ClassTypeInfoDB
      Returns:
      a map of bases to offsets
    • getClassData

      protected static byte[] getClassData​(ClassTypeInfoRecord record)
    • getIdentifier

      protected static String getIdentifier​(byte id)
    • getVtableSearched

      protected boolean getVtableSearched()
    • getBaseCount

      public static int getBaseCount​(ClassTypeInfoRecord record)
    • getBaseKeys

      public static long[] getBaseKeys​(ClassTypeInfoRecord record)
    • getTypeId

      public AbstractClassTypeInfoDB.TypeId getTypeId()
    • updateKeys

      protected static void updateKeys​(long[] keys, LongIntHashtable keyMap)
    • updateRecord

      public static void updateRecord​(ClassTypeInfoRecord record, LongIntHashtable keyMap)
    • equals

      public boolean equals​(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • refresh

      protected final boolean refresh()
      Specified by:
      refresh in class DatabaseObject
    • refresh

      protected boolean refresh​(DBRecord record)
      Overrides:
      refresh in class DatabaseObject
    • isVtableSearched

      protected boolean isVtableSearched()
    • setVtableSearched

      protected void setVtableSearched()
    • refresh

      protected boolean refresh​(ClassTypeInfoRecord record)
    • getProgram

      public Program getProgram()
    • getName

      public String getName()
      Description copied from interface: TypeInfo
      Gets name for the TypeInfo DataType Model
      Returns:
      the TypeInfo's name
    • getGhidraClass

      public final GhidraClass getGhidraClass()
      Description copied from interface: ClassTypeInfo
      Gets the corresponding Ghidra Class for this TypeInfo and creates it if none exists.
      Returns:
      The class representation of this TypeInfo instance
    • getTypeName

      public String getTypeName()
      Description copied from interface: TypeInfo
      Gets The TypeInfo's typename string
      Returns:
      the TypeInfo's typename
    • getRecord

      protected ClassTypeInfoRecord getRecord()
    • getIdentifier

      public String getIdentifier()
      Description copied from interface: TypeInfo
      Gets The TypeInfo's Identifier String
      Returns:
      the TypeInfo's ID_STRING field
      See Also:
      TypeInfoModel.ID_STRING
    • getDataType

      public DataType getDataType()
      Description copied from interface: TypeInfo
      Gets corresponding structure for this TypeInfo Model
      Returns:
      the type_info or subclasses DataType
    • getAddress

      public Address getAddress()
      Description copied from interface: TypeInfo
      Gets the address of this TypeInfo structure.
      Returns:
      the TypeInfo's address.
    • getVtable

      public Vtable getVtable()
      Description copied from interface: ClassTypeInfo
      Gets the TypeInfo's Vtable Model
      Returns:
      The TypeInfo's Vtable Model or Vtable.NO_VTABLE if none exists
    • setVtable

      public void setVtable​(Vtable vtable)
    • getClassDataType

      public Structure getClassDataType()
      Description copied from interface: ClassTypeInfo
      Gets the underlying structure of the class for this ClassTypeInfo
      Returns:
      the structure datatype for this class
    • refreshDataType

      public void refreshDataType()
    • setClassDataType

      public void setClassDataType​(Structure struct)
    • getClassDataTypeId

      public long getClassDataTypeId()
      Description copied from class: ClassTypeInfoDB
      Gets the id for this type's class data type
      Specified by:
      getClassDataTypeId in class ClassTypeInfoDB
      Returns:
      the class data type's id
    • isAbstract

      public final boolean isAbstract()
      Description copied from interface: ClassTypeInfo
      Determines if the represented class is an abstract base
      Returns:
      true if abstract
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • isModifiable

      public final boolean isModifiable()
      Description copied from class: ClassTypeInfoDB
      Checks if this type is modifiable
      Specified by:
      isModifiable in class ClassTypeInfoDB
      Returns:
      true if this type is modifiable