Floof: export 'official' function for message emitting
This commit is contained in:
parent
49508feb9d
commit
77142702b3
11
lib/floof.ex
11
lib/floof.ex
|
@ -37,6 +37,13 @@ defmodule Floof do
|
|||
serve(socket, %{})
|
||||
end
|
||||
|
||||
def emit_message(xf) do
|
||||
{:XferBlob, _, _, _, _, _, xfinner} = xf
|
||||
{:ok, {:XferInner, id, _, attrs, _, _}} = :FloofProtocol.decode(:XferInner, xfinner)
|
||||
send Floof.Distributor, {:xfer, {id, xf, attrs}}
|
||||
id
|
||||
end
|
||||
|
||||
defp serve(client, backlog) do
|
||||
receive do
|
||||
{:tcp, _, message} ->
|
||||
|
@ -83,9 +90,7 @@ defmodule Floof do
|
|||
Map.delete(backlog, id)
|
||||
end
|
||||
{:xfer, xf} ->
|
||||
{:XferBlob, _, _, _, _, _, xfinner} = xf
|
||||
{:ok, {:XferInner, id, _, attrs, _, _}} = :FloofProtocol.decode(:XferInner, xfinner)
|
||||
send Floof.Distributor, {:xfer, {id, xf, attrs}}
|
||||
id = emit_message(xf)
|
||||
# notify the remote end that we successfully consumed the message
|
||||
send_summary(client, :drop, id)
|
||||
backlog
|
||||
|
|
Loading…
Reference in a new issue