protected override void Run() { try { if (ServiceAgentMode == ServiceAgentMode.Server) { while (true) { Console.Write("path for file to share: "); string p = MainClass.ConsoleReadLine(); if (p == "done") { return; } SendMessage(p); } } while (true) { FileShareMessage fileShareMessage; mre_fileReceived.WaitOne(10); while (files.TryDequeue(out fileShareMessage)) { mre_fileReceived.Reset(); Console.Write("server has shared a file: "); Console.WriteLine(fileShareMessage.Text); using (TransparentStream s = OpenStream(fileShareMessage.StreamID)) { Console.Write("path to save: "); s.CopyTo(File.OpenWrite(MainClass.ConsoleReadLine()), 64, 512); } } } } catch (System.Threading.ThreadAbortException) { } }
protected TransparentStream OpenStream(Guid streamID) { TransparentStream ts = new TransparentStream(this, streamID, objectBusSession); streams.TryAdd(streamID, ts); return(ts); }
internal void RemoveStream(TransparentStream transparentStream) { TransparentStream referenece; streams.TryGetValue(transparentStream.StreamID, out referenece); if (referenece != transparentStream) { throw new InvalidOperationException("requested stream has an id belonging to this agent but the object itself does not"); } streams.TryRemove(transparentStream.StreamID, out referenece); }