Ejemplo n.º 1
0
 public IProtocolEncoder GetEncoder(IoSession session)
 {
     if (_Encoder == null)
     {
         _Encoder = new FSOSandboxProtocolEncoder();
     }
     return(_Encoder);
 }
Ejemplo n.º 2
0
 public IProtocolEncoder GetEncoder(IoSession session)
 {
     if (_Encoder == null)
     {
         _Encoder = Kernel.Get <AriesProtocolEncoder>();
     }
     return(_Encoder);
 }
Ejemplo n.º 3
0
 public SynchronizedProtocolEncoder(IProtocolEncoder encoder)
 {
     if (encoder == null)
     {
         throw new ArgumentNullException("encoder");
     }
     _encoder = encoder;
 }
Ejemplo n.º 4
0
        public AmqpChannel(IByteChannel byteChannel, IProtocolDecoderOutput decoderOutput)
        {
            _byteChannel   = byteChannel;
            _decoderOutput = decoderOutput;
            _syncLock      = new object();

            AMQProtocolProvider   protocolProvider = new AMQProtocolProvider();
            IProtocolCodecFactory factory          = protocolProvider.CodecFactory;

            _encoder = factory.Encoder;
            _decoder = factory.Decoder;
        }
Ejemplo n.º 5
0
 public ProtocolCodecFactory(IProtocolEncoder encoder, IProtocolDecoder decoder)
 {
     if (encoder == null)
     {
         throw new ArgumentNullException("encoder");
     }
     if (decoder == null)
     {
         throw new ArgumentNullException("decoder");
     }
     _encoder = encoder;
     _decoder = decoder;
 }
 public SynchronizedProtocolEncoder(IProtocolEncoder encoder)
 {
     if (encoder == null)
         throw new ArgumentNullException("encoder");
     _encoder = encoder;
 } 
Ejemplo n.º 7
0
 /// <summary>
 /// Instantiates.
 /// </summary>
 /// <param name="encoder">the <see cref="IProtocolEncoder"/> for encoding message objects into binary or protocol specific data</param>
 /// <param name="decoder">the <see cref="IProtocolDecoder"/> for decoding binary or protocol specific data into message objects</param>
 public ProtocolCodecFilter(IProtocolEncoder encoder, IProtocolDecoder decoder)
     : this(new ProtocolCodecFactory(encoder, decoder))
 {
 }
Ejemplo n.º 8
0
        /// <inheritdoc/>
        public override void FilterWrite(INextFilter nextFilter, IoSession session, IWriteRequest writeRequest)
        {
            Object message = writeRequest.Message;

            // Bypass the encoding if the message is contained in a IoBuffer,
            // as it has already been encoded before
            if (message is IoBuffer || message is IFileRegion)
            {
                nextFilter.FilterWrite(session, writeRequest);
                return;
            }

            // Get the encoder in the session
            IProtocolEncoder       encoder    = _factory.GetEncoder(session);
            IProtocolEncoderOutput encoderOut = GetEncoderOut(session, nextFilter, writeRequest);

            if (encoder == null)
            {
                throw new ProtocolEncoderException("The encoder is null for the session " + session);
            }
            if (encoderOut == null)
            {
                throw new ProtocolEncoderException("The encoderOut is null for the session " + session);
            }

            try
            {
                encoder.Encode(session, message, encoderOut);
                AbstractProtocolEncoderOutput ape = encoderOut as AbstractProtocolEncoderOutput;
                if (ape != null)
                {
                    // Send it directly
                    IQueue <Object> bufferQueue = ape.MessageQueue;
                    // Write all the encoded messages now
                    while (!bufferQueue.IsEmpty)
                    {
                        Object encodedMessage = bufferQueue.Dequeue();

                        if (encodedMessage == null)
                        {
                            break;
                        }

                        // Flush only when the buffer has remaining.
                        IoBuffer buf = encodedMessage as IoBuffer;
                        if (buf == null || buf.HasRemaining)
                        {
                            IWriteRequest encodedWriteRequest = new EncodedWriteRequest(encodedMessage, null, writeRequest.Destination);
                            nextFilter.FilterWrite(session, encodedWriteRequest);
                        }
                    }
                }

                // Call the next filter
                nextFilter.FilterWrite(session, new MessageWriteRequest(writeRequest));
            }
            catch (Exception ex)
            {
                ProtocolEncoderException pee = ex as ProtocolEncoderException;
                if (pee == null)
                {
                    pee = new ProtocolEncoderException(null, ex);
                }
                throw pee;
            }
        }
Ejemplo n.º 9
0
 /// <summary>
 /// Instantiates.
 /// </summary>
 /// <param name="encoder">the <see cref="IProtocolEncoder"/> for encoding message objects into binary or protocol specific data</param>
 /// <param name="decoder">the <see cref="IProtocolDecoder"/> for decoding binary or protocol specific data into message objects</param>
 public ProtocolCodecFilter(IProtocolEncoder encoder, IProtocolDecoder decoder)
     : this(new ProtocolCodecFactory(encoder, decoder))
 { }
Ejemplo n.º 10
0
 public ProtocolCodecFactory(IProtocolEncoder encoder, IProtocolDecoder decoder)
 {
     if (encoder == null)
         throw new ArgumentNullException("encoder");
     if (decoder == null)
         throw new ArgumentNullException("decoder");
     _encoder = encoder;
     _decoder = decoder;
 }