org.wso2.mercury.state
Class InvokerBuffer
java.lang.Object
org.wso2.mercury.state.InvokerBuffer
public class InvokerBuffer
- extends java.lang.Object
this provides the exactly one inorder delivery
used to buffer the incomming messages so that
later it can invoke in correct order
the state of the invoker buffer is determined by the
following variables
LMR - last message received
MIB - messages in the buffer
TMR - terminate message received
these three variables forms possible 8 states
but states 001,100,101 can be considered as one
complete sate.
External events that would change this state are
LMR - last message receive
TMR - terminate message receive
AMR - application message receive
SMA(SC) - send messages to application so that it finish messages.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
STATE_000
public static final int STATE_000
- See Also:
- Constant Field Values
STATE_010
public static final int STATE_010
- See Also:
- Constant Field Values
STATE_011
public static final int STATE_011
- See Also:
- Constant Field Values
STATE_111
public static final int STATE_111
- See Also:
- Constant Field Values
STATE_110
public static final int STATE_110
- See Also:
- Constant Field Values
STATE_COMPLETE
public static final int STATE_COMPLETE
- See Also:
- Constant Field Values
TIMEOUT_TIME
public static long TIMEOUT_TIME
InvokerBuffer
public InvokerBuffer(int state)
applicatinMessageReceived
public void applicatinMessageReceived(long messageNumber,
MercuryMessageContext mercuryMessageContext,
RMDSequenceDto rmdSequenceDto)
throws PersistenceException
- Throws:
PersistenceException
lastMessageReceived
public void lastMessageReceived(long messageNumber,
MercuryMessageContext mercuryMessageContext,
RMDSequenceDto rmdSequenceDto)
throws PersistenceException
- Throws:
PersistenceException
isMessagesCompleted
public boolean isMessagesCompleted()
doActions
public void doActions()
throws org.apache.axis2.AxisFault
- Throws:
org.apache.axis2.AxisFault
terminateMessageReceived
public void terminateMessageReceived(RMDSequenceDto rmdSequenceDto)
throws PersistenceException
- Throws:
PersistenceException
save
public void save(RMDSequenceDto rmdSequenceDto)
throws PersistenceException
- saves both RMD Sequence and Invoker buffer objects at once.
- Parameters:
rmdSequenceDto
-
- Throws:
PersistenceException
loadInvokerBufferDetails
public void loadInvokerBufferDetails(org.apache.axis2.context.MessageContext messageContext)
throws PersistenceException,
org.apache.axis2.AxisFault
- Throws:
PersistenceException
org.apache.axis2.AxisFault
waitUntilMessageInvoke
public void waitUntilMessageInvoke(long messageNumber)
- this method is used to wait the client side thread in annonymous invocations
until invoker message passes it.
terminate
public void terminate()
- this method is called in an unexpected terminateion
getState
public int getState()
setState
public void setState(int state)
getMessageBuffer
public java.util.Map getMessageBuffer()
setMessageBuffer
public void setMessageBuffer(java.util.Map messageBuffer)
getLastAccessTime
public long getLastAccessTime()
setLastAccessTime
public void setLastAccessTime(long lastAccessTime)
getPersistanceManager
public PersistenceManager getPersistanceManager()
setPersistanceManager
public void setPersistanceManager(PersistenceManager persistenceManager)
getLastMessageNumber
public long getLastMessageNumber()
setLastMessageNumber
public void setLastMessageNumber(long lastMessageNumber)
getLastMessageSendToApplication
public long getLastMessageSendToApplication()
getPersistanceDto
public InvokerBufferDto getPersistanceDto()
setPersistanceDto
public void setPersistanceDto(InvokerBufferDto persistanceDto)
setLastMessageSendToApplication
public void setLastMessageSendToApplication(long lastMessageSendToApplication)
isAnonymous
public boolean isAnonymous()
setAnonymous
public void setAnonymous(boolean anonymous)
getAcksTo
public org.apache.axis2.addressing.EndpointReference getAcksTo()
setAcksTo
public void setAcksTo(org.apache.axis2.addressing.EndpointReference acksTo)
~~~~~~~~~~~~~~~~~~~ Mercury ~~~~~~~~~~~~~~~~~~~~~