Class InMemoryInboundLog
Used by the LogExactlyOnceStrategy to keep track of each processed message and guarantee that each one is processed only once.
The log is simply persisted in memory.
Inherited Members
Namespace: Silverback.Messaging.Inbound.ExactlyOnce.Repositories
Assembly: Silverback.Integration.dll
Syntax
public class InMemoryInboundLog : TransactionalList<InboundLogEntry>, IInboundLog, ITransactional
Constructors
| Improve this doc View sourceInMemoryInboundLog(TransactionalListSharedItems<InboundLogEntry>)
Initializes a new instance of the InMemoryInboundLog class.
Declaration
public InMemoryInboundLog(TransactionalListSharedItems<InboundLogEntry> sharedItems)
Parameters
Type | Name | Description |
---|---|---|
TransactionalListSharedItems<InboundLogEntry> | sharedItems | The log entries shared between the instances of this repository. |
Methods
| Improve this doc View sourceAddAsync(IRawInboundEnvelope)
Add the message contained in the specified envelope to the log.
Declaration
public Task AddAsync(IRawInboundEnvelope envelope)
Parameters
Type | Name | Description |
---|---|---|
IRawInboundEnvelope | envelope | The envelope containing the message to be added. |
Returns
Type | Description |
---|---|
Task | A Task representing the asynchronous operation. |
ExistsAsync(IRawInboundEnvelope)
Returns a boolean value indicating whether this very same message has already been logged for the same consumer group.
Declaration
public Task<bool> ExistsAsync(IRawInboundEnvelope envelope)
Parameters
Type | Name | Description |
---|---|---|
IRawInboundEnvelope | envelope | The envelope containing the message to be checked. |
Returns
Type | Description |
---|---|
Task<bool> | A Task<TResult> representing the asynchronous operation. The task result contains a value indicating whether the message was found in the log. |
GetLengthAsync()
Returns the total number of messages in the log.
Declaration
public Task<int> GetLengthAsync()
Returns
Type | Description |
---|---|
Task<int> | A Task<TResult> representing the result of the asynchronous operation. The task result contains the log length. |