using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.ServiceProcess;


namespace ChatService
{
	public class ChatService : System.ServiceProcess.ServiceBase
	{
		/// <summary> 
		/// 必需的设计器变量。
		/// </summary>
		private System.ComponentModel.Container components = null;
		private ChatServer.ChatServer chatServer;

		public ChatService()
		{
			// 该调用是 Windows.Forms 组件设计器所必需的。
			InitializeComponent();
			// TODO: 在 InitComponent 调用后添加任何初始化
		}

		// 进程的主入口点
		static void Main()
		{
			System.ServiceProcess.ServiceBase.Run(new ChatService());
		}

		/// <summary> 
		/// 设计器支持所需的方法 - 不要使用代码编辑器 
		/// 修改此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{			
			// 
			// ChatService
			// 
			this.CanPauseAndContinue = true;
			this.CanShutdown = true;
			this.ServiceName = "ChatService";			
		}

		/// <summary>
		/// 清理所有正在使用的资源。
		/// </summary>
		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if (components != null) 
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}

		/// <summary>
		/// 设置具体的操作，以便服务可以执行它的工作。
		/// </summary>
		protected override void OnStart(string[] args)
		{
			chatServer=new ChatServer.ChatServer();
			chatServer.Start();
		}
 
		/// <summary>
		/// 停止此服务。
		/// </summary>
		protected override void OnStop()
		{
			chatServer.Stop();
		}

		/// <summary>
		/// 暂停此服务。
		/// </summary>
		protected override void OnPause()
		{
			chatServer.Suspend();
		}

		/// <summary>
		/// 恢复正常。
		/// </summary>
		protected override void OnContinue()
		{
			chatServer.Resume();
		}

		/// <summary>
		/// 关闭此服务。
		/// </summary>
		protected override void OnShutdown()
		{
			OnStop();
		}
	}
}
