Current section

Files

Jump to
glats src glats@jetstream.erl
Raw

src/glats@jetstream.erl

-module(glats@jetstream).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([ack/2, term/2, nack/2, nack_delay/3]).
-export_type([jetstream_error/0, storage_type/0]).
-type jetstream_error() :: {jetstream_not_enabled_for_account, binary()} |
{jetstream_not_enabled, binary()} |
{insufficient_resources, binary()} |
{invalid_stream_config, binary()} |
{stream_name_in_subject_does_not_match, binary()} |
{stream_name_in_use, binary()} |
{stream_not_found, binary()} |
{stream_purge_not_allowed, binary()} |
{no_message_found, binary()} |
{consumer_not_found, binary()} |
{consumer_name_exists, binary()} |
{consumer_already_exists, binary()} |
{wrong_last_sequence, binary()} |
{bad_request, binary()} |
{unknown, integer(), binary()} |
{decode_error, binary()} |
timeout |
no_responders |
{pull_consumer_required, binary()}.
-type storage_type() :: file_storage | memory_storage.
-spec ack(
gleam@erlang@process:subject(glats:connection_message()),
glats:message()
) -> {ok, nil} | {error, glats:error()}.
ack(Conn, Message) ->
glats:respond(Conn, Message, <<""/utf8>>, []).
-spec term(
gleam@erlang@process:subject(glats:connection_message()),
glats:message()
) -> {ok, nil} | {error, glats:error()}.
term(Conn, Message) ->
glats:respond(Conn, Message, <<"+TERM"/utf8>>, []).
-spec nack(
gleam@erlang@process:subject(glats:connection_message()),
glats:message()
) -> {ok, nil} | {error, glats:error()}.
nack(Conn, Message) ->
glats:respond(Conn, Message, <<"-NAK"/utf8>>, []).
-spec nack_delay(
gleam@erlang@process:subject(glats:connection_message()),
glats:message(),
integer()
) -> {ok, nil} | {error, glats:error()}.
nack_delay(Conn, Message, Delay) ->
glats:respond(
Conn,
Message,
<<<<"-NAK {\"delay\":"/utf8, (gleam@int:to_string(Delay))/binary>>/binary,
"}"/utf8>>,
[]
).