diff options
Diffstat (limited to 'shard/lib')
-rw-r--r-- | shard/lib/net/chan.ex_ | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/shard/lib/net/chan.ex_ b/shard/lib/net/chan.ex_ deleted file mode 100644 index 5aba960..0000000 --- a/shard/lib/net/chan.ex_ +++ /dev/null @@ -1,67 +0,0 @@ -defprotocol SNet.Chan do - @moduledoc""" - Abstract definition for a communication channel - """ - - @doc""" - Function to send a message to relevant peers. - """ - def send(chan, msg) - - @doc""" - Function to declare a handler for a channel - """ - def handle(chan, func) -end - -defmodule SNet.PeerChan do - @moduledoc""" - Direct channel to a peer - """ - - defstruct [:peer_id, :shard_id, :path] - - def new(peer_id, shard_id, path) do - %__MODULE__{peer_id: peer_id, shard_id: shard_id, path: path} - end - - defimpl SNet.Chan do - def send(chan, msg) do - Shard.Manager.send(chan.peer_id, {chan.shard_id, chan.path, msg}) - end - - def handle(chan, func) do - # DO NOT USE THIS - raise :do_not_use_this - # assert false - end - end -end - -defmodule SNet.FloodChan do - @moduledoc""" - Channel that send a message to all know peers for shard (floods the network) - """ - - defstruct [:shard_id, :path] - - def new(shard_id, path) do - %__MODULE__{shard_id: shard_id, path: path} - end - - defimpl SNet.Chan do - def send(chan, msg) do - for x <- Shard.Manager.get_shard_peers(chan.shard_id) do - Shard.Manager.send(x, {chan.shard_id, chan.path, msg}) - end - end - - def handle(chan, func) do - # TODO - end - end -end - -defmodule SNet.CipherChan do - # TODO -end |