java.lang.Object
jdk.incubator.foreign.ValueLayout
- すべての実装されたインタフェース:
Constable
,MemoryLayout
public final class ValueLayout extends Object implements MemoryLayout
値レイアウト。 値レイアウトは、「整数」タイプの(署名済または未署名)やfloating-pointタイプなど、基本データ型の値に関連付けられたメモリー・レイアウトをモデル化するために使用します。 各値レイアウトには、サイズとバイト順序(
ByteOrder
を参照してください)があります。
これはvalue-basedクラスで、ValueLayout
のインスタンスでアイデンティティに依存する操作(参照の等価性の(==
)、アイデンティティ・ハッシュ・コード、同期化など)を使用すると、予測できない結果が生じる可能性があるため、使用しないでください。 比較する場合は、equals
メソッドを使用することをお薦めします。
- 実装要件:
- このクラスは不変でスレッドセーフです。
-
ネストされたクラスのサマリー
インタフェースjdk.incubator.foreign.MemoryLayoutで宣言されたネストされたクラス/インタフェース
MemoryLayout.PathElement
-
フィールドのサマリー
インタフェースjdk.incubator.foreign.MemoryLayoutで宣言されているフィールド
LAYOUT_NAME
-
メソッドのサマリー
修飾子と型 メソッド 説明 Optional<Constable>
attribute(String name)
指定された名前の(それが存在する場合)の属性を返します。Stream<String>
attributes()
このレイアウトに関連付けられた属性名のストリームを返します。long
bitAlignment()
このレイアウトに関連付けられている配置制約をビット単位で返します。long
bitSize()
レイアウト・サイズをビット単位で計算します。Optional<DynamicConstantDesc<ValueLayout>>
describeConstable()
boolean
hasSize()
このレイアウトには指定されたサイズがありますか?boolean
isPadding()
これはパディング・レイアウト(例:MemoryLayout.ofPaddingBits(long)
から作成されたレイアウト)ですか。Optional<String>
name()
このレイアウトに関連するname (もしあれば)を返します。ByteOrder
order()
値バイト順を返します。ValueLayout
withAttribute(String name, Constable value)
このレイアウトと同じ属性と新しく指定された属性を持つ新しいメモリー・レイアウトを返します。ValueLayout
withBitAlignment(long alignmentBits)
目的の位置合せ制約を機能する新しいレイアウトを作成します。ValueLayout
withName(String name)
必要なレイアウトnameが機能する新しいレイアウトを作成します。ValueLayout
withOrder(ByteOrder order)
指定されたバイト順で新しい値レイアウトを返します。クラス java.lang.Objectで宣言されたメソッド
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
インタフェースjdk.incubator.foreign.MemoryLayoutで宣言されたメソッド
attribute, attributes, bitAlignment, bitOffset, bitSize, byteAlignment, byteOffset, byteSize, equals, hashCode, hasSize, isPadding, map, name, select, toString, varHandle
-
メソッドの詳細
-
order
public ByteOrder order()値バイト順を返します。- 戻り値:
- 値バイト順。
-
withOrder
public ValueLayout withOrder(ByteOrder order)指定されたバイト順で新しい値レイアウトを返します。- パラメータ:
order
- 必要なバイト順。- 戻り値:
- 指定されたバイト順で、新規の値レイアウト。
-
describeConstable
public Optional<DynamicConstantDesc<ValueLayout>> describeConstable()インタフェースからコピーされた説明:MemoryLayout
- 定義:
- インタフェース
Constable
内のdescribeConstable
- 定義:
- インタフェース
MemoryLayout
内のdescribeConstable
- 戻り値:
- 最終的な名目記述子を含む
Optional
、または作成できない場合は空のOptional
。
-
withName
public ValueLayout withName(String name)必要なレイアウトnameが機能する新しいレイアウトを作成します。これは次のコードと等価です。
withAttribute(LAYOUT_NAME, name);
- 定義:
- インタフェース
MemoryLayout
内のwithName
- パラメータ:
name
- レイアウト名。- 戻り値:
- 関連付けられたnameを除き、このレイアウトと同じ新しいレイアウト。
- 関連項目:
MemoryLayout.name()
-
withBitAlignment
public ValueLayout withBitAlignment(long alignmentBits)目的の位置合せ制約を機能する新しいレイアウトを作成します。- 定義:
- インタフェース
MemoryLayout
内のwithBitAlignment
- パラメータ:
alignmentBits
- レイアウト位置合せ制約。ビットで表されます。- 戻り値:
- このレイアウトと同じ新しいレイアウト。ただし、関連付けられている位置合せ制約を除きます。
-
withAttribute
public ValueLayout withAttribute(String name, Constable value)このレイアウトと同じ属性と新しく指定された属性を持つ新しいメモリー・レイアウトを返します。 このレイアウトに同じ名前の属性がすでに含まれている場合は、返されるレイアウトで既存の属性値が上書きされます。- 定義:
- インタフェース
MemoryLayout
内のwithAttribute
- パラメータ:
name
- 属性名value
- 属性値- 戻り値:
- このレイアウトと同じ属性と新しく指定された属性を備えた新しいメモリー・レイアウト。
-
name
インタフェースからコピーされた説明:MemoryLayout
このレイアウトに関連するname (もしあれば)を返します。これは次のコードと等価です。
attribute(LAYOUT_NAME).map(String.class::cast);
- 定義:
- インタフェース
MemoryLayout
内のname
- 戻り値:
- レイアウトname (もしあれば)。
- 関連項目:
MemoryLayout.withName(String)
-
属性
インタフェースからコピーされた説明:MemoryLayout
指定された名前の(それが存在する場合)の属性を返します。- 定義:
- インタフェース
MemoryLayout
内のattribute
- パラメータ:
name
- 属性名- 戻り値:
- 指定された名前の(それが存在する場合)の属性。
-
attributes
インタフェースからコピーされた説明:MemoryLayout
このレイアウトに関連付けられた属性名のストリームを返します。- 定義:
- インタフェース
MemoryLayout
内のattributes
- 戻り値:
- このレイアウトに関連付けられた属性名のストリーム。
-
bitAlignment
public final long bitAlignment()インタフェースからコピーされた説明:MemoryLayout
このレイアウトに関連付けられている配置制約をビット単位で返します。 レイアウトの位置合せにより、レイアウトのビット単位の位置合せである2つのA
の機能が定義されます。A <= 8
の場合、A/8
は、このレイアウトを適切にポイントするポインタに対して整列する必要があるバイト数です。 このため、:A=8
では、すべての(通常の意味で)がパケットで共有されないことを意味します。A=64
は、aligned (on LP64)、A=32
int aligned、A=16
short alignedなどの単語を意味します。A=512
は、x86/SV ABI (AVX-512データ)で必要とされる最も厳密な位置合せです。
MemoryLayout.withBitAlignment(long)
を参照してください)に明示的な位置合せ制約が設定されていない場合、このメソッドはこのレイアウトに関連付けられた「自然整列」制約(ビット単位)を返します。- 定義:
- インタフェース
MemoryLayout
内のbitAlignment
- 戻り値:
- レイアウト位置合せ制約をビット単位で指定します。
-
hasSize
public boolean hasSize()インタフェースからコピーされた説明:MemoryLayout
このレイアウトには指定されたサイズがありますか? レイアウトが(次を含む)でサイズが未指定の(SequenceLayout.elementCount()
を参照してください)の順序レイアウトである場合、そのレイアウトには指定されたサイズがありません。 値レイアウト(ValueLayout
を参照してください)およびパディングのレイアウト(MemoryLayout.ofPaddingBits(long)
を参照してください) alwaysには指定されたサイズがあるため、このメソッドは常にtrue
を返します。- 定義:
- インタフェース
MemoryLayout
内のhasSize
- 戻り値:
- このレイアウトが指定されたサイズの場合、
true
。
-
bitSize
public long bitSize()インタフェースからコピーされた説明:MemoryLayout
レイアウト・サイズをビット単位で計算します。- 定義:
- インタフェース
MemoryLayout
内のbitSize
- 戻り値:
- レイアウトのサイズ(ビット単位)。
-
isPadding
public boolean isPadding()インタフェースからコピーされた説明:MemoryLayout
これはパディング・レイアウト(例:MemoryLayout.ofPaddingBits(long)
から作成されたレイアウト)ですか。- 定義:
- インタフェース
MemoryLayout
内のisPadding
- 戻り値:
- このレイアウトがパディング・レイアウトの場合はtrue。
-