gameServer/hedgewars-server.hs
changeset 1804 4e78ad846fb6
child 1833 e901ec5644b4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gameServer/hedgewars-server.hs	Wed Feb 18 15:04:40 2009 +0000
@@ -0,0 +1,58 @@
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSignatures #-}
+
+module Main where
+
+import Network.Socket
+import qualified Network
+import Control.Concurrent.STM
+import Control.Concurrent.Chan
+import Control.Exception
+import System.Log.Logger
+-----------------------------------
+import Opts
+import CoreTypes
+import OfficialServer.DBInteraction
+import ServerCore
+
+
+#if !defined(mingw32_HOST_OS)
+import System.Posix
+#endif
+
+
+{-data Messages =
+	Accept ClientInfo
+	| ClientMessage ([String], ClientInfo)
+	| CoreMessage [String]
+	| TimerTick
+
+messagesLoop :: TChan String -> IO()
+messagesLoop messagesChan = forever $ do
+	threadDelay (25 * 10^6) -- 25 seconds
+	atomically $ writeTChan messagesChan "PING"
+
+timerLoop :: TChan String -> IO()
+timerLoop messagesChan = forever $ do
+	threadDelay (60 * 10^6) -- 60 seconds
+	atomically $ writeTChan messagesChan "MINUTELY"-}
+
+setupLoggers =
+	updateGlobalLogger "Clients"
+		(setLevel DEBUG)
+
+main = withSocketsDo $ do
+#if !defined(mingw32_HOST_OS)
+	installHandler sigPIPE Ignore Nothing;
+#endif
+
+	setupLoggers
+
+	stats <- atomically $ newTMVar (StatisticsInfo 0 0)
+	--dbQueriesChan <- atomically newTChan
+	coreChan <- newChan
+	serverInfo <- getOpts $ newServerInfo stats -- dbQueriesChan
+	
+	bracket
+		(Network.listenOn $ Network.PortNumber $ listenPort serverInfo)
+		(sClose)
+		(startServer serverInfo coreChan)