public AMQProtocolProvider()
 {
     _factory = new DemuxingProtocolCodecFactory();
     _factory.Register(new AMQDataBlockEncoder());
     _factory.Register(new AMQDataBlockDecoder());
     _factory.Register(new ProtocolInitiation.Decoder());
 }
            public ProtocolDecoderImpl(DemuxingProtocolCodecFactory enclosing)
            {
                _enclosing = enclosing;
                ArrayList decoderFactories = _enclosing._decoderFactories;

                _decoders = new IMessageDecoder[decoderFactories.Count];
                for (int i = decoderFactories.Count - 1; i >= 0; i--)
                {
                    _decoders[i] = ((IMessageDecoderFactory)decoderFactories[i]).NewDecoder();
                }
            }
            public ProtocolEncoderImpl(DemuxingProtocolCodecFactory enclosing)
            {
                _enclosing = enclosing;
                ArrayList encoderFactories = enclosing._encoderFactories;

                for (int i = encoderFactories.Count - 1; i >= 0; i--)
                {
                    IMessageEncoder encoder = ((IMessageEncoderFactory)encoderFactories[i]).NewEncoder();
                    foreach (Type type in encoder.MessageTypes.Keys)
                    {
                        _encoders[type] = encoder;
                    }
                }
            }
 public ProtocolDecoderImpl(DemuxingProtocolCodecFactory enclosing)
 {
     _enclosing = enclosing;
     ArrayList decoderFactories = _enclosing._decoderFactories;
     _decoders = new IMessageDecoder[decoderFactories.Count];
     for (int i = decoderFactories.Count - 1; i >= 0; i--)
     {
         _decoders[i] = ((IMessageDecoderFactory) decoderFactories[i]).NewDecoder();
     }
 }
 public ProtocolEncoderImpl(DemuxingProtocolCodecFactory enclosing)
 {
     _enclosing = enclosing;
     ArrayList encoderFactories = enclosing._encoderFactories;
     for (int i = encoderFactories.Count - 1; i >= 0; i--)
     {
         IMessageEncoder encoder = ((IMessageEncoderFactory)encoderFactories[i]).NewEncoder();
         foreach (Type type in encoder.MessageTypes.Keys)
         {
             _encoders[type] = encoder;
         }
     }
 }