From: <br...@us...> - 2008-10-01 09:58:25
|
Revision: 400 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=400&view=rev Author: brus07 Date: 2008-10-01 09:58:09 +0000 (Wed, 01 Oct 2008) Log Message: ----------- Refactoring in using SystemMessageType. Modified Paths: -------------- ACMServer/trunk/ACMServer/Library/Data/DataMediator.cs ACMServer/trunk/ACMServer/Plugins/MediatorPlugins/SocketServerGatePlugin/SocketServerGate.cs ACMServer/trunk/ACMServer/Plugins/MediatorPlugins/WebGatePlugin/WebGatePlugin.cs ACMServer/trunk/ACMServer/Plugins/MediatorPlugins/WebGatePlugin/WebGetter.cs Modified: ACMServer/trunk/ACMServer/Library/Data/DataMediator.cs =================================================================== --- ACMServer/trunk/ACMServer/Library/Data/DataMediator.cs 2008-09-30 18:19:23 UTC (rev 399) +++ ACMServer/trunk/ACMServer/Library/Data/DataMediator.cs 2008-10-01 09:58:09 UTC (rev 400) @@ -20,6 +20,14 @@ } } + public int Count + { + get + { + return d.Count; + } + } + /// <summary> /// \xDF\xEA\xF9\xEE \xF1\xE0\xE1\xEC\xB3\xF2 \xF3 \xF7\xE5\xF0\xE7\xB3 \xE7\xED\xE0\xF5\xEE\xE4\xE8\xF2\xFC\xF1\xFF \xE1\xB3\xEB\xFC\xF8\xE5 \xED\xB3\xE6 secondToLive \xF1\xE5\xEA\xF3\xED\xE4, \xF2\xEE \xE2\xB3\xED \xEF\xF0\xEE\xF1\xF2\xEE \xE2\xE8\xE4\xE0\xEB\xFF\xBA\xF2\xFC\xF1\xFF \xE7 \xED\xE5\xBF /// </summary> Modified: ACMServer/trunk/ACMServer/Plugins/MediatorPlugins/SocketServerGatePlugin/SocketServerGate.cs =================================================================== --- ACMServer/trunk/ACMServer/Plugins/MediatorPlugins/SocketServerGatePlugin/SocketServerGate.cs 2008-09-30 18:19:23 UTC (rev 399) +++ ACMServer/trunk/ACMServer/Plugins/MediatorPlugins/SocketServerGatePlugin/SocketServerGate.cs 2008-10-01 09:58:09 UTC (rev 400) @@ -34,12 +34,18 @@ protected override void DataSender(SystemMessage message, int clientIndex) { - Submit submit = Submit.CreateFromXml(message.Message); - if (dataContainer.Add(submit) == true) + if (message.IsType("TestingSubmit") == true) { - OnLogMessage("Send", submit.id + " to " + clientIndex); - base.DataSender(message, clientIndex); + Submit submit = Submit.CreateFromXml(message.Message); + if (dataContainer.Add(submit) == true) + { + OnLogMessage("Send", submit.id + " to " + clientIndex); + base.DataSender(message, clientIndex); + } + return; } + + base.DataSender(message, clientIndex); } @@ -57,22 +63,24 @@ public new bool Send(SystemMessage message) { - if (message.IsType("TestingSubmitList") == false) - return false; + if (message.IsType("TestingSubmitList") == true) + { + SubmitList submitList = SubmitList.CreateFromXml(message.Message); - SubmitList submitList = SubmitList.CreateFromXml(message.Message); + GenerateLogMessageWirhIDs(submitList); - GenerateLogMessageWirhIDs(submitList); - - for (int index = 0; index < submitList.Items.Length; index++) - { - if (dataContainer.Contains(submitList.Items[index]) == false) + for (int index = 0; index < submitList.Items.Length; index++) { - SystemMessage sysMes = new SystemMessage(submitList.Items[index].ToString(), "TestingSubmit"); - pool.Send(sysMes); + if (dataContainer.Contains(submitList.Items[index]) == false) + { + SystemMessage sysMes = new SystemMessage(submitList.Items[index].ToString(), "TestingSubmit"); + pool.Send(sysMes); + } } + return true; } - return true; + + return false; } protected override void DataArriver(SystemMessage message) Modified: ACMServer/trunk/ACMServer/Plugins/MediatorPlugins/WebGatePlugin/WebGatePlugin.cs =================================================================== --- ACMServer/trunk/ACMServer/Plugins/MediatorPlugins/WebGatePlugin/WebGatePlugin.cs 2008-09-30 18:19:23 UTC (rev 399) +++ ACMServer/trunk/ACMServer/Plugins/MediatorPlugins/WebGatePlugin/WebGatePlugin.cs 2008-10-01 09:58:09 UTC (rev 400) @@ -22,11 +22,13 @@ public override void Send(SystemMessage message) { - if (message.IsType("ApplicationSystem") && message.Message == "stop") + if (message.IsType("ApplicationSystem")) { - return; + if (message.Message == "stop") + return; } - string text = message.Message.Length + " bytes" + Environment.NewLine; + + string text = message.Message.Length + " bytes"; ((WebGatePluginUserControl)base.Control).AddText("Send", text); webGate.Send(message); @@ -34,11 +36,21 @@ protected override void DataArrived(SystemMessage message) { + if (message.IsType("Empty") == true) + { + ((WebGatePluginUserControl)base.Control).AddText("SystemReceive", "0 bytes"); + return; + } + if (message.IsType("SystemResult") == true) + { + ((WebGatePluginUserControl)base.Control).AddText("SystemReceive", message.Message); + return; + } + string text = message.Message.Length + " bytes"; ((WebGatePluginUserControl)base.Control).AddText("Receive", text); + base.DataArrived(message); - if (message.IsType("Empty") == false) - base.DataArrived(message); } private void OnChecked(object o,EventArgs a) Modified: ACMServer/trunk/ACMServer/Plugins/MediatorPlugins/WebGatePlugin/WebGetter.cs =================================================================== --- ACMServer/trunk/ACMServer/Plugins/MediatorPlugins/WebGatePlugin/WebGetter.cs 2008-09-30 18:19:23 UTC (rev 399) +++ ACMServer/trunk/ACMServer/Plugins/MediatorPlugins/WebGatePlugin/WebGetter.cs 2008-10-01 09:58:09 UTC (rev 400) @@ -49,17 +49,14 @@ public SystemMessage GetData() { checkAddress(); - object ob = MediatorGetInfoFromSiteX(); - if (ob == null) - return new SystemMessage("", "Empty"); - SystemMessage sysMes = new SystemMessage(ob.ToString(), "TestingSubmitList"); - return sysMes; + return GetMessageFromSite();; } public void Send(SystemMessage message) { if (message.IsType("TestingResult") == true) - MediatorSendX(message.Message); + SendTestingResultToSite(message.Message); + //jaksho inakshyj typ, todi potribno bude inakshu funkciju vyklykaty } public string PathToSource @@ -76,31 +73,20 @@ #endregion - void MediatorSendX(string message) + void SendTestingResultToSite(string message) { - Result result = Result.CreateFromXml(message); - SendX(message); - container.Return(result); - } - void SendX(string message) - { string res = ""; string id = ""; string usedMemory = ""; string usedTime = ""; - try - { - //TODO: - Result result = Result.CreateFromXml(message); - res = result.res; - id = result.Submit.id.ToString(); - usedMemory = result.usedMemory.ToString(); - usedTime = result.usedTime.ToString(); - } - catch (Exception) - { - return; - } + + //TODO: + Result result = Result.CreateFromXml(message); + res = result.res; + id = result.Submit.id.ToString(); + usedMemory = result.usedMemory.ToString(); + usedTime = result.usedTime.ToString(); + string fullURL = fullPathToWebPages + "/set.php?"; fullURL += "res=" + res; fullURL += "&id=" + id; @@ -110,14 +96,31 @@ myRequest.Method = "GET"; WebResponse myResponse = myRequest.GetResponse(); myResponse.Close(); + + container.Return(result); } - string MediatorGetInfoFromSiteX() + SystemMessage GetMessageFromSite() { - string getAll = GetInfoFromSiteX(); + string getAll = GetFullInfoFromSite(); if (String.IsNullOrEmpty(getAll) == true) - return null; - SubmitList list = SubmitList.CreateFromXml(getAll); + return new SystemMessage("", "Empty"); + if (getAll.Contains("submitList") == true) + { + return CreateTestingSubmitListMessageFromText(getAll); + } + if (getAll.Contains("SystemResult") == true) + { + return new SystemMessage(getAll, "SystemResult"); + } + + //tut potribno realizuvaty vidpovidni sturktury i vyklykaty ihshyt danyh + return new SystemMessage(getAll, "UnknownContent"); + } + + SystemMessage CreateTestingSubmitListMessageFromText(string info) + { + SubmitList list = SubmitList.CreateFromXml(info); List<Submit> result = new List<Submit>(); for (int i = 0; i < list.Items.Length; i++) { @@ -130,22 +133,35 @@ } } if (result.Count == 0) - return null; + return new SystemMessage("Web checked: All submits in queue (queue size " + container.Count.ToString() + ")", "SystemResult"); SubmitList resultList = new SubmitList(); resultList.Items = result.ToArray(); - return resultList.ToString(); + return new SystemMessage(resultList.ToString(), "TestingSubmitList"); } - string GetInfoFromSiteX() + + string GetFullInfoFromSite() { - HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(fullPathToWebPages + "/get.php"); - myRequest.Method = "GET"; - WebResponse myResponse = myRequest.GetResponse(); - StreamReader sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8); - string result = sr.ReadToEnd(); - sr.Close(); - myResponse.Close(); - if (result.Length == 0) - return null; + string result = null; + try + { + HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(fullPathToWebPages + "/get.php"); + myRequest.Method = "GET"; + //myRequest.Timeout = 100000; + WebResponse myResponse = myRequest.GetResponse(); + StreamReader sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8); + result = sr.ReadToEnd(); + sr.Close(); + myResponse.Close(); + if (result.Length == 0) + return null; + } + catch (WebException wex) + { + if (wex.Status == WebExceptionStatus.Timeout) + { + return "SystemResult: Timeout"; + } + } return result; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |