ZabbixSender.Serializer (ZabbixSender v1.1.0) View Source
Helper module for binary serialization with Zabbix Sender Protocol
Link to this section Summary
Functions
Deserializes zabbix sender binary message to elixir data.
Serializes message to zabbix sender binary format.
Link to this section Functions
Specs
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}}
Specs
Serializes message to zabbix sender binary format.
Examples
iex> ZabbixSender.Serializer.serialize(%{})
<<"ZBXD\x01"::binary, 2::little-integer-size(64), "{}"::binary>>