Class NettyImmutableDataBuf

java.lang.Object
eu.cloudnetservice.driver.impl.network.netty.buffer.NettyImmutableDataBuf
All Implemented Interfaces:
eu.cloudnetservice.driver.network.buffer.DataBuf, AutoCloseable
Direct Known Subclasses:
NettyMutableDataBuf

public sealed class NettyImmutableDataBuf extends Object implements eu.cloudnetservice.driver.network.buffer.DataBuf permits NettyMutableDataBuf
The default implementation of an immutable data buf wrapping a netty byte buf.
Since:
4.0
  • Field Details

    • buffer

      protected final io.netty5.buffer.Buffer buffer
    • readOffset

      protected int readOffset
    • writeOffset

      protected int writeOffset
  • Constructor Details

    • NettyImmutableDataBuf

      public NettyImmutableDataBuf(@NonNull @NonNull io.netty5.buffer.Buffer buffer)
      Constructs a new netty immutable data buf instance.
      Parameters:
      buffer - the netty buffer to wrap.
      Throws:
      NullPointerException - if the given buffer is null.
      IllegalArgumentException - if the given buffer cannot be wrapped into a data buf.
  • Method Details

    • readBoolean

      public boolean readBoolean()
      Specified by:
      readBoolean in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • readByte

      public byte readByte()
      Specified by:
      readByte in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • readInt

      public int readInt()
      Specified by:
      readInt in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • readShort

      public short readShort()
      Specified by:
      readShort in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • readLong

      public long readLong()
      Specified by:
      readLong in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • readFloat

      public float readFloat()
      Specified by:
      readFloat in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • readDouble

      public double readDouble()
      Specified by:
      readDouble in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • readChar

      public char readChar()
      Specified by:
      readChar in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • readByteArray

      public byte[] readByteArray()
      Specified by:
      readByteArray in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • readUniqueId

      @NonNull public @NonNull UUID readUniqueId()
      Specified by:
      readUniqueId in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • readString

      @NonNull public @NonNull String readString()
      Specified by:
      readString in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • readDataBuf

      @NonNull public @NonNull eu.cloudnetservice.driver.network.buffer.DataBuf readDataBuf()
      Specified by:
      readDataBuf in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • toByteArray

      public byte[] toByteArray()
      Specified by:
      toByteArray in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • readObject

      @Nullable public <T> T readObject(@NonNull @NonNull Class<T> type)
      Specified by:
      readObject in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • readObject

      public <T> T readObject(@NonNull @NonNull Type type)
      Specified by:
      readObject in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • readNullable

      @Nullable public <T> T readNullable(@NonNull @NonNull Function<eu.cloudnetservice.driver.network.buffer.DataBuf, T> readerWhenNonNull)
      Specified by:
      readNullable in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • readNullable

      public <T> T readNullable(@NonNull @NonNull Function<eu.cloudnetservice.driver.network.buffer.DataBuf, T> readerWhenNonNull, T valueWhenNull)
      Specified by:
      readNullable in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • readableBytes

      public int readableBytes()
      Specified by:
      readableBytes in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • readerOffset

      public int readerOffset()
      Specified by:
      readerOffset in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • readerOffset

      @NonNull public @NonNull eu.cloudnetservice.driver.network.buffer.DataBuf readerOffset(int offset)
      Specified by:
      readerOffset in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • advanceReaderOffset

      @NonNull public @NonNull eu.cloudnetservice.driver.network.buffer.DataBuf advanceReaderOffset(int delta)
      Specified by:
      advanceReaderOffset in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • readableNioBuffer

      @NonNull public @NonNull ByteBuffer readableNioBuffer()
      Specified by:
      readableNioBuffer in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • startTransaction

      @NonNull public @NonNull eu.cloudnetservice.driver.network.buffer.DataBuf startTransaction()
      Specified by:
      startTransaction in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • redoTransaction

      @NonNull public @NonNull eu.cloudnetservice.driver.network.buffer.DataBuf redoTransaction()
      Specified by:
      redoTransaction in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • asMutable

      @NonNull public eu.cloudnetservice.driver.network.buffer.DataBuf.Mutable asMutable()
      Specified by:
      asMutable in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • accessible

      public boolean accessible()
      Specified by:
      accessible in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • acquires

      public int acquires()
      Specified by:
      acquires in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • acquire

      @NonNull public @NonNull eu.cloudnetservice.driver.network.buffer.DataBuf acquire()
      Specified by:
      acquire in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • release

      public void release()
      Specified by:
      release in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • forceRelease

      public void forceRelease()
      Specified by:
      forceRelease in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface eu.cloudnetservice.driver.network.buffer.DataBuf
    • toString

      @NonNull public @NonNull String toString()
      Overrides:
      toString in class Object
    • buffer

      @NonNull public @NonNull io.netty5.buffer.Buffer buffer()
      Get the wrapped netty byte buf of this buffer, for internal use only.
      Returns:
      the wrapped netty byte buf.
    • bufferAsResourceSupport

      @NonNull private @NonNull io.netty5.buffer.internal.ResourceSupport<?,?> bufferAsResourceSupport()
      Gets the backing buffer instance cast to a ResourceSupport instance.
      Returns:
      the backing buffer instance cast to a ResourceSupport instance.