インタフェースMemoryLayout.PathElement

含まれているインタフェース:
MemoryLayout

public static sealed interface MemoryLayout.PathElement
レイアウト・パス内の要素。 パス要素には次の3種類があります:
  • 「グループ・パスの要素」。名前または索引によって、GroupLayout内のメンバー・レイアウトを選択するために使用します。
  • 「順序パスの要素」SequenceLayout内で1つ以上の順序要素のレイアウトを選択するために使用します。
  • 「パス要素を間接参照」。アドレス・レイアウトをターゲット・レイアウトとして「参照解除」するために使用されます。
複数のシーケンス要素レイアウトを選択するシーケンス・パス要素は、「オープン・パス要素」と呼ばれます。 オープン・パス要素のsizeによって、選択できる要素レイアウトの数が決まります。
実装要件:
このインタフェースの実装は不変、スレッド・セーフ、およびvalue-basedです。
導入されたバージョン:
22
  • メソッドの詳細

    • groupElement

      static MemoryLayout.PathElement groupElement(String name)
      グループ・レイアウト内で指定された名前のメンバー・レイアウトを選択するパス要素を返します。
      実装要件:
      一致する名前を持つ複数のグループ要素が存在する場合は、このメソッドによって返されるパス要素が最初の要素を選択します。つまり、現在のパスから最も低いオフセットを持つグループ要素が選択されます。 このような場合は、groupElement(long)を使用することをお勧めします。
      パラメータ:
      name - 選択するメンバー・レイアウトの名前
      戻り値:
      グループ・レイアウト内の指定された名前のメンバー・レイアウトを選択するパス要素
    • groupElement

      static MemoryLayout.PathElement groupElement(long index)
      グループ・レイアウト内の指定された索引を持つメンバー・レイアウトを選択するパス要素を返します。
      パラメータ:
      index - 選択するメンバー・レイアウト要素の索引
      戻り値:
      グループ・レイアウト内の指定された索引を持つメンバー・レイアウトを選択するパス要素
      例外:
      IllegalArgumentException - index < 0の場合
    • sequenceElement

      static MemoryLayout.PathElement sequenceElement(long index)
      シーケンス・レイアウトで指定した索引の要素レイアウトを選択するパス要素を返します。
      パラメータ:
      index - 選択する順序要素の索引
      戻り値:
      順序レイアウトで指定した索引の要素レイアウトを選択するパス要素
      例外:
      IllegalArgumentException - index < 0の場合
    • sequenceElement

      static MemoryLayout.PathElement sequenceElement(long start, long step)
      シーケンス・レイアウト内の位置の「範囲」内の要素レイアウトを選択する「オープン・パス要素」を返します。 範囲は、開始索引(包含) Sとステップ係数(負の値を指定することもできます) Fのペアとして表されます。

      このレイアウトで選択された正確な順序要素は、索引Iとして表されます。 Cが順序要素の数である場合、0 <= I < Bに従います。ここで、Bは次のように計算されます:

      • F > 0の場合、B = ceilDiv(C - S, F)
      • F < 0の場合、B = ceilDiv(-(S + 1), -F)
      つまり、返されるオープン・パス要素のサイズはBです。

      パラメータ:
      start - 選択する最初のシーケンス要素の索引
      step - サブシーケンス・ファクタが選択されるステップ係数
      戻り値:
      指定された索引で順序要素のレイアウトを選択するパス要素。
      例外:
      IllegalArgumentException - start < 0またはstep == 0の場合
    • sequenceElement

      static MemoryLayout.PathElement sequenceElement()
      シーケンス・レイアウトで未指定の要素レイアウトを選択する「オープン・パス要素」を返します。

      このレイアウトで選択された正確な順序要素は、索引Iとして表されます。 Cがシーケンス要素数の場合、0 <= I < Cに従います。 つまり、Cは、返されるオープン・パス要素のサイズです。

      戻り値:
      順序レイアウトで未指定の要素レイアウトを選択する「オープン・パス要素」
    • dereferenceElement

      static MemoryLayout.PathElement dereferenceElement()
      アドレス・レイアウトを「ターゲット・レイアウト」 (場所セット)として間接参照するパス要素を返します。
      戻り値:
      アドレス・レイアウトを「ターゲット・レイアウト」 (場所セット)として間接参照するパス要素