Class DynamicDataType

    • Constructor Detail

      • DynamicDataType

        protected DynamicDataType​(java.lang.String name)
      • DynamicDataType

        protected DynamicDataType​(java.lang.String name,
                                  DataTypeManager dtm)
      • DynamicDataType

        protected DynamicDataType​(CategoryPath path,
                                  java.lang.String name)
    • Method Detail

      • canSpecifyLength

        public final boolean canSpecifyLength()
        Description copied from interface: Dynamic
        Returns true if a user-specified length can be used
        Specified by:
        canSpecifyLength in interface Dynamic
      • getNumComponents

        public final int getNumComponents​(MemBuffer buf)
        Gets the number of component data types in this data type.
        Parameters:
        buf - a membuffer to be used by dataTypes that change depending on their data context. A null value is acceptable to indicate that a memory context is not available. DataTypes that need a context will return -1 if the context is null.
        Returns:
        the number of components that make up this data prototype - if this is an Array, return the number of elements in the array. - if this datatype is a subcomponent of another datatype and it won't fit in it's defined space, return -1.
      • getComponent

        public final DataTypeComponent getComponent​(int index,
                                                    MemBuffer buf)
        Returns the immediate n'th component of this data type.
        Parameters:
        index - the components index (zero based).
        buf - a membuffer to be used by dataTypes that change depending on their data context. A null value is acceptable to indicate that a memory context is not available. DataTypes that need a context will return -1 if the context is null.
        Returns:
        the component data type or null if there is no component at the indicated index.
      • getComponents

        public final DataTypeComponent[] getComponents​(MemBuffer buf)
        Returns an array of DataTypes that make up this data type. Could return null if there are no subcomponents. If this is an Array, then only one element will be returned which is the Data Prototype for the elements in the array. Will return null if this is a subcomponent that doesn't fit in it's alloted space.
        Parameters:
        buf - a membuffer to be used by dataTypes that change depending on their data context. A null value is acceptable to indicate that a memory context is not available. DataTypes that need a context will return -1 if the context is null.
      • getComponentAt

        public final DataTypeComponent getComponentAt​(int offset,
                                                      MemBuffer buf)
        Returns the component containing the byte at the given offset
        Parameters:
        offset - the offset into the dataType
        buf - the memoryBuffer containing the bytes.
        Returns:
        the component containing the byte at the given offset
      • getLength

        public final 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.
      • getLength

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

        public void invalidateCache()
      • 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