View Source ZabbixSender.Serializer (ZabbixSender v1.1.2)
Helper module for binary serialization with Zabbix Sender Protocol
Summary
Functions
Deserializes zabbix sender binary message to elixir data.
Serializes message to zabbix sender binary format.
Functions
@spec deserialize(binary()) :: {:error, :invalid_format | :unsupported_version | Jason.DecodeError.t()} | {:ok, map()}
Deserializes zabbix sender binary message to elixir data.
Examples
iex> ZabbixSender.Serializer.deserialize(<<"ZBXD\x01"::binary, 2::little-integer-size(64), "{}"::binary>>)
{:ok, %{}}
iex> ZabbixSender.Serializer.deserialize(<<"ZBX\x01"::binary, 1::little-integer-size(64), "{}"::binary>>)
{:error, :invalid_format}
iex> ZabbixSender.Serializer.deserialize(<<>>)
{:error, :invalid_format}
iex> ZabbixSender.Serializer.deserialize(<<"ZBXD\x02"::binary, 2::little-integer-size(64), "{}"::binary>>)
{:error, :unsupported_version}
iex> ZabbixSender.Serializer.deserialize(<<"ZBXD\x01"::binary, 2::little-integer-size(64), "{"::binary>>)
{:error, :invalid_format}
iex> ZabbixSender.Serializer.deserialize(<<"ZBXD\x01"::binary, 1::little-integer-size(64), "{}"::binary>>)
{:error, :invalid_format}
iex> ZabbixSender.Serializer.deserialize(<<"ZBXD\x01"::binary, 2::little-integer-size(64), "{w"::binary>>)
{:error, %Jason.DecodeError{data: "{w", position: 1, token: nil}}
Serializes message to zabbix sender binary format.
Examples
iex> ZabbixSender.Serializer.serialize(%{})
<<"ZBXD\x01"::binary, 2::little-integer-size(64), "{}"::binary>>