Packages
extreme
1.0.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.1-rc01
1.1.0
1.1.0-rc9
1.1.0-rc8
1.1.0-rc7
1.1.0-rc6
1.1.0-rc5
1.1.0-rc4
1.1.0-rc3
1.1.0-rc2
1.1.0-rc1
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.0
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.2
0.9.1
0.9.0
0.8.1
0.8.0
0.7.1
0.7.0
0.6.2
0.6.1
0.6.0
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.3
0.4.2
0.4.1
Elixir TCP client for EventStore.
Current section
Files
Jump to
Current section
Files
lib/extreme/request.ex
defmodule Extreme.Request do
alias Extreme.Tools
require Logger
def prepare(:heartbeat_response = cmd, correlation_id) do
res = <<Extreme.MessageResolver.encode_cmd(cmd), 0>> <> correlation_id
size = byte_size(res)
{:ok, <<size::32-unsigned-little-integer>> <> res}
end
def prepare(:ping = cmd, correlation_id) do
res = <<Extreme.MessageResolver.encode_cmd(cmd), 0>> <> correlation_id
size = byte_size(res)
{:ok, <<size::32-unsigned-little-integer>> <> res}
end
def prepare(:identify_client, connection_name, credentials) do
Extreme.Messages.IdentifyClient.new(
version: 1,
connection_name: connection_name
)
|> prepare(credentials, Tools.generate_uuid())
end
def prepare(protobuf_msg, credentials, correlation_id) do
cmd = protobuf_msg.__struct__
data = cmd.encode(protobuf_msg)
_to_binary(cmd, correlation_id, credentials, data)
end
defp _to_binary(cmd, correlation_id, credentials, data) do
res = <<Extreme.MessageResolver.encode_cmd(cmd), 1>> <> correlation_id <> credentials <> data
size = byte_size(res)
{:ok, <<size::32-unsigned-little-integer>> <> res}
end
end