Buffer Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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><=
0
mark<=
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> 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 |
Handle |
Identificador de la instancia de Android subyacente. (Heredado de Object) |
HasArray |
Devuelve true si |
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. |