Packages
extreme
1.1.3
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__
# IO.inspect([correlation_id, cmd], label: "Sending to ES")
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