Show / Hide Table of Contents

    Class SequenceReaderBase

    The base class for the ISequenceReader implementations. It encapsulates the logic to deal with the ISequenceStore.

    Inheritance
    object
    SequenceReaderBase
    BatchSequenceReader
    ChunkSequenceReader
    Implements
    ISequenceReader
    Inherited Members
    object.GetType()
    object.MemberwiseClone()
    object.ToString()
    object.Equals(object)
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetHashCode()
    Namespace: Silverback.Messaging.Sequences
    Assembly: Silverback.Integration.dll
    Syntax
    public abstract class SequenceReaderBase : ISequenceReader

    Constructors

    SequenceReaderBase(bool)

    Initializes a new instance of the SequenceReaderBase class.

    Declaration
    protected SequenceReaderBase(bool handlesRawMessages = false)
    Parameters
    Type Name Description
    bool handlesRawMessages

    A value indicating whether this reader handles the raw messages, before they are being deserialized, decrypted, etc.

    Properties

    HandlesRawMessages

    Gets a value indicating whether this reader handles the raw messages, before they are being deserialized, decrypted, etc.

    Declaration
    public bool HandlesRawMessages { get; }
    Property Value
    Type Description
    bool

    Methods

    CanHandleAsync(ConsumerPipelineContext)

    Checks whether this reader can and must handle the message being processed in the specified context.

    Declaration
    public abstract ValueTask<bool> CanHandleAsync(ConsumerPipelineContext context)
    Parameters
    Type Name Description
    ConsumerPipelineContext context

    The current ConsumerPipelineContext.

    Returns
    Type Description
    ValueTask<bool>

    A Task<TResult> representing the asynchronous operation. The task result contains a value indicating whether this reader can and must handle the message.

    CreateNewSequenceAsync(string, ConsumerPipelineContext)

    Creates the new sequence and adds it to the store.

    Declaration
    protected virtual ValueTask<ISequence> CreateNewSequenceAsync(string sequenceId, ConsumerPipelineContext context)
    Parameters
    Type Name Description
    string sequenceId

    The sequence identifier.

    ConsumerPipelineContext context

    The current ConsumerPipelineContext.

    Returns
    Type Description
    ValueTask<ISequence>

    The new sequence.

    CreateNewSequenceCore(string, ConsumerPipelineContext)

    Creates the new sequence object.

    Declaration
    protected abstract ISequence CreateNewSequenceCore(string sequenceId, ConsumerPipelineContext context)
    Parameters
    Type Name Description
    string sequenceId

    The sequence identifier.

    ConsumerPipelineContext context

    The current ConsumerPipelineContext.

    Returns
    Type Description
    ISequence

    The new sequence.

    GetExistingSequenceAsync(ConsumerPipelineContext, string)

    Retrieves the existing incomplete sequence from the store.

    Declaration
    protected virtual ValueTask<ISequence?> GetExistingSequenceAsync(ConsumerPipelineContext context, string sequenceId)
    Parameters
    Type Name Description
    ConsumerPipelineContext context

    The current ConsumerPipelineContext.

    string sequenceId

    The sequence identifier.

    Returns
    Type Description
    ValueTask<ISequence>

    The ISequence or null if not found.

    GetSequenceAsync(ConsumerPipelineContext)

    Returns the ISequence related to the message being processed.

    Declaration
    public ValueTask<ISequence> GetSequenceAsync(ConsumerPipelineContext context)
    Parameters
    Type Name Description
    ConsumerPipelineContext context

    The current ConsumerPipelineContext.

    Returns
    Type Description
    ValueTask<ISequence>

    A Task<TResult> representing the asynchronous operation. The task result contains the ISequence.

    GetSequenceIdAsync(ConsumerPipelineContext)

    Gets the sequence identifier extracted from the current envelope.

    Declaration
    protected abstract ValueTask<string> GetSequenceIdAsync(ConsumerPipelineContext context)
    Parameters
    Type Name Description
    ConsumerPipelineContext context

    The current ConsumerPipelineContext.

    Returns
    Type Description
    ValueTask<string>

    A Task<TResult> representing the asynchronous operation. The task result contains the recognized sequence identifier, or null.

    IsNewSequenceAsync(string, ConsumerPipelineContext)

    Determines if the current message corresponds with the beginning of a new sequence.

    Declaration
    protected abstract ValueTask<bool> IsNewSequenceAsync(string sequenceId, ConsumerPipelineContext context)
    Parameters
    Type Name Description
    string sequenceId

    The sequence identifier.

    ConsumerPipelineContext context

    The current ConsumerPipelineContext.

    Returns
    Type Description
    ValueTask<bool>

    A Task<TResult> representing the asynchronous operation. The task result contains true if a new sequence is starting; otherwise false.

    Implements

    ISequenceReader
    GitHub E-Mail
    ↑ Back to top © 2026 Sergio Aquilini