- すべてのスーパー・インタフェース:
Addressable
- 含まれているインタフェース:
- CLinker
va_listをモデル化するインタフェース。
vaリストは、一連の可変引数の反復処理に使用されるステートフル・カーソルです。
C仕様の(C標準の6.5.2.2ファンクション・コールを参照 - アイテム6)では、可変呼出しの引数は'デフォルトの引数プロモーション'を介して消去されます。これにより、整数昇格(C標準6.3.1.1を参照 - アイテム2)を介して整数型が消去され、doubleに対するすべてのfloat引数が消去されます。
そのため、このインタフェースでは、int、doubleおよびlongに適合するその他のタイプの読取りのみがサポートされます。
特に指定がないかぎり、null引数、またはこのクラスのメソッドに1つ以上のnull要素を含む配列引数を渡すと、NullPointerExceptionがスローされます。
-
ネストされたクラスのサマリー
ネストされたクラス -
メソッドのサマリー
修飾子と型メソッド説明address()このインスタンスに関連付けられたCva_listのメモリー・アドレスを返します。copy()このCva_listを現在の位置にコピーします。static CLinker.VaListempty()空のCva_list定数を返します。static CLinker.VaListmake(Consumer<CLinker.VaList.Builder> actions, ResourceScope scope) 特定の「リソース・スコープ」に関連付けられたビルダー(CLinker.VaList.Builderを参照してください)を使用して、新しいVaListを作成します。static CLinker.VaListofAddress(MemoryAddress address) 「グローバル」リソース・スコープによって支えられた既存のCva_listを指すメモリー・アドレスから新しいVaListインスタンスを構築します。static CLinker.VaListofAddress(MemoryAddress address, ResourceScope scope) 指定されたリソース・スコープを持つ既存のCva_listを指し示すメモリー・アドレスから新しいVaListインスタンスを構築します。scope()このインスタンスに関連付けられたリソース・スコープを返します。voidskip(MemoryLayout... layouts) 指定されたメモリー・レイアウトのいくつかの要素をスキップし、このvaリストの位置を進めます。vargAsAddress(MemoryLayout layout) 次の値をMemoryAddressとして読み取り、このvaリストの位置を進めます。doublevargAsDouble(MemoryLayout layout) 次の値をdoubleとして読み取り、このvaリストの位置を進めます。intvargAsInt(MemoryLayout layout) 次の値をintとして読み取り、このvaリストの位置を進めます。longvargAsLong(MemoryLayout layout) 次の値をlongとして読み取り、このvaリストの位置を進めます。vargAsSegment(MemoryLayout layout, ResourceScope scope) 次の値をMemorySegmentとして読み取り、このvaリストの位置を進めます。vargAsSegment(MemoryLayout layout, SegmentAllocator allocator) 次の値をMemorySegmentとして読み取り、このvaリストの位置を進めます。
-
メソッドの詳細
-
vargAsInt
int vargAsInt(MemoryLayout layout) 次の値をintとして読み取り、このvaリストの位置を進めます。- パラメータ:
layout- 値のレイアウト- 戻り値:
intとして読み取られた値- throws:
IllegalStateException- このインスタンスに関連付けられているリソース・スコープが(scope()を参照してください)をクローズした場合。IllegalArgumentException- 指定されたメモリー・レイアウトがintと互換性がない場合
-
vargAsLong
long vargAsLong(MemoryLayout layout) 次の値をlongとして読み取り、このvaリストの位置を進めます。- パラメータ:
layout- 値のレイアウト- 戻り値:
longとして読み取られた値- throws:
IllegalStateException- このインスタンスに関連付けられているリソース・スコープが(scope()を参照してください)をクローズした場合。IllegalArgumentException- 指定されたメモリー・レイアウトがlongと互換性がない場合
-
vargAsDouble
double vargAsDouble(MemoryLayout layout) 次の値をdoubleとして読み取り、このvaリストの位置を進めます。- パラメータ:
layout- 値のレイアウト- 戻り値:
doubleとして読み取られた値- throws:
IllegalStateException- このインスタンスに関連付けられているリソース・スコープが(scope()を参照してください)をクローズした場合。IllegalArgumentException- 指定されたメモリー・レイアウトがdoubleと互換性がない場合
-
vargAsAddress
MemoryAddress vargAsAddress(MemoryLayout layout) 次の値をMemoryAddressとして読み取り、このvaリストの位置を進めます。- パラメータ:
layout- 値のレイアウト- 戻り値:
MemoryAddressとして読み取られた値- throws:
IllegalStateException- このインスタンスに関連付けられているリソース・スコープが(scope()を参照してください)をクローズした場合。IllegalArgumentException- 指定されたメモリー・レイアウトがMemoryAddressと互換性がない場合
-
vargAsSegment
MemorySegment vargAsSegment(MemoryLayout layout, SegmentAllocator allocator) 次の値をMemorySegmentとして読み取り、このvaリストの位置を進めます。このメソッドによって返されるメモリー・セグメントは、指定された
SegmentAllocatorを使用して割り当てられます。- パラメータ:
layout- 値のレイアウトallocator- ネイティブ・セグメント割当てに使用されるロケータ- 戻り値:
MemorySegmentとして読み取られた値- throws:
IllegalStateException- このインスタンスに関連付けられているリソース・スコープが(scope()を参照してください)をクローズした場合。IllegalArgumentException- 指定されたメモリー・レイアウトがMemorySegmentと互換性がない場合
-
vargAsSegment
MemorySegment vargAsSegment(MemoryLayout layout, ResourceScope scope) 次の値をMemorySegmentとして読み取り、このvaリストの位置を進めます。このメソッドによって返されるメモリー・セグメントは、指定された
ResourceScopeに関連付けられます。- パラメータ:
layout- 値のレイアウトscope- 返されるセグメントに関連付けるリソース・スコープ- 戻り値:
MemorySegmentとして読み取られた値- throws:
IllegalStateException- このインスタンスに関連付けられているリソース・スコープが(scope()を参照してください)をクローズした場合。IllegalArgumentException- 指定されたメモリー・レイアウトがMemorySegmentと互換性がない場合IllegalStateException-scopeがすでにクローズされている場合、またはscopeを所有するスレッド以外のスレッドからアクセスが発生した場合。
-
skip
void skip(MemoryLayout... layouts) 指定されたメモリー・レイアウトのいくつかの要素をスキップし、このvaリストの位置を進めます。- パラメータ:
layouts- 値のレイアウト- throws:
IllegalStateException- このインスタンスに関連付けられているリソース・スコープが(scope()を参照してください)をクローズした場合。
-
scope
ResourceScope scope()このインスタンスに関連付けられたリソース・スコープを返します。- 戻り値:
- このインスタンスに関連付けられているリソース・スコープ。
-
copy
CLinker.VaList copy()このCva_listを現在の位置にコピーします。 コピーは、元のvaリストの状態に影響を与えずに、現在の位置からvaリスト要素をトラバースする場合に便利で、基本的に要素を複数回トラバースできます。このメソッドの実行に必要なネイティブ・リソースは、このインスタンス(
scope()を参照してください)に関連付けられたリソース・スコープに割り当てられます。このメソッドは、vaリスト・カーソル自体のみをコピーし、その要素を保持するvaリストにアタッチできるメモリーはコピーしません。 つまり、このvaリストが
make(Consumer, ResourceScope)メソッドで作成された場合、このvaリストを閉じると、その要素を保持するネイティブ・メモリーも解放され、コピーが使用できなくなります。- 戻り値:
- このC
va_listのコピー。 - throws:
IllegalStateException- このインスタンスに関連付けられているリソース・スコープが(scope()を参照してください)をクローズした場合。
-
address
MemoryAddress address()このインスタンスに関連付けられたCva_listのメモリー・アドレスを返します。 返されるメモリー・アドレスは、このインスタンスに関連付けられたものと同じリソース・スコープに関連付けられます。- 定義:
- インタフェース
Addressable内のaddress - 戻り値:
- このインスタンスに関連付けられたC
va_listのメモリー・アドレス。
-
ofAddress
static CLinker.VaList ofAddress(MemoryAddress address) 「グローバル」リソース・スコープによって支えられた既存のCva_listを指すメモリー・アドレスから新しいVaListインスタンスを構築します。このメソッドは「制限付き」です。 制限されたメソッドは安全ではなく、誤って使用するとJVMがクラッシュしたり、悪化したりするとメモリーが破損する可能性があります。 したがって、クライアントは制限付きメソッドに応じて屈折し、可能な場合は安全でサポートされている機能を使用する必要があります。
- パラメータ:
address- 既存のCva_listを指すメモリー・アドレス。- 戻り値:
addressでCva_listによってバックアップされた新しいVaListインスタンス。- throws:
IllegalCallerException- このメソッドへのアクセスがモジュールMから発生し、コマンドライン・オプション--enable-native-accessがない場合、またはモジュール名Mが名前なしモジュールの場合はALL-UNNAMEDは説明しません。
-
ofAddress
static CLinker.VaList ofAddress(MemoryAddress address, ResourceScope scope) 指定されたリソース・スコープを持つ既存のCva_listを指し示すメモリー・アドレスから新しいVaListインスタンスを構築します。このメソッドは「制限付き」です。 制限されたメソッドは安全ではなく、誤って使用するとJVMがクラッシュしたり、悪化したりするとメモリーが破損する可能性があります。 したがって、クライアントは制限付きメソッドに応じて屈折し、可能な場合は安全でサポートされている機能を使用する必要があります。
- パラメータ:
address- 既存のCva_listを指すメモリー・アドレス。scope- 返されるVaListインスタンスに関連付けるリソース・スコープ。- 戻り値:
addressでCva_listによってバックアップされた新しいVaListインスタンス。- throws:
IllegalStateException-scopeがすでにクローズされている場合、またはscopeを所有するスレッド以外のスレッドからアクセスが発生した場合。IllegalCallerException- このメソッドへのアクセスがモジュールMから発生し、コマンドライン・オプション--enable-native-accessがない場合、またはモジュール名Mが名前なしモジュールの場合はALL-UNNAMEDは説明しません。
-
make
static CLinker.VaList make(Consumer<CLinker.VaList.Builder> actions, ResourceScope scope) 特定の「リソース・スコープ」に関連付けられたビルダー(CLinker.VaList.Builderを参照してください)を使用して、新しいVaListを作成します。このメソッドがネイティブ・メモリーを割り当てる必要がある場合、このようなメモリーは指定された「リソース・スコープ」によって管理され、リソース・スコープがclosedのときに解放されます。
作成されたvaリストに要素が追加されていない場合、このメソッドは
empty()と同じものを返します。- パラメータ:
actions- 基礎となるCva_listの要素を指定するために使用できるビルダー(CLinker.VaList.Builderを参照してください)のコンシューマ。scope- 値リストの割当てに使用されるスコープ。- 戻り値:
- 新しいC
va_listによって支えられた新しいVaListインスタンス。 - throws:
IllegalStateException-scopeがすでにクローズされている場合、またはscopeを所有するスレッド以外のスレッドからアクセスが発生した場合。
-
empty
static CLinker.VaList empty()空のCva_list定数を返します。返された
VaListをクローズできません。- 戻り値:
- 空のC
va_listをモデル化するVaList。
-