module Control.Distributed.Raketka.NodeId where
import Control.Distributed.Process
import Network.Transport.TCP
import Control.Distributed.Raketka.Type.Arg
import Network.Transport ( EndPointAddress(..) )
import qualified Data.ByteString.Char8 as BSC (pack)
import qualified Network.Socket as N
nodeId::ServerId -> NodeId
nodeId id0 = NodeId $ encodeEndPointAddress host1 port1 0
where host1 = host id0
port1 = show $ port id0
encodeEndPointAddress :: N.HostName
-> N.ServiceName
-> EndPointId
-> EndPointAddress
encodeEndPointAddress host0 port0 ix0 = EndPointAddress . BSC.pack $
host0 ++ ":" ++ port0 ++ ":" ++ show ix0