Module Network.CPNS.Config

Configurations of the implementation of a Curry Port Name Server (CPNS) based on raw sockets. The CPNS allows the connection to port by symbolic names.

If we connect to a port with symbolic name pn, we first connect to the CPNS of the host named by pn to get the physical socket number of this port. In order to connect to CPNS from any machine in the world, the CPNS demon always listens at port cpnsSocket. Note that this port must be identical for all machines running Network.NamedSocket or Distributed Curry! If this port is occupied by another process on a host, you cannot run CPNSD on it.

Author: Michael Hanus

Version: March 2021

Summary of exported operations:

cpnsSocket :: Int  Deterministic 
cpnsTimeOut :: Int  Deterministic 
getStartupLockFile :: IO String  Deterministic 
Gets name of lock file to coordinate the startup of the CPNS demon.
getCPNSD :: IO String  Deterministic 
Returns the executable of the CPNS demon.
getLogFile :: IO String  Deterministic 
Get name of CPNSD log file.
addLogLn :: String -> IO ()  Deterministic 
Adds a line to the log file

Exported operations:

cpnsSocket :: Int  Deterministic 

Further infos:
  • solution complete, i.e., able to compute all solutions

cpnsTimeOut :: Int  Deterministic 

Further infos:
  • solution complete, i.e., able to compute all solutions

getStartupLockFile :: IO String  Deterministic 

Gets name of lock file to coordinate the startup of the CPNS demon.

getCPNSD :: IO String  Deterministic 

Returns the executable of the CPNS demon. Raises an error if the executable does not exist.

getLogFile :: IO String  Deterministic 

Get name of CPNSD log file.

addLogLn :: String -> IO ()  Deterministic 

Adds a line to the log file