diff options
Diffstat (limited to 'embeddable-dll-service/csharp/DemoUI/MainWindow.cs')
-rw-r--r-- | embeddable-dll-service/csharp/DemoUI/MainWindow.cs | 58 |
1 files changed, 26 insertions, 32 deletions
diff --git a/embeddable-dll-service/csharp/DemoUI/MainWindow.cs b/embeddable-dll-service/csharp/DemoUI/MainWindow.cs index 7d1e3f6f..6e3eb21f 100644 --- a/embeddable-dll-service/csharp/DemoUI/MainWindow.cs +++ b/embeddable-dll-service/csharp/DemoUI/MainWindow.cs @@ -66,49 +66,43 @@ namespace DemoUI private void tailTransfer() { - StreamReader reader = null; - NamedPipeClientStream stream = null; + Tunnel.Driver.Adapter adapter = null; while (threadsRunning) { - try + if (adapter == null) { - stream = Tunnel.Service.GetPipe(configFile); - stream.Connect(); - reader = new StreamReader(stream); - break; + while (threadsRunning) + { + try + { + adapter = Tunnel.Service.GetAdapter(configFile); + break; + } + catch + { + try + { + Thread.Sleep(1000); + } + catch { } + } + } } - catch { } - Thread.Sleep(1000); - } - - try - { - while (threadsRunning) + if (adapter == null) + continue; + try { - stream.Write(Encoding.UTF8.GetBytes("get=1\n\n")); ulong rx = 0, tx = 0; - while (threadsRunning) + var config = adapter.GetConfiguration(); + foreach (var peer in config.Peers) { - var line = reader.ReadLine(); - if (line == null) - break; - line = line.Trim(); - if (line.Length == 0) - break; - if (line.StartsWith("rx_bytes=")) - rx += ulong.Parse(line.Substring(9)); - else if (line.StartsWith("tx_bytes=")) - tx += ulong.Parse(line.Substring(9)); + rx += peer.RxBytes; + tx += peer.TxBytes; } Invoke(new Action<ulong, ulong>(updateTransferTitle), new object[] { rx, tx }); Thread.Sleep(1000); } - } - catch { } - finally - { - if (stream.IsConnected) - stream.Close(); + catch { adapter = null; } } } |