Table of Contents

Class FloatBuffer

Namespace
Java.Nio
Assembly
MASES.Netdroid.dll
public class FloatBuffer : Buffer, IDynamicMetaObjectProvider, IJVMBridgeCore, IEquatable<IJVMBridgeBaseInstance>, IDisposable, IJVMBridgeBaseStatic, IJVMBridgeBase, IJVMBridgeBaseInstance, IJVMBridgeDefinition
Inheritance
FloatBuffer
Implements
Inherited Members
Extension Methods

Constructors

FloatBuffer(IJVMBridgeBaseInitializer)

Initializer used internally by JCOBridge. Do not use directly.

[Obsolete("This public initializer is needed for JCOBridge internal use, other uses can produce unidentible behaviors.")]
public FloatBuffer(IJVMBridgeBaseInitializer initializer)

Parameters

initializer IJVMBridgeBaseInitializer

Properties

BridgeClassName

Java class name to be instantiated

public override string BridgeClassName { get; }

Property Value

string

IsBridgeAbstract

true if the BridgeClassName is an abstract class, i.e. cannot be created an instance

public override bool IsBridgeAbstract { get; }

Property Value

bool

IsBridgeCloseable

true if the BridgeClassName implements java.lang.AutoCloseable

public override bool IsBridgeCloseable { get; }

Property Value

bool

IsBridgeInterface

true if the BridgeClassName is an interface, i.e. does not have any public constructor

public override bool IsBridgeInterface { get; }

Property Value

bool

IsBridgeStatic

true if the BridgeClassName is a static class, i.e. does not have any public constructor

public override bool IsBridgeStatic { get; }

Property Value

bool

Methods

Allocate(int)

public static FloatBuffer Allocate(int arg0)

Parameters

arg0 int

int

Returns

FloatBuffer

FloatBuffer

AsReadOnlyBuffer()

public FloatBuffer AsReadOnlyBuffer()

Returns

FloatBuffer

FloatBuffer

AsSpan()

Returns a zero-copy ReadOnlySpan<T> over the entire buffer, starting at offset zero regardless of the current position.

public ReadOnlySpan<float> AsSpan()

Returns

ReadOnlySpan<float>

A ReadOnlySpan<T> of length buffer size / sizeof(T) backed directly by the native memory buffer.

Exceptions

NotSupportedException

Thrown when the buffer exceeds MaxValue elements. Use CopyTo(IntPtr) for buffers larger than 2 GB.

AsSpanFromIndex(int)

Returns a zero-copy ReadOnlySpan<T> over the buffer starting at the specified element index.

public ReadOnlySpan<float> AsSpanFromIndex(int fromIndex)

Parameters

fromIndex int

Zero-based index of the first element to include in the span.

Returns

ReadOnlySpan<float>

A ReadOnlySpan<T> covering all elements from fromIndex to the end of the buffer, backed directly by the native memory buffer.

Exceptions

ArgumentOutOfRangeException

Thrown when fromIndex is negative or greater than or equal to the element count.

NotSupportedException

Thrown when the number of remaining elements exceeds MaxValue.

AsWritableSpan()

Returns a zero-copy writable Span<T> over the entire buffer, starting at offset zero regardless of the current position.

Contract: if any element is modified through the returned span, FlushOnDispose() MUST be called before Dispose() to ensure changes are written back. Failing to do so results in silent data loss. For single or sparse writes prefer Write(...), which sets the flush flag automatically.

public Span<float> AsWritableSpan()

Returns

Span<float>

A Span<T> of length buffer limit / sizeof(T) backed directly by the native memory buffer.

Exceptions

NotSupportedException

Thrown when the buffer exceeds MaxValue elements.

AsWritableSpanFromIndex(int)

Returns a zero-copy writable Span<T> over the buffer starting at the specified element index.

