Exemplo n.º 1
0
 public async Task SendAsync(Stream stream, TransmitDelegate next)
 {
     using (var cryptoStream = new CryptoStream(stream, new ToBase64Transform(), CryptoStreamMode.Write))
     {
         await next(cryptoStream);
     }
 }
Exemplo n.º 2
0
        private async Task SendMessageAsync(Func <Stream, Task> writer)
        {
            var transformIterator = ((IEnumerable <IMiddleware>)_middleware).Reverse().GetEnumerator();
            TransmitDelegate transformDelegator = null;

            transformDelegator = async transformedStream =>
            {
                if (transformIterator.MoveNext())
                {
                    using (_logger?.Tracer($"Middleware[{transformIterator.Current.GetType()}].SendAsync(...)"))
                    {
                        await transformIterator.Current.SendAsync(transformedStream, transformDelegator).ConfigureAwait(false);
                    }
                }
                else
                {
                    await writer(transformedStream).ConfigureAwait(false);
                }
            };

            await _writeLock.WaitAsync();

            try
            {
                using (var writeStream = _clientWebSocket.GetWriteStream())
                {
                    await transformDelegator
                    .Invoke(writeStream)
                    .ContinueWith(async task =>
                    {
                        // Dispose first before handling return state
                        transformIterator.Dispose();

                        // Unwrap and allow the outer exception handler to handle this case
                        task.WaitAndUnwrapException();
                    })
                    .ConfigureAwait(false);
                }
            }
            finally
            {
                _writeLock.Release();
            }
        }
Exemplo n.º 3
0
        internal void AddTransmitButton(ToolStripContainer topToolBar, TransmitDelegate transmitDelegate)
        {
            transDelegate = transmitDelegate;

            if (transDelegate != null)
            {
                if (transmitToolStrip.Items.Count > 0)
                {
                    transmitToolStrip.Items.RemoveAt(0);
                }

                ToolStripItem button;
                button = new ToolStripButton();
                button.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText;
                button.ImageScaling = ToolStripItemImageScaling.SizeToFit;
                //button.

                button.Text        = "Transmit";
                button.ImageKey    = "Transmit";
                button.Name        = "Transmit";
                button.ToolTipText = "Transmit to FaxGateway";
                transmitToolStrip.Items.Add(button);
            }
            else
            {
                if (transmitToolStrip.Items.Count > 0)
                {
                    transmitToolStrip.Items.RemoveAt(0);
                }
            }
            ToolStripLabel statusText = new ToolStripLabel();

            statusText.AutoSize  = true;
            statusText.TextAlign = ContentAlignment.MiddleCenter;
            statusText.Padding   = new Padding(10, 10, 10, 10);
            statusText.Name      = "FileName";
            // statusText.Text = "Image File name";
            // statusText.Font = new Font("Arial", 10);
            transmitToolStrip.Items.Add(statusText);
            return;
        }
Exemplo n.º 4
0
         internal void AddTransmitButton(ToolStripContainer topToolBar, TransmitDelegate transmitDelegate)
         {

             transDelegate = transmitDelegate;

             if (transDelegate != null)
             {
                 if (transmitToolStrip.Items.Count > 0)
                 {
                     transmitToolStrip.Items.RemoveAt(0);
                 }

                 ToolStripItem button;
                 button = new ToolStripButton();
                 button.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText;
                 button.ImageScaling = ToolStripItemImageScaling.SizeToFit;
                 //button.

                 button.Text = "Transmit";
                 button.ImageKey = "Transmit";
                 button.Name = "Transmit";
                 button.ToolTipText = "Transmit to FaxGateway";
                 transmitToolStrip.Items.Add(button);
             }
             else
             {
                 if (transmitToolStrip.Items.Count > 0)
                 {
                     transmitToolStrip.Items.RemoveAt(0);
                 }
             }
             ToolStripLabel statusText = new ToolStripLabel();
             statusText.AutoSize = true;
             statusText.TextAlign = ContentAlignment.MiddleCenter;
             statusText.Padding = new Padding(10, 10, 10, 10);
             statusText.Name = "FileName";
            // statusText.Text = "Image File name";
            // statusText.Font = new Font("Arial", 10);
             transmitToolStrip.Items.Add(statusText);
             return;


         }
Exemplo n.º 5
0
        //public class SerialData
        //{
        public SerialPacket()
        {
            /* Receive State Variables */
                receive_state = PROC_STATE_AWAITING_START_BYTE;
                receive_next_char_is_escaped = false;

                /* Function Pointers */
                Transmit = null;
                TransmitPacketComplete = null;
                ReceivePacketComplete = null;
                ReceiveDataError = null;

                /* Transmit State Variables */
                transmit_state = PROC_STATE_TRANSMIT_COMPLETE;
                transmit_address = 0;
                transmit_length = 0;
                transmit_checksum = 0;
                transmit_data_index = 0;
        }