Ejemplo n.º 1
0
        /// <summary>
        /// Takes a <see cref="Message"/> and converts it into a byte buffer.
        /// </summary>
        /// <param name="ctx"></param>
        /// <param name="message"></param>
        public void HandleDownstream(IPipelineHandlerContext ctx, IPipelineMessage message)
        {
            if (message is SendCommandMessage)
            {
                var evt   = (SendCommandMessage)message;
                var slice = EncodeCommand(evt.Command);
                message = new SendSlice(slice);
            }

            ctx.SendDownstream(message);
        }
        /// <summary>
        /// Takes a <see cref="Message"/> and converts it into a byte buffer.
        /// </summary>
        /// <param name="ctx"></param>
        /// <param name="message"></param>
        public void HandleDownstream(IPipelineHandlerContext ctx, IPipelineMessage message)
        {
            if (message is SendCommandMessage)
            {
                var evt = (SendCommandMessage) message;
                var slice = EncodeCommand(evt.Command);
                message = new SendSlice(slice);
            }

            ctx.SendDownstream(message);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Send a buffer slice.
        /// </summary>
        /// <param name="message"></param>
        public virtual void Send(SendSlice message)
        {
            if (_socket == null)
            {
                throw new InvalidOperationException("Socket is disconnected");
            }


            var buffer = message.BufferSlice;

            try
            {
                var tmp = Encoding.UTF8.GetString(buffer.Buffer, buffer.StartOffset, buffer.Count);
                Logger.Trace(tmp);
                Logger.Debug("Sending " + buffer.Count + " bytes");
                _stream.BeginWrite(buffer.Buffer, buffer.StartOffset, buffer.Count, OnSent, message.BufferSlice);
            }
            catch (Exception err)
            {
                HandleDisconnect(err);
                Dispose();
            }
        }