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 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 |
| 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 |
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 |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| 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 |