Class ByteString
- java.lang.Object
-
- akka.util.ByteString
-
- All Implemented Interfaces:
scala.collection.immutable.IndexedSeq<java.lang.Object>
,scala.collection.immutable.IndexedSeqOps<java.lang.Object,scala.collection.immutable.IndexedSeq,scala.collection.immutable.IndexedSeq<java.lang.Object>>
,scala.collection.immutable.Iterable<java.lang.Object>
,scala.collection.immutable.Seq<java.lang.Object>
,scala.collection.immutable.SeqOps<java.lang.Object,scala.collection.immutable.Seq,scala.collection.immutable.Seq<java.lang.Object>>
,scala.collection.immutable.StrictOptimizedSeqOps<java.lang.Object,scala.collection.immutable.IndexedSeq,ByteString>
,scala.collection.IndexedSeq<java.lang.Object>
,scala.collection.IndexedSeqOps<java.lang.Object,scala.collection.IndexedSeq,scala.collection.IndexedSeq<java.lang.Object>>
,scala.collection.Iterable<java.lang.Object>
,scala.collection.IterableFactoryDefaults<java.lang.Object,scala.collection.Iterable>
,scala.collection.IterableOnce<java.lang.Object>
,scala.collection.IterableOnceOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
,scala.collection.IterableOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
,scala.collection.Seq<java.lang.Object>
,scala.collection.SeqOps<java.lang.Object,scala.collection.Seq,scala.collection.Seq<java.lang.Object>>
,scala.collection.StrictOptimizedIterableOps<java.lang.Object,scala.collection.immutable.IndexedSeq,ByteString>
,scala.collection.StrictOptimizedSeqOps<java.lang.Object,scala.collection.immutable.IndexedSeq,ByteString>
,scala.Equals
,scala.Function1<java.lang.Object,java.lang.Object>
,scala.PartialFunction<java.lang.Object,java.lang.Object>
- Direct Known Subclasses:
ByteString.ByteString1
,ByteString.ByteStrings
,CompactByteString
public abstract class ByteString extends java.lang.Object implements scala.collection.immutable.IndexedSeq<java.lang.Object>, scala.collection.immutable.IndexedSeqOps<java.lang.Object,scala.collection.immutable.IndexedSeq,ByteString>, scala.collection.immutable.StrictOptimizedSeqOps<java.lang.Object,scala.collection.immutable.IndexedSeq,ByteString>
A rope-like immutable data structure containing bytes. The goal of this structure is to reduce copying of arrays when concatenating and slicing sequences of bytes, and also providing a thread safe way of working with bytes.TODO: Add performance characteristics
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ByteString.ByteString1
An unfragmented ByteString.static class
ByteString.ByteString1$
INTERNAL API: ByteString backed by exactly one array, with start / end markersstatic class
ByteString.ByteString1C
A compact (unsliced) and unfragmented ByteString, implementation of ByteString1C.static class
ByteString.ByteString1C$
static class
ByteString.ByteStrings
A ByteString with 2 or more fragments.static class
ByteString.ByteStrings$
static interface
ByteString.Companion
static class
ByteString.Companion$
-
Nested classes/interfaces inherited from interface scala.Function1
scala.Function1.UnliftOps<A extends java.lang.Object,B extends java.lang.Object>, scala.Function1.UnliftOps$
-
-
Constructor Summary
Constructors Constructor Description ByteString()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract ByteString
$plus$plus(ByteString that)
Efficiently concatenate another ByteString.abstract byte
apply(int idx)
abstract java.nio.ByteBuffer
asByteBuffer()
Returns a read-only ByteBuffer that directly wraps this ByteString if it is not fragmented.abstract scala.collection.immutable.Iterable<java.nio.ByteBuffer>
asByteBuffers()
Scala API: Returns an immutable Iterable of read-only ByteBuffers that directly wraps this ByteStrings all fragments.java.lang.String
className()
abstract CompactByteString
compact()
Create a new ByteString with all contents compacted into a single, full byte array.ByteString
concat(ByteString that)
Java API: efficiently concatenate another ByteString.<B> int
copyToArray(java.lang.Object xs, int start)
<B> int
copyToArray(java.lang.Object xs, int start, int len)
abstract int
copyToBuffer(java.nio.ByteBuffer buffer)
Copy as many bytes as possible to a ByteBuffer, starting from it's current position.static ByteStringBuilder
createBuilder()
Java APIabstract ByteString
decodeBase64()
abstract java.lang.String
decodeString(java.lang.String charset)
Decodes this ByteString using a charset to produce a String.abstract java.lang.String
decodeString(java.nio.charset.Charset charset)
Decodes this ByteString using a charset to produce a String.ByteString
drop(int n)
ByteString
dropRight(int n)
ByteString
dropWhile(scala.Function1<java.lang.Object,java.lang.Object> p)
ByteString
empty()
static ByteString
emptyByteString()
Java APIabstract ByteString
encodeBase64()
Returns a ByteString which is the Base64 representation of this ByteString<U> void
foreach(scala.Function1<java.lang.Object,U> f)
static ByteString
fromArray(byte[] array)
Creates a new ByteString by copying a byte array.static ByteString
fromArray(byte[] array, int offset, int length)
Creates a new ByteString by copying length bytes starting at offset from an Array.static ByteString
fromArrayUnsafe(byte[] array)
Unsafe API: Use only in situations you are completely confident that this is what you need, and that you understand the implications documented below.static ByteString
fromArrayUnsafe(byte[] array, int offset, int length)
Unsafe API: Use only in situations you are completely confident that this is what you need, and that you understand the implications documented below.static ByteString
fromByteBuffer(java.nio.ByteBuffer buffer)
Creates a new ByteString by copying bytes out of a ByteBuffer.static ByteString
fromInts(int... array)
JAVA API Creates a new ByteString by copying an int array by converting from integral numbers to bytes.static ByteString
fromInts(scala.collection.immutable.Seq<java.lang.Object> array)
JAVA API Creates a new ByteString by copying an int array by converting from integral numbers to bytes.protected ByteString
fromSpecific(scala.collection.IterableOnce<java.lang.Object> coll)
static ByteString
fromString(java.lang.String string)
Creates a new ByteString which will contain the UTF-8 representation of the given Stringstatic ByteString
fromString(java.lang.String string, java.lang.String charset)
Creates a new ByteString which will contain the representation of the given String in the given charsetstatic ByteString
fromString(java.lang.String string, java.nio.charset.Charset charset)
Creates a new ByteString which will contain the representation of the given String in the given charsetjava.lang.Iterable<java.nio.ByteBuffer>
getByteBuffers()
Java API: Returns an Iterable of read-only ByteBuffers that directly wraps this ByteStrings all fragments.scala.collection.Iterator<ByteString>
grouped(int size)
byte
head()
<B> int
indexOf(B elem, int from)
int
indexWhere(scala.Function1<java.lang.Object,java.lang.Object> p, int from)
ByteString
init()
abstract boolean
isCompact()
Check whether this ByteString is compact in memory.boolean
isEmpty()
ByteIterator
iterator()
byte
last()
<A> ByteString
map(scala.Function1<java.lang.Object,java.lang.Object> f)
ByteString
mapI(scala.Function1<java.lang.Object,java.lang.Object> f)
map method that will automatically cast Int back into Byte.static ByteStringBuilder
newBuilder()
protected scala.collection.mutable.Builder<java.lang.Object,ByteString>
newSpecificBuilder()
ByteString
slice(int from, int until)
scala.Tuple2<ByteString,ByteString>
span(scala.Function1<java.lang.Object,java.lang.Object> p)
scala.Tuple2<ByteString,ByteString>
splitAt(int n)
ByteString
tail()
ByteString
take(int n)
ByteString
takeRight(int n)
ByteString
takeWhile(scala.Function1<java.lang.Object,java.lang.Object> p)
protected byte[]
toArray()
Java API: copy this ByteString into a fresh byte array<B> java.lang.Object
toArray(scala.reflect.ClassTag<B> arg0)
byte[]
toArrayUnsafe()
Unsafe API: Use only in situations you are completely confident that this is what you need, and that you understand the implications documented below.java.nio.ByteBuffer
toByteBuffer()
Creates a new ByteBuffer with a copy of all bytes contained in this ByteString.java.lang.String
toString()
static java.lang.String
UTF_8()
Standard "UTF-8" charsetjava.lang.String
utf8String()
Decodes this ByteString as a UTF-8 encoded String.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface scala.Function1
apply, apply$mcDD$sp, apply$mcDF$sp, apply$mcDI$sp, apply$mcDJ$sp, apply$mcFD$sp, apply$mcFF$sp, apply$mcFI$sp, apply$mcFJ$sp, apply$mcID$sp, apply$mcIF$sp, apply$mcII$sp, apply$mcIJ$sp, apply$mcJD$sp, apply$mcJF$sp, apply$mcJI$sp, apply$mcJJ$sp, apply$mcVD$sp, apply$mcVF$sp, apply$mcVI$sp, apply$mcVJ$sp, apply$mcZD$sp, apply$mcZF$sp, apply$mcZI$sp, apply$mcZJ$sp, compose
-
Methods inherited from interface scala.collection.immutable.IndexedSeq
applyPreferredMaxLength, canEqual, iterableFactory, sameElements, toIndexedSeq
-
Methods inherited from interface scala.collection.IndexedSeqOps
foldRight, headOption, knownSize, lengthCompare, lengthCompare, map, prepended, reverse, reversed, reverseIterator, search, search, stepper, view, view
-
Methods inherited from interface scala.collection.Iterable
coll, collectionClassName, lazyZip, seq, toIterable
-
Methods inherited from interface scala.collection.IterableOnceOps
$colon$bslash, $div$colon, addString, addString, addString, aggregate, collectFirst, copyToArray, copyToBuffer, corresponds, count, exists, find, fold, foldLeft, forall, hasDefiniteSize, max, maxBy, maxByOption, maxOption, min, minBy, minByOption, minOption, mkString, mkString, mkString, nonEmpty, product, reduce, reduceLeft, reduceLeftOption, reduceOption, reduceRight, reduceRightOption, sum, to, toBuffer, toIterator, toList, toMap, toSet, toStream, toVector
-
Methods inherited from interface scala.collection.IterableOps
$plus$plus, companion, groupBy, groupMap, groupMapReduce, inits, isTraversableAgain, lastOption, repr, scan, scanRight, sizeIs, sliding, sliding, tails, toTraversable, transpose, withFilter, zipAll
-
Methods inherited from interface scala.PartialFunction
andThen, andThen, applyOrElse, compose, elementWise, isDefinedAt, lift, orElse, runWith, unapply
-
Methods inherited from interface scala.collection.SeqOps
$colon$plus, $colon$plus$plus, $plus$colon, $plus$plus$colon, combinations, concat, contains, containsSlice, corresponds, distinct, endsWith, findLast, indexOf, indexOfSlice, indexOfSlice, indexWhere, indices, isDefinedAt, lastIndexOf, lastIndexOf$default$2, lastIndexOfSlice, lastIndexOfSlice, lastIndexWhere, lastIndexWhere, length, lengthIs, occCounts, permutations, prefixLength, reverseMap, scala$collection$SeqOps$$toGenericSeq, segmentLength, segmentLength, size, sizeCompare, sizeCompare, sortBy, sortWith, startsWith, startsWith$default$2, union
-
Methods inherited from interface scala.collection.StrictOptimizedIterableOps
collect, filter, filterImpl, filterNot, flatMap, flatten, map, partition, partitionMap, scanLeft, strictOptimizedCollect, strictOptimizedConcat, strictOptimizedFlatMap, strictOptimizedFlatten, strictOptimizedMap, strictOptimizedZip, tapEach, unzip, unzip3, zip, zipWithIndex
-
-
-
-
Method Detail
-
fromInts
public static ByteString fromInts(int... array)
JAVA API Creates a new ByteString by copying an int array by converting from integral numbers to bytes.
-
fromArray
public static ByteString fromArray(byte[] array)
Creates a new ByteString by copying a byte array.
-
fromArrayUnsafe
public static ByteString fromArrayUnsafe(byte[] array)
Unsafe API: Use only in situations you are completely confident that this is what you need, and that you understand the implications documented below.Creates a ByteString without copying the passed in byte array, unlike other factory methods defined on ByteString. This method of creating a ByteString saves one array copy and allocation and therefore can lead to better performance, however it also means that one MUST NOT modify the passed in array, or unexpected immutable data structure contract-breaking behavior will manifest itself.
This API is intended for users who have obtained an byte array from some other API, and want wrap it into an ByteArray, and from there on only use that reference (the ByteString) to operate on the wrapped data. For all other intents and purposes, please use the usual apply and create methods - which provide the immutability guarantees by copying the array.
-
fromArray
public static ByteString fromArray(byte[] array, int offset, int length)
Creates a new ByteString by copying length bytes starting at offset from an Array.
-
fromArrayUnsafe
public static ByteString fromArrayUnsafe(byte[] array, int offset, int length)
Unsafe API: Use only in situations you are completely confident that this is what you need, and that you understand the implications documented below.Creates a ByteString without copying the passed in byte array, unlike other factory methods defined on ByteString. This method of creating a ByteString saves one array copy and allocation and therefore can lead to better performance, however it also means that one MUST NOT modify the passed in array, or unexpected immutable data structure contract-breaking behavior will manifest itself.
This API is intended for users who have obtained an byte array from some other API, and want wrap it into an ByteArray, and from there on only use that reference (the ByteString) to operate on the wrapped data. For all other intents and purposes, please use the usual apply and create methods - which provide the immutability guarantees by copying the array.
-
fromInts
public static ByteString fromInts(scala.collection.immutable.Seq<java.lang.Object> array)
JAVA API Creates a new ByteString by copying an int array by converting from integral numbers to bytes.
-
fromString
public static ByteString fromString(java.lang.String string)
Creates a new ByteString which will contain the UTF-8 representation of the given String
-
fromString
public static ByteString fromString(java.lang.String string, java.lang.String charset)
Creates a new ByteString which will contain the representation of the given String in the given charset
-
fromString
public static ByteString fromString(java.lang.String string, java.nio.charset.Charset charset)
Creates a new ByteString which will contain the representation of the given String in the given charset
-
UTF_8
public static java.lang.String UTF_8()
Standard "UTF-8" charset
-
fromByteBuffer
public static ByteString fromByteBuffer(java.nio.ByteBuffer buffer)
Creates a new ByteString by copying bytes out of a ByteBuffer.
-
emptyByteString
public static ByteString emptyByteString()
Java API
-
newBuilder
public static ByteStringBuilder newBuilder()
-
createBuilder
public static ByteStringBuilder createBuilder()
Java API
-
fromSpecific
protected ByteString fromSpecific(scala.collection.IterableOnce<java.lang.Object> coll)
- Specified by:
fromSpecific
in interfacescala.collection.IterableFactoryDefaults<java.lang.Object,scala.collection.Iterable>
- Specified by:
fromSpecific
in interfacescala.collection.IterableOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
-
newSpecificBuilder
protected scala.collection.mutable.Builder<java.lang.Object,ByteString> newSpecificBuilder()
- Specified by:
newSpecificBuilder
in interfacescala.collection.IterableFactoryDefaults<java.lang.Object,scala.collection.Iterable>
- Specified by:
newSpecificBuilder
in interfacescala.collection.IterableOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
-
empty
public ByteString empty()
- Specified by:
empty
in interfacescala.collection.IterableFactoryDefaults<java.lang.Object,scala.collection.Iterable>
- Specified by:
empty
in interfacescala.collection.IterableOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
-
apply
public abstract byte apply(int idx)
- Specified by:
apply
in interfacescala.collection.SeqOps<java.lang.Object,scala.collection.Seq,scala.collection.Seq<java.lang.Object>>
-
className
public final java.lang.String className()
- Specified by:
className
in interfacescala.collection.Iterable<java.lang.Object>
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interfacescala.collection.IterableOnceOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
- Specified by:
isEmpty
in interfacescala.collection.SeqOps<java.lang.Object,scala.collection.Seq,scala.collection.Seq<java.lang.Object>>
-
iterator
public ByteIterator iterator()
- Specified by:
iterator
in interfacescala.collection.IndexedSeqOps<java.lang.Object,scala.collection.IndexedSeq,scala.collection.IndexedSeq<java.lang.Object>>
- Specified by:
iterator
in interfacescala.collection.IterableOnce<java.lang.Object>
-
head
public byte head()
- Specified by:
head
in interfacescala.collection.IndexedSeqOps<java.lang.Object,scala.collection.IndexedSeq,scala.collection.IndexedSeq<java.lang.Object>>
- Specified by:
head
in interfacescala.collection.IterableOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
-
tail
public ByteString tail()
- Specified by:
tail
in interfacescala.collection.IterableOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
-
last
public byte last()
- Specified by:
last
in interfacescala.collection.IndexedSeqOps<java.lang.Object,scala.collection.IndexedSeq,scala.collection.IndexedSeq<java.lang.Object>>
- Specified by:
last
in interfacescala.collection.IterableOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
-
init
public ByteString init()
- Specified by:
init
in interfacescala.collection.IterableOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
-
take
public ByteString take(int n)
- Specified by:
take
in interfacescala.collection.IndexedSeqOps<java.lang.Object,scala.collection.IndexedSeq,scala.collection.IndexedSeq<java.lang.Object>>
- Specified by:
take
in interfacescala.collection.IterableOnceOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
- Specified by:
take
in interfacescala.collection.IterableOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
-
takeRight
public ByteString takeRight(int n)
- Specified by:
takeRight
in interfacescala.collection.IndexedSeqOps<java.lang.Object,scala.collection.IndexedSeq,scala.collection.IndexedSeq<java.lang.Object>>
- Specified by:
takeRight
in interfacescala.collection.IterableOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
- Specified by:
takeRight
in interfacescala.collection.StrictOptimizedIterableOps<java.lang.Object,scala.collection.immutable.IndexedSeq,ByteString>
-
slice
public ByteString slice(int from, int until)
- Specified by:
slice
in interfacescala.collection.immutable.IndexedSeqOps<java.lang.Object,scala.collection.immutable.IndexedSeq,scala.collection.immutable.IndexedSeq<java.lang.Object>>
- Specified by:
slice
in interfacescala.collection.IndexedSeqOps<java.lang.Object,scala.collection.IndexedSeq,scala.collection.IndexedSeq<java.lang.Object>>
- Specified by:
slice
in interfacescala.collection.IterableOnceOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
- Specified by:
slice
in interfacescala.collection.IterableOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
-
drop
public ByteString drop(int n)
- Specified by:
drop
in interfacescala.collection.IndexedSeqOps<java.lang.Object,scala.collection.IndexedSeq,scala.collection.IndexedSeq<java.lang.Object>>
- Specified by:
drop
in interfacescala.collection.IterableOnceOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
- Specified by:
drop
in interfacescala.collection.IterableOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
-
dropRight
public ByteString dropRight(int n)
- Specified by:
dropRight
in interfacescala.collection.IndexedSeqOps<java.lang.Object,scala.collection.IndexedSeq,scala.collection.IndexedSeq<java.lang.Object>>
- Specified by:
dropRight
in interfacescala.collection.IterableOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
- Specified by:
dropRight
in interfacescala.collection.StrictOptimizedIterableOps<java.lang.Object,scala.collection.immutable.IndexedSeq,ByteString>
-
takeWhile
public ByteString takeWhile(scala.Function1<java.lang.Object,java.lang.Object> p)
- Specified by:
takeWhile
in interfacescala.collection.IterableOnceOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
- Specified by:
takeWhile
in interfacescala.collection.IterableOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
-
dropWhile
public ByteString dropWhile(scala.Function1<java.lang.Object,java.lang.Object> p)
- Specified by:
dropWhile
in interfacescala.collection.IterableOnceOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
- Specified by:
dropWhile
in interfacescala.collection.IterableOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
-
span
public scala.Tuple2<ByteString,ByteString> span(scala.Function1<java.lang.Object,java.lang.Object> p)
- Specified by:
span
in interfacescala.collection.IterableOnceOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
- Specified by:
span
in interfacescala.collection.IterableOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
- Specified by:
span
in interfacescala.collection.StrictOptimizedIterableOps<java.lang.Object,scala.collection.immutable.IndexedSeq,ByteString>
-
splitAt
public scala.Tuple2<ByteString,ByteString> splitAt(int n)
- Specified by:
splitAt
in interfacescala.collection.IterableOnceOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
- Specified by:
splitAt
in interfacescala.collection.IterableOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
-
indexWhere
public int indexWhere(scala.Function1<java.lang.Object,java.lang.Object> p, int from)
- Specified by:
indexWhere
in interfacescala.collection.SeqOps<java.lang.Object,scala.collection.Seq,scala.collection.Seq<java.lang.Object>>
-
indexOf
public <B> int indexOf(B elem, int from)
- Specified by:
indexOf
in interfacescala.collection.SeqOps<java.lang.Object,scala.collection.Seq,scala.collection.Seq<java.lang.Object>>
-
grouped
public scala.collection.Iterator<ByteString> grouped(int size)
- Specified by:
grouped
in interfacescala.collection.IterableOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
-
toString
public java.lang.String toString()
- Specified by:
toString
in interfacescala.Function1<java.lang.Object,java.lang.Object>
- Specified by:
toString
in interfacescala.collection.Iterable<java.lang.Object>
- Specified by:
toString
in interfacescala.collection.Seq<java.lang.Object>
- Overrides:
toString
in classjava.lang.Object
-
toArray
protected byte[] toArray()
Java API: copy this ByteString into a fresh byte array- Returns:
- this ByteString copied into a byte array
-
toArray
public final <B> java.lang.Object toArray(scala.reflect.ClassTag<B> arg0)
- Specified by:
toArray
in interfacescala.collection.IterableOnceOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
-
copyToArray
public final <B> int copyToArray(java.lang.Object xs, int start)
- Specified by:
copyToArray
in interfacescala.collection.IterableOnceOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
-
copyToArray
public <B> int copyToArray(java.lang.Object xs, int start, int len)
- Specified by:
copyToArray
in interfacescala.collection.IterableOnceOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
-
toArrayUnsafe
public byte[] toArrayUnsafe()
Unsafe API: Use only in situations you are completely confident that this is what you need, and that you understand the implications documented below.If the ByteString is backed by a single array it is returned without any copy. If it is backed by a rope of multiple ByteString instances a new array will be allocated and the contents will be copied into it before returning it.
This method of exposing the bytes of a ByteString can save one array copy and allocation in the happy path scenario which can lead to better performance, however it also means that one MUST NOT modify the returned array, or unexpected immutable data structure contract-breaking behavior will manifest itself.
This API is intended for users who need to pass the byte array to some other API, which will only read the bytes and never mutate then. For all other intents and purposes, please use the usual toArray method - which provide the immutability guarantees by copying the backing array.
-
foreach
public <U> void foreach(scala.Function1<java.lang.Object,U> f)
- Specified by:
foreach
in interfacescala.collection.IterableOnceOps<java.lang.Object,scala.collection.Iterable,scala.collection.Iterable>
-
$plus$plus
public abstract ByteString $plus$plus(ByteString that)
Efficiently concatenate another ByteString.
-
concat
public ByteString concat(ByteString that)
Java API: efficiently concatenate another ByteString.
-
copyToBuffer
public abstract int copyToBuffer(java.nio.ByteBuffer buffer)
Copy as many bytes as possible to a ByteBuffer, starting from it's current position. This method will not overflow the buffer.- Parameters:
buffer
- a ByteBuffer to copy bytes to- Returns:
- the number of bytes actually copied
-
compact
public abstract CompactByteString compact()
Create a new ByteString with all contents compacted into a single, full byte array. If isCompact returns true, compact is an O(1) operation, but might return a different object with an optimized implementation.
-
isCompact
public abstract boolean isCompact()
Check whether this ByteString is compact in memory. If the ByteString is compact, it might, however, not be represented by an object that takes full advantage of that fact. Use compact to get such an object.
-
asByteBuffer
public abstract java.nio.ByteBuffer asByteBuffer()
Returns a read-only ByteBuffer that directly wraps this ByteString if it is not fragmented.
-
asByteBuffers
public abstract scala.collection.immutable.Iterable<java.nio.ByteBuffer> asByteBuffers()
Scala API: Returns an immutable Iterable of read-only ByteBuffers that directly wraps this ByteStrings all fragments. Will always have at least one entry.
-
getByteBuffers
public java.lang.Iterable<java.nio.ByteBuffer> getByteBuffers()
Java API: Returns an Iterable of read-only ByteBuffers that directly wraps this ByteStrings all fragments. Will always have at least one entry.
-
toByteBuffer
public java.nio.ByteBuffer toByteBuffer()
Creates a new ByteBuffer with a copy of all bytes contained in this ByteString.
-
utf8String
public final java.lang.String utf8String()
Decodes this ByteString as a UTF-8 encoded String.
-
decodeString
public abstract java.lang.String decodeString(java.lang.String charset)
Decodes this ByteString using a charset to produce a String. If you have aCharset
instance available, usedecodeString(charset: java.nio.charset.Charset
instead.
-
decodeString
public abstract java.lang.String decodeString(java.nio.charset.Charset charset)
Decodes this ByteString using a charset to produce a String. Avoids Charset.forName lookup in String internals, thus is preferable todecodeString(charset: String)
.
-
decodeBase64
public abstract ByteString decodeBase64()
-
encodeBase64
public abstract ByteString encodeBase64()
Returns a ByteString which is the Base64 representation of this ByteString
-
mapI
public final ByteString mapI(scala.Function1<java.lang.Object,java.lang.Object> f)
map method that will automatically cast Int back into Byte.
-
map
public <A> ByteString map(scala.Function1<java.lang.Object,java.lang.Object> f)
-
-