org.wso2.mercury.state
Class RMDSequence

java.lang.Object
  extended by org.wso2.mercury.state.RMDSequence

public class RMDSequence
extends java.lang.Object

this class keeps the sates of the RMD state of the RMD is basically determine by two factors for this model FMR - first message received. LMR - last message received. these two factors forms possible 4 states. but only 3 can be really exists.

This stat machine stat is changed by possible following events AMR(SC) - Application message received and this completes the sequence. this means we have alrady receive the last message and there is one missing message to complete the sequence. AMR(SNC) - Application message received and it does not complete the sequence. here it can either be a without receiving last message or there may be missing messages LMR(SC) - Last message receive which completes the sequence LMR(SNC) - Last message receive but sequence is not completed.


Field Summary
static long RETRANSMIT_TIME
           
static int STATE_00
           
static int STATE_10
           
static int STATE_11
           
static int STATE_COMPLETED
           
static int STATE_TERMINATED
           
static long TIMEOUT_TIME
           
 
Constructor Summary
RMDSequence(int state)
           
 
Method Summary
 boolean applicationMessageReceived(long messageNumber, MercuryMessageContext mercuryMessageContext)
          this message should not be a last message
 void doActions()
           
 org.apache.axis2.addressing.EndpointReference getAcksTo()
           
 Axis2Info getAxis2Info()
           
 org.apache.axis2.context.MessageContext getCreateSequenceMessageContext()
           
 InvokerBuffer getInvokerBuffer()
           
 long getLastAccesedTime()
           
 long getLastMessageNumber()
           
 RMSSequence getOfferedRMSSequence()
           
 RMDSequenceDto getPersistanceDto()
           
 java.lang.String getSelfAcksToEPR()
           
 SequenceAcknowledgment getSequenceAcknowledgment()
           
 java.lang.String getSequenceID()
           
 int getState()
           
 boolean isAnonymous()
           
 boolean isMessageReceived(long messageNumber)
           
 boolean lastMessageReceived(long messageNumber, MercuryMessageContext mercuryMessageContext)
           
 void loadRMDSequenceDetails(org.apache.axis2.context.MessageContext messageContext)
           
 void save()
           
 void sendCreateSequenceResponseMessage()
           
 void sendSequenceAcknowledgementMessage(org.apache.axis2.context.MessageContext inboundMessageContext)
           
 void setAcksTo(org.apache.axis2.addressing.EndpointReference acksTo)
           
 void setAnonymous(boolean anonymous)
           
 void setAxis2Info(Axis2Info axis2Info)
           
 void setCreateSequenceMessageContext(org.apache.axis2.context.MessageContext createSequenceMessageContext)
           
 void setInvokerBuffer(InvokerBuffer invokerBuffer)
           
 void setInvokerBufferPersistanceManager()
           
 void setLastAccesedTime(long lastAccesedTime)
           
 void setLastMessageNumber(long lastMessageNumber)
           
 void setOfferedRMSSequence(RMSSequence offeredRMSSequence)
           
 void setPersistanceDto(RMDSequenceDto persistanceDto)
           
 void setSelfAcksToEPR(java.lang.String selfAcksToEPR)
           
 void setSequenceID(java.lang.String sequenceID)
           
 void setState(int state)
           
 void terminate()
          this method is called for an unexpected sequence termination
 void terminateSequenceMessageReceived()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

STATE_00

public static final int STATE_00
See Also:
Constant Field Values

STATE_10

public static final int STATE_10
See Also:
Constant Field Values

STATE_11

public static final int STATE_11
See Also:
Constant Field Values

STATE_COMPLETED

public static final int STATE_COMPLETED
See Also:
Constant Field Values

STATE_TERMINATED

public static final int STATE_TERMINATED
See Also:
Constant Field Values

RETRANSMIT_TIME

public static long RETRANSMIT_TIME

TIMEOUT_TIME

public static long TIMEOUT_TIME
Constructor Detail

RMDSequence

public RMDSequence(int state)
Method Detail

