Esempio n. 1
0
        private async Task <TResult> SendSyncRequestAsync <TResult>(IVPNRequest request) where TResult : IVPNResponse
        {
            await __SyncCallSemaphore.WaitAsync(__CancellationToken.Token);

            try
            {
                SendRequest(request);
                return(await Task.Run(() => GetSyncResponse <TResult>()));
            }
            finally
            {
                __SyncCallSemaphore.Release();
            }
        }
Esempio n. 2
0
        private void SendRequest(IVPNRequest request)
        {
            Logging.Info("Sending: " + request);

            // Hello request can be sent without being in "connected
            if (!(request is IVPNHelloRequest))
            {
                CheckConnected();
            }

            lock (__StreamWriter)
            {
                __StreamWriter.WriteLine(JsonConvert.SerializeObject(request,
                                                                     new JsonSerializerSettings {
                    TypeNameHandling = TypeNameHandling.All
                }));
                __StreamWriter.Flush();
            }
        }