rd-net/Test.RdFramework/TestWireTapping.cs (22 lines of code) (raw):

using System; using System.IO; using JetBrains.Lifetimes; using Test.RdFramework.Components; namespace Test.RdFramework; public class TestWireTapping : IDisposable { private readonly StreamWriter myWriter; private LifetimeDefinition myLifetimeDefinition; public TestWireTapping(string filename, TestWire clientWire, TestWire serverWire) { myWriter = new StreamWriter(filename); myLifetimeDefinition = new LifetimeDefinition(); myLifetimeDefinition.Lifetime.OnTermination(myWriter); clientWire.OnTransmit.Advise(myLifetimeDefinition.Lifetime, bytes => myWriter.WriteLine("Client: " + BitConverter.ToString(bytes))); serverWire.OnTransmit.Advise(myLifetimeDefinition.Lifetime, bytes => myWriter.WriteLine("Server: " + BitConverter.ToString(bytes))); } public void Dispose() { myLifetimeDefinition.Terminate(); } }