module Main(main) where import Holumbus.Common.Debug import Holumbus.Common.Logging import Holumbus.Common.Utils import Holumbus.Network.PortRegistry.PortRegistryPort import Holumbus.Network.Communication version :: String version = "Holumbus-Communication Server 0.1" main :: IO () main = do putStrLn version handleAll (\e -> putStrLn $ "EXCEPTION: " ++ show e) $ do initializeLogging [] p <- newPortRegistryFromXmlFile "/tmp/registry.xml" setPortRegistry p server <- initializeData waitForInput server deinitializeData server waitForInput :: Server -> IO () waitForInput server = do line <- getLine case line of "exit" -> return () "debug" -> do printDebug server waitForInput server _ -> waitForInput server dispatch :: String -> IO (Maybe String) dispatch msg = do putStrLn $ "message arrived: " ++ msg return Nothing register :: IdType -> ClientPort -> IO () register i cp = do putStrLn $ "register request: Id: " ++ show i ++ " -- Port: " ++ show cp unregister :: IdType -> ClientPort -> IO () unregister i cp = do putStrLn $ "unregister request: Id: " ++ show i ++ " -- Port: " ++ show cp initializeData :: IO (Server) initializeData = do server <- newServer "server" Nothing dispatch (Just register) (Just unregister) return server deinitializeData :: Server -> IO () deinitializeData server = do closeServer server