Namespace Akka.Util
Classes
AppVersion
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 example 1.0.0+3-73475dce26
is less than 1.0.10+10-ed316bd024
(3 < 10).
AtomicBoolean
Implementation of the java.concurrent.util.AtomicBoolean type.
Uses MemoryBarrier() internally to enforce ordering of writes without any explicit locking. .NET's strong memory on write guarantees might already enforce this ordering, but the addition of the MemoryBarrier guarantees it.
AtomicReference<T>
Implementation of the java.concurrent.util AtomicReference type.
Uses Volatile internally to enforce ordering of writes without any explicit locking. .NET's strong memory on write guarantees might already enforce this ordering, but the addition of the Volatile guarantees it.
BitArrayHelpers
Extension method class to make it easier to work with BitArray instances
ByteHelpers
ConcurrentSet<T>
A thread-safe set implementation using a ConcurrentDictionary<TKey, TValue>.
Either
Static factory methods for creating Either instances.
Either<TA, TB>
Represents a value of one of two possible types (a disjoint union). An instance of Either is either a Left or a Right.
FastLazy<T>
A fast, atomic lazy that only allows a single publish operation to happen, but allows executions to occur concurrently.
Does not cache exceptions. Designed for use with
Index<TKey, TValue>
An implementation of a ConcurrentMultiMap - in CLR that would be something like
ConcurrentDictionary<TKey, TValue> where TValue
is another IEnumerable<T>.
Add/remove is serialized over the specified key. Reads are fully concurrent.
Left<T>
Represents a standalone left value that can be implicitly converted to an Either.
Left<TA, TB>
Represents the left side of an Either instance.
ListPriorityQueue
Priority queue implemented using a simple list with binary search for inserts. This specific implementation is cheap in terms of memory but weak in terms of performance. See http://visualstudiomagazine.com/articles/2012/11/01/priority-queues-with-c.aspx for original implementation This specific version is adapted for Envelopes only and calculates a priority of envelope.Message
MurmurHash
Murmur3 Hash implementation
Result
Helper methods for creating Result<T> instances.
Right<T>
Represents a standalone right value that can be implicitly converted to an Either.
Right<TA, TB>
Represents the right side of an Either instance.
RuntimeDetector
Used to detect specific .NET runtimes, to make it easier to adjust for platform specific differences.
StableListPriorityQueue
Priority queue implemented using a simple list with binary search for inserts. This specific implementation is cheap in terms of memory but weak in terms of performance. See http://visualstudiomagazine.com/articles/2012/11/01/priority-queues-with-c.aspx for original implementation This specific version is adapted for Envelopes only and calculates a priority of envelope.Message
StandardOutWriter
This class contains methods for thread safe writing to the standard output stream.
StringFormat
Utility methods for safely formatting strings with null values.
Switch
An atomic switch that can be either on or off
ThreadLocalRandom
Create random numbers with Thread-specific seeds.
Borrowed form Jon Skeet's brilliant C# in Depth: http://csharpindepth.com/Articles/Chapter12/Random.aspx
TickTimeTokenBucket
Default implementation of Akka.Util.TokenBucket that uses Ticks as the time source.
Try<T>
Represents either success or failure of some operation
TypeExtensions
Class TypeExtensions.
Vector
Utility class for creating vectors (collections) of elements.
WildcardMatch
Provides wildcard pattern matching extensions for strings.
Structs
Option<T>
Allows tracking of whether a value has be initialized (even with the default value) for both reference and value types. Useful where distinguishing between null (or zero, or false) and uninitialized is significant.
Result<T>
A result type frequently used inside Akka.Streams and elsewhere.
Interfaces
ISurrogate
Interface for surrogate objects that can be converted back to their original form. Surrogates are used to provide serializable versions of objects that might not be directly serializable.
ISurrogated
Used for surrogate serialization.