effusion v0.1.0 Effusion.THP behaviour View Source

Behavior defining the contract of the Tracker HTTP Protocol.

Link to this section Summary

Types

A peer returned by a tracker when it was called with the compact option set

A peer returned by a tracker

A successful response from from a tracker

Link to this section Types

Link to this type compact_peer() View Source
compact_peer() :: %{ip: :inet.ip4_address(), port: :inet.port_number()}

A peer returned by a tracker when it was called with the compact option set.

Link to this type peer() View Source
peer() :: %{ip: :inet.hostname() | :inet.ip_address(), port: :inet.port_number(), peer_id: Effusion.peer_id()}

A peer returned by a tracker.

Link to this type tracker_response() View Source
tracker_response() :: %{interval: pos_integer(), peers: [peer()] | [compact_peer()]}

A successful response from from a tracker.

Link to this section Callbacks

Link to this callback announce(tracker_url, peer_host, peer_port, peer_id, info_hash, uploaded, downloaded, left, event) View Source
announce(tracker_url :: String.t() | :unicode.unicode_binary(), peer_host :: :inet.hostname() | :inet.ip_address(), peer_port :: :inet.port_number(), peer_id :: Effusion.peer_id(), info_hash :: Effusion.info_hash(), uploaded :: non_neg_integer(), downloaded :: non_neg_integer(), left :: non_neg_integer(), event :: :started | :stopped | :completed | :interval) ::
  {:ok, tracker_response()} |
  {:error, any()}

Announce an event to the given tracker.