import IO import Port import Interface printMenu :: IO () printMenu = do putStrLn "" putStrLn "1) Neuen Datenbankeintrag" putStrLn "2) Eintrag in Datenbank nachsehen" putStrLn "" evalInput :: ServerPort -> IO () evalInput messageport = do printMenu line <- getLine case line of "1" -> do putStr "Bitte Schlüsselwert eingeben: " key <- getLine checkport <- newPort messageport (Alloc key checkport) check <- readPort checkport case check of Free rPort -> do putStr "Bitte Wert eingeben: " value <- getLine rPort value putStrLn "Der Wert wurde von der Datenbank akzeptiert" Allocated -> do putStrLn ("Dieser Schlüssel ist in der Datenbank " ++ "bereits vorhanden.") "2" -> do putStr "Bitte Schlüsselwert eingeben: " key <- getLine answerport <- newPort messageport (Lookup key answerport) answer <- readPort answerport putStrLn ("Die Datenbank sandte als Ergebnis: " ++ (show answer)) _ -> putStrLn "" evalInput messageport main = do p <- lookupLocalPort "DBServer" _ <- link p evalInput p