9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package java.lang.foreign;
27
28 import jdk.internal.foreign.layout.PaddingLayoutImpl;
29 import jdk.internal.javac.PreviewFeature;
30
31 /**
32 * A padding layout. A padding layout specifies the size of extra space which is typically not accessed by applications,
33 * and is typically used for aligning member layouts around word boundaries.
34 *
35 * @implSpec
36 * Implementing classes are immutable, thread-safe and <a href="{@docRoot}/java.base/java/lang/doc-files/ValueBased.html">value-based</a>.
37 *
38 * @since 20
39 */
40 @PreviewFeature(feature=PreviewFeature.Feature.FOREIGN)
41 public sealed interface PaddingLayout extends MemoryLayout permits PaddingLayoutImpl {
42
43 /**
44 * {@inheritDoc}
45 */
46 @Override
47 PaddingLayout withName(String name);
48
49 /**
50 * {@inheritDoc}
51 */
52 @Override
53 PaddingLayout withoutName();
54
55 /**
56 * {@inheritDoc}
57 * @throws IllegalArgumentException {@inheritDoc}
58 */
59 PaddingLayout withByteAlignment(long byteAlignment);
60 }
|
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package java.lang.foreign;
27
28 import jdk.internal.foreign.layout.PaddingLayoutImpl;
29
30 /**
31 * A padding layout. A padding layout specifies the size of extra space which is typically not accessed by applications,
32 * and is typically used for aligning member layouts around word boundaries.
33 *
34 * @implSpec
35 * Implementing classes are immutable, thread-safe and <a href="{@docRoot}/java.base/java/lang/doc-files/ValueBased.html">value-based</a>.
36 *
37 * @since 22
38 */
39 public sealed interface PaddingLayout extends MemoryLayout permits PaddingLayoutImpl {
40
41 /**
42 * {@inheritDoc}
43 */
44 @Override
45 PaddingLayout withName(String name);
46
47 /**
48 * {@inheritDoc}
49 */
50 @Override
51 PaddingLayout withoutName();
52
53 /**
54 * {@inheritDoc}
55 * @throws IllegalArgumentException {@inheritDoc}
56 */
57 PaddingLayout withByteAlignment(long byteAlignment);
58 }
|