Current section

Files

Jump to
eventstore lib event_store subscriptions single_stream_subscription.ex
Raw

lib/event_store/subscriptions/single_stream_subscription.ex

defmodule EventStore.Subscriptions.SingleStreamSubscription do
@moduledoc false
@behaviour EventStore.Subscriptions.StreamSubscriptionProvider
alias EventStore.{RecordedEvent,Storage}
alias EventStore.Streams.Stream
def extract_ack({_event_number, stream_version}),
do: stream_version
def event_number(%RecordedEvent{stream_version: stream_version}),
do: stream_version
def last_ack(%EventStore.Storage.Subscription{last_seen_stream_version: last_seen_stream_version}),
do: last_seen_stream_version
def unseen_event_stream(stream_uuid, last_seen, read_batch_size),
do: Stream.stream_forward(stream_uuid, last_seen + 1, read_batch_size)
def ack_last_seen_event(stream_uuid, subscription_name, last_stream_version),
do: Storage.ack_last_seen_event(stream_uuid, subscription_name, nil, last_stream_version)
end