(ns Node "Elixir Node module — distributed Erlang node operations. In CljElixir: (Node/self), (Node/connect :other@host), etc. For building distributed BEAM applications.") (defn self "Returns the current node name. (Node/self) ;=> :mynode@myhost" []) (defn alive? "Returns true if the local node is alive (part of a distributed system). (Node/alive?) ;=> true" []) (defn list "Returns a list of all connected nodes. (Node/list) ;=> [:node1@host :node2@host] (Node/list :known) ;=> includes known but disconnected nodes" ([]) ([type])) (defn connect "Connects to a remote node. (Node/connect :other@hostname) ;=> true" [node]) (defn disconnect "Disconnects from a remote node. (Node/disconnect :other@hostname) ;=> true" [node]) (defn monitor "Monitors a remote node. Sends {:nodedown node} on disconnect. (Node/monitor :other@hostname true)" ([node flag]) ([node flag opts])) (defn ping "Pings a remote node. (Node/ping :other@hostname) ;=> :pong or :pang" [node]) (defn spawn "Spawns a process on a remote node. (Node/spawn :other@hostname (fn [] (IO/puts \"remote!\")))" ([node fun]) ([node fun opts]) ([node module fun args]) ([node module fun args opts])) (defn spawn-link "Spawns a linked process on a remote node." ([node fun]) ([node fun opts]) ([node module fun args]) ([node module fun args opts])) (defn spawn-monitor "Spawns a monitored process on a remote node." ([node fun]) ([node fun opts]) ([node module fun args]) ([node module fun args opts])) (defn get-cookie "Returns the magic cookie for the node. (Node/get-cookie) ;=> :nocookie or :somecookie" []) (defn set-cookie "Sets the magic cookie. (Node/set-cookie :my-secret-cookie)" ([cookie]) ([node cookie])) (defn start "Starts distribution. Returns {:ok pid} or {:error reason}. (Node/start :mynode :shortnames)" ([name]) ([name type]) ([name type tick-time])) (defn stop "Stops distribution. (Node/stop) ;=> :ok" [])