Buffer Klasse

Definition

Ein Container für Daten eines bestimmten primitiven Typs.

[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
Vererbung
Buffer
Abgeleitet
Attribute

Hinweise

Ein Container für Daten eines bestimmten primitiven Typs.

Ein Puffer ist eine lineare, endliche Sequenz von Elementen eines bestimmten primitiven Typs. Neben dem Inhalt sind die wesentlichen Eigenschaften eines Puffers kapazität, limit und position:

<Blockquote>

Die Kapazität eines Puffers ist die Anzahl der enthaltenen Elemente. Die Kapazität eines Puffers ist nie negativ und ändert sich nie.

Das Limit eines Puffers ist der Index des ersten Elements, das nicht gelesen oder geschrieben werden sollte. Das Limit eines Puffers ist nie negativ und nie größer als seine Kapazität.

Die Position eines Puffers ist der Index des nächsten Elements, das gelesen oder geschrieben werden soll. Die Position eines Puffers ist nie negativ und niemals größer als sein Grenzwert.

</Blockquote>

Es gibt eine Unterklasse dieser Klasse für jeden nicht booleschen primitiven Typ.

<h2> Übertragen von Daten </h2>

Jede Unterklasse dieser Klasse definiert zwei Kategorien von Get- und Put-Vorgängen :

<Blockquote>

Relative Vorgänge lesen oder schreiben ein oder mehrere Elemente ab der aktuellen Position und erhöhen dann die Position um die Anzahl der übertragenen Elemente. Wenn die angeforderte Übertragung den Grenzwert überschreitet, löst ein relativer Get-Vorgang einen BufferUnderflowException aus, und ein relativer Put-Vorgang löst eine aus BufferOverflowException. In beiden Fällen werden keine Daten übertragen.

Absolute Vorgänge verwenden einen expliziten Elementindex und wirken sich nicht auf die Position aus. Absolute Get - und Put-Vorgänge lösen einen aus IndexOutOfBoundsException , wenn das Indexargument den Grenzwert überschreitet.

</Blockquote>

Daten können natürlich auch in oder aus einem Puffer durch die E/A-Vorgänge eines entsprechenden Kanals übertragen werden, die immer relativ zur aktuellen Position sind.

<h2> Markieren und Zurücksetzen <von /h2>

Die Markierung eines Puffers ist der Index, auf den seine Position zurückgesetzt wird, wenn die #reset reset Methode aufgerufen wird. Die Marke ist nicht immer definiert, aber wenn sie definiert ist, ist sie nie negativ und nie größer als die Position. Wenn die Marke definiert ist, wird sie verworfen, wenn die Position oder das Limit auf einen Wert angepasst wird, der kleiner als die Marke ist. Wenn die Markierung nicht definiert ist, wird beim Aufrufen der #reset reset -Methode ein InvalidMarkException ausgelöst.

<h2> Invarianten </h2>

Die folgenden invarianten Werte sind für die Werte "Mark", "Position", "Limit" und "Capacity" enthalten:

<blockquote>&lt;=0mark&lt;=position&lt;=limit&lt;=capacity</blockquote>

Ein neu erstellter Puffer hat immer eine Position von 0 und eine Markierung, die nicht definiert ist. Das anfängliche Limit kann null sein, oder es kann sich um einen anderen Wert handeln, der vom Typ des Puffers und der Art und Weise, in der er erstellt wird, abhängt. Jedes Element eines neu zugeordneten Puffers wird mit null initialisiert.

<h2> Löschen, Kippen und Zurückspulen </h2>

Zusätzlich zu Methoden für den Zugriff auf die Positions-, Grenzwert- und Kapazitätswerte sowie zum Markieren und Zurücksetzen definiert diese Klasse auch die folgenden Vorgänge für Puffer:

<ul>

<Li>

#clearmacht einen Puffer für eine neue Sequenz von Kanallesevorgängen oder relativen Put-Vorgängen bereit: Er legt das Limit auf die Kapazität und die Position auf 0 fest.

</Li>

<Li>

#flipmacht einen Puffer für eine neue Sequenz von Kanalschreibvorgängen oder relativen Get-Vorgängen bereit: Er legt das Limit auf die aktuelle Position fest und legt dann die Position auf 0 fest.

</Li>

<Li>

#rewind macht einen Puffer zum erneuten Lesen der bereits enthaltenen Daten bereit: Er lässt den Grenzwert unverändert und legt die Position auf 0 fest.

</Li>

</ul>

<h2> Schreibgeschützte Puffer </h2>

Jeder Puffer ist lesbar, aber nicht jeder Puffer ist beschreibbar. Die Mutationsmethoden jeder Pufferklasse werden als optionale Vorgänge angegeben, die einen ReadOnlyBufferException auslösen, wenn sie für einen schreibgeschützten Puffer aufgerufen werden. Ein schreibgeschützter Puffer lässt nicht zu, dass sein Inhalt geändert wird, aber seine Markierung, Position und Grenzwerte sind veränderlich. Ob ein Puffer schreibgeschützt ist, kann durch Aufrufen der Methode #isReadOnly isReadOnly bestimmt werden.

<h2> Threadsicherheit </h2>

Puffer sind nicht sicher für die Verwendung durch mehrere gleichzeitige Threads. Wenn ein Puffer von mehr als einem Thread verwendet werden soll, sollte der Zugriff auf den Puffer durch eine entsprechende Synchronisierung gesteuert werden.

<h2> Aufrufverkettung </h2>

Methoden in dieser Klasse, die andernfalls nicht über einen zurückzugebenden Wert verfügen, werden angegeben, um den Puffer zurückzugeben, auf dem sie aufgerufen werden. Dadurch können Methodenaufrufe verkettet werden; z. B. die Sequenz von -Anweisungen

<Blockquote>

b.flip();
            b.position(23);
            b.limit(42);

</Blockquote>

kann durch die einzelne, kompaktere Anweisung ersetzt werden.

<Blockquote>

b.flip().position(23).limit(42);

</Blockquote>

In Version 1.4 hinzugefügt.

Java-Dokumentation für java.nio.Buffer.

Teile dieser Seite sind Änderungen, die auf Arbeiten basieren, die vom Android Open Source Project erstellt und freigegeben wurden und gemäß den In Attribution License beschriebenen Begriffen verwendet werden.

Konstruktoren

Buffer(IntPtr, JniHandleOwnership)

Ein Konstruktor, der beim Erstellen verwalteter Darstellungen von JNI-Objekten verwendet wird; wird von der Runtime aufgerufen.

Eigenschaften

Class

Gibt die Laufzeitklasse dieses Objectzurück.

(Geerbt von Object)
Handle

Das Handle zum zugrunde liegenden Android-instance.

(Geerbt von Object)
HasArray

Gibt true zurück, wenn array und arrayOffset nicht ausgelöst wird.

HasRemaining

Gibt an, ob zwischen der aktuellen Position und dem Grenzwert Elemente vorhanden sind.

IsDirect

Gibt true zurück, wenn es sich um einen direkten Puffer handelt.

IsReadOnly

Gibt an, ob dieser Puffer schreibgeschützt ist.

JniIdentityHashCode

Ein Container für Daten eines bestimmten primitiven Typs.

(Geerbt von Object)
JniPeerMembers

Ein Container für Daten eines bestimmten primitiven Typs.

PeerReference

Ein Container für Daten eines bestimmten primitiven Typs.

(Geerbt von Object)
ThresholdClass

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

ThresholdType

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

Methoden

ArrayOffset()

Gibt den Offset innerhalb des Sicherungsarrays dieses Puffers des ersten Elements des Puffers zurück   (optionaler Vorgang).

Capacity()

Gibt die Kapazität dieses Puffers zurück.

Clear()

Löscht diesen Puffer.

Clone()

Erstellt und gibt eine Kopie dieses Objekts zurück.

(Geerbt von Object)
Dispose()

Ein Container für Daten eines bestimmten primitiven Typs.

(Geerbt von Object)
Dispose(Boolean)

Ein Container für Daten eines bestimmten primitiven Typs.

(Geerbt von Object)
Duplicate()

Erstellt einen neuen Puffer, der den Inhalt dieses Puffers gemeinsam verwendet.

Equals(Object)

Gibt an, ob ein anderes Objekt diesem "gleich" ist.

(Geerbt von Object)
Flip()

Dieser Puffer wird umgedreht.

GetDirectBufferAddress()

Ein Container für Daten eines bestimmten primitiven Typs.

GetHashCode()

Gibt einen Hashcodewert für das Objekt zurück.

(Geerbt von Object)
JavaFinalize()

Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection feststellt, dass keine Verweise mehr auf das Objekt vorhanden sind.

(Geerbt von Object)
Limit()

Gibt das Limit dieses Puffers zurück.

Limit(Int32)

Legt das Limit dieses Puffers fest.

Mark()

Legt die Markierung dieses Puffers an seiner Position fest.

Notify()

Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet.

(Geerbt von Object)
NotifyAll()

Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten.

(Geerbt von Object)
Position()

Gibt die Position dieses Puffers zurück.

Position(Int32)

Legt die Position dieses Puffers fest.

Remaining()

Gibt die Anzahl der Elemente zwischen der aktuellen Position und dem Grenzwert zurück.

Reset()

Setzt die Position dieses Puffers auf die zuvor markierte Position zurück.

Rewind()

Dieser Puffer wird zurückspulen.

SetHandle(IntPtr, JniHandleOwnership)

Legt die Handle-Eigenschaft fest.

(Geerbt von Object)
Slice()

Erstellt einen neuen Puffer, dessen Inhalt eine freigegebene Unterstruktur des Inhalts dieses Puffers ist.

Slice(Int32, Int32)

Erstellt einen neuen Puffer, dessen Inhalt eine freigegebene Unterstruktur des Inhalts dieses Puffers ist.

ToArray<T>()

Ein Container für Daten eines bestimmten primitiven Typs.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolgendarstellung des Objekts zurück.

(Geerbt von Object)
UnregisterFromRuntime()

Ein Container für Daten eines bestimmten primitiven Typs.

(Geerbt von Object)
Wait()

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel durch em benachrichtigen/em> oder <em>interrupted</em>.<><

(Geerbt von Object)
Wait(Int64)

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel, indem <er>benachrichtigt</em> oder <em>interrupted</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
Wait(Int64, Int32)

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel, indem <er>benachrichtigt</em> oder <em>interrupted</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

IJavaPeerable.Disposed()

Ein Container für Daten eines bestimmten primitiven Typs.

(Geerbt von Object)
IJavaPeerable.DisposeUnlessReferenced()

Ein Container für Daten eines bestimmten primitiven Typs.

(Geerbt von Object)
IJavaPeerable.Finalized()

Ein Container für Daten eines bestimmten primitiven Typs.

(Geerbt von Object)
IJavaPeerable.JniManagedPeerState

Ein Container für Daten eines bestimmten primitiven Typs.

(Geerbt von Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Ein Container für Daten eines bestimmten primitiven Typs.

(Geerbt von Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Ein Container für Daten eines bestimmten primitiven Typs.

(Geerbt von Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Ein Container für Daten eines bestimmten primitiven Typs.

(Geerbt von Object)

Erweiterungsmethoden

JavaCast<TResult>(IJavaObject)

Führt eine Für Android-Runtime überprüfte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Ein Container für Daten eines bestimmten primitiven Typs.

GetJniTypeName(IJavaPeerable)

Ein Container für Daten eines bestimmten primitiven Typs.

Gilt für: