Buffer クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
特定のプリミティブ型のデータのコンテナー。
[Android.Runtime.Register("java/nio/Buffer", DoNotGenerateAcw=true)]
public abstract class Buffer : Java.Lang.Object
[<Android.Runtime.Register("java/nio/Buffer", DoNotGenerateAcw=true)>]
type Buffer = class
inherit Object
- 継承
- 派生
- 属性
注釈
特定のプリミティブ型のデータのコンテナー。
バッファーは、特定のプリミティブ型の要素の線形有限シーケンスです。 その内容とは別に、バッファーの重要なプロパティは、容量、制限、および位置です。
<blockquote>
バッファーの 容量 は、バッファーに含まれる要素の数です。 バッファーの容量が負になることは決してなく、変更されることもありません。
バッファーの 制限 は、読み取りまたは書き込み禁止の最初の要素のインデックスです。 バッファーの制限は負の値ではなく、容量を超えることはありません。
バッファーの 位置 は、読み取りまたは書き込みされる次の要素のインデックスです。 バッファーの位置は負ではなく、その制限を超えることはありません。
</blockquote>
このクラスには、ブール以外のプリミティブ型ごとに 1 つのサブクラスがあります。
<h2> データ <の転送 /h2>
このクラスの各サブクラスは、get 操作と put 操作の 2 つのカテゴリを定義します。
<blockquote>
相対 操作では、現在の位置から始まる 1 つ以上の要素の読み取りまたは書き込みを行い、転送された要素の数だけ位置をインクリメントします。 要求された転送が制限を超えた場合、相対 get 操作は を BufferUnderflowException
スローし、相対 put 操作は を BufferOverflowException
スローします。いずれの場合も、データは転送されません。
絶対 操作は明示的な要素インデックスを受け取り、位置には影響しません。 インデックス引数が制限を超えた場合、絶対 取得 操作と put 操作は をスロー IndexOutOfBoundsException
します。
</blockquote>
データは、当然ながら、適切なチャネルの I/O 操作によってバッファーに転送されたり、バッファーから転送されたりする場合もあります。これは常に現在の位置に対して相対的です。
<h2> /h2 のマーキングとリセット<>
バッファーの マーク は、メソッドが呼び出されたときに #reset reset
位置がリセットされるインデックスです。 マークは常に定義されるとは限りませんが、定義されている場合、負の値になることはなく、位置よりも大きくはありません。 マークが定義されている場合、位置または制限がマークより小さい値に調整されると、マークは破棄されます。 マークが定義されていない場合、 メソッドInvalidMarkException
を#reset reset
呼び出すと、 がスローされます。
<h2> インバリアント </h2>
マーク、位置、制限、容量の値には、次の不変の保留があります。
<ブロッククォート>0
<=
マーク<=
位置<=
制限<=
容量</ブロッククォート>
新しく作成されたバッファーの位置は常に 0 で、マークは未定義です。 初期制限は 0 である場合もあれば、バッファーの種類とバッファーの構築方法に依存する他の値である場合もあります。 新しく割り当てられたバッファーの各要素は 0 に初期化されます。
<h2 /h2> のクリア、反転、および巻き戻し<>
位置、制限、容量の値にアクセスしたり、マーキングとリセットを行うメソッドに加えて、このクラスではバッファーに対する次の操作も定義します。
<ul>
<李>
#clear
では、チャネル読み取り操作または相対 put 操作の新しいシーケンスに対してバッファーの準備が整います。これにより、容量に制限が設定され、位置が 0 に設定されます。
</李>
<李>
#flip
では、チャネル書き込みまたは相対 取得 操作の新しいシーケンスに対してバッファーの準備が整います。制限を現在の位置に設定し、位置を 0 に設定します。
</李>
<李>
#rewind
は、既に含まれているデータを読み取り直す準備ができているバッファーを作成します。制限は変更されず、位置は 0 に設定されます。
</李>
</ul>
<h2> 読み取り専用バッファー </h2>
すべてのバッファーは読み取り可能ですが、すべてのバッファーが書き込み可能なわけではありません。 各バッファー クラスのミューテーション メソッドは、読み取り専用バッファーで呼び出されたときに をReadOnlyBufferException
スローする省略可能な操作として指定されます。 読み取り専用バッファーでは、コンテンツの変更は許可されませんが、マーク、位置、および制限値は変更可能です。 バッファーが読み取り専用かどうかは、その #isReadOnly isReadOnly
メソッドを呼び出すことによって決定できます。
<h2> スレッド セーフ </h2>
バッファーは、複数の同時実行スレッドで使用しても安全ではありません。 バッファーを複数のスレッドで使用する場合は、バッファーへのアクセスを適切な同期によって制御する必要があります。
<h2> 呼び出しチェーン </h2>
それ以外の場合は、返す値を持たないこのクラスのメソッドは、呼び出されるバッファーを返すために指定されます。 これにより、メソッド呼び出しをチェーンできます。たとえば、ステートメントのシーケンス
<blockquote>
b.flip();
b.position(23);
b.limit(42);
</blockquote>
は、単一の、よりコンパクトなステートメントに置き換えることができます
<blockquote>
b.flip().position(23).limit(42);
</blockquote>
1.4 で追加されました。
このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。
コンストラクター
Buffer(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
プロパティ
Class |
この |
Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
HasArray |
と |
HasRemaining |
現在の位置と制限の間に要素があるかどうかを示します。 |
IsDirect |
直接バッファーの場合は true を返します。 |
IsReadOnly |
このバッファーが読み取り専用かどうかを示します。 |
JniIdentityHashCode |
特定のプリミティブ型のデータのコンテナー。 (継承元 Object) |
JniPeerMembers |
特定のプリミティブ型のデータのコンテナー。 |
PeerReference |
特定のプリミティブ型のデータのコンテナー。 (継承元 Object) |
ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。 |
ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。 |
メソッド
ArrayOffset() |
バッファーの最初の要素のこのバッファーのバッキング配列内のオフセットを返します (省略可能な操作)。 |
Capacity() |
このバッファーの容量を返します。 |
Clear() |
このバッファーをクリアします。 |
Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
Dispose() |
特定のプリミティブ型のデータのコンテナー。 (継承元 Object) |
Dispose(Boolean) |
特定のプリミティブ型のデータのコンテナー。 (継承元 Object) |
Duplicate() |
このバッファーのコンテンツを共有する新しいバッファーを作成します。 |
Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
Flip() |
このバッファーを反転します。 |
GetDirectBufferAddress() |
特定のプリミティブ型のデータのコンテナー。 |
GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
JavaFinalize() |
ガベージ コレクションがオブジェクトへの参照がなくなったと判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
Limit() |
このバッファーの制限を返します。 |
Limit(Int32) |
このバッファーの制限を設定します。 |
Mark() |
このバッファーの位置にマークを設定します。 |
Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドをウェイクアップします。 (継承元 Object) |
NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドをウェイクアップします。 (継承元 Object) |
Position() |
このバッファーの位置を返します。 |
Position(Int32) |
このバッファーの位置を設定します。 |
Remaining() |
現在の位置と制限の間の要素の数を返します。 |
Reset() |
このバッファーの位置を以前にマークされた位置にリセットします。 |
Rewind() |
このバッファーを巻き戻します。 |
SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
Slice() |
コンテンツがこのバッファーのコンテンツの共有サブシーケンスである新しいバッファーを作成します。 |
Slice(Int32, Int32) |
コンテンツがこのバッファーのコンテンツの共有サブシーケンスである新しいバッファーを作成します。 |
ToArray<T>() |
特定のプリミティブ型のデータのコンテナー。 (継承元 Object) |
ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
UnregisterFromRuntime() |
特定のプリミティブ型のデータのコンテナー。 (継承元 Object) |
Wait() |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または <em>割り込み</em によって待機します>。 (継承元 Object) |
Wait(Int64) |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
明示的なインターフェイスの実装
IJavaPeerable.Disposed() |
特定のプリミティブ型のデータのコンテナー。 (継承元 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
特定のプリミティブ型のデータのコンテナー。 (継承元 Object) |
IJavaPeerable.Finalized() |
特定のプリミティブ型のデータのコンテナー。 (継承元 Object) |
IJavaPeerable.JniManagedPeerState |
特定のプリミティブ型のデータのコンテナー。 (継承元 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
特定のプリミティブ型のデータのコンテナー。 (継承元 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
特定のプリミティブ型のデータのコンテナー。 (継承元 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
特定のプリミティブ型のデータのコンテナー。 (継承元 Object) |
拡張メソッド
JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
JavaCast<TResult>(IJavaObject) |
特定のプリミティブ型のデータのコンテナー。 |
GetJniTypeName(IJavaPeerable) |
特定のプリミティブ型のデータのコンテナー。 |