Class IndirectMessageReference

java.lang.Object
org.apache.activemq.broker.region.IndirectMessageReference
All Implemented Interfaces:
org.apache.activemq.broker.region.MessageReference, QueueMessageReference

public class IndirectMessageReference extends Object implements QueueMessageReference
Keeps track of a message that is flowing through the Broker. This object may hold a hard reference to the message or only hold the id of the message if the message has been persisted on in a MessageStore.
  • Constructor Details

    • IndirectMessageReference

      public IndirectMessageReference(org.apache.activemq.command.Message message)
      Parameters:
      message -
  • Method Details

    • getMessageHardRef

      public org.apache.activemq.command.Message getMessageHardRef()
      Specified by:
      getMessageHardRef in interface org.apache.activemq.broker.region.MessageReference
    • getReferenceCount

      public int getReferenceCount()
      Specified by:
      getReferenceCount in interface org.apache.activemq.broker.region.MessageReference
    • incrementReferenceCount

      public int incrementReferenceCount()
      Specified by:
      incrementReferenceCount in interface org.apache.activemq.broker.region.MessageReference
    • decrementReferenceCount

      public int decrementReferenceCount()
      Specified by:
      decrementReferenceCount in interface org.apache.activemq.broker.region.MessageReference
    • getMessage

      public org.apache.activemq.command.Message getMessage()
      Specified by:
      getMessage in interface org.apache.activemq.broker.region.MessageReference
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • incrementRedeliveryCounter

      public void incrementRedeliveryCounter()
      Specified by:
      incrementRedeliveryCounter in interface org.apache.activemq.broker.region.MessageReference
    • isDropped

      public boolean isDropped()
      Specified by:
      isDropped in interface org.apache.activemq.broker.region.MessageReference
      Specified by:
      isDropped in interface QueueMessageReference
    • drop

      public void drop()
      Specified by:
      drop in interface QueueMessageReference
    • dropIfLive

      public boolean dropIfLive()
      Check if the message has already been dropped before dropping. Return true if dropped, else false. This method exists so that this can be done atomically under the intrinisic lock
      Specified by:
      dropIfLive in interface QueueMessageReference
    • lock

      public boolean lock(LockOwner subscription)
      Specified by:
      lock in interface QueueMessageReference
    • unlock

      public boolean unlock()
      Specified by:
      unlock in interface QueueMessageReference
    • getLockOwner

      public LockOwner getLockOwner()
      Specified by:
      getLockOwner in interface QueueMessageReference
    • getRedeliveryCounter

      public int getRedeliveryCounter()
      Specified by:
      getRedeliveryCounter in interface org.apache.activemq.broker.region.MessageReference
    • getMessageId

      public org.apache.activemq.command.MessageId getMessageId()
      Specified by:
      getMessageId in interface org.apache.activemq.broker.region.MessageReference
    • getRegionDestination

      public org.apache.activemq.command.Message.MessageDestination getRegionDestination()
      Specified by:
      getRegionDestination in interface org.apache.activemq.broker.region.MessageReference
    • isPersistent

      public boolean isPersistent()
      Specified by:
      isPersistent in interface org.apache.activemq.broker.region.MessageReference
    • isLocked

      public boolean isLocked()
    • isAcked

      public boolean isAcked()
      Specified by:
      isAcked in interface QueueMessageReference
    • setAcked

      public void setAcked(boolean b)
      Specified by:
      setAcked in interface QueueMessageReference
    • getGroupID

      public String getGroupID()
      Specified by:
      getGroupID in interface org.apache.activemq.broker.region.MessageReference
    • getGroupSequence

      public int getGroupSequence()
      Specified by:
      getGroupSequence in interface org.apache.activemq.broker.region.MessageReference
    • getTargetConsumerId

      public org.apache.activemq.command.ConsumerId getTargetConsumerId()
      Specified by:
      getTargetConsumerId in interface org.apache.activemq.broker.region.MessageReference
    • getExpiration

      public long getExpiration()
      Specified by:
      getExpiration in interface org.apache.activemq.broker.region.MessageReference
    • isExpired

      public boolean isExpired()
      Specified by:
      isExpired in interface org.apache.activemq.broker.region.MessageReference
    • getSize

      public int getSize()
      Specified by:
      getSize in interface org.apache.activemq.broker.region.MessageReference
    • isAdvisory

      public boolean isAdvisory()
      Specified by:
      isAdvisory in interface org.apache.activemq.broker.region.MessageReference
    • canProcessAsExpired

      public boolean canProcessAsExpired()
      Specified by:
      canProcessAsExpired in interface org.apache.activemq.broker.region.MessageReference