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}}
@spec serialize(map()) :: binary()

Serializes message to zabbix sender binary format.

Examples

iex> ZabbixSender.Serializer.serialize(%{})
<<"ZBXD\x01"::binary, 2::little-integer-size(64), "{}"::binary>>