Contract: if any element is modified through the returned span, FlushOnDispose() MUST be called before Dispose() to ensure changes are written back. Failing to do so results in silent data loss. For single or sparse writes prefer Write(...), which sets the flush flag automatically.

public Span<float> AsWritableSpanFromIndex(int fromIndex)

Parameters

fromIndex int

Zero-based index of the first element to include in the span.

Returns

Span<float>

A Span<T> covering all elements from fromIndex to the end of the buffer, backed directly by the native memory buffer.

Exceptions

ArgumentOutOfRangeException

Thrown when fromIndex is negative or greater than or equal to the element count.

NotSupportedException

Thrown when the number of remaining elements exceeds MaxValue.

Compact()

public FloatBuffer Compact()

Returns

FloatBuffer

FloatBuffer

CompareTo(FloatBuffer)

public int CompareTo(FloatBuffer arg0)

Parameters

arg0 FloatBuffer

FloatBuffer

Returns

int

int

CompareTo(object)

public int CompareTo(object arg0)

Parameters

arg0 object

object

Returns

int

int

Dispose(bool)

protected override void Dispose(bool disposing)

Parameters

disposing bool

The disposing parameter is a bool that indicates whether the method call comes from a Dispose() method (its value is true) or from a finalizer (its value is false)

FlushOnDispose()

Marks this stream to flush all native memory changes back to the underlying resource on Dispose().

Must be called after any direct write performed through AsWritableSpan() or AsWritableSpanFromIndex(int) before the stream is closed.

This method is idempotent — calling it multiple times has no additional effect.

public void FlushOnDispose()

From(JCOBridgeSharedBufferStream<float>)

Creates a new FloatBuffer in the JVM which shares the memory of stream. This is the preferred overload for high-rate scenarios as it avoids repeated array copies from CLR to JVM and benefits from pooled buffer management.

public static FloatBuffer From(JCOBridgeSharedBufferStream<float> stream)

Parameters

stream JCOBridgeSharedBufferStream<float>

A JCOBridgeSharedBufferStream<T> obtained from Rent(long) and populated via Stream-based APIs, to be used directly within the JVM from a FloatBuffer.

Returns

FloatBuffer

A new instance of FloatBuffer holding the memory of stream shared with the FloatBuffer.

Remarks

The memory associated to stream will be retained until the JVM reference of the newly created FloatBuffer is garbage collected. Under heavy pressure the memory footprint can raise up and generate an OutOfMemoryException; use the functionality with caution.

Lifecycle management: the subsystem automatically returns stream to the internal pool once the JVM Garbage Collector retires the associated FloatBuffer, i.e. when the FloatBuffer has been fully consumed by the JVM. A direct call to Dispose() on the returned FloatBuffer is therefore a no-op; do not attempt to manually dispose stream after passing it to this method.

Pool strategy: the HPA (High Performance Application) runtime variant draws stream instances from a highly optimized pool tuned for high-throughput workloads, while the standard runtime variant uses a lighter pool. In both cases the pooling is fully transparent to the caller.

Exceptions

ArgumentException

Thrown when stream was not obtained through Rent(long).

NotSupportedException

Thrown when the JVM is unable to generate a FloatBuffer instance.

From(float[], bool, int)

Creates a new FloatBuffer in the JVM which belongs to data

public static FloatBuffer From(float[] data, bool arrangeCapacity = true, int timeToLive = -1)

Parameters

data float[]

The data to be shared

arrangeCapacity bool

If true the float array in data will be resized to the next power of 2, so capacity will be memory aligned and the limit of java.nio.FloatBuffer will be current size of data

timeToLive int

The time to live, expressed in milliseconds, the underlying memory shall remain available; if the time to live expires the pinned memory is retired leaving potentially the JVM under the possibility of an access violation.

Returns

FloatBuffer

A new instance of FloatBuffer

Get()

public float Get()

Returns

float

float

Get(int)

public float Get(int arg0)

Parameters

arg0 int

int

Returns

float

float

