Class AbstractLeb128DataType

    • Field Detail

      • MAX_LEB128_ENCODED_VALUE_LEN

        public static final int MAX_LEB128_ENCODED_VALUE_LEN
        The maximum length in bytes of a leb128 data type.
        See Also:
        Constant Field Values
    • Constructor Detail

      • AbstractLeb128DataType

        public AbstractLeb128DataType​(java.lang.String name,
                                      boolean signed,
                                      DataTypeManager dtm)
        Base constructor for a little endian based 128 data type.
        Parameters:
        name - name of the leb128 data type that extends this class.
        signed - true if it is signed. false if unsigned.
        dtm - the data type manager to associate with this data type.
    • Method Detail

      • getBuiltInSettingsDefinitions

        protected SettingsDefinition[] getBuiltInSettingsDefinitions()
        Description copied from class: BuiltIn
        Gets a list of all the settingsDefinitions used by this datatype.
        Overrides:
        getBuiltInSettingsDefinitions in class BuiltIn
        Returns:
        a list of the settingsDefinitions used by this datatype.
      • getDescription

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

        public int getLength​(MemBuffer buf,
                             int maxLength)
        Description copied from interface: Dynamic
        Compute the length for this data-type which corresponds to the specified memory location.
        Specified by:
        getLength in interface Dynamic
        Parameters:
        buf - memory location
        maxLength - maximum number of bytes to consume in computing length, or -1 for unspecified.
        Returns:
        data length or -1 if it could not be determined. Returned length may exceed maxLength if data-type does not supported constrained lengths.
      • getValue

        public java.lang.Object getValue​(MemBuffer buf,
                                         Settings settings,
                                         int length)
        Description copied from interface: DataType
        Get the data in the form of the appropriate Object for this DataType.

        For instance if the datatype is an AddressDT, return an Address object. a Byte, return a Scalar* (maybe this should be a Byte) a Float, return a Float

        Specified by:
        getValue in interface DataType
        Parameters:
        buf - the data buffer.
        settings - the settings to use.
        length - the number of bytes to get the value from.
        Returns:
        the data Object.
      • getRepresentation

        public java.lang.String getRepresentation​(MemBuffer buf,
                                                  Settings settings,
                                                  int length)
        Description copied from interface: DataType
        Get bytes from memory in a printable format for this type.
        Specified by:
        getRepresentation in interface DataType
        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.
      • getReplacementBaseType

        public DataType getReplacementBaseType()
        Description copied from interface: Dynamic
        Returns a suitable replacement base data-type for pointers and arrays when exporting to C code
        Specified by:
        getReplacementBaseType in interface Dynamic
        Returns:
        suitable base data-type for this Dynamic data-type
      • canSpecifyLength

        public boolean canSpecifyLength()
        Description copied from interface: Dynamic
        Determine if the length may be specified for an instanceof this datatype (e.g., Data, Array, DataTypeComponent, etc.).
        Specified by:
        canSpecifyLength in interface Dynamic
        Returns:
        true if a user-specified length can be used, else false