Lenguaje

Buffer Clase

Definición

Contenedor de 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
Derivado
Atributos

Comentarios

Contenedor de datos de un tipo primitivo específico.

Un búfer es una secuencia lineal y finita de elementos de un tipo primitivo específico. Además 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 de colocación 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 si IndexOutOfBoundsException el argumento index supera el límite.

</blockquote>

Los datos también pueden 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, invocar el #reset reset método hace que se produzca una InvalidMarkException excepción .

<h2> Invariants </h2>

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

<blockquote><=0mark<=position<=limit<=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> Operaciones <adicionales /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 hace que un búfer esté listo para una nueva secuencia de operaciones de obtención relativa o 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>

<li>

Los #slice métodos y #slice(int,int) slice(index,length) crean una subsecuencia de un búfer: dejan el límite y la posición sin cambios.

</li>

<li>

#duplicate crea una copia superficial de un búfer: deja el límite y la posición sin cambios.

</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 <invocación /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>

Agregado en la versión 1.4.

Java documentación para java.nio.Buffer.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Constructores

Nombre Description
Buffer(IntPtr, JniHandleOwnership)

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

Propiedades

Nombre Description
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

Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad.

(Heredado de Object)
JniManagedPeerState

Contenedor de datos de un tipo primitivo específico.

(Heredado de JavaObject)
JniPeerMembers

Contenedor de datos de un tipo primitivo específico.

PeerReference

Obtiene la referencia de objeto JNI para este Java del mismo nivel.

(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

Nombre Description
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)
Construct(JniObjectReference, JniObjectReferenceOptions)

Contenedor de datos de un tipo primitivo específico.

(Heredado de JavaObject)
Dispose()

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
Dispose(Boolean)

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
DisposeUnlessReferenced()

Contenedor de datos de un tipo primitivo específico.

(Heredado de JavaObject)
Duplicate()

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

Equals(Object)

Contenedor de datos de un tipo primitivo específico.

(Heredado de JavaObject)
Equals(Object)

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

(Heredado de Object)
Flip()

Voltea este búfer.

GetDirectBufferAddress()

Contenedor de datos de un tipo primitivo específico.

GetHashCode()

Devuelve un valor de código hash del objeto.

(Heredado de Object)
JavaFinalize()
Obsoletos.

Lo llama 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 anteriormente.

Rewind()

Rebobina este búfer.

SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Contenedor de datos de un tipo primitivo específico.

(Heredado de JavaObject)
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>()

Crea una matriz administrada a partir de este contenedor de matriz Java.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto.

(Heredado de Object)
UnregisterFromRuntime()

Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad.

(Heredado de Object)
Wait()

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

(Heredado de Object)
Wait(Int64, Int32)

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

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>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

Nombre Description
IJavaPeerable.Disposed()

Contenedor de datos de un tipo primitivo específico.

(Heredado de JavaObject)
IJavaPeerable.Finalized()

Contenedor de datos de un tipo primitivo específico.

(Heredado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Contenedor de datos de un tipo primitivo específico.

(Heredado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Contenedor de datos de un tipo primitivo específico.

(Heredado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Contenedor de datos de un tipo primitivo específico.

(Heredado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Contenedor de datos de un tipo primitivo específico.

(Heredado de JavaObject)

Métodos de extensión

Nombre Description
GetJniTypeName(IJavaPeerable)

Obtiene el nombre JNI del tipo de la instancia self.

JavaAs<TResult>(IJavaPeerable)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

Contenedor de datos de un tipo primitivo específico.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

Se aplica a