Esempio n. 1
0
		public CommandRouter(RequestHandlerDirectory requestHandlers)
		{
			if (requestHandlers == null)
			{
				throw new ArgumentNullException("requestHandlers");
			}

			if (requestHandlers.Count == 0)
			{
				throw new ArgumentException("No request handlers were found in the directory.", "requestHandlers");
			}

			foreach (RequestHandlerMapping mapping in requestHandlers)
			{
				var handlerInfo = new RequestHandlerInfo() { RequestHandlerType = mapping.RequestHandlerType, ReentrantInstance = null };

				try
				{
					_HandlerDirectory.Add(mapping.Command, handlerInfo);
				}
				catch (ArgumentException)
				{
					throw new ArgumentException("The same command was mapped to more than one request handler.", "requestHandlers");
				}
			}
		}
Esempio n. 2
0
		public RequestManager()
		{
			if (!HttpListener.IsSupported)
			{
				throw new InvalidOperationException("Windows XP SP2, Windows Server 2003, or later is required to run this service.");
			}

			var requestHandlers = new RequestHandlerDirectory();
			requestHandlers.AddHandler<ScheduleRequestHandler>("Schedule");
			requestHandlers.AddHandler<CancelRequestHandler>("Cancel");
			requestHandlers.AddHandler<StatusRequestHandler>("Status");

			_Router = new CommandRouter(requestHandlers);
			_ListeningThread = new Thread(new ThreadStart(Listen));
		}