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>
TBD
Either
TBD
Either<TA, TB>
TBD
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>
TBD
Left<TA, TB>
TBD
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
TBD
Right<T>
TBD
Right<TA, TB>
TBD
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
TBD
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
TBD
WildcardMatch
TBD
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>
TBD
Interfaces
ISurrogate
TBD
ISurrogated
Used for surrogate serialization.