diff options
Diffstat (limited to 'Decompiler/Gestor.Application.Helpers/PipeClient.cs')
| -rw-r--r-- | Decompiler/Gestor.Application.Helpers/PipeClient.cs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.Helpers/PipeClient.cs b/Decompiler/Gestor.Application.Helpers/PipeClient.cs new file mode 100644 index 0000000..a0d49eb --- /dev/null +++ b/Decompiler/Gestor.Application.Helpers/PipeClient.cs @@ -0,0 +1,41 @@ +using System; +using System.IO; +using System.IO.Pipes; +using Newtonsoft.Json; + +namespace Gestor.Application.Helpers; + +public class PipeClient +{ + private string _pipeName; + + private NamedPipeClientStream Pipe { get; set; } + + public PipeClient(string pipeName) + { + _pipeName = pipeName; + } + + public bool Send(dynamic message) + { + try + { + Pipe = new NamedPipeClientStream(".", _pipeName, PipeDirection.Out, PipeOptions.Asynchronous); + Pipe.Connect(1000); + if (!Pipe.IsConnected) + { + return false; + } + using StreamWriter streamWriter = new StreamWriter(Pipe); + streamWriter.AutoFlush = true; + dynamic val = JsonConvert.SerializeObject(message); + streamWriter.WriteLine(val); + Pipe.WaitForPipeDrain(); + } + catch (TimeoutException) + { + return false; + } + return true; + } +} |