úÎ&Å$Â    NoneEGiven a hostname and a port number, initialize the multicast system. KNote: it is important that you never send messages larger than the maximum K message size; if you do, all subsequent communication will probably fail. Returns a reader and a writer. ,NOTE: By rights the two functions should be locally polymorphic in a, ( but this requires impredicative types.  Multicast IP  Port number Maximum message size  NoneMessages to slave nodes HThis datatype is not exposed; instead, we expose primitives for dealing  with slaves. Local backend Create a new local node  findPeers t broadcasts a  who's there? message on the local  network, waits t2 msec, and then collects and returns the answers. 6 You can use this to dynamically discover peer nodes. AMake sure that all log messages are printed by the logger on the  current node Initialize the backend Create a new local node Peer discovery 7Respond to peer discovery requests sent by other nodes GMake sure that all log messages are printed by the logger on this node Calling slave4 sets up a new local node and then waits. You start # processes on the slave by calling spawn from other nodes. KThis function does not return. The only way to exit the slave is to CTRL-C 7 the process or call terminateSlave from another node.  The slave controller interprets s )Terminate the slave at the given node ID Find slave nodes Terminate all slaves   finds all slaves  currently! available on the local network, M redirects all log messages to itself, and then calls the specified process, $ passing the list of slaves nodes. KTerminates when the specified process terminates. If you want to terminate B the slaves when the master terminates, you should manually call   . LIf you start more slave nodes after having started the master node, you can # discover them with later calls to  , but be aware that you will  need to call redirectLogHere. to redirect their logs to the master node. 'Note that you can use functionality of SimpleLocalnet directly (through  ), instead of using 'startMaster'/'startSlave', if the master/slave - distinction does not suit your application.  !" #$%&    !" #$%&'       !"#$%&'(*distributed-process-simplelocalnet-0.2.0.7EControl.Distributed.Process.Backend.SimpleLocalnet.Internal.Multicast2Control.Distributed.Process.Backend.SimpleLocalnet initMulticastBackend newLocalNode findPeersredirectLogsHereinitializeBackend startSlaveterminateSlave findSlavesterminateAllSlaves startMasterUDPState bufferFor bufferAppend recvBinaryrecvWithLengthrecvAll recvExact recvExactFromSlaveControllerMsgapiNewLocalNode apiFindPeerspeerDiscoveryDaemonapiRedirectLogsHereslaveControllerSlaveTerminatePeerDiscoveryMsgPeerDiscoveryReplyPeerDiscoveryRequest BackendState _localNodes_peersdiscoveryDaemon localNodespeers$fBinarySlaveControllerMsg$fBinaryPeerDiscoveryMsg