89 lines
2.0 KiB
Clojure
89 lines
2.0 KiB
Clojure
(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"
|
|
[])
|