Packages

OpenFlow controller library for Elixir

Current section

Files

Jump to
tres lib openflow echo request.ex
Raw

lib/openflow/echo/request.ex

defmodule Openflow.Echo.Request do
defstruct(
version: 4,
xid: 0,
data: "",
# virtual field
datapath_id: nil,
# virtual field
aux_id: 0
)
alias __MODULE__
@type t :: %Request{
version: 4,
xid: 0..0xFFFFFFFF,
data: String.t(),
datapath_id: String.t() | nil,
aux_id: 0..0xFFFF | nil
}
@spec ofp_type :: 2
def ofp_type, do: 2
@spec new(xid: 0..0xFFFFFFFF, data: String.t()) :: t()
def new(options) when is_list(options) do
%Request{
xid: options[:xid] || 0,
data: options[:data] || ""
}
end
@spec new(String.t()) :: t()
def new(data) when is_binary(data), do: %Request{data: data}
@spec new() :: t()
def new, do: new([])
@spec read(String.t()) :: t()
def read(data), do: %Request{data: data}
@spec to_binary(t()) :: String.t()
def to_binary(%Request{data: data}), do: data
end