All Classes and Interfaces
Class
Description
Left over immutable queue fields.
Values for the consumer that are expected to be padded.
Pad out a cacheline to the left of a producer fields to prevent false sharing.
Pad out a cacheline between the producer and consumer fields to prevent false sharing.
Pad out a cacheline between the producer and consumer fields to prevent false sharing.
Value for the producer that are expected to be padded.
Common super class for implementing
MutableDirectBuffer
interface.An Agent is scheduled to do work on a thread on a duty cycle.
Agent
container which does not start a thread.Thrown to terminate the work/duty cycle of an
Agent
.Utility functions for working with
ArrayList
s.Utility class for operating on arrays as if they were collections.
Helper for dealing with ASCII encoding of numbers.
Thrown when parsing an ASCII string and finding characters that are not digits.
View over a
DirectBuffer
which contains an ASCII string for a given range.Abstraction over a range of buffer types that allows type to be accessed with memory ordering semantics.
Atomic counter that is backed by an
AtomicBuffer
that can be read across threads and processes.Position
that is backed by an AtomicLong
which is useful for tests.Idling strategy for threads when they have no work to do.
Variation of
BiInt2ObjectMap
that allows null
values.Map that takes two part int key and associates with an object.
Handler for a map entry
Creates a new value based upon keys.
Creates a new value based upon keys.
Miscellaneous useful functions for dealing with low level bits and bytes.
Layout of the broadcast buffer.
Receive messages broadcast from a
BroadcastTransmitter
via an underlying buffer.Transmit messages via an underlying broadcast buffer to zero or more
BroadcastReceiver
s.A Java agent that verifies that all memory accesses in
DirectBuffer
implementations are aligned.Runtime Exception thrown by
BufferAlignmentAgent
when an unaligned memory access is detected.Interceptor to be applied when verifying buffer alignment accesses.
Verifier for
char
types.Verifier for
double
types.Verifier for
float
types.Verifier for
int
types.Verifier for
long
types.Verifier for
short
types.Common functions for buffer implementations.
Busy spin strategy targeted at lowest possible latency.
An
EpochClock
that caches a timestamp which can be updated with CachedEpochClock.update(long)
.Pad out a cacheline to the left of a value to prevent false sharing.
Value for the sequence that is expected to be padded.
A
NanoClock
that caches a timestamp which can be updated with CachedNanoClock.update(long)
.Pad out a cacheline to the left of a value to prevent false sharing.
Value for the sequence that is expected to be padded.
An implementation of a
SimpleJavaFileObject
which stores the content in a CharSequence
.ForwardingJavaFileManager
for storing class files which can be looked up by name.Utility functions to help with using
AutoCloseable
resources.Utility functions for collection objects.
Utilities for compiling Java source files at runtime.
Group several
Agent
s into one composite, so they can be scheduled as a unit.A flyweight for decoding an SBE Composite type.
A flyweight for encoding an SBE Composite type.
A thread safe extension of
CountersManager
which allows intra-process read and write access to the same
counters buffer.Barrier to block the calling thread until a command is given on the command line.
IdleStrategy
which can be controlled by a counter so its mode of operation can be switched between
doing nothing (NOOP), busy spinning by calling ThreadHints.onSpinWait()
, yielding by calling
Thread.yield()
, or sleeping for the minimum period by calling LockSupport.parkNanos(long)
when
work count is zero, so it idles.Callback interface for processing of messages that are read from a buffer.
Action to be taken on return from
ControlledMessageHandler.onMessage(int, MutableDirectBuffer, int, int)
.Receiver that copies messages which have been broadcast to enable a simpler API for the client.
An
ErrorHandler
which calls AtomicCounter.increment()
before delegating the exception.Manages the allocation and freeing of counters that are normally stored in a memory-mapped file.
Reads the counters metadata and values buffers.
Callback function for consuming basic counter details and value.
Callback function for consuming metadata records of counters.
Timer Wheel for timers scheduled to expire on a deadline, (NOT thread safe).
Consumer of timer entries as deadline to timerId.
Handler for processing expired timers.
A flyweight for decoding an SBE type.
ErrorHandler
that can insert into a chain of responsibility, so it handles an error and then delegates
on to the next in the chain.Abstraction over a range of buffer types that allows fields to be read in native typed fashion.
A data input implementation that reads from a DirectBuffer.
An
InputStream
that wraps a DirectBuffer
.OutputStream
that wraps an underlying MutableDirectBuffer
.Distinct record of error observations.
A marker annotation to tell the primitive expander not to substitute
The line in question
Group several
Agent
s into one composite, so they can be scheduled as a unit.Enum
to indicate the current status of a DynamicCompositeAgent
.Extended version of the
OutputManager
allowing the specification of packages for selected outputs.A flyweight for encoding an SBE type.
Retrieves the number of milliseconds since 1 Jan 1970 UTC.
Clock representing the time in microseconds since 1 Jan 1970 UTC.
Clock representing the time in nanoseconds since 1 Jan 1970 UTC.
Callback handler for consuming errors encountered in a
DistinctErrorLog
.Callback interface for handling an error/exception that has occurred when processing an operation or event.
Reader for the log created by a
DistinctErrorLog
encoded as UTF-8 errors.Expandable
MutableDirectBuffer
that is backed by an array.OutputStream
that wraps an underlying expandable version of a MutableDirectBuffer
.Expandable
MutableDirectBuffer
that is backed by a direct ByteBuffer
.Ring-buffer for storing messages which can expand to accommodate the messages written into it.
Consumers of messages implement this interface and pass it to
ExpandableRingBuffer.consume(MessageConsumer, int)
.An SBE (Simple Binary Encoding) flyweight object.
Hashing functions for applying to integers.
Clock that provides the number of time units since the 1 Jan 1970 UTC.
Control the use of high-resolution timers on Windows by a bit of hackery.
Generates unique identifiers that fit in a 64-bit word.
Idle strategy for use by threads when they do not have work to do.
An open-addressing with linear probing hash map specialised for primitive key and counter pairs.
An open-addressing with linear probing hash map specialised for primitive key and value pairs.
Variation of
Int2ObjectHashMap
that allows null
values.A cache implementation specialised for int keys using open addressing to probe a set of fixed size.
Map
implementation specialised for int keys using open addressing and
linear probing for cache efficient access.A
List
implementation that stores int values with the ability to not have them boxed.Queue of ints which stores the elements without boxing.
Open-addressing with linear-probing expandable hash set.
Primitive specialisation of a BiConsumer for a pair of ints.
Primitive specialisation of a BiFunction for a pair of ints.
Primitive specialisation of a BiPredicate for a pair of ints.
A fixed capacity cache of int keyed values that evicts the least-recently-used element when it runs out of space.
This is an (int, Object) primitive specialisation of a BiConsumer.
This is an (int, Object) -> Object primitive specialisation of a BiFunction.
This is an (int, Object) primitive specialisation of a BiPredicate.
Collection of IO utilities for dealing with files, especially mapping and un-mapping.
A
SimpleJavaFileObject
that is used to store the bytes for a java class in memory.Grouping of language level utilities to make programming in Java more convenient.
A logging
ErrorHandler
that records to a DistinctErrorLog
and if the log is full then overflows
to a PrintStream
.An open-addressing with linear probing hash map specialised for primitive key and counter pairs.
An open-addressing with linear probing hash map specialised for primitive key and value pairs.
Variation of
Long2ObjectHashMap
that allows null
values.A cache implementation specialised for long keys using open addressing to probe a set of fixed size.
Map
implementation specialised for long keys using open addressing and
linear probing for cache efficient access.A
List
implementation that stores long values with the ability to not have them boxed.Queue of longs which stores the elements without boxing.
Open-addressing with linear-probing expandable hash set.
Primitive specialisation of a BiConsumer for a pair of longs.
Primitive specialisation of a BiFunction for a pair of longs.
Primitive specialisation of a BiPredicate for a pair of longs.
A fixed capacity cache of long keyed values that evicts the least-recently-used element when it runs out of space.
This is an (long, Object) primitive specialisation of a BiConsumer.
This is an (long, Object) -> Object primitive specialisation of a BiFunction.
This is an (long, Object) primitive specialisation of a BiPredicate.
Implementations of this interface can a resource that need to have external state tracked for deletion.
Many producer to many consumer concurrent queue that is array backed.
Many producer to one consumer concurrent queue that is array backed.
Concurrent linked
Queue
that can be used from many producers and a single consumer.Value for the head that is expected to be padded.
Pad out a cache line to the left of a tail to prevent false sharing.
Pad out a cache line between the tail and the head to prevent false sharing.
Value for the tail that is expected to be padded.
A ring-buffer that supports the exchange of messages from many producers to a single consumer.
A
MarkFile
is used to mark the presence of a running component and to track liveness.Memory access operations which encapsulate the use of Unsafe.
A flyweight for decoding an SBE message from a buffer.
A flyweight for encoding SBE messages.
Common behaviour to SBE Message encoder and decoder flyweights.
Callback interface for processing of messages that are read from a buffer.
Mutable boolean valid that is useful for capturing a value when using lambdas or collections.
Abstraction over a range of buffer types that allows fields to be written in native typed fashion.
Holder for an int value that is mutable.
Holder for a long value that is mutable.
Mutable reference that is useful for capturing an object reference when using lambdas.
Functional interface for return the current time as system-wide monotonic tick of 1 nanosecond precision.
Low-latency idle strategy to be employed in loops that do significant work on each iteration such that any
work in the idle strategy would be wasteful.
A
Lock
implementation that is a no operation, i.e.Sentinel value used in collections supporting null value references.
An open-addressing with linear probing hash map specialised for object and primitive counter pairs.
Map
implementation specialised for int values using open addressing and
linear probing for cache efficient access.An open-addressing with linear probing hash map specialised for object and primitive counter pairs.
Map
implementation specialised for long values using open addressing and
linear probing for cache efficient access.Variation of
Object2ObjectHashMap
that allows null
values.An open-addressing with linear probing hash map, same algorithm as
Int2IntHashMap
.Open-addressing with linear-probing expandable hash set.
This is an (Object, int) -> int primitive specialisation of a BiFunction.
This is an (Object, long) -> long primitive specialisation of a BiFunction.
This is an (Object, i) primitive specialisation of a BiConsumer.
This is an (Object, int) primitive specialisation of a BiPredicate.
This is an (Object, i) primitive specialisation of a BiConsumer.
This is an (Object, long) primitive specialisation of a BiPredicate.
An accurate, zero-gc, pure-java,
EpochNanoClock
that calculates an initial epoch nano time based on
System.currentTimeMillis()
and then uses that offset to adjust the return value of
System.nanoTime()
to the UNIX epoch.One producer to one consumer concurrent queue that is array backed.
A ring-buffer that supports the exchange of messages from a single producer to a single consumer.
Abstraction that manages the destination of generated output.
OutputManager
for managing the creation of Java source files as the target of code generation.A container for items exchanged from producers to consumers.
Reports on how far through a buffer some component has progressed.
Useful utils to hex dump the Agrona's buffers.
Action to be taken for each property loaded into system properties.
Indicates how far through an abstract task a component has progressed as a counter value.
Description of the structure for a record in the broadcast buffer.
Description of the record structure for message framing in the a
RingBuffer
.References provides two key helper methods for commonly used idioms on ref types:
References.isCleared(Reference)
, and References.isReferringTo(Reference, Object)
.Consumer of a resource which can throw
IOException
s.Ring-buffer for the concurrent exchanging of binary encoded messages from producer(s) to consumer(s)
in a FIFO manner.
Layout description for the underlying buffer used by a
RingBuffer
.Store and extract a semantic version in a 4 byte integer.
One time barrier for blocking one or more threads until a SIGINT or SIGTERM signal is received from the operating
system or by programmatically calling
ShutdownSignalBarrier.signal()
.Utility to allow the registration of a SIGINT handler that hides the unsupported
Signal
class.One time barrier for blocking one or more threads until a SIGINT signal is received from the operating system
or by programmatically calling
SigIntBarrier.signal()
.When idle this strategy is to sleep for a specified period in nanoseconds.
When idle this strategy is to sleep for a specified period time in milliseconds.
Generate unique identifiers based on the Twitter
Snowflake algorithm.
Specialise classes written for primitive type int for other primitive types by substitution.
Substitution to be performed on each code line.
Extends a
StatusIndicatorReader
with the ability to set the value so other readers can take action.Reads the value of a counter to indicate current status and what abstraction should be taken.
Utility functions for using Strings.
An
OutputManager
which can store source files as StringWriter
buy source file name.Implementation that calls
System.currentTimeMillis()
.Implementation that calls
HighResolutionClock.epochMicros()
.Implementation that calls
HighResolutionClock.epochNanos()
.A
NanoClock
the delegates to System.nanoTime()
.Utilities for inspecting the system.
This class captures possible hints that may be used by some
runtimes to improve code performance.
Implements the common functionality for a transport poller.
An unmodifiable view of a collection that maps each element in an underlying collection into a view.
Obtain access the
Unsafe
class for direct memory operations.Supports regular, byte ordered, and atomic (memory ordered) access to an underlying buffer.
Reports a position by recording it in an
UnsafeBuffer
.StatusIndicator
which wraps an AtomicBuffer
with a given counter id.Various verification checks to be applied in code.
IdleStrategy
that will call Thread.yield()
when the work count is zero.