From: <br...@us...> - 2008-06-16 07:27:16
|
Revision: 258 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=258&view=rev Author: brus07 Date: 2008-06-16 00:26:48 -0700 (Mon, 16 Jun 2008) Log Message: ----------- Connect Plugins module to Mediator. Fixed bug in dataContainer, with added message to queue without send. Modified Paths: -------------- ACMServer/trunk/ACMServer/Library/Connector/Getter/WebGetter.cs ACMServer/trunk/ACMServer/Mediator/Form1.cs ACMServer/trunk/ACMServer/Mediator/Library/MediatorKernel.cs ACMServer/trunk/ACMServer/Plugins/MediatorPlugins/SocketServerGatePlugin/SocketServerGate.cs ACMServer/trunk/ACMServer/Plugins/MediatorPlugins/SocketServerGatePlugin/SocketServerGatePlugin.cs Modified: ACMServer/trunk/ACMServer/Library/Connector/Getter/WebGetter.cs =================================================================== --- ACMServer/trunk/ACMServer/Library/Connector/Getter/WebGetter.cs 2008-06-16 07:20:09 UTC (rev 257) +++ ACMServer/trunk/ACMServer/Library/Connector/Getter/WebGetter.cs 2008-06-16 07:26:48 UTC (rev 258) @@ -62,8 +62,17 @@ void Send2(string message) { - string res = (message.Split('$'))[0]; - string id = (message.Split('$'))[1]; + string res = ""; + string id = ""; + try + { + res = (message.Split('$'))[0]; + id = (message.Split('$'))[1]; + } + catch (Exception) + { + return; + } HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(fullPathToWebPages + "/set.php?res=" + res + "&id=" + id); myRequest.Method = "GET"; WebResponse myResponse = myRequest.GetResponse(); Modified: ACMServer/trunk/ACMServer/Mediator/Form1.cs =================================================================== --- ACMServer/trunk/ACMServer/Mediator/Form1.cs 2008-06-16 07:20:09 UTC (rev 257) +++ ACMServer/trunk/ACMServer/Mediator/Form1.cs 2008-06-16 07:26:48 UTC (rev 258) @@ -22,10 +22,11 @@ } string fullLog = ""; + AcmContester.Mediator.Library.MediatorKernel kernel; private void button2_Click(object sender, EventArgs e) { - AcmContester.Mediator.Library.MediatorKernel kernel = new AcmContester.Mediator.Library.MediatorKernel(); + kernel = new AcmContester.Mediator.Library.MediatorKernel(); kernel.onWorkingData += WorkingData; kernel.LoadLists(); } @@ -60,9 +61,8 @@ private void Disconnnect() { - //AcmContester.Mediator.Library.Plugins.SocketGate.CreaterMediatorPlugin socketCreater = new AcmContester.Mediator.Library.Plugins.SocketGate.CreaterMediatorPlugin(); - //SocketServerPlugin b2 = (SocketServerPlugin)socketCreater.GetInstance(); - //b2.Stop(); + kernel.SendToAll("stop"); + } private void Form1_FormClosing(object sender, FormClosingEventArgs e) Modified: ACMServer/trunk/ACMServer/Mediator/Library/MediatorKernel.cs =================================================================== --- ACMServer/trunk/ACMServer/Mediator/Library/MediatorKernel.cs 2008-06-16 07:20:09 UTC (rev 257) +++ ACMServer/trunk/ACMServer/Mediator/Library/MediatorKernel.cs 2008-06-16 07:26:48 UTC (rev 258) @@ -1,30 +1,30 @@ using System; using System.Collections; using AcmContester.Plugins.PluginsFramework; +using System.Collections.Generic; namespace AcmContester.Mediator.Library { class MediatorKernel { - ArrayList clientSideList = new ArrayList(); - ArrayList testerSideList = new ArrayList(); + List<BaseMediatorPlugin> clientSideList; + List<BaseMediatorPlugin> testerSideList; public void LoadLists() { - /* - //TODO: \xEF\xEE\xF2\xF0\xB3\xE1\xED\xEE \xE2\xE8\xF2\xFF\xE3\xF3\xE2\xE0\xF2\xE8 \xE4\xE0\xED\xB3 \xB3\xE7 \xEF\xE0\xEF\xEE\xEA \xF3 \xFF\xEA\xE8\xE9\xF5 \xEC\xE0\xFE\xF2\xFC \xE7\xED\xE0\xF5\xEE\xE4\xE8\xF2\xE8\xF1\xFF \xE2\xB3\xE4\xEF\xEE\xE2\xB3\xE4\xED\xB3 dll \xE4\xEE \xEA\xEE\xE6\xED\xEE\xE3\xEE \xEF\xEB\xE0\xE3\xB3\xED\xF3 - AcmContester.Mediator.Library.Plugins.WebGate.CreaterMediatorPlugin webCreater = new AcmContester.Mediator.Library.Plugins.WebGate.CreaterMediatorPlugin(); - BaseMediatorPlugin b1 = webCreater.GetInstance(); - b1.onDataArrived += DataArrivedFromClentList; - b1.onWorkingData += WorkingData; - clientSideList.Add(b1); + clientSideList = PluginsLoader<BaseMediatorPlugin>.Load("Dll_Web"); + foreach (BaseMediatorPlugin plugin in clientSideList) + { + plugin.onDataArrived += DataArrivedFromClientList; + plugin.onWorkingData += WorkingData; + } - AcmContester.Mediator.Library.Plugins.SocketGate.CreaterMediatorPlugin socketCreater = new AcmContester.Mediator.Library.Plugins.SocketGate.CreaterMediatorPlugin(); - BaseMediatorPlugin b2 = socketCreater.GetInstance(); - b2.onDataArrived += DataArrivedFromTesterList; - b2.onWorkingData += WorkingData; - testerSideList.Add(b2); - */ + testerSideList = PluginsLoader<BaseMediatorPlugin>.Load("Dll_Tester"); + foreach (BaseMediatorPlugin plugin in testerSideList) + { + plugin.onDataArrived += DataArrivedFromTesterList; + plugin.onWorkingData += WorkingData; + } } public delegate void WorkingData_EventHandler(string message); @@ -35,7 +35,7 @@ onWorkingData(message); } - private void DataArrivedFromClentList(string message) + private void DataArrivedFromClientList(string message) { for (int index = 0; index < testerSideList.Count; index++) { @@ -49,5 +49,11 @@ ((BaseMediatorPlugin)clientSideList[index]).Send(message); } } + + public void SendToAll(string message) + { + DataArrivedFromClientList(message); + DataArrivedFromTesterList(message); + } } } Modified: ACMServer/trunk/ACMServer/Plugins/MediatorPlugins/SocketServerGatePlugin/SocketServerGate.cs =================================================================== --- ACMServer/trunk/ACMServer/Plugins/MediatorPlugins/SocketServerGatePlugin/SocketServerGate.cs 2008-06-16 07:20:09 UTC (rev 257) +++ ACMServer/trunk/ACMServer/Plugins/MediatorPlugins/SocketServerGatePlugin/SocketServerGate.cs 2008-06-16 07:26:48 UTC (rev 258) @@ -18,7 +18,7 @@ private SocketServerGate() { - //base.Start(); + base.Start(); base.onDataArrived += DataArrived; } @@ -29,9 +29,12 @@ public void Send(string message) { - if (dataContainer.Add(new Submit(message)) == true) + if (base.CountClients() > 0) { - base.Send(message); + if (dataContainer.Add(new Submit(message)) == true) + { + base.Send(message); + } } } Modified: ACMServer/trunk/ACMServer/Plugins/MediatorPlugins/SocketServerGatePlugin/SocketServerGatePlugin.cs =================================================================== --- ACMServer/trunk/ACMServer/Plugins/MediatorPlugins/SocketServerGatePlugin/SocketServerGatePlugin.cs 2008-06-16 07:20:09 UTC (rev 257) +++ ACMServer/trunk/ACMServer/Plugins/MediatorPlugins/SocketServerGatePlugin/SocketServerGatePlugin.cs 2008-06-16 07:26:48 UTC (rev 258) @@ -10,7 +10,7 @@ public SocketServerGatePlugin() { socketServerGate = SocketServerGate.GetInstance(); - //socketServerGate.onDataArrived += DataArrived; + socketServerGate.onDataArrived += DataArrived; } public override void Send(string message) @@ -21,7 +21,8 @@ return; } WorkingData("WebGatePlugin::Send(" + message + ")"); - //socketServerGate.Send(message); + WorkingData("WebGatePlugin::Send CountClients = "+ socketServerGate.CountClients().ToString()); + socketServerGate.Send(message); } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |