Class ShortBuffer
public class ShortBuffer : Buffer, IDynamicMetaObjectProvider, IJVMBridgeCore, IEquatable<IJVMBridgeBaseInstance>, IDisposable, IJVMBridgeBaseStatic, IJVMBridgeBase, IJVMBridgeBaseInstance, IJVMBridgeDefinition
- Inheritance
-
ShortBuffer
- Implements
- Inherited Members
- Extension Methods
Constructors
ShortBuffer(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 ShortBuffer(IJVMBridgeBaseInitializer initializer)
Parameters
initializerIJVMBridgeBaseInitializer
Properties
BridgeClassName
Java class name to be instantiated
public override string BridgeClassName { get; }
Property Value
IsBridgeAbstract
true if the BridgeClassName is an abstract class, i.e. cannot be created an instance
public override bool IsBridgeAbstract { get; }
Property Value
IsBridgeCloseable
true if the BridgeClassName implements java.lang.AutoCloseable
public override bool IsBridgeCloseable { get; }
Property Value
IsBridgeInterface
true if the BridgeClassName is an interface, i.e. does not have any public constructor
public override bool IsBridgeInterface { get; }
Property Value
IsBridgeStatic
true if the BridgeClassName is a static class, i.e. does not have any public constructor
public override bool IsBridgeStatic { get; }
Property Value
Methods
Allocate(int)
public static ShortBuffer Allocate(int arg0)
Parameters
Returns
AsReadOnlyBuffer()
public ShortBuffer AsReadOnlyBuffer()
Returns
Compact()
public ShortBuffer Compact()
Returns
CompareTo(ShortBuffer)
public int CompareTo(ShortBuffer arg0)
Parameters
arg0ShortBuffer
Returns
CompareTo(object)
public int CompareTo(object arg0)
Parameters
Returns
Dispose(bool)
Implements the pattern described in https://learn.microsoft.com/en-en/dotnet/standard/garbage-collection/implementing-dispose
protected override void Dispose(bool disposing)
Parameters
disposingboolThe 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)
Duplicate()
public ShortBuffer Duplicate()
Returns
From(JCOBridgeSharedBufferStream<short>)
Creates a new ShortBuffer 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 ShortBuffer From(JCOBridgeSharedBufferStream<short> stream)
Parameters
streamJCOBridgeSharedBufferStream<short>A JCOBridgeSharedBufferStream<T> obtained from Rent(long) and populated via Stream-based APIs, to be used directly within the JVM from a ShortBuffer.
Returns
- ShortBuffer
A new instance of ShortBuffer holding the memory of
streamshared with the ShortBuffer.
Remarks
The memory associated to stream will be retained until the JVM reference of the newly created ShortBuffer 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
ShortBuffer, i.e. when the ShortBuffer has been fully consumed by the JVM.
A direct call to Dispose() on the returned ShortBuffer 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
streamwas not obtained through Rent(long).- NotSupportedException
Thrown when the JVM is unable to generate a ShortBuffer instance.
From(short[], bool, int)
Creates a new ShortBuffer in the JVM which belongs to data
public static ShortBuffer From(short[] data, bool arrangeCapacity = true, int timeToLive = -1)
Parameters
datashort[]The data to be shared
arrangeCapacityboolIf true the short array in
datawill be resized to the next power of 2, so capacity will be memory aligned and the limit of java.nio.ShortBuffer will be current size ofdatatimeToLiveintThe 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
- ShortBuffer
A new instance of ShortBuffer
Get()
public short Get()
Returns
Get(short[])
public ShortBuffer Get(short[] arg0)
Parameters
Returns
Get(short[], int, int)
public ShortBuffer Get(short[] arg0, int arg1, int arg2)
Parameters
Returns
Get(int)
public short Get(int arg0)
Parameters
Returns
Order()
public ByteOrder Order()
Returns
Put(ShortBuffer)
public ShortBuffer Put(ShortBuffer arg0)
Parameters
arg0ShortBuffer
Returns
Put(short)
public ShortBuffer Put(short arg0)
Parameters
Returns
Put(short[])
public ShortBuffer Put(short[] arg0)
Parameters
Returns
Put(short[], int, int)
public ShortBuffer Put(short[] arg0, int arg1, int arg2)
Parameters
Returns
Put(int, short)
public ShortBuffer Put(int arg0, short arg1)
Parameters
Returns
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<short>).
public static JCOBridgeSharedBufferStream<short> Rent(long capacity = -1)
Parameters
capacitylongThe plausible number of elements of short type to be written into the stream; the byte size is computed as
capacity * sizeof(short). The default value of-1instructs 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<short>
A pooled instance of JCOBridgeSharedBufferStream<T> ready to be written via Stream-based APIs and then passed to From(JCOBridgeSharedBufferStream<short>).
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 ShortBuffer created by From(JCOBridgeSharedBufferStream<short>).
Exceptions
- ArgumentOutOfRangeException
Thrown when
capacityis zero or any positive value that, once multiplied bysizeof(short), overflows a long.
Slice()
public ShortBuffer Slice()
Returns
ToArray(bool)
Returns the short array managed from this ShortBuffer
public short[] ToArray(bool bypassDirectConvert = false)
Parameters
Returns
- short[]
The short array managed from this ShortBuffer
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<short> ToDirectBuffer(bool rewind)
Parameters
rewindboolRewind() the instance before return JCOBridgeDirectBuffer<T>
Returns
- JCOBridgeDirectBuffer<short>
The JCOBridgeDirectBuffer<T> associated to this ShortBuffer instance
Remarks
Do not call Dispose() on the returned instance. Its lifetime is managed by the owning object.
Wrap(short[])
public static ShortBuffer Wrap(short[] arg0)
Parameters
Returns
Wrap(short[], int, int)
public static ShortBuffer Wrap(short[] arg0, int arg1, int arg2)
Parameters
Returns
Operators
implicit operator Comparable(ShortBuffer)
Converter from ShortBuffer to Comparable
public static implicit operator Comparable(ShortBuffer t)
Parameters
Returns
implicit operator Comparable<ShortBuffer>(ShortBuffer)
Converter from ShortBuffer to Comparable<T>
public static implicit operator Comparable<ShortBuffer>(ShortBuffer buffer)
Parameters
bufferShortBuffer
Returns
implicit operator JCOBridgeDirectBuffer<short>(ShortBuffer)
Converts an instance of ShortBuffer into JCOBridgeDirectBuffer<T>
public static implicit operator JCOBridgeDirectBuffer<short>(ShortBuffer t)
Parameters
Returns
implicit operator short[](ShortBuffer)
Converts an instance of ShortBuffer into short array
public static implicit operator short[](ShortBuffer t)
Parameters
Returns
- short[]
Remarks
If the ShortBuffer supports direct access the function tries to move data from JVM memory without JNI, otherwise fallback to the standard memory copy.
implicit operator ShortBuffer(short[])
Converts an instance of short array into ShortBuffer using the default parameters of From(short[], bool, int)
public static implicit operator ShortBuffer(short[] t)
Parameters
tshort[]
Returns
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.