/* Thor Server 2.0 Project - Codenamed "Stockholm" Copyright 2008 - 2009 Joe Hegarty This file is part of The Thor Server 2.0 Project - Codenamed "Stockholm". The Thor Server 2.0 Project - Codenamed "Stockholm" is free software: you can redistribute it and/or modify it under the terms of the Microsoft Public License The Thor Server Project is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Microsoft Public License for more details. You should have received a copy of the Microsoft Public License along with The Thor Server Project. If not, see http://www.opensource.org/licenses/ms-pl.html */ using System; using System.Threading; using StockholmLibrary.Net; using StockholmLibrary.Util; namespace StockholmLibrary.Game { //------------------------------------ public class GameManager { private Thread _gameThread; private Handlers.Generic.GenericUserHandler _genericUserHandler; private Game.Sessions.SessionManager _sessionManager; private Game.Sessions.RoleManager _roleManager; //********************************************** public Game.Sessions.SessionManager SessionManager { get { return _sessionManager; } } //********************************************** public Game.Sessions.RoleManager RoleManager { get { return _roleManager; } } //********************************************** public GameManager() { _genericUserHandler = new Handlers.Generic.GenericUserHandler(); _sessionManager = new Sessions.SessionManager(); _roleManager = new Sessions.RoleManager(); _gameThread = new Thread(new ThreadStart(GameThread)); _gameThread.Name = "Game Thread"; _gameThread.Start(); } //********************************************** private static void GameThread() { Logging.LogEvent("GameManager", "GameThread started succesfully", Logging.ELogLevel.INFO); while (Stockholm.Get().IsRunning) { while (Stockholm.Get().IsRunning) { ClientPacket packet = Stockholm.Get().ConnectionManager.Receive(); if (packet != null) { Stockholm.Get().PacketManager.ForwardPacket(packet); } else { break; } } Thread.Sleep(5); } } } }