Class BitFieldPackingImpl

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean equals​(java.lang.Object obj)  
      int getZeroLengthBoundary()
      A non-zero value indicates the fixed alignment size for bit-fields which follow a zero-length bitfield if greater than a bitfields base type normal alignment.
      int hashCode()  
      boolean isTypeAlignmentEnabled()
      Control whether the alignment of bit-field types is respected when laying out structures.
      protected void restoreXml​(XmlPullParser parser)
      Restore settings from a \ tag in an XML stream.
      void saveXml​(java.lang.StringBuilder buffer)
      Write configuration to a stream as an XML \ tag
      void setTypeAlignmentEnabled​(boolean typeAlignmentEnabled)
      Control whether the alignment of bit-field types is respected when laying out structures.
      void setUseMSConvention​(boolean useMSConvention)
      Control if the alignment and packing of bit-fields follows MSVC conventions.
      void setZeroLengthBoundary​(int zeroLengthBoundary)
      Indicate a fixed alignment size in bytes which should be used for zero-length bit-fields.
      boolean useMSConvention()
      Control if the alignment and packing of bit-fields follows MSVC conventions.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • BitFieldPackingImpl

        public BitFieldPackingImpl()
    • Method Detail

      • useMSConvention

        public boolean useMSConvention()
        Description copied from interface: BitFieldPacking
        Control if the alignment and packing of bit-fields follows MSVC conventions. When this is enabled it takes precedence over all other bitfield packing controls.
        Specified by:
        useMSConvention in interface BitFieldPacking
        Returns:
        true if MSVC packing conventions are used, else false (e.g., GNU conventions apply).
      • isTypeAlignmentEnabled

        public boolean isTypeAlignmentEnabled()
        Description copied from interface: BitFieldPacking
        Control whether the alignment of bit-field types is respected when laying out structures. Corresponds to PCC_BITFIELD_TYPE_MATTERS in GCC.
        Specified by:
        isTypeAlignmentEnabled in interface BitFieldPacking
        Returns:
        true when the alignment of the bit-field type should be used to impact the alignment of the containing structure, and ensure that individual bit-fields will not straddle an alignment boundary.
      • getZeroLengthBoundary

        public int getZeroLengthBoundary()
        Description copied from interface: BitFieldPacking
        A non-zero value indicates the fixed alignment size for bit-fields which follow a zero-length bitfield if greater than a bitfields base type normal alignment. Corresponds to EMPTY_FIELD_BOUNDARY in GCC. This value is only used when BitFieldPacking.isTypeAlignmentEnabled() returns false.
        Specified by:
        getZeroLengthBoundary in interface BitFieldPacking
        Returns:
        fixed alignment size as number of bytes for a bit-field which follows a zero-length bit-field
      • setUseMSConvention

        public void setUseMSConvention​(boolean useMSConvention)
        Control if the alignment and packing of bit-fields follows MSVC conventions. When this is enabled it takes precedence over all other bitfield packing controls.
        Parameters:
        useMSConvention - true if MSVC packing conventions are used, else false (e.g., GNU conventions apply).
      • setTypeAlignmentEnabled

        public void setTypeAlignmentEnabled​(boolean typeAlignmentEnabled)
        Control whether the alignment of bit-field types is respected when laying out structures. Corresponds to PCC_BITFIELD_TYPE_MATTERS in gcc.
        Parameters:
        typeAlignmentEnabled - true if the alignment of the bit-field type should be used to impact the alignment of the containing structure, and ensure that individual bit-fields will not straddle an alignment boundary.
      • setZeroLengthBoundary

        public void setZeroLengthBoundary​(int zeroLengthBoundary)
        Indicate a fixed alignment size in bytes which should be used for zero-length bit-fields.
        Parameters:
        zeroLengthBoundary - fixed alignment size as number of bytes for a bit-field which follows a zero-length bit-field. A value of 0 causes zero-length type size to be used.
      • saveXml

        public void saveXml​(java.lang.StringBuilder buffer)
        Write configuration to a stream as an XML \ tag
        Parameters:
        buffer - is the stream to write to
      • restoreXml

        protected void restoreXml​(XmlPullParser parser)
        Restore settings from a \ tag in an XML stream. The XML is designed to override existing settings from the default constructor
        Parameters:
        parser - is the XML stream
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object