# Package org.jgroups.util

Provides useful functionality which cannot be assigned to any particular other package.

See: Description

Interface Summary
Interface | Description
--- | ---
AgeOutCache.Handler<K> |
Command | The Command patttern (see Gamma et al.).
FutureListener<T> | A listener that is called back when a future is done.
NotifyingFuture<T> | A sub-interface of a Future, that allows for listeners to be attached so that observers can be notified when the future completes.
ResourceManager.IpAddressRep |
SocketFactory | Factory to create various types of sockets.
Streamable | Implementations of Streamable can add their state directly to the output stream, enabling them to bypass costly serialization
ThreadDecorator | An object that can alter the state of a thread when it receives a callback from a `ThreadManager` notifying it that the thread has been created or released from use.
ThreadFactory |
ThreadManager | An object that manages threads and provides callbacks to a `ThreadDecorator` to allow it to alter their state.
TimeScheduler | Timer-like interface which allows for execution of tasks.
TimeScheduler.Task | The interface that dynamic tasks (`TimeScheduler.scheduleWithDynamicInterval(org.jgroups.util.TimeScheduler.Task)`) must implement

Class Summary
Class | Description
--- | ---
AckCollector | Collects acks from a number of nodes, waits for all acks.
AdditionalDataUUID | Subclass of `UUID` which adds a string as payload.
AgeOutCache<K> | Cache which removes its elements after a certain time
BoundedList<T> | A bounded subclass of LinkedList, oldest elements are removed once max capacity is exceeded.
Buffer | Buffer with an offset and length.
ConcurrentLinkedBlockingQueue<T> | Attempt at writing a fast transfer queue, which is bounded.
CreditMap | Maintains credits for senders, when credits fall below 0, a sender blocks until new credits have been received.
DefaultSocketFactory | Default implementation, ignores service names
DefaultThreadFactory | Thread factory mainly responsible for naming of threads.
DefaultTimeScheduler | Implementation of `TimeScheduler` by extending `ScheduledThreadPoolExecutor` to keep tasks sorted.
Digest | A message digest, which is used by the PBCAST layer for gossiping (also used by NAKACK for keeping track of current seqnos for all members).
Digest.Entry | Class keeping track of the lowest and highest sequence numbers delivered, and the highest sequence numbers received, per member.
DirectExecutor |
ExposedByteArrayInputStream |
ExposedByteArrayOutputStream | Extends ByteArrayOutputStream, but exposes the internal buffer.
ExposedDataOutputStream |
FIFOMessageQueue<K,V> | Deprecated Will be removed together with the Multiplexer in 3.0
FixedSizeBitSet | Class copied from `BitSet`.
GetNetworkInterfaces | Lists all network interfaces on a system
HashedTimingWheel | Implementation of `TimeScheduler`.
HashedTimingWheel.MyTask | Simple task wrapper, always executed by at most 1 thread.
Headers | Open addressing based implementation of a hashmap (not supporting the Map interface though) for message headers.
ImmutableReference<T> | Simple class that holds an immutable reference to another object (or to `null`).
JUnitXMLReporter | Listener generating XML output suitable to be processed by JUnitReport.
LazyThreadFactory | Lazily names threads: whenever the address or cluster name is changed, all threads are renamed
MarshallerPool | Deprecated
MergeId | ID to uniquely identify a merge
Metronome |
MutableDigest | A mutable version of Digest (which is immutable
MyReceiver | Simple receiver which buffers all messages
NullFuture<T> |
PayloadUUID | Subclass of `UUID` which adds a string as payload.
Promise<T> | Allows a thread to submit an asynchronous request and to wait for the result.
PropertiesToXML | Iterates over all concrete Protocol classes and creates tables with Protocol's properties.
Proxy | Redirects incoming TCP connections to other hosts/ports.
Queue | Elements are added at the tail and removed from the head.
Range |
ResourceManager | Manages resources such as multicast addresses and multicast ports, and TCP ports.
ResponseCollector<T> | Similar to AckCollector, but collects responses, not just acks.
RetransmitTable | A store for messages to be retransmitted or delivered.
RingBuffer<T> |
Rsp<T> | class that represents a response from a communication
RspList | Contains responses from all members.
Seqno | Keeps track of a single message to retransmit
SeqnoComparator |
SeqnoRange | Keeps track of a range of messages to be retransmitted.
SeqnoTable | Maintains the highest received and highest delivered seqno per member
ShutdownRejectedExecutionHandler | ShutdownRejectedExecutionHandler is a decorator RejectedExecutionHandler used in all JGroups ThreadPoolExecutor(s).
SingletonAddress | Address with a cluster name.
ThreadManagerThreadPoolExecutor | ThreadPoolExecutor subclass that implements @{link ThreadManager}.
TimeScheduler2 | Implementation of `TimeScheduler`.
TimeScheduler2.MyTask | Simple task wrapper, always executed by at most 1 thread.
TopologyUUID | Subclass of `UUID` which adds 3 strings (siteId, rackId and machineId)as payload.
Triple<V1,V2,V3> | Holds 3 values, useful when we have a map with a key, but more than 1 value and we don't want to create a separate holder object for the values, and don't want to pass the values as a list or array.
Tuple<V1,V2> | Holds 2 values, useful when we have a map with a key, but more than 1 value and we don't want to create a separate holder object for the values, and don't want to pass the values as a list or array.
UnmodifiableVector | Vector which cannot be modified
Util | Collection of various utility routines that can not be assigned to other classes.
UUID | Logical address which is unique over space and time.
XMLSchemaGenerator | Iterates over all concrete Protocol classes and creates XML schema used for validation of configuration files.

Enum Summary
Enum | Description
--- | ---
StackType |
Util.AddressScope |

Exception Summary
Exception | Description
--- | ---
QueueClosedException |

## Package org.jgroups.util Description

Provides useful functionality which cannot be assigned to any particular other package.