BoundedBlockingQueue wraps any Queue and turns the result into a BlockingQueue with a limited capacity.
An iterator over a 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
A mutable builder for efficiently creating a akka.util.ByteString.
A mutable builder for efficiently creating a akka.util.ByteString.
The created ByteString is not automatically compacted.
ClassLoaderObjectInputStream tries to utilize the provided ClassLoader to load Classes and falls back to ObjectInputStreams resolver.
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.
An implementation of a ConcurrentMultiMap Adds/remove is serialized over the specified key Reads are fully concurrent <-- el-cheapo
An implementation of a ConcurrentMultiMap Adds/remove is serialized over the specified key Reads are fully concurrent <-- el-cheapo
A non thread safe mutable message buffer 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.
A non thread safe mutable message buffer map that can be used to buffer messages inside actors.
(Id type)
Default implementation of TokenBucket that uses System.nanoTime
as the time source.
PriorityQueueStabilizer wraps a priority queue so that it respects FIFO for elements of equal priority.
StablePriorityBlockingQueue is a blocking priority queue that preserves order for elements of equal priority.
StablePriorityQueue is a priority queue that preserves order for elements of equal priority.
Typeclass which describes a classification hierarchy.
Typeclass which describes a classification hierarchy. Observe the contract between isEqual
and isSubclass
!
An atomic switch that can be either on or off
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 member Type
.
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 }
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).
A Timeout is a wrapper on top of Duration to be more specific about what the duration means.