Language

Buffer クラス

定義

特定のプリミティブ型のデータのコンテナー。

[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 つ以上の要素の読み取りまたは書き込みを行い、転送された要素の数だけ位置をインクリメントします。 要求された転送が制限を超えた場合、相対 取得 操作は BufferUnderflowException をスローし、相対 put 操作は BufferOverflowExceptionをスローします。いずれの場合も、データは転送されません。

絶対 操作は明示的な要素インデックスを受け取り、位置には影響しません。 絶対 取得 および 配置 操作では、インデックス引数が制限を超えた場合に IndexOutOfBoundsException がスローされます。

</blockquote>

データは、当然ながら、適切なチャネルの I/O 操作によってバッファーに転送されたり、バッファーから転送されたりする場合もあります。これは、常に現在の位置に対して相対的です。

<h2></h2 のマーキングとリセット>

バッファーの マーク は、 #reset reset メソッドが呼び出されたときに位置がリセットされるインデックスです。 マークは常に定義されるとは限りませんが、定義されている場合は負の値ではなく、位置よりも大きくはありません。 マークが定義されている場合、位置または制限がマークより小さい値に調整されると、マークは破棄されます。 マークが定義されていない場合、 #reset reset メソッドを呼び出すと、 InvalidMarkException がスローされます。

<h2> インバリアント </h2>

マーク、位置、制限、および容量の値に対して、次のインバリアント が保持されます。

<blockquote>0<=mark<=position<=limit<=capacity</blockquote>

新しく作成されたバッファーには、常に 0 の位置と未定義のマークがあります。 初期制限は 0 である場合もあれば、バッファーの型とバッファーの構築方法に依存する他の値である場合もあります。 新しく割り当てられたバッファーの各要素は 0 に初期化されます。

<h2> 追加操作 </h2>

このクラスは、位置、制限、容量の値にアクセスし、マーキングとリセットを行うメソッドに加えて、バッファーに対して次の操作も定義します。

<ul>

<li>

#clear では、チャネル読み取り操作または相対 put 操作の新しいシーケンスに対してバッファーの準備が整います。容量に制限を設定し、位置を 0 に設定します。

</li>

<li>

#flip では、チャネル書き込みまたは相対 取得 操作の新しいシーケンスに対してバッファーの準備が整います。制限を現在の位置に設定し、位置を 0 に設定します。

</li>

<li>

#rewind は、既に格納されているデータを再読み取りするバッファーを作成します。制限は変更されず、位置は 0 に設定されます。

</li>

<li>

#sliceメソッドと#slice(int,int) slice(index,length)メソッドは、バッファーのサブシーケンスを作成します。制限と位置は変更されません。

</li>

<li>

#duplicate はバッファーの浅いコピーを作成します。制限と位置は変更されません。

</li>

</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 で追加されました。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

名前 説明
Buffer(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

プロパティ

名前 説明
Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
HasArray

arrayとarrayOffsetがスローされない場合は true を返します。

HasRemaining

現在の位置と制限の間に要素があるかどうかを示します。

IsDirect

直接バッファーの場合は true を返します。

IsReadOnly

このバッファーが読み取り専用かどうかを示します。

JniIdentityHashCode

相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。

(継承元 Object)
JniManagedPeerState

特定のプリミティブ型のデータのコンテナー。

(継承元 JavaObject)
JniPeerMembers

特定のプリミティブ型のデータのコンテナー。

PeerReference

このJava ピアの JNI オブジェクト参照を取得します。

(継承元 Object)
ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

メソッド

名前 説明
ArrayOffset()

バッファー  の最初の要素のこのバッファーのバッキング配列内のオフセットを返します。 (省略可能な操作)。

Capacity()

このバッファーの容量を返します。

Clear()

このバッファーをクリアします。

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

特定のプリミティブ型のデータのコンテナー。

(継承元 JavaObject)
Dispose()

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
Dispose(Boolean)

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
DisposeUnlessReferenced()

特定のプリミティブ型のデータのコンテナー。

(継承元 JavaObject)
Duplicate()

このバッファーの内容を共有する新しいバッファーを作成します。

Equals(Object)

特定のプリミティブ型のデータのコンテナー。

(継承元 JavaObject)
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)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

特定のプリミティブ型のデータのコンテナー。

(継承元 JavaObject)
Slice()

コンテンツがこのバッファーのコンテンツの共有サブシーケンスである新しいバッファーを作成します。

Slice(Int32, Int32)

コンテンツがこのバッファーのコンテンツの共有サブシーケンスである新しいバッファーを作成します。

ToArray<T>()

このJava配列ラッパーからマネージド配列を作成します。

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
UnregisterFromRuntime()

相互運用ランタイムからこのJava ピアの登録を解除します。

(継承元 Object)
Wait()

現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Wait(Int64)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

名前 説明
IJavaPeerable.Disposed()

特定のプリミティブ型のデータのコンテナー。

(継承元 JavaObject)
IJavaPeerable.Finalized()

特定のプリミティブ型のデータのコンテナー。

(継承元 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

特定のプリミティブ型のデータのコンテナー。

(継承元 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

特定のプリミティブ型のデータのコンテナー。

(継承元 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

特定のプリミティブ型のデータのコンテナー。

(継承元 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

特定のプリミティブ型のデータのコンテナー。

(継承元 JavaObject)

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

特定のプリミティブ型のデータのコンテナー。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象