Interface BitFieldPacking

All Known Implementing Classes:
BitFieldPackingImpl

public interface BitFieldPacking
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    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.
    default boolean
    Determine if this BitFieldPacking is equivalent to another specified instance
    boolean
    Control whether the alignment of bit-field types is respected when laying out structures.
    boolean
    Control if the alignment and packing of bit-fields follows MSVC conventions.
  • Method Details

    • useMSConvention

      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.
      Returns:
      true if MSVC packing conventions are used, else false (e.g., GNU conventions apply).
    • isTypeAlignmentEnabled

      boolean isTypeAlignmentEnabled()
      Control whether the alignment of bit-field types is respected when laying out structures. Corresponds to PCC_BITFIELD_TYPE_MATTERS in GCC.
      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

      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. Corresponds to EMPTY_FIELD_BOUNDARY in GCC. This value is only used when isTypeAlignmentEnabled() returns false.
      Returns:
      fixed alignment size as number of bytes for a bit-field which follows a zero-length bit-field
    • isEquivalent

      default boolean isEquivalent(BitFieldPacking obj)
      Determine if this BitFieldPacking is equivalent to another specified instance
      Parameters:
      obj - is the other instance
      Returns:
      true if they are equivalent