モジュール jdk.incubator.foreign
パッケージ jdk.incubator.foreign

インタフェースMemoryLayout.PathElement

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

public static interface MemoryLayout.PathElement
このクラスのインスタンスは、レイアウト・パスの形成に使用されます。 パス要素には2種類あります: グループ・パスの要素および順序パスの要素 グループ・パス要素は、GroupLayout内の指定された名前付きメンバーのレイアウトを選択するために使用されます。 順序パス要素は、SequenceLayout内の順序要素レイアウトの選択に使用します。順序要素レイアウトの選択は、explicit (sequenceElement(long)を参照してください)またはimplicit (sequenceElement()を参照してください)です。 パスで1つ以上の暗黙的な順序パス要素を使用する場合、追加の「フリー・ディメンション」が取得されます。

非プラットフォーム・クラスは、MemoryLayout.PathElementを直接実装することはできません。

APIのノート:
将来、Java言語で許可される場合、MemoryLayout.PathElementsealedインタフェースになる可能性があり、明示的に許可されているタイプ以外はサブクラス化できなくなります。
実装要件:
このインタフェースの実装は、不変でスレッド・セーフです。
  • メソッドのサマリー

    静的メソッド
    修飾子と型 メソッド 説明
    static MemoryLayout.PathElement groupElement​(String name)
    指定されたグループ・レイアウトから指定された名前のメンバー・レイアウトを選択するパス要素を返します。
    static MemoryLayout.PathElement sequenceElement()
    指定された順序レイアウトから未指定の要素レイアウトを選択するパス要素を返します。
    static MemoryLayout.PathElement sequenceElement​(long index)
    指定された順序レイアウト内の指定された位置にある要素レイアウトを選択するパス要素を返します。
    static MemoryLayout.PathElement sequenceElement​(long start, long step)
    指定された順序レイアウト内の位置の「範囲」で要素レイアウトを選択するパス要素を返します。この場合の範囲は開始索引(inclusive) Sとステップ・ファクタ(負の値を指定することもできます) Fのペアとして表されます。
  • メソッドの詳細

    • groupElement

      static MemoryLayout.PathElement groupElement​(String name)
      指定されたグループ・レイアウトから指定された名前のメンバー・レイアウトを選択するパス要素を返します。 このメソッドが返すパス要素は、その要素と組み合わされたパスの空きディメンション数を変更しません。
      実装要件:
      名前が一致する複数のグループ要素が存在する場合は、このメソッドによって返されるパス要素は最初の要素を選択します。つまり、現在のパスから最もオフセットが低いグループ要素が選択されます。
      パラメータ:
      name - 選択するグループ要素の名前。
      戻り値:
      指定された名前を持つグループ要素を選択するパス要素。
      例外:
      NullPointerException - 指定されたグループ要素名がnullの場合。
    • sequenceElement

      static MemoryLayout.PathElement sequenceElement​(long index)
      指定された順序レイアウト内の指定された位置にある要素レイアウトを選択するパス要素を返します。 このメソッドが返すパス要素は、その要素と組み合わされたパスの空きディメンション数を変更しません。
      パラメータ:
      index - 選択する順序要素の索引。
      戻り値:
      指定されたインデックスを持つ順序要素レイアウトを選択するパス要素。
      例外:
      IllegalArgumentException - index < 0の場合
    • sequenceElement

      static MemoryLayout.PathElement sequenceElement​(long start, long step)
      指定された順序レイアウト内の位置の「範囲」で要素レイアウトを選択するパス要素を返します。この場合の範囲は開始索引(inclusive) Sとステップ・ファクタ(負の値を指定することもできます) Fのペアとして表されます。 無償ディメンションnとパスがこのメソッドから返されたパス要素と結合されている場合、生成されるパスの空きディメンション数は1 + nになります。 このパスに関連付けられている空きディメンションが索引Iによってバインドされている場合、結果としてアクセスされるオフセットは次の式を使用して取得できます:
      
      E * (S + I * F)
       
      ここで、Eは順序要素レイアウトのサイズ(バイト単位)です。
      パラメータ:
      start - 選択する最初のシーケンス要素のインデックス。
      step - サブ・シーケンス・シーケンス・シーケンス要素が選択されるステップ・ファクタです。
      戻り値:
      指定されたインデックスを持つ順序要素レイアウトを選択するパス要素。
      例外:
      IllegalArgumentException - if start < 0,またはstep == 0
    • sequenceElement

      static MemoryLayout.PathElement sequenceElement()
      指定された順序レイアウトから未指定の要素レイアウトを選択するパス要素を返します。 無償ディメンションnとパスがこのメソッドから返されたパス要素と結合されている場合、生成されるパスの空きディメンション数は1 + nになります。
      戻り値:
      未指定の順序要素レイアウトを選択するパス要素。