Package de.otto.synapse.edison.trace
Class MessageTrace
java.lang.Object
de.otto.synapse.edison.trace.MessageTrace
Thread-safe in-memory implementation of a circular MessageStore that is storing all traceEntries in insertion order
per channel with a configurable capacity per channel.
Each time an element is added to a full message store, the message store automatically removes its head element.
-
Constructor Summary
ConstructorsConstructorDescriptionMessageTrace(int capacityPerChannel) Creates a new instance with specified capacity per channel. -
Method Summary
Modifier and TypeMethodDescriptionvoidadd(TraceEntry traceEntry) Adds a Message to the MessageStore.intstream()Returns a Stream oftraceEntriescontained in the RegisteredEndpoints.
-
Constructor Details
-
MessageTrace
public MessageTrace(int capacityPerChannel) Creates a new instance with specified capacity per channel.- Parameters:
capacityPerChannel- the size of the underlying ring buffers.
-
-
Method Details
-
getSenderChannels
-
getReceiverChannels
-
getCapacityPerChannel
public int getCapacityPerChannel() -
add
Adds a Message to the MessageStore.If the capacity of the ring buffer is reached, the oldest message is removed
- Parameters:
traceEntry- the message to add
-
stream
Returns a Stream oftraceEntriescontained in the RegisteredEndpoints.The stream will maintain the per-channel insertion order of the traceEntries, but not overall insertion order.
- Returns:
- Stream of traceEntries
-
stream
public Stream<TraceEntry> stream(String channelName, de.otto.synapse.endpoint.EndpointType endpointType)
-