Class RTTI3DataType

  • All Implemented Interfaces:
    BuiltInDataType, DataType, Dynamic, ExtensionPoint, java.util.EventListener, javax.swing.event.ChangeListener

    @Deprecated
    public class RTTI3DataType
    extends RTTIDataType
    Deprecated.
    Use of this dynamic data type class is no longer recommended. Instead a ClassHierarchyDescriptor structure data type can be obtained using the Rtti3Model.
    The RTTI3 data type represents a ClassHierarchyDescriptor structure.

    Fields for this RunTimeTypeInformation structure can be found on http://www.openrce.org

     struct ClassHierarchyDescriptor {
         dword signature;
         dword attributes;                  // bit flags
         dword numBaseClasses;              // count of RTTI 1 ref entries in RTTI 2 array
         4byte_ptr_or_disp pBaseClassArray; // ref to BaseClassArray (RTTI 2)
     }
     

    RTTI_Class_Hierarchy_Descriptor is the label for the RTTI3 data structure.

    • Constructor Detail

      • RTTI3DataType

        public RTTI3DataType()
        Deprecated.
        Creates a dynamic Class Hierarchy Descriptor data type.
      • RTTI3DataType

        public RTTI3DataType​(DataTypeManager dtm)
        Deprecated.
        Creates a dynamic Class Hierarchy Descriptor data type.
        Parameters:
        dtm - the data type manager for this data type.
    • Method Detail

      • clone

        public DataType clone​(DataTypeManager dtm)
        Deprecated.
        Description copied from interface: DataType
        Returns a new instance of this DataType with its universalID and SourceArchive identity retained. Note: for built-in DataType's, clone and copy should have the same affect.
        Parameters:
        dtm - the data-type manager instance whose data-organization should apply.
      • getDescription

        public java.lang.String getDescription()
        Deprecated.
        Description copied from interface: DataType
        Get a String briefly describing this DataType.
        Returns:
        a one-liner describing this DataType.
      • getLength

        public int getLength()
        Deprecated.
        Description copied from interface: DataType
        Get the length (number of 8-bit bytes) of this DataType.
        Specified by:
        getLength in interface DataType
        Overrides:
        getLength in class DynamicDataType
        Returns:
        the length of this DataType
      • getRepresentation

        public java.lang.String getRepresentation​(MemBuffer buf,
                                                  Settings settings,
                                                  int length)
        Deprecated.
        Description copied from interface: DataType
        Get bytes from memory in a printable format for this type.
        Parameters:
        buf - the data.
        settings - the settings to use for the representation.
        length - the number of bytes to represent.
        Returns:
        the representation of the data in this format, never null.
      • getValue

        public java.lang.Object getValue​(MemBuffer buf,
                                         Settings settings,
                                         int length)
        Deprecated.
        Description copied from interface: DataType
        Get the data in the form of the appropriate Object for this DataType. For instance if the data type is an AddressDT, return an Address object. a Byte, return a Scalar* (maybe this should be a Byte) a Float, return a Float
        Parameters:
        buf - the data buffer.
        settings - the settings to use.
        length - the number of bytes to get the value from.
        Returns:
        the data Object.
      • getLength

        public int getLength​(Memory memory,
                             Address address,
                             byte[] bytes)
        Deprecated.
        Gets the total length of the data created when this data type is placed at the indicated address in memory.
        Parameters:
        memory - the program memory for this data.
        address - the start address of the data.
        bytes - the bytes for this data.
        Returns:
        the length of the data. zero is returned if valid data can't be created at the indicated address using this data type.
      • getRtti1Count

        public long getRtti1Count​(Memory memory,
                                  Address rtti3Address)
        Deprecated.
        Gets the number of RTTI1 structures that are referred to by an RTTI3 structure being placed at the rtti3Address of the indicated memory.
        Parameters:
        memory - the memory with the data for the RTTI structures.
        rtti3Address - address of an RTTI3 structure
        Returns:
        the RTTI1 count or 0.
      • getRtti2Address

        public Address getRtti2Address​(Memory memory,
                                       Address rtti3Address)
        Deprecated.
        Gets the address of the RTTI2 that is referred to from an RTTI3 structure that is placed at the indicated address.
        Parameters:
        memory - the memory with the data for the RTTI structures.
        rtti3Address - address of an RTTI3 structure
        Returns:
        the address of the RTTI2 structure or null.
      • isValid

        public boolean isValid​(Program program,
                               Address startAddress,
                               DataValidationOptions validationOptions)
        Deprecated.
        Description copied from class: RTTIDataType
        Determines if the data type is valid for placing at the indicated address in the program.
        Specified by:
        isValid in class RTTIDataType
        Parameters:
        program - the program
        startAddress - the address where the validated data type will be used to create data
        validationOptions - options indicating how to perform the validation
        Returns:
        true if this data type can be laid down at the specified address
      • getDefaultLabelPrefix

        public java.lang.String getDefaultLabelPrefix()
        Deprecated.
        Description copied from interface: DataType
        Returns the appropriate string to use as the default label prefix in the absence of any data.
        Specified by:
        getDefaultLabelPrefix in interface DataType
        Overrides:
        getDefaultLabelPrefix in class AbstractDataType
        Returns:
        the default label prefix or null if none specified.