Packages

Cafex is a pure Elixir implementation of Kafka client.

Current section

Files

Jump to
misha_cafex lib cafex protocol heartbeat.ex
Raw

lib/cafex/protocol/heartbeat.ex

defmodule Cafex.Protocol.Heartbeat do
use Cafex.Protocol, api: :heartbeat
defrequest do
field :group_id, binary
field :generation_id, binary
field :member_id, binary
end
defresponse do
field :error, Cafex.Protocol.error
end
def encode(%{group_id: group_id,
generation_id: generation_id,
member_id: member_id}) do
[encode_string(group_id),
<< generation_id :: 32-signed >>,
encode_string(member_id)]
|> IO.iodata_to_binary
end
def decode(<< error_code :: 16-signed >>) do
%Response{error: decode_error(error_code)}
end
end