Get(int, float[])

public FloatBuffer Get(int arg0, float[] arg1)

Parameters

arg0 int

int

arg1 float[]

float

Returns

FloatBuffer

FloatBuffer

Get(int, float[], int, int)

public FloatBuffer Get(int arg0, float[] arg1, int arg2, int arg3)

Parameters

arg0 int

int

arg1 float[]

float

arg2 int

int

arg3 int

int

Returns

FloatBuffer

FloatBuffer

Get(float[])

public FloatBuffer Get(float[] arg0)

Parameters

arg0 float[]

float

Returns

FloatBuffer

FloatBuffer

Get(float[], int, int)

public FloatBuffer Get(float[] arg0, int arg1, int arg2)

Parameters

arg0 float[]

float

arg1 int

int

arg2 int

int

Returns

FloatBuffer

FloatBuffer

Mismatch(FloatBuffer)

public int Mismatch(FloatBuffer arg0)

Parameters

arg0 FloatBuffer

FloatBuffer

Returns

int

int

Order()

public ByteOrder Order()

Returns

ByteOrder

ByteOrder

Put(FloatBuffer)

public FloatBuffer Put(FloatBuffer arg0)

Parameters

arg0 FloatBuffer

FloatBuffer

Returns

FloatBuffer

FloatBuffer

Put(int, FloatBuffer, int, int)

public FloatBuffer Put(int arg0, FloatBuffer arg1, int arg2, int arg3)

Parameters

arg0 int

int

arg1 FloatBuffer

FloatBuffer

arg2 int

int

arg3 int

int

Returns

FloatBuffer

FloatBuffer

Put(int, float)

public FloatBuffer Put(int arg0, float arg1)

Parameters

arg0 int

int

arg1 float

float

Returns

FloatBuffer

FloatBuffer

Put(int, float[])

public FloatBuffer Put(int arg0, float[] arg1)

Parameters

arg0 int

int

arg1 float[]

float

Returns

FloatBuffer

FloatBuffer

Put(int, float[], int, int)

public FloatBuffer Put(int arg0, float[] arg1, int arg2, int arg3)

Parameters

arg0 int

int

arg1 float[]

float

arg2 int

int

arg3 int

int

Returns

FloatBuffer

FloatBuffer

Put(float)

public FloatBuffer Put(float arg0)

Parameters

arg0 float

float

Returns

FloatBuffer

FloatBuffer

Put(float[])

public FloatBuffer Put(float[] arg0)

Parameters

arg0 float[]

float

Returns

FloatBuffer

FloatBuffer

Put(float[], int, int)

public FloatBuffer Put(float[] arg0, int arg1, int arg2)

Parameters

arg0 float[]

float

arg1 int

int

arg2 int

int

Returns

FloatBuffer

FloatBuffer

Rent(long)

Returns a JCOBridgeSharedBufferStream<T> with an initial capacity derived from capacity, to be populated via Stream-based APIs and then passed to From(JCOBridgeSharedBufferStream<float>).

public static JCOBridgeSharedBufferStream<float> Rent(long capacity = -1)

Parameters

capacity long

The plausible number of elements of float type to be written into the stream; the byte size is computed as capacity * sizeof(float). The default value of -1 instructs the subsystem to allocate the minimum meaningful unit, which corresponds to one system memory page (see SystemPageSize). Regardless of the value provided, the effective allocation is always rounded up to the nearest multiple of the system page size, since the underlying native allocator operates at page granularity. Passing a value smaller than one page therefore has no practical advantage over using the default. This value is a hint, not a hard limit: if the actual data written exceeds the initial allocation, the underlying buffer will grow automatically via reallocation. However, providing a value greater than or equal to the actual data size is strongly recommended to avoid reallocation overhead, especially in high-rate scenarios. Callers that process data of a known or predictable size are encouraged to implement their own estimation strategy — for example, tracking the stable size observed in previous invocations — so that the initial capacity converges toward the real value over time and reallocations become increasingly rare or disappear entirely.

