From: <br...@us...> - 2008-06-01 22:58:58
|
Revision: 195 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=195&view=rev Author: brus07 Date: 2008-06-01 15:59:03 -0700 (Sun, 01 Jun 2008) Log Message: ----------- Added interface for Getter. For get information from web. Modified Paths: -------------- ACMServer/trunk/MediatorSolution/Library/Connector/Connector.csproj ACMServer/trunk/MediatorSolution/Library/Connector/WebConnector.cs Added Paths: ----------- ACMServer/trunk/MediatorSolution/Library/Connector/Getter/ ACMServer/trunk/MediatorSolution/Library/Connector/Getter/FileGetter.cs ACMServer/trunk/MediatorSolution/Library/Connector/Getter/IWebGetter.cs ACMServer/trunk/MediatorSolution/Library/Connector/Getter/WebGetter.cs Modified: ACMServer/trunk/MediatorSolution/Library/Connector/Connector.csproj =================================================================== --- ACMServer/trunk/MediatorSolution/Library/Connector/Connector.csproj 2008-06-01 12:03:25 UTC (rev 194) +++ ACMServer/trunk/MediatorSolution/Library/Connector/Connector.csproj 2008-06-01 22:59:03 UTC (rev 195) @@ -34,9 +34,13 @@ </Reference> <Reference Include="System" /> <Reference Include="System.Data" /> + <Reference Include="System.Windows.Forms" /> <Reference Include="System.Xml" /> </ItemGroup> <ItemGroup> + <Compile Include="Getter\FileGetter.cs" /> + <Compile Include="Getter\IWebGetter.cs" /> + <Compile Include="Getter\WebGetter.cs" /> <Compile Include="SocketClient.cs" /> <Compile Include="SocketServer.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> Added: ACMServer/trunk/MediatorSolution/Library/Connector/Getter/FileGetter.cs =================================================================== --- ACMServer/trunk/MediatorSolution/Library/Connector/Getter/FileGetter.cs (rev 0) +++ ACMServer/trunk/MediatorSolution/Library/Connector/Getter/FileGetter.cs 2008-06-01 22:59:03 UTC (rev 195) @@ -0,0 +1,41 @@ +using System; + +namespace AcmContester.Library.Connector.Getter +{ + class FileGetter: IWebGetter + { + public object GetInfoFromSite() + { + try + { + string res = ""; + using (System.IO.StreamReader sr = new System.IO.StreamReader("a.txt")) + { + res = sr.ReadToEnd(); + } + if (res.Length == 0) + return null; + return res; + } + catch (Exception) + { + } + return null; + } + + public void Send(string message) + { + try + { + using (System.IO.StreamWriter sr = new System.IO.StreamWriter("b.txt", true)) + { + sr.WriteLine(DateTime.Now.ToLongTimeString() + ": " + message); + } + } + catch (Exception) + { + } + //TODO: + } + } +} Added: ACMServer/trunk/MediatorSolution/Library/Connector/Getter/IWebGetter.cs =================================================================== --- ACMServer/trunk/MediatorSolution/Library/Connector/Getter/IWebGetter.cs (rev 0) +++ ACMServer/trunk/MediatorSolution/Library/Connector/Getter/IWebGetter.cs 2008-06-01 22:59:03 UTC (rev 195) @@ -0,0 +1,10 @@ +using System; + +namespace AcmContester.Library.Connector.Getter +{ + interface IWebGetter + { + object GetInfoFromSite(); + void Send(string message); + } +} Added: ACMServer/trunk/MediatorSolution/Library/Connector/Getter/WebGetter.cs =================================================================== --- ACMServer/trunk/MediatorSolution/Library/Connector/Getter/WebGetter.cs (rev 0) +++ ACMServer/trunk/MediatorSolution/Library/Connector/Getter/WebGetter.cs 2008-06-01 22:59:03 UTC (rev 195) @@ -0,0 +1,34 @@ +using System; +using System.Threading; +using System.Windows.Forms; + +namespace AcmContester.Library.Connector.Getter +{ + class WebGetter: IWebGetter + { + public void Send(string message) + { + WebBrowser webBrowser = new WebBrowser(); + webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted); + webBrowser.Navigate("http://127.0.0.1/d/a.php?p=321"); + } + + + Mutex mut = new Mutex(); + string document = ""; + public object GetInfoFromSite() + { + WebBrowser webBrowser = new WebBrowser(); + webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted); + webBrowser.Navigate("http://127.0.0.1/d/a.php?p=321"); + mut.WaitOne(); + return document; + } + + void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) + { + document = ((WebBrowser)sender).DocumentText; + mut.ReleaseMutex(); + } + } +} Modified: ACMServer/trunk/MediatorSolution/Library/Connector/WebConnector.cs =================================================================== --- ACMServer/trunk/MediatorSolution/Library/Connector/WebConnector.cs 2008-06-01 12:03:25 UTC (rev 194) +++ ACMServer/trunk/MediatorSolution/Library/Connector/WebConnector.cs 2008-06-01 22:59:03 UTC (rev 195) @@ -1,5 +1,6 @@ using System; using System.Timers; +using AcmContester.Library.Connector.Getter; namespace AcmContester.Library.Connector { @@ -10,6 +11,8 @@ public delegate void DataArrivedDelegate(string s); public event DataArrivedDelegate onDataArrived; + private IWebGetter getter = new WebGetter(); + public WebConnector() { timer.Interval = 10 * 1000; @@ -22,7 +25,7 @@ private void OnTimedEvent(object source, ElapsedEventArgs e) { timer.Enabled = false; - object ob = GetInfoFromSite(); + object ob = getter.GetInfoFromSite(); if (ob != null) { DataArrived(ob); @@ -38,38 +41,9 @@ } } - private object GetInfoFromSite() - { - try - { - string res = ""; - using (System.IO.StreamReader sr = new System.IO.StreamReader("a.txt")) - { - res = sr.ReadToEnd(); - } - if (res.Length == 0) - return null; - return res; - } - catch(Exception) - { - } - return null; - } - public void Send(string message) { - try - { - using (System.IO.StreamWriter sr = new System.IO.StreamWriter("b.txt", true)) - { - sr.WriteLine(DateTime.Now.ToLongTimeString() + ": " + message); - } - } - catch (Exception) - { - } - //TODO: + getter.Send(message); } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |