0
|
1 ???using System; |
|
2 using System.Collections.Generic; |
|
3 using System.Xml; |
|
4 using UCIS.Net; |
|
5 |
|
6 namespace UCIS.Xml { |
|
7 public class XmlServer : TCPServer.IModule { |
|
8 public Dictionary<string, IModule> Modules = new Dictionary<string, IModule>(StringComparer.OrdinalIgnoreCase); |
|
9 |
|
10 public bool Accept(TCPStream Stream) { |
|
11 XmlSocket XSocket = new XmlSocket(Stream); |
|
12 Stream.ReadTimeout = 5000; |
|
13 XmlDocument FirstMessage = XSocket.ReadDocument(); |
|
14 if (FirstMessage == null) return true; |
|
15 IModule module; |
|
16 if (Modules.TryGetValue(FirstMessage.FirstChild.Name, out module)) { |
|
17 module.Accept(XSocket, FirstMessage); |
|
18 } else { |
|
19 Console.WriteLine("XMLServer.Accept: Module not found: " + FirstMessage.FirstChild.Name); |
|
20 } |
|
21 return true; |
|
22 } |
|
23 |
|
24 public interface IModule { |
|
25 void Accept(XmlSocket Socket, XmlDocument FirstMessage); |
|
26 } |
|
27 } |
|
28 } |