Packages

  • package root
    Definition Classes
    root
  • package com
    Definition Classes
    root
  • package twitter
    Definition Classes
    com
  • package io
    Definition Classes
    twitter
  • object Buf

    Buf wrapper-types (like Buf.ByteArray and Buf.ByteBuffer) provide "shared" and "owned" APIs, each of which contain construction and extraction utilities.

    Buf wrapper-types (like Buf.ByteArray and Buf.ByteBuffer) provide "shared" and "owned" APIs, each of which contain construction and extraction utilities. While the owned and shared nomenclature is unintuitive, their purpose and use cases are straightforward.

    A "shared" Buf means that steps are taken to ensure that the produced Buf shares no state with the producer. This typically implies defensive copying and should be used when you do not control the lifecycle or usage of the passed in data.

    The "owned" APIs may provide direct access to a Buf's underlying implementation; and so mutating the underlying data structure invalidates a Buf's immutability constraint. Users must take care to handle this data immutably.

    Note: There are Java-friendly APIs for this object at com.twitter.io.Bufs.

    Definition Classes
    io
  • ByteArray
  • ByteBuffer
  • Iso8859_1
  • Processor
  • StringCoder
  • U128BE
  • U128LE
  • U32BE
  • U32LE
  • U64BE
  • U64LE
  • UsAscii
  • Utf16
  • Utf16BE
  • Utf16LE
  • Utf8

class ByteBuffer extends Buf

A buffer representing the remaining bytes in the given java.nio.ByteBuffer. The given buffer will not be affected.

Modifications to the ByteBuffer's content will be visible to the resulting Buf. The ByteBuffer should be immutable in practice.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ByteBuffer
  2. Buf
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new ByteBuffer(underlying: java.nio.ByteBuffer)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def checkWriteArgs(outputLen: Int, outputOff: Int): Unit

    Helps implementations validate the arguments to Buf.write(output:Array[Byte],off:Int):Unit*.

    Helps implementations validate the arguments to Buf.write(output:Array[Byte],off:Int):Unit*.

    Attributes
    protected[this]
    Definition Classes
    Buf
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  7. def computeHashCode: Int

    Compute the 32-bit FNV-1 hash code of this buf.

    Compute the 32-bit FNV-1 hash code of this buf.

    Attributes
    protected
    Definition Classes
    Buf
  8. final def concat(right: Buf): Buf

    Concatenate this buffer with the given buffer.

    Concatenate this buffer with the given buffer.

    Definition Classes
    Buf
  9. def copiedByteArray: Array[Byte]

    Definitely requires copying.

    Definitely requires copying.

    Attributes
    protected
    Definition Classes
    Buf
  10. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  11. def equals(other: Any): Boolean
    Definition Classes
    ByteBufferBuf → AnyRef → Any
  12. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  13. def get(index: Int): Byte

    Returns the byte at the given index.

    Returns the byte at the given index.

    Definition Classes
    ByteBufferBuf
  14. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  15. final def hashCode(): Int
    Definition Classes
    Buf → AnyRef → Any
  16. def isEmpty: Boolean
    Definition Classes
    Buf
  17. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  18. def isSliceEmpty(from: Int, until: Int): Boolean

    Helps implementations of slice.

    Helps implementations of slice.

    Attributes
    protected[this]
    Definition Classes
    Buf
  19. def isSliceIdentity(from: Int, until: Int): Boolean

    Helps implementations of slice.

    Helps implementations of slice.

    Attributes
    protected[this]
    Definition Classes
    Buf
  20. def length: Int

    The number of bytes in the buffer

    The number of bytes in the buffer

    Definition Classes
    ByteBufferBuf
  21. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  22. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  23. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  24. def process(from: Int, until: Int, processor: Processor): Int

    Process the Buf 1-byte at a time using the given Buf.Processor, starting at index from until index until.

    Process the Buf 1-byte at a time using the given Buf.Processor, starting at index from until index until. Processing will halt if the processor returns false or after processing the final byte.

    from

    the starting index, inclusive. Must be non-negative.

    until

    the ending index, exclusive. Must be non-negative.

    returns

    -1 if the processor processed all bytes or the last processed index if the processor returns false. Will return -1 if from is greater than or equal to until or length. Will return -1 if until is greater than or equal to length.

    Definition Classes
    ByteBufferBuf
    Note

    this mimics the design of Netty 4's io.netty.buffer.ByteBuf.forEachByte

  25. def process(processor: Processor): Int

    Process the Buf 1-byte at a time using the given Buf.Processor, starting at index 0 until index length.

    Process the Buf 1-byte at a time using the given Buf.Processor, starting at index 0 until index length. Processing will halt if the processor returns false or after processing the final byte.

    returns

    -1 if the processor processed all bytes or the last processed index if the processor returns false.

    Definition Classes
    Buf
    Note

    this mimics the design of Netty 4's io.netty.buffer.ByteBuf.forEachByte

  26. def slice(from: Int, until: Int): Buf

    Returns a new buffer representing a slice of this buffer, delimited by the indices from inclusive and until exclusive: [from, until).

    Returns a new buffer representing a slice of this buffer, delimited by the indices from inclusive and until exclusive: [from, until). Out of bounds indices are truncated. Negative indices are not accepted.

    Definition Classes
    ByteBufferBuf
    Note

    Buf implementors should use the helpers Buf.checkSliceArgs, isSliceEmpty, and isSliceIdentity.

  27. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  28. def toString(): String
    Definition Classes
    ByteBuffer → AnyRef → Any
  29. def unsafeByteArray: Array[Byte]

    May require copying.

    May require copying.

    Attributes
    protected
    Definition Classes
    Buf
  30. def unsafeByteArrayBuf: Option[ByteArray]

    Helper to support 0-copy coercion to Buf.ByteArray.

    Helper to support 0-copy coercion to Buf.ByteArray.

    Attributes
    protected
    Definition Classes
    ByteBufferBuf
  31. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  32. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  33. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  34. def write(buffer: java.nio.ByteBuffer): Unit

    Write the entire contents of this Buf into the given nio buffer.

    Write the entire contents of this Buf into the given nio buffer. Partial writes aren't supported directly through this API; they can be accomplished by first slicing the buffer. This method should be preferred over Buf.ByteBuffer.extract, Buf.ByteArray.Owned, etc family of functions when you want to control the destination of the data, as opposed to letting the Buf implementation manage the destination. For example, if the data is destined for an IO operation, it may be preferable to provide a direct nio ByteBuffer to ensure the avoidance of intermediate heap-based representations.

    Definition Classes
    ByteBufferBuf
    Note

    Throws java.lang.IllegalArgumentException when output doesn't have enough space as defined by ByteBuffer.remaining() to hold the contents of this Buf.

    ,

    Throws ReadOnlyBufferException if the provided buffer is read-only.

    ,

    Buf implementors should use the helper checkWriteArgs.

    See also

    write(Array[Byte],Int) for writing to byte arrays.

  35. def write(output: Array[Byte], off: Int): Unit

    Write the entire contents of this Buf into the given array at the given offset.

    Write the entire contents of this Buf into the given array at the given offset. Partial writes aren't supported directly through this API; they can be accomplished by first slicing the buffer. This method should be preferred over the Buf.ByteArray.extract, Buf.ByteArray.Owned, etc family of functions when you want to control the destination of the data, as opposed to letting the Buf implementation manage the destination. For example, if you want to manually set the first bytes of an Array[Byte] and then efficiently copy the contents of this Buf to the remaining space.

    Definition Classes
    ByteBufferBuf
    Note

    Throws IllegalArgumentException when output is too small to contain all the data.

    ,

    Buf implementors should use the helper checkWriteArgs.

    See also

    write(ByteBuffer) for writing to nio buffers.

Inherited from Buf

Inherited from AnyRef

Inherited from Any

Ungrouped