package util
- Alphabetic
- Public
- Protected
Package Members
- package ccompat
INTERNAL API
INTERNAL API
Based on https://github.com/scala/scala-collection-compat/blob/master/compat/src/main/scala-2.13/scala/collection/compat/package.scala but reproduced here so we don't need to add a dependency on this library. It contains much more than we need right now, and is not promising binary compatibility yet at the time of writing.
Type Members
- class BoundedBlockingQueue[E <: AnyRef] extends AbstractQueue[E] with BlockingQueue[E]
BoundedBlockingQueue wraps any Queue and turns the result into a BlockingQueue with a limited capacity.
- abstract class ByteIterator extends BufferedIterator[Byte]
An iterator over a ByteString.
- sealed abstract class ByteString extends IndexedSeq[Byte] with IndexedSeqOps[Byte, IndexedSeq, ByteString] with StrictOptimizedSeqOps[Byte, IndexedSeq, ByteString]
A rope-like immutable data structure containing bytes.
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
- final class ByteStringBuilder extends Builder[Byte, ByteString]
A mutable builder for efficiently creating a org.apache.pekko.util.ByteString.
A mutable builder for efficiently creating a org.apache.pekko.util.ByteString.
The created ByteString is not automatically compacted.
- class ClassLoaderObjectInputStream extends ObjectInputStream
ClassLoaderObjectInputStream tries to utilize the provided ClassLoader to load Classes and falls back to ObjectInputStreams resolver.
- sealed abstract class CompactByteString extends ByteString with Serializable
A compact ByteString.
A compact ByteString.
The ByteString is guarantied to be contiguous in memory and to use only as much memory as required for its contents.
- class ConcurrentMultiMap[K, V] extends Index[K, V]
An implementation of a ConcurrentMultiMap Adds/remove is serialized over the specified key Reads are fully concurrent <-- el-cheapo
- class Index[K, V] extends AnyRef
An implementation of a ConcurrentMultiMap Adds/remove is serialized over the specified key Reads are fully concurrent <-- el-cheapo
- final class ManifestInfo extends Extension
Utility that extracts ManifestInfo#Version information from META-INF/MANIFEST.MF in jar files on the classpath.
Utility that extracts ManifestInfo#Version information from META-INF/MANIFEST.MF in jar files on the classpath. Note that versions can only be found in ordinary jar files, for example not in "fat jars' assembled from many jar files.
- final class MessageBuffer extends AnyRef
A non thread safe mutable message buffer that can be used to buffer messages inside actors.
- final class MessageBufferMap[I] extends AnyRef
A non thread safe mutable message buffer map that can be used to buffer messages inside actors.
A non thread safe mutable message buffer map that can be used to buffer messages inside actors.
- I
(Id type)
- final class NanoTimeTokenBucket extends TokenBucket
Default implementation of TokenBucket that uses
System.nanoTime
as the time source. - trait PriorityQueueStabilizer[E <: AnyRef] extends AbstractQueue[E]
PriorityQueueStabilizer wraps a priority queue so that it respects FIFO for elements of equal priority.
- final class ReentrantGuard extends ReentrantLock
- class StablePriorityBlockingQueue[E <: AnyRef] extends AbstractQueue[E] with PriorityQueueStabilizer[E]
StablePriorityBlockingQueue is a blocking priority queue that preserves order for elements of equal priority.
- class StablePriorityQueue[E <: AnyRef] extends AbstractQueue[E] with PriorityQueueStabilizer[E]
StablePriorityQueue is a priority queue that preserves order for elements of equal priority.
- trait Subclassification[K] extends AnyRef
Typeclass which describes a classification hierarchy.
Typeclass which describes a classification hierarchy. Observe the contract between
isEqual
andisSubclass
! - class Switch extends AnyRef
An atomic switch that can be either on or off
- case class Timeout(duration: FiniteDuration) extends Product with Serializable
- Annotations
- @SerialVersionUID()
- class TypedMultiMap[T <: AnyRef, K[_ <: T]] extends AnyRef
An immutable multi-map that expresses the value type as a type function of the key type.
An immutable multi-map that expresses the value type as a type function of the key type. Create it with a type constructor that expresses the relationship:
trait Key { type Type = T } case class MyValue[T](...) // type function from Key to MyValue type KV[K <: Key] = MyValue[K#Type] val map = TypedMultiMap.empty[Key, KV] // a plain Int => String map would use this function: type plain[K <: Int] = String // a map T => T would use this function: type identity[T <: AnyRef] = T
Caveat: using keys which take type parameters does not work due to conflicts with the existential interpretation of
Key[_]
. A workaround is to define a key type like above and provide a subtype that provides its type parameter as type memberType
. - class UUIDComparator extends Comparator[UUID]
Scala implementation of UUIDComparator in https://github.com/cowtowncoder/java-uuid-generator Apache License 2.0.
- final class Unsafe extends AnyRef
INTERNAL API
INTERNAL API
- Annotations
- @InternalApi()
- final class Version extends Comparable[Version]
Comparable version information.
Comparable version information.
The typical convention is to use 3 digit version numbers
major.minor.patch
, but 1 or two digits are also supported.If no
.
is used it is interpreted as a single digit version number or as plain alphanumeric if it couldn't be parsed as a number.It may also have a qualifier at the end for 2 or 3 digit version numbers such as "1.2-RC1". For 1 digit with qualifier, 1-RC1, it is interpreted as plain alphanumeric.
It has support for https://github.com/dwijnand/sbt-dynver format with
+
or-
separator. The number of commits from the tag is handled as a numeric part. For example1.0.0+3-73475dce26
is less than1.0.0+10-ed316bd024
(3 < 10). - trait WallClock extends AnyRef
A time source.
A time source.
- Annotations
- @ApiMayChange()
Value Members
- object BoxedType
- object ByteIterator
- object ByteString
- object CompactByteString extends Serializable
- object HashCode
Set of methods which allow easy implementation of
hashCode
.Set of methods which allow easy implementation of
hashCode
.Example:
override def hashCode: Int = { var result = HashCode.SEED //collect the contributions of various fields result = HashCode.hash(result, fPrimitive) result = HashCode.hash(result, fObject) result = HashCode.hash(result, fArray) result }
- object Helpers
- object LineNumbers
This is a minimized byte-code parser that concentrates exclusively on line numbers and source file extraction.
This is a minimized byte-code parser that concentrates exclusively on line numbers and source file extraction. It works for all normal classes up to format 52:0 (JDK8), and it also works for Lambdas that are Serializable. The latter restriction is due to the fact that the proxy object generated by LambdaMetafactory otherwise contains no information about which method backs this particular lambda (and there might be multiple defined within a single class).
- object ManifestInfo extends ExtensionId[ManifestInfo] with ExtensionIdProvider
Apache Pekko extension that extracts ManifestInfo.Version information from META-INF/MANIFEST.MF in jar files on the classpath of the
ClassLoader
of theActorSystem
. - object MessageBuffer
- object PriorityQueueStabilizer
- object Timeout extends Serializable
A Timeout is a wrapper on top of Duration to be more specific about what the duration means.
- object TypedMultiMap
- object UUIDComparator
- object Version
- object WallClock