public IProtocolEncoder GetEncoder(IoSession session) { if (_Encoder == null) { _Encoder = new FSOSandboxProtocolEncoder(); } return(_Encoder); }
public IProtocolEncoder GetEncoder(IoSession session) { if (_Encoder == null) { _Encoder = Kernel.Get <AriesProtocolEncoder>(); } return(_Encoder); }
public SynchronizedProtocolEncoder(IProtocolEncoder encoder) { if (encoder == null) { throw new ArgumentNullException("encoder"); } _encoder = encoder; }
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; }
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; }
/// <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)) { }
/// <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; } }
public ProtocolCodecFactory(IProtocolEncoder encoder, IProtocolDecoder decoder) { if (encoder == null) throw new ArgumentNullException("encoder"); if (decoder == null) throw new ArgumentNullException("decoder"); _encoder = encoder; _decoder = decoder; }