Langage

Buffer Classe

Définition

Conteneur pour les données d’un type primitif spécifique.

[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
Héritage
Dérivé
Attributs

Remarques

Conteneur pour les données d’un type primitif spécifique.

Une mémoire tampon est une séquence linéaire et finie d’éléments d’un type primitif spécifique. Outre son contenu, les propriétés essentielles d’une mémoire tampon sont sa capacité, sa limite et sa position :

<blockquote>

La capacité d’une mémoire tampon est le nombre d’éléments qu’il contient. La capacité d’une mémoire tampon n’est jamais négative et ne change jamais.

La limite d’une mémoire tampon est l’index du premier élément qui ne doit pas être lu ou écrit. La limite d’une mémoire tampon n’est jamais négative et n’est jamais supérieure à sa capacité.

La position d’une mémoire tampon est l’index de l’élément suivant à lire ou écrire. La position d’une mémoire tampon n’est jamais négative et n’est jamais supérieure à sa limite.

</blockquote>

Il existe une sous-classe de cette classe pour chaque type primitif non booléen.

<h2> Transfert de données </h2>

Chaque sous-classe de cette classe définit deux catégories d’opérations get et put :

<blockquote>

Les opérations relatives lisent ou écrivent un ou plusieurs éléments à partir de la position actuelle, puis incrémentent la position par le nombre d’éléments transférés. Si le transfert demandé dépasse la limite, une opération d’obtention relative lève un BufferUnderflowException et une opération relative put lève un BufferOverflowException; dans les deux cas, aucune donnée n’est transférée.

Les opérations absolues prennent un index d’élément explicite et n’affectent pas la position. Les opérations d’obtention et de mise absolues lèvent une IndexOutOfBoundsException valeur si l’argument d’index dépasse la limite.

</blockquote>

Les données peuvent également être transférées vers ou hors d’une mémoire tampon par les opérations d’E/S d’un canal approprié, qui sont toujours relatives à la position actuelle.

< > Marquage et réinitialisation <de /h2>

La marque d’une mémoire tampon est l’index auquel sa position sera réinitialisée lorsque la #reset reset méthode est appelée. La marque n’est pas toujours définie, mais quand elle est définie, elle n’est jamais négative et n’est jamais supérieure à la position. Si la marque est définie, elle est ignorée lorsque la position ou la limite est ajustée à une valeur inférieure à la marque. Si la marque n’est pas définie, l’appel de la #reset reset méthode provoque une InvalidMarkException levée.

<h2> Invariants </h2>

L’invariant suivant contient les valeurs de marque, de position, de limite et de capacité :

< > 0 <= deposition<=de la marque<= blockquote<=<blockquote>

Une mémoire tampon nouvellement créée a toujours une position de zéro et une marque qui n’est pas définie. La limite initiale peut être égale à zéro, ou il peut s’agir d’une autre valeur qui dépend du type de la mémoire tampon et de la façon dont elle est construite. Chaque élément d’une mémoire tampon nouvellement allouée est initialisé à zéro.

<h2> Opérations <supplémentaires /h2>

Outre les méthodes permettant d’accéder aux valeurs de position, de limite et de capacité et de marquage et de réinitialisation, cette classe définit également les opérations suivantes sur les mémoires tampons :

<ul>

<li>

#clear rend une mémoire tampon prête pour une nouvelle séquence d’opérations de lecture de canal ou de put relative : elle définit la limite de capacité et la position sur zéro.

</li>

<li>

#flip prépare une mémoire tampon pour une nouvelle séquence d’opérations d’écriture de canal ou d’obtention relative : elle définit la limite à la position actuelle, puis définit la position sur zéro.

</li>

<li>

#rewind rend une mémoire tampon prête pour la relecture des données qu’elle contient déjà : elle laisse la limite inchangée et définit la position sur zéro.

</li>

<li>

Les #slice méthodes et #slice(int,int) slice(index,length) les méthodes créent une sous-séquence d’une mémoire tampon : elles conservent la limite et la position inchangée.

</li>

<li>

#duplicate crée une copie superficielle d’une mémoire tampon : elle laisse la limite et la position inchangée.

</li>

</ul>

<Mémoires tampons >en lecture seule h2< /h2>

Chaque mémoire tampon est lisible, mais pas chaque mémoire tampon est accessible en écriture. Les méthodes de mutation de chaque classe de mémoire tampon sont spécifiées en tant qu’opérations facultatives qui lèvent une ReadOnlyBufferException fois appelées sur une mémoire tampon en lecture seule. Une mémoire tampon en lecture seule n’autorise pas la modification de son contenu, mais ses valeurs de marque, de position et de limite sont mutables. Si une mémoire tampon est en lecture seule ou non, elle peut être déterminée en appelant sa #isReadOnly isReadOnly méthode.

<sécurité >des threads h2< /h2>

Les mémoires tampons ne sont pas sécurisées pour une utilisation par plusieurs threads simultanés. Si une mémoire tampon doit être utilisée par plusieurs threads, l’accès à la mémoire tampon doit être contrôlé par la synchronisation appropriée.

<chaînage >d’appel h2< /h2>

Les méthodes de cette classe qui n’ont pas autrement de valeur à retourner sont spécifiées pour retourner la mémoire tampon sur laquelle elles sont appelées. Cela permet aux appels de méthode d’être chaînés ; par exemple, la séquence d’instructions

<blockquote>

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

</blockquote>

peut être remplacé par l’instruction single, plus compact

<blockquote>

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

</blockquote>

Ajouté dans la version 1.4.

Java documentation pour java.nio.Buffer.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

Constructeurs

Nom Description
Buffer(IntPtr, JniHandleOwnership)

Constructeur utilisé lors de la création de représentations managées d’objets JNI ; appelée par le runtime.

Propriétés

Nom Description
Class

Retourne la classe runtime de ce Object.

(Hérité de Object)
Handle

Handle de l’instance Android sous-jacente.

(Hérité de Object)
HasArray

Retourne true si array et arrayOffset ne lève pas.

HasRemaining

Indique s’il existe des éléments entre la position actuelle et la limite.

IsDirect

Retourne true s’il s’agit d’une mémoire tampon directe.

IsReadOnly

Indique si cette mémoire tampon est en lecture seule.

JniIdentityHashCode

Obtient le code de hachage d’identité affecté à cet homologue Java par le runtime d’interopérabilité.

(Hérité de Object)
JniManagedPeerState

Conteneur pour les données d’un type primitif spécifique.

(Hérité de JavaObject)
JniPeerMembers

Conteneur pour les données d’un type primitif spécifique.

PeerReference

Obtient la référence d’objet JNI pour cet homologue Java.

(Hérité de Object)
ThresholdClass

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

ThresholdType

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

Méthodes

Nom Description
ArrayOffset()

Retourne le décalage dans le tableau de stockage de cette mémoire tampon du premier élément de la mémoire tampon  ;   ; (opération facultative).

Capacity()

Retourne la capacité de cette mémoire tampon.

Clear()

Efface cette mémoire tampon.

Clone()

Crée et retourne une copie de cet objet.

(Hérité de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Conteneur pour les données d’un type primitif spécifique.

(Hérité de JavaObject)
Dispose()

Libère les ressources détenues par cet homologue Java.

(Hérité de Object)
Dispose(Boolean)

Libère les ressources détenues par cet homologue Java.

(Hérité de Object)
DisposeUnlessReferenced()

Conteneur pour les données d’un type primitif spécifique.

(Hérité de JavaObject)
Duplicate()

Crée une mémoire tampon qui partage le contenu de cette mémoire tampon.

Equals(Object)

Conteneur pour les données d’un type primitif spécifique.

(Hérité de JavaObject)
Equals(Object)

Indique si un autre objet est « égal à » celui-ci.

(Hérité de Object)
Flip()

Retourne cette mémoire tampon.

GetDirectBufferAddress()

Conteneur pour les données d’un type primitif spécifique.

GetHashCode()

Retourne une valeur de code de hachage pour l’objet.

(Hérité de Object)
JavaFinalize()

Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet.

(Hérité de Object)
Limit()

Retourne la limite de cette mémoire tampon.

Limit(Int32)

Définit la limite de cette mémoire tampon.

Mark()

Définit la marque de cette mémoire tampon à sa position.

Notify()

Réveille un thread unique qui attend le moniteur de cet objet.

(Hérité de Object)
NotifyAll()

Réveille tous les threads qui attendent le moniteur de cet objet.

(Hérité de Object)
Position()

Retourne la position de cette mémoire tampon.

Position(Int32)

Définit la position de cette mémoire tampon.

Remaining()

Retourne le nombre d’éléments entre la position actuelle et la limite.

Reset()

Réinitialise la position de cette mémoire tampon à la position précédemment marquée.

Rewind()

Rembobine cette mémoire tampon.

SetHandle(IntPtr, JniHandleOwnership)

Définit la propriété Handle.

(Hérité de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Conteneur pour les données d’un type primitif spécifique.

(Hérité de JavaObject)
Slice()

Crée une mémoire tampon dont le contenu est une sous-file d’attente partagée du contenu de cette mémoire tampon.

Slice(Int32, Int32)

Crée une mémoire tampon dont le contenu est une sous-file d’attente partagée du contenu de cette mémoire tampon.

ToArray<T>()

Crée un tableau managé à partir de ce wrapper de tableau Java.

(Hérité de Object)
ToString()

Retourne une représentation sous forme de chaîne de l’objet.

(Hérité de Object)
UnregisterFromRuntime()

Annule l’inscription de cet homologue Java à partir du runtime d’interopérabilité.

(Hérité de Object)
Wait()

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<>

(Hérité de Object)
Wait(Int64, Int32)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)
Wait(Int64)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)

Implémentations d’interfaces explicites

Nom Description
IJavaPeerable.Disposed()

Conteneur pour les données d’un type primitif spécifique.

(Hérité de JavaObject)
IJavaPeerable.Finalized()

Conteneur pour les données d’un type primitif spécifique.

(Hérité de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Conteneur pour les données d’un type primitif spécifique.

(Hérité de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Conteneur pour les données d’un type primitif spécifique.

(Hérité de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Conteneur pour les données d’un type primitif spécifique.

(Hérité de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Conteneur pour les données d’un type primitif spécifique.

(Hérité de JavaObject)

Méthodes d’extension

Nom Description
GetJniTypeName(IJavaPeerable)

Obtient le nom JNI du type de l’instance self.

JavaAs<TResult>(IJavaPeerable)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

Conteneur pour les données d’un type primitif spécifique.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

S’applique à