Returns

JCOBridgeSharedBufferStream<float>

A pooled instance of JCOBridgeSharedBufferStream<T> ready to be written via Stream-based APIs and then passed to From(JCOBridgeSharedBufferStream<float>).

Remarks

The returned JCOBridgeSharedBufferStream<T> is drawn from an internal pool. The HPA (High Performance Application) runtime variant uses a highly optimized pool tuned for high-throughput scenarios, while the standard runtime variant uses a lighter pool suitable for moderate workloads. The instance must not be manually disposed; its lifecycle is fully managed by the subsystem and it is automatically returned to the pool once the JVM Garbage Collector retires the associated FloatBuffer created by From(JCOBridgeSharedBufferStream<float>).

Exceptions

ArgumentOutOfRangeException

Thrown when capacity is zero or any positive value that, once multiplied by sizeof(float), overflows a long.

ToArray(bool)

Returns the float array managed from this FloatBuffer

public float[] ToArray(bool bypassDirectConvert = false)

Parameters

bypassDirectConvert bool

true to bypass the conversion using direct buffer

Returns

float[]

The float array managed from this FloatBuffer

ToDirectBuffer(bool)

Returns an instance of JCOBridgeDirectBuffer<T> can be used to directly access and manages JVM memory without any memory move

[Obsolete("DO NOT CALL Dispose() on the returned JCOBridgeDirectBuffer: it is an internal instance whose lifetime is managed by the owning object.", false)]
public JCOBridgeDirectBuffer<float> ToDirectBuffer(bool rewind)

Parameters

rewind bool

Rewind() the instance before return JCOBridgeDirectBuffer<T>

Returns

JCOBridgeDirectBuffer<float>

The JCOBridgeDirectBuffer<T> associated to this FloatBuffer instance

Remarks

Do not call Dispose() on the returned instance. Its lifetime is managed by the owning object.

Wrap(float[])

public static FloatBuffer Wrap(float[] arg0)

Parameters

arg0 float[]

float

Returns

FloatBuffer

FloatBuffer

Wrap(float[], int, int)

public static FloatBuffer Wrap(float[] arg0, int arg1, int arg2)

Parameters

arg0 float[]

float

arg1 int

int

arg2 int

int

Returns

FloatBuffer

FloatBuffer

Operators

implicit operator Comparable(FloatBuffer)

Converter from FloatBuffer to Comparable

public static implicit operator Comparable(FloatBuffer t)

Parameters

t FloatBuffer

Returns

Comparable

implicit operator Comparable<FloatBuffer>(FloatBuffer)

Converter from FloatBuffer to Comparable<T>

public static implicit operator Comparable<FloatBuffer>(FloatBuffer buffer)

Parameters

buffer FloatBuffer

Returns

Comparable<FloatBuffer>

implicit operator JCOBridgeDirectBuffer<float>(FloatBuffer)

Converts an instance of FloatBuffer into JCOBridgeDirectBuffer<T>

public static implicit operator JCOBridgeDirectBuffer<float>(FloatBuffer t)

Parameters

t FloatBuffer

Returns

JCOBridgeDirectBuffer<float>

implicit operator float[](FloatBuffer)

Converts an instance of FloatBuffer into float array

public static implicit operator float[](FloatBuffer t)

Parameters

t FloatBuffer

Returns

float[]

Remarks

If the FloatBuffer supports direct access the function tries to move data from JVM memory without JNI, otherwise fallback to the standard memory copy.

implicit operator FloatBuffer(float[])

Converts an instance of float array into FloatBuffer using the default parameters of From(float[], bool, int)

public static implicit operator FloatBuffer(float[] t)

Parameters

t float[]

Returns

FloatBuffer

Remarks

If the JVM supports direct access the function will share with the JVM the memory without JNI, otherwise fallback to the standard memory copy.