Buffer Clase

Definición

Contenedor para datos de un tipo primitivo específico.

[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
Herencia
Buffer
Derivado
Atributos

Comentarios

Contenedor para datos de un tipo primitivo específico.

Un búfer es una secuencia lineal y finita de elementos de un tipo primitivo específico. Aparte de su contenido, las propiedades esenciales de un búfer son su capacidad, límite y posición:

<Blockquote>

La capacidad de un búfer es el número de elementos que contiene. La capacidad de un búfer nunca es negativa y nunca cambia.

El límite de un búfer es el índice del primer elemento que no se debe leer ni escribir. El límite de un búfer nunca es negativo y nunca es mayor que su capacidad.

La posición de un búfer es el índice del siguiente elemento que se va a leer o escribir. La posición de un búfer nunca es negativa y nunca es mayor que su límite.

</Blockquote>

Hay una subclase de esta clase para cada tipo primitivo no booleano.

<h2> Transferencia de datos </h2>

Cada subclase de esta clase define dos categorías de operaciones get y put :

<Blockquote>

Las operaciones relativas leen o escriben uno o varios elementos a partir de la posición actual y, a continuación, incrementan la posición por el número de elementos transferidos. Si la transferencia solicitada supera el límite, una operación de obtención relativa produce un BufferUnderflowException y una operación put relativa produce un BufferOverflowException; en cualquier caso, no se transfiere ningún dato.

Las operaciones absolutas toman un índice de elemento explícito y no afectan a la posición. Las operaciones get y put absolutas producen un IndexOutOfBoundsException si el argumento index supera el límite.

</Blockquote>

Los datos también pueden, por supuesto, transferirse dentro o fuera de un búfer por las operaciones de E/S de un canal adecuado, que siempre son relativos a la posición actual.

<h2> Marcar y restablecer </h2>

La marca de un búfer es el índice al que se restablecerá su posición cuando se invoque el #reset reset método. La marca no siempre está definida, pero cuando se define nunca es negativa y nunca es mayor que la posición. Si se define la marca, se descarta cuando la posición o el límite se ajusta a un valor menor que la marca. Si no se define la marca, la invocación del #reset reset método hace que se produzca una InvalidMarkException excepción .

<h2> invariables </h2>

Las siguientes suspensiones invariables para los valores de marca, posición, límite y capacidad:

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

Un búfer recién creado siempre tiene una posición de cero y una marca que no está definida. El límite inicial puede ser cero o puede ser otro valor que dependa del tipo del búfer y de la manera en que se construya. Cada elemento de un búfer recién asignado se inicializa en cero.

<h2> Borrar, voltear y rebobinar </h2>

Además de los métodos para acceder a los valores de posición, límite y capacidad, y para marcar y restablecer, esta clase también define las siguientes operaciones en los búferes:

<ul>

<Li>

#clear hace que un búfer esté listo para una nueva secuencia de operaciones put relativas o de lectura de canal: establece el límite en la capacidad y la posición en cero.

</Li>

<Li>

#flip prepara un búfer para una nueva secuencia de operaciones get relativas o de escritura de canal: establece el límite en la posición actual y, a continuación, establece la posición en cero.

</Li>

<Li>

#rewind hace que un búfer esté listo para volver a leer los datos que ya contiene: deja el límite sin cambios y establece la posición en cero.

</Li>

</ul>

<h2> Búferes <de solo lectura /h2>

Todos los búferes son legibles, pero no todos los búferes se pueden escribir. Los métodos de mutación de cada clase de búfer se especifican como operaciones opcionales que producirán una ReadOnlyBufferException excepción cuando se invoque en un búfer de solo lectura. Un búfer de solo lectura no permite cambiar su contenido, pero sus valores de marca, posición y límite son mutables. Si un búfer es de solo lectura o no, puede determinarse invocando su #isReadOnly isReadOnly método.

<h2> Seguridad de subprocesos </h2>

Los búferes no son seguros para su uso por varios subprocesos simultáneos. Si más de un subproceso va a usar un búfer, la sincronización adecuada debe controlar el acceso al búfer.

<h2> Encadenamiento de invocaciones </h2>

Los métodos de esta clase que de lo contrario no tienen un valor que devolver se especifican para devolver el búfer en el que se invocan. Esto permite encadenar invocaciones de método; por ejemplo, la secuencia de instrucciones

<Blockquote>

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

</Blockquote>

se puede reemplazar por la única instrucción más compacta

<Blockquote>

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

</Blockquote>

Se agregó en la versión 1.4.

Documentación de Java para java.nio.Buffer.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código y se usan según los términos descritos en la creative Commons 2.5.

Constructores

Buffer(IntPtr, JniHandleOwnership)

Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el entorno de ejecución.

Propiedades

Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
HasArray

Devuelve true si array y arrayOffset no se inician.

HasRemaining

Indica si hay elementos entre la posición actual y el límite.

IsDirect

Devuelve true si se trata de un búfer directo.

IsReadOnly

Indica si este búfer es de solo lectura.

JniIdentityHashCode

Contenedor para datos de un tipo primitivo específico.

(Heredado de Object)
JniPeerMembers

Contenedor para datos de un tipo primitivo específico.

PeerReference

Contenedor para datos de un tipo primitivo específico.

(Heredado de Object)
ThresholdClass

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

ThresholdType

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

Métodos

ArrayOffset()

Devuelve el desplazamiento dentro de la matriz de respaldo de este búfer del primer elemento del búfer   (operación opcional).

Capacity()

Devuelve la capacidad de este búfer.

Clear()

Borra este búfer.

Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Dispose()

Contenedor para datos de un tipo primitivo específico.

(Heredado de Object)
Dispose(Boolean)

Contenedor para datos de un tipo primitivo específico.

(Heredado de Object)
Duplicate()

Crea un nuevo búfer que comparte el contenido de este búfer.

Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
Flip()

Voltea este búfer.

GetDirectBufferAddress()

Contenedor para datos de un tipo primitivo específico.

GetHashCode()

Devuelve un valor de código hash del objeto.

(Heredado de Object)
JavaFinalize()

Llamado por el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto.

(Heredado de Object)
Limit()

Devuelve el límite de este búfer.

Limit(Int32)

Establece el límite de este búfer.

Mark()

Establece la marca de este búfer en su posición.

Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
Position()

Devuelve la posición de este búfer.

Position(Int32)

Establece la posición de este búfer.

Remaining()

Devuelve el número de elementos entre la posición actual y el límite.

Reset()

Restablece la posición de este búfer a la posición marcada previamente.

Rewind()

Rebobina este búfer.

SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
Slice()

Crea un nuevo búfer cuyo contenido es una subsecuencia compartida del contenido de este búfer.

Slice(Int32, Int32)

Crea un nuevo búfer cuyo contenido es una subsecuencia compartida del contenido de este búfer.

ToArray<T>()

Contenedor para datos de un tipo primitivo específico.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto.

(Heredado de Object)
UnregisterFromRuntime()

Contenedor para datos de un tipo primitivo específico.

(Heredado de Object)
Wait()

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em> o <em>interrumpido</em>.<><

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <notificado<>/em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <notificado<>/em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)

Implementaciones de interfaz explícitas

IJavaPeerable.Disposed()

Contenedor para datos de un tipo primitivo específico.

(Heredado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Contenedor para datos de un tipo primitivo específico.

(Heredado de Object)
IJavaPeerable.Finalized()

Contenedor para datos de un tipo primitivo específico.

(Heredado de Object)
IJavaPeerable.JniManagedPeerState

Contenedor para datos de un tipo primitivo específico.

(Heredado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Contenedor para datos de un tipo primitivo específico.

(Heredado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Contenedor para datos de un tipo primitivo específico.

(Heredado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Contenedor para datos de un tipo primitivo específico.

(Heredado de Object)

Métodos de extensión

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Contenedor para datos de un tipo primitivo específico.

GetJniTypeName(IJavaPeerable)

Contenedor para datos de un tipo primitivo específico.

Se aplica a