Class AMQPLargeMessage

  • All Implemented Interfaces:
    Message, org.apache.activemq.artemis.core.replication.ReplicatedLargeMessage, org.apache.activemq.artemis.core.server.LargeServerMessage

    public class AMQPLargeMessage
    extends AMQPMessage
    implements org.apache.activemq.artemis.core.server.LargeServerMessage
    • Constructor Detail

      • AMQPLargeMessage

        public AMQPLargeMessage​(long id,
                                long messageFormat,
                                org.apache.activemq.artemis.utils.collections.TypedProperties extraProperties,
                                org.apache.activemq.artemis.core.persistence.CoreMessageObjectPools coreMessageObjectPools,
                                org.apache.activemq.artemis.core.persistence.StorageManager storageManager)
      • AMQPLargeMessage

        public AMQPLargeMessage​(long id,
                                long messageFormat,
                                org.apache.activemq.artemis.utils.collections.TypedProperties extraProperties,
                                org.apache.activemq.artemis.core.persistence.CoreMessageObjectPools coreMessageObjectPools,
                                org.apache.activemq.artemis.core.persistence.StorageManager storageManager,
                                org.apache.activemq.artemis.core.persistence.impl.journal.LargeBody largeBody)
    • Method Detail

      • toCore

        public ICoreMessage toCore​(org.apache.activemq.artemis.core.persistence.CoreMessageObjectPools coreMessageObjectPools)
        Specified by:
        toCore in interface Message
        Overrides:
        toCore in class AMQPMessage
      • releaseEncodedBuffer

        public void releaseEncodedBuffer()
      • releaseEncodedBufferAfterWrite

        public void releaseEncodedBufferAfterWrite()
        getSavedEncodeBuffer() will retain two counters from the buffer, one meant for the call, and one that must be released only after encoding. This method is meant to be called when the buffer is actually encoded on the journal, meaning both refs are gone. and the actual buffer can be released.
      • checkReference

        public void checkReference​(org.apache.activemq.artemis.core.server.MessageReference reference)
        This method check the reference for specifics on protocolData. It was written to check the deliveryAnnotationsForSendBuffer and eventually move it to the protocolData.
      • getPositionAfterDeliveryAnnotations

        public int getPositionAfterDeliveryAnnotations()
        during large message deliver, we need this calculation to place a new delivery annotation
      • inspectTemporaryBuffer

        public io.netty.buffer.ByteBuf inspectTemporaryBuffer()
        This is used on test assertions to make sure the buffers are released corrected
      • getSavedEncodeBuffer

        public io.netty.buffer.ByteBuf getSavedEncodeBuffer()
      • readSavedEncoding

        protected void readSavedEncoding​(io.netty.buffer.ByteBuf buf)
      • setFileDurable

        public void setFileDurable​(boolean value)
      • getStorageManager

        public org.apache.activemq.artemis.core.persistence.StorageManager getStorageManager()
        Specified by:
        getStorageManager in interface org.apache.activemq.artemis.core.server.LargeServerMessage
      • setStorageManager

        public void setStorageManager​(org.apache.activemq.artemis.core.persistence.StorageManager storageManager)
        Specified by:
        setStorageManager in interface org.apache.activemq.artemis.core.server.LargeServerMessage
      • getData

        public org.apache.qpid.proton.codec.ReadableBuffer getData()
        Specified by:
        getData in class AMQPMessage
      • parseHeader

        public void parseHeader​(org.apache.qpid.proton.codec.ReadableBuffer buffer)
      • addBytes

        public void addBytes​(org.apache.qpid.proton.codec.ReadableBuffer data)
                      throws Exception
        Throws:
        Exception
      • parseLargeMessage

        protected void parseLargeMessage​(ActiveMQBuffer data,
                                         boolean initialHeader)
      • parseLargeMessage

        protected void parseLargeMessage​(byte[] data,
                                         boolean initialHeader)
      • parseLargeMessage

        protected void parseLargeMessage​(org.apache.qpid.proton.codec.ReadableBuffer data)
      • toMessage

        public Message toMessage()
        Specified by:
        toMessage in interface org.apache.activemq.artemis.core.server.LargeServerMessage
      • addBytes

        public void addBytes​(byte[] bytes)
                      throws Exception
        Specified by:
        addBytes in interface org.apache.activemq.artemis.core.server.LargeServerMessage
        Specified by:
        addBytes in interface org.apache.activemq.artemis.core.replication.ReplicatedLargeMessage
        Throws:
        Exception
      • addBytes

        public void addBytes​(ActiveMQBuffer bytes,
                             boolean initialHeader)
                      throws Exception
        Specified by:
        addBytes in interface org.apache.activemq.artemis.core.server.LargeServerMessage
        Throws:
        Exception
      • setPaged

        public void setPaged()
        Specified by:
        setPaged in interface org.apache.activemq.artemis.core.server.LargeServerMessage
        Specified by:
        setPaged in interface Message
        Overrides:
        setPaged in class AMQPMessage
      • releaseResources

        public void releaseResources​(boolean sync,
                                     boolean sendEvent)
        Specified by:
        releaseResources in interface org.apache.activemq.artemis.core.server.LargeServerMessage
        Specified by:
        releaseResources in interface org.apache.activemq.artemis.core.replication.ReplicatedLargeMessage
      • deleteFile

        public void deleteFile()
                        throws Exception
        Specified by:
        deleteFile in interface org.apache.activemq.artemis.core.server.LargeServerMessage
        Specified by:
        deleteFile in interface org.apache.activemq.artemis.core.replication.ReplicatedLargeMessage
        Throws:
        Exception
      • getLargeBodyReader

        public org.apache.activemq.artemis.core.message.LargeBodyReader getLargeBodyReader()
        Specified by:
        getLargeBodyReader in interface org.apache.activemq.artemis.core.server.LargeServerMessage
      • getLargeBody

        public org.apache.activemq.artemis.core.persistence.impl.journal.LargeBody getLargeBody()
        Specified by:
        getLargeBody in interface org.apache.activemq.artemis.core.server.LargeServerMessage
      • copy

        public Message copy​(long newID,
                            boolean isDLQOrExpiry)
        Specified by:
        copy in interface Message
      • newHeaderWithoutExpiry

        protected io.netty.buffer.ByteBuf newHeaderWithoutExpiry​(AtomicInteger placeOutput)
      • setReencoded

        public void setReencoded​(boolean reencoded)
      • isReencoded

        public boolean isReencoded()