Class ReleasableBytesReference

java.lang.Object
org.elasticsearch.common.bytes.ReleasableBytesReference
All Implemented Interfaces:
java.io.Closeable, java.lang.AutoCloseable, java.lang.Comparable<BytesReference>, BytesReference, Releasable, org.elasticsearch.common.util.concurrent.RefCounted, org.elasticsearch.common.xcontent.ToXContent, org.elasticsearch.common.xcontent.ToXContentFragment

public final class ReleasableBytesReference
extends java.lang.Object
implements org.elasticsearch.common.util.concurrent.RefCounted, Releasable, BytesReference
An extension to BytesReference that requires releasing its content. This class exists to make it explicit when a bytes reference needs to be released, and when not.
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.elasticsearch.common.xcontent.ToXContent

    org.elasticsearch.common.xcontent.ToXContent.DelegatingMapParams, org.elasticsearch.common.xcontent.ToXContent.MapParams, org.elasticsearch.common.xcontent.ToXContent.Params
  • Field Summary

    Fields
    Modifier and Type Field Description
    static Releasable NO_OP  

    Fields inherited from interface org.elasticsearch.common.xcontent.ToXContent

    EMPTY_PARAMS
  • Constructor Summary

    Constructors
    Constructor Description
    ReleasableBytesReference​(BytesReference delegate, Releasable releasable)  
  • Method Summary

    Modifier and Type Method Description
    void close()  
    int compareTo​(BytesReference o)  
    boolean decRef()  
    boolean equals​(java.lang.Object obj)  
    byte get​(int index)
    Returns the byte at the specified index.
    int getInt​(int index)
    Returns the integer read from the 4 bytes (BE) starting at the given index.
    int hashCode()  
    void incRef()  
    int indexOf​(byte marker, int from)
    Finds the index of the first occurrence of the given marker between within the given bounds.
    boolean isFragment()  
    org.apache.lucene.util.BytesRefIterator iterator()
    Returns a BytesRefIterator for this BytesReference.
    int length()
    The length.
    long ramBytesUsed()
    The amount of memory used by this BytesReference
    int refCount()  
    ReleasableBytesReference retain()  
    ReleasableBytesReference retainedSlice​(int from, int length)  
    BytesReference slice​(int from, int length)
    Slice the bytes from the from index up to length.
    StreamInput streamInput()
    A stream input of the bytes.
    org.apache.lucene.util.BytesRef toBytesRef()
    Converts to Lucene BytesRef.
    org.elasticsearch.common.xcontent.XContentBuilder toXContent​(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params)  
    boolean tryIncRef()  
    java.lang.String utf8ToString()
    Interprets the referenced bytes as UTF8 bytes, returning the resulting string
    static ReleasableBytesReference wrap​(BytesReference reference)  
    void writeTo​(java.io.OutputStream os)
    Writes the bytes directly to the output stream.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

  • Method Details

    • wrap

      public static ReleasableBytesReference wrap​(BytesReference reference)
    • refCount

      public int refCount()
    • incRef

      public void incRef()
      Specified by:
      incRef in interface org.elasticsearch.common.util.concurrent.RefCounted
    • tryIncRef

      public boolean tryIncRef()
      Specified by:
      tryIncRef in interface org.elasticsearch.common.util.concurrent.RefCounted
    • decRef

      public boolean decRef()
      Specified by:
      decRef in interface org.elasticsearch.common.util.concurrent.RefCounted
    • retain

      public ReleasableBytesReference retain()
    • retainedSlice

      public ReleasableBytesReference retainedSlice​(int from, int length)
    • close

      public void close()
      Specified by:
      close in interface java.lang.AutoCloseable
      Specified by:
      close in interface java.io.Closeable
      Specified by:
      close in interface Releasable
    • get

      public byte get​(int index)
      Description copied from interface: BytesReference
      Returns the byte at the specified index. Need to be between 0 and length.
      Specified by:
      get in interface BytesReference
    • getInt

      public int getInt​(int index)
      Description copied from interface: BytesReference
      Returns the integer read from the 4 bytes (BE) starting at the given index.
      Specified by:
      getInt in interface BytesReference
    • indexOf

      public int indexOf​(byte marker, int from)
      Description copied from interface: BytesReference
      Finds the index of the first occurrence of the given marker between within the given bounds.
      Specified by:
      indexOf in interface BytesReference
      Parameters:
      marker - marker byte to search
      from - lower bound for the index to check (inclusive)
      Returns:
      first index of the marker or -1 if not found
    • length

      public int length()
      Description copied from interface: BytesReference
      The length.
      Specified by:
      length in interface BytesReference
    • slice

      public BytesReference slice​(int from, int length)
      Description copied from interface: BytesReference
      Slice the bytes from the from index up to length.
      Specified by:
      slice in interface BytesReference
    • ramBytesUsed

      public long ramBytesUsed()
      Description copied from interface: BytesReference
      The amount of memory used by this BytesReference
      Specified by:
      ramBytesUsed in interface BytesReference
    • streamInput

      public StreamInput streamInput() throws java.io.IOException
      Description copied from interface: BytesReference
      A stream input of the bytes.
      Specified by:
      streamInput in interface BytesReference
      Throws:
      java.io.IOException
    • writeTo

      public void writeTo​(java.io.OutputStream os) throws java.io.IOException
      Description copied from interface: BytesReference
      Writes the bytes directly to the output stream.
      Specified by:
      writeTo in interface BytesReference
      Throws:
      java.io.IOException
    • utf8ToString

      public java.lang.String utf8ToString()
      Description copied from interface: BytesReference
      Interprets the referenced bytes as UTF8 bytes, returning the resulting string
      Specified by:
      utf8ToString in interface BytesReference
    • toBytesRef

      public org.apache.lucene.util.BytesRef toBytesRef()
      Description copied from interface: BytesReference
      Converts to Lucene BytesRef.
      Specified by:
      toBytesRef in interface BytesReference
    • iterator

      public org.apache.lucene.util.BytesRefIterator iterator()
      Description copied from interface: BytesReference
      Returns a BytesRefIterator for this BytesReference. This method allows access to the internal pages of this reference without copying them. Use with care!
      Specified by:
      iterator in interface BytesReference
      See Also:
      BytesRefIterator
    • compareTo

      public int compareTo​(BytesReference o)
      Specified by:
      compareTo in interface java.lang.Comparable<BytesReference>
    • toXContent

      public org.elasticsearch.common.xcontent.XContentBuilder toXContent​(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params) throws java.io.IOException
      Specified by:
      toXContent in interface org.elasticsearch.common.xcontent.ToXContent
      Throws:
      java.io.IOException
    • isFragment

      public boolean isFragment()
      Specified by:
      isFragment in interface org.elasticsearch.common.xcontent.ToXContent
      Specified by:
      isFragment in interface org.elasticsearch.common.xcontent.ToXContentFragment
    • equals

      public boolean equals​(java.lang.Object obj)
      Overrides:
      equals in class java.lang.Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class java.lang.Object