internal Properties(Amqp.Message innerMessage)
 {
     _innerProperties = innerMessage.Properties ??= new Amqp.Framing.Properties();
 }
Exemplo n.º 2
0
        private static IMessage CreateBytesMessage(MessageConsumer consumer, Amqp.Message message)
        {
            IBytesMessageCloak cloak = new AMQPBytesMessageCloak(consumer, message);

            return(new BytesMessage(cloak));
        }
Exemplo n.º 3
0
        private static IMessage CreateFromMessageBody(MessageConsumer consumer, Amqp.Message message)
        {
            IMessage msg  = null;
            object   body = message.Body;

            if (body == null)
            {
                if (IsContentType(SymbolUtil.SERIALIZED_JAVA_OBJECT_CONTENT_TYPE, message))
                {
                    msg = CreateObjectMessage(consumer, message);
                }
                else if (IsContentType(SymbolUtil.OCTET_STREAM_CONTENT_TYPE, message) || IsContentType(null, message))
                {
                    msg = CreateBytesMessage(consumer, message);
                }
                else
                {
                    Symbol contentType = GetContentType(message);
                    if (contentType != null)
                    {
                        msg = CreateTextMessage(consumer, message);
                    }
                    else
                    {
                        msg = CreateMessage(consumer, message);
                    }
                }
            }
            else if (message.BodySection is Data)
            {
                if (IsContentType(SymbolUtil.OCTET_STREAM_CONTENT_TYPE, message) || IsContentType(null, message))
                {
                    msg = CreateBytesMessage(consumer, message);
                }
                else if (IsContentType(SymbolUtil.SERIALIZED_JAVA_OBJECT_CONTENT_TYPE, message))
                {
                    msg = CreateObjectMessage(consumer, message);
                }
                else
                {
                    Symbol contentType = GetContentType(message);
                    if (contentType != null)
                    {
                        msg = CreateTextMessage(consumer, message);
                    }
                    else
                    {
                        msg = CreateBytesMessage(consumer, message);
                    }
                }
            }
            else if (message.BodySection is AmqpSequence)
            {
                msg = CreateObjectMessage(consumer, message);
            }
            else if (body is string)
            {
                msg = CreateTextMessage(consumer, message);
            }
            else if (body is byte[])
            {
                msg = CreateBytesMessage(consumer, message);
            }
            else
            {
                msg = CreateObjectMessage(consumer, message);
            }

            return(msg);
        }
Exemplo n.º 4
0
        private static IMessage CreateMapMessage(MessageConsumer consumer, Amqp.Message message)
        {
            IMapMessageCloak cloak = new AMQPMapMessageCloak(consumer, message);

            return(new MapMessage(cloak));
        }
Exemplo n.º 5
0
        private static IMessage CreateObjectMessage(MessageConsumer consumer, Amqp.Message message)
        {
            IObjectMessageCloak cloak = new AMQPObjectMessageCloak(consumer, message);

            return(new ObjectMessage(cloak));
        }
Exemplo n.º 6
0
        private static IMessage CreateStreamMessage(MessageConsumer consumer, Amqp.Message message)
        {
            IStreamMessageCloak cloak = new AMQPStreamMessageCloak(consumer, message);

            return(new StreamMessage(cloak));
        }
Exemplo n.º 7
0
        private static IMessage CreateTextMessage(MessageConsumer consumer, Amqp.Message message)
        {
            ITextMessageCloak cloak = new AMQPTextMessageCloak(consumer, message);

            return(new TextMessage(cloak));
        }
Exemplo n.º 8
0
        private static IMessage CreateFromMessageAnnontations(MessageConsumer consumer, Amqp.Message message)
        {
            IMessage msg    = null;
            object   objVal = message.MessageAnnotations[SymbolUtil.JMSX_OPT_MSG_TYPE];

            if (objVal != null && objVal is SByte)
            {
                byte type = Convert.ToByte(objVal);
                switch (type)
                {
                case MessageSupport.JMS_TYPE_MSG:
                    msg = CreateMessage(consumer, message);
                    break;

                case MessageSupport.JMS_TYPE_BYTE:
                    msg = CreateBytesMessage(consumer, message);
                    break;

                case MessageSupport.JMS_TYPE_TXT:
                    msg = CreateTextMessage(consumer, message);
                    break;

                case MessageSupport.JMS_TYPE_OBJ:
                    msg = CreateObjectMessage(consumer, message);
                    break;

                case MessageSupport.JMS_TYPE_STRM:
                    msg = CreateStreamMessage(consumer, message);
                    break;

                case MessageSupport.JMS_TYPE_MAP:
                    msg = CreateMapMessage(consumer, message);
                    break;

                default:
                    throw new NMSException("Unsupported Msg Annontation type: " + type);
                }
            }
            return(msg);
        }