setInvokerBufferPersistanceManager

public void setInvokerBufferPersistanceManager()

doActions

public void doActions()
               throws org.apache.axis2.AxisFault,
                      RMMessageBuildingException
Throws:
org.apache.axis2.AxisFault
RMMessageBuildingException

sendCreateSequenceResponseMessage

public void sendCreateSequenceResponseMessage()
                                       throws org.apache.axis2.AxisFault,
                                              RMMessageBuildingException
Throws:
org.apache.axis2.AxisFault
RMMessageBuildingException

applicationMessageReceived

public boolean applicationMessageReceived(long messageNumber,
                                          MercuryMessageContext mercuryMessageContext)
                                   throws PersistenceException
this message should not be a last message

Parameters:
messageNumber -
Throws:
PersistenceException

lastMessageReceived

public boolean lastMessageReceived(long messageNumber,
                                   MercuryMessageContext mercuryMessageContext)
                            throws PersistenceException
Throws:
PersistenceException

sendSequenceAcknowledgementMessage

public void sendSequenceAcknowledgementMessage(org.apache.axis2.context.MessageContext inboundMessageContext)
                                        throws org.apache.axis2.AxisFault,
                                               RMMessageBuildingException
Throws:
org.apache.axis2.AxisFault
RMMessageBuildingException

getSequenceAcknowledgment

public SequenceAcknowledgment getSequenceAcknowledgment()

terminateSequenceMessageReceived

public void terminateSequenceMessageReceived()
                                      throws PersistenceException
Throws:
PersistenceException

save

public void save()
          throws PersistenceException
Throws:
PersistenceException

loadRMDSequenceDetails

public void loadRMDSequenceDetails(org.apache.axis2.context.MessageContext messageContext)
                            throws PersistenceException,
                                   org.apache.axis2.AxisFault
Throws:
PersistenceException
org.apache.axis2.AxisFault

terminate

public void terminate()
this method is called for an unexpected sequence termination


isMessageReceived

public boolean isMessageReceived(long messageNumber)

getState

public int getState()

setState

public void setState(int state)

getLastAccesedTime

public long getLastAccesedTime()

setLastAccesedTime

public void setLastAccesedTime(long lastAccesedTime)

getAcksTo

public org.apache.axis2.addressing.EndpointReference getAcksTo()

setAcksTo

public void setAcksTo(org.apache.axis2.addressing.EndpointReference acksTo)

getSequenceID

public java.lang.String getSequenceID()

setSequenceID

public void setSequenceID(java.lang.String sequenceID)

getCreateSequenceMessageContext

public org.apache.axis2.context.MessageContext getCreateSequenceMessageContext()

setCreateSequenceMessageContext

public void setCreateSequenceMessageContext(org.apache.axis2.context.MessageContext createSequenceMessageContext)

getInvokerBuffer

public InvokerBuffer getInvokerBuffer()

setInvokerBuffer

public void setInvokerBuffer(InvokerBuffer invokerBuffer)

getAxis2Info

public Axis2Info getAxis2Info()

setAxis2Info

public void setAxis2Info(Axis2Info axis2Info)

getLastMessageNumber

public long getLastMessageNumber()

setLastMessageNumber

public void setLastMessageNumber(long lastMessageNumber)

getPersistanceDto

public RMDSequenceDto getPersistanceDto()

setPersistanceDto

public void setPersistanceDto(RMDSequenceDto persistanceDto)

isAnonymous

public boolean isAnonymous()

setAnonymous

public void setAnonymous(boolean anonymous)

getOfferedRMSSequence

public RMSSequence getOfferedRMSSequence()

setOfferedRMSSequence

public void setOfferedRMSSequence(RMSSequence offeredRMSSequence)

getSelfAcksToEPR

public java.lang.String getSelfAcksToEPR()

setSelfAcksToEPR

public void setSelfAcksToEPR(java.lang.String selfAcksToEPR)


~~~~~~~~~~~~~~~~~~~ Mercury ~~~~~~~~~~~~~~~~~~~~~