Package org.elasticsearch.common.bytes
Class ReleasableBytesReference
java.lang.Object
org.elasticsearch.common.bytes.ReleasableBytesReference
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Comparable<BytesReference>
,BytesReference
,org.elasticsearch.common.xcontent.ToXContent
,org.elasticsearch.common.xcontent.ToXContentFragment
,org.elasticsearch.core.RefCounted
,org.elasticsearch.core.Releasable
public final class ReleasableBytesReference
extends Object
implements org.elasticsearch.core.RefCounted, org.elasticsearch.core.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 inherited from interface org.elasticsearch.common.xcontent.ToXContent
EMPTY_PARAMS
-
Constructor Summary
ConstructorDescriptionReleasableBytesReference(BytesReference delegate, org.elasticsearch.core.AbstractRefCounted refCounted)
ReleasableBytesReference(BytesReference delegate, org.elasticsearch.core.Releasable releasable)
-
Method Summary
Modifier and TypeMethodDescriptionbyte[]
array()
int
void
close()
int
boolean
decRef()
static ReleasableBytesReference
empty()
boolean
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.boolean
hasArray()
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
org.apache.lucene.util.BytesRefIterator
iterator()
Returns a BytesRefIterator for this BytesReference.int
length()
The length.long
The amount of memory used by this BytesReferenceint
refCount()
retain()
retainedSlice(int from, int length)
slice(int from, int length)
Slice the bytes from thefrom
index up tolength
.A stream input of the bytes.org.apache.lucene.util.BytesRef
Converts to Lucene BytesRef.org.elasticsearch.common.xcontent.XContentBuilder
toXContent(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params)
boolean
Interprets the referenced bytes as UTF8 bytes, returning the resulting stringstatic ReleasableBytesReference
wrap(BytesReference reference)
void
writeTo(OutputStream os)
Writes the bytes directly to the output stream.
-
Field Details
-
NO_OP
public static final org.elasticsearch.core.Releasable NO_OP
-
-
Constructor Details
-
ReleasableBytesReference
public ReleasableBytesReference(BytesReference delegate, org.elasticsearch.core.Releasable releasable) -
ReleasableBytesReference
public ReleasableBytesReference(BytesReference delegate, org.elasticsearch.core.AbstractRefCounted refCounted)
-
-
Method Details
-
empty
-
wrap
-
refCount
public int refCount() -
incRef
public void incRef()- Specified by:
incRef
in interfaceorg.elasticsearch.core.RefCounted
-
tryIncRef
public boolean tryIncRef()- Specified by:
tryIncRef
in interfaceorg.elasticsearch.core.RefCounted
-
decRef
public boolean decRef()- Specified by:
decRef
in interfaceorg.elasticsearch.core.RefCounted
-
retain
-
retainedSlice
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceorg.elasticsearch.core.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 interfaceBytesReference
-
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 interfaceBytesReference
-
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 interfaceBytesReference
- Parameters:
marker
- marker byte to searchfrom
- 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 interfaceBytesReference
-
slice
Description copied from interface:BytesReference
Slice the bytes from thefrom
index up tolength
.- Specified by:
slice
in interfaceBytesReference
-
ramBytesUsed
public long ramBytesUsed()Description copied from interface:BytesReference
The amount of memory used by this BytesReference- Specified by:
ramBytesUsed
in interfaceBytesReference
-
streamInput
Description copied from interface:BytesReference
A stream input of the bytes.- Specified by:
streamInput
in interfaceBytesReference
- Throws:
IOException
-
writeTo
Description copied from interface:BytesReference
Writes the bytes directly to the output stream.- Specified by:
writeTo
in interfaceBytesReference
- Throws:
IOException
-
utf8ToString
Description copied from interface:BytesReference
Interprets the referenced bytes as UTF8 bytes, returning the resulting string- Specified by:
utf8ToString
in interfaceBytesReference
-
toBytesRef
public org.apache.lucene.util.BytesRef toBytesRef()Description copied from interface:BytesReference
Converts to Lucene BytesRef.- Specified by:
toBytesRef
in interfaceBytesReference
-
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 interfaceBytesReference
- See Also:
BytesRefIterator
-
compareTo
- Specified by:
compareTo
in interfaceComparable<BytesReference>
-
toXContent
public org.elasticsearch.common.xcontent.XContentBuilder toXContent(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params) throws IOException- Specified by:
toXContent
in interfaceorg.elasticsearch.common.xcontent.ToXContent
- Throws:
IOException
-
isFragment
public boolean isFragment()- Specified by:
isFragment
in interfaceorg.elasticsearch.common.xcontent.ToXContent
- Specified by:
isFragment
in interfaceorg.elasticsearch.common.xcontent.ToXContentFragment
-
equals
-
hashCode
public int hashCode() -
hasArray
public boolean hasArray()- Specified by:
hasArray
in interfaceBytesReference
- Returns:
true
if this instance is backed by a byte array
-
array
public byte[] array()- Specified by:
array
in interfaceBytesReference
- Returns:
- backing byte array for this instance
-
arrayOffset
public int arrayOffset()- Specified by:
arrayOffset
in interfaceBytesReference
- Returns:
- offset of the first byte of this instance in the backing byte array
-