org.apache.sandesha.client
Class ClientStorageManager

java.lang.Object
  extended byorg.apache.sandesha.client.ClientStorageManager
All Implemented Interfaces:
IStorageManager

public class ClientStorageManager
extends java.lang.Object
implements IStorageManager

This is the storage manager for Client side in Sandesha Provides the access points for the SandeshaQueue.

Author:
Chamikara Jayalath, Jaliya Ekanayake

Field Summary
protected static Log log
           
 
Constructor Summary
ClientStorageManager()
           
 
Method Summary
 void addAcknowledgement(RMMessageContext rmMessageContext)
          SimpleAxisServer will use this method to add acks for the application responses received from the server side.
 void addCreateSequenceRequest(RMMessageContext rmMessageContext)
          This will be used by the RMSender to add the create sequence request.
 void addCreateSequenceResponse(RMMessageContext rmMessageContext)
          This will be used both by the Sender and the SimpleAxisServer to set the create sequence responses.
 void addIncomingSequence(java.lang.String sequenceId)
           
 void addOffer(java.lang.String msgID, java.lang.String offerID)
           
 void addOutgoingSequence(java.lang.String sequenceId)
           
 void addRequestedSequence(java.lang.String seqId)
           
 void addSendMsgNo(java.lang.String seqId, long msgNo)
           
 void addSequence(java.lang.String sequenceID)
           
 RMMessageContext checkForResponseMessage(java.lang.String sequenceId, java.lang.String requestMsgId)
           
 void clearStorage()
           
 java.lang.String getAcksTo(java.lang.String seqId)
           
 java.lang.String getKeyFromOutgoingSeqId(java.lang.String seqId)
           
 long getLastIncomingMsgNo(java.lang.String seqId)
           
 java.util.Map getListOfMessageNumbers(java.lang.String sequenceID)
          Get a Map of messages.
 long getNextMessageNumber(java.lang.String sequenceID)
          This will be used by the RMSender when adding messages.
 RMMessageContext getNextMessageToProcess(java.lang.Object seq)
           
 RMMessageContext getNextMessageToSend()
          This will be used by the sender.
 java.lang.Object getNextSeqToProcess()
           
 java.lang.String getOffer(java.lang.String msgID)
           
 java.lang.String getOutgoingSeqenceIdOfIncomingMsg(RMMessageContext msg)
           
 java.lang.String getOutgoingSeqOfMsg(java.lang.String msgId)
           
 boolean hasLastIncomingMsgReceived(java.lang.String seqId)
           
 void init()
           
 void insertFault(RMMessageContext rmMsgCtx)
           
 void insertIncomingMessage(RMMessageContext rmMessageContext)
           
 void insertOutgoingMessage(RMMessageContext msg)
           
 void insertTerminateSeqMessage(RMMessageContext terminateSeqMessage)
           
 boolean isMessageExist(java.lang.String sequenceID, long messageNumber)
          Check the existance of a message.
 boolean isRequestedSeqPresent(java.lang.String seqId)
           
 boolean isResponseSequenceExist(java.lang.String sequenceID)
           
 boolean isSentMsg(java.lang.String seqId, long msgNo)
           
 boolean isSequenceComplete(java.lang.String seqId)
           
 boolean isSequenceExist(java.lang.String sequenceID)
           
 void removeCallback()
           
 void sendAck(java.lang.String sequenceId)
           
 void setAcknowledged(java.lang.String seqID, long msgNumber)
           
 void setAckReceived(java.lang.String seqId, long msgNo)
           
 void setAcksTo(java.lang.String seqId, java.lang.String acksTo)
           
 boolean setApprovedOutSequence(java.lang.String oldSeqId, java.lang.String newSeqId)
          This will be used by the Client Listener and the Sender to set the proper sequenceID
 void setCallback(Callback cb)
           
 void setTemporaryOutSequence(java.lang.String sequenceId, java.lang.String outSequenceId)
          This will be used by the RMSender when adding messages to the Queue.
 void setTerminateReceived(java.lang.String seqId)
           
 void setTerminateSend(java.lang.String seqId)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

protected static Log log
Constructor Detail

ClientStorageManager

public ClientStorageManager()
Method Detail

init

public void init()
Specified by:
init in interface IStorageManager

isSequenceExist

public boolean isSequenceExist(java.lang.String sequenceID)
Specified by:
isSequenceExist in interface IStorageManager

isResponseSequenceExist

public boolean isResponseSequenceExist(java.lang.String sequenceID)
Specified by:
isResponseSequenceExist in interface IStorageManager

getNextSeqToProcess

public java.lang.Object getNextSeqToProcess()
Specified by:
getNextSeqToProcess in interface IStorageManager

getNextMessageToProcess

public RMMessageContext getNextMessageToProcess(java.lang.Object seq)
Specified by:
getNextMessageToProcess in interface IStorageManager

setAcknowledged

public void setAcknowledged(java.lang.String seqID,
                            long msgNumber)
Specified by:
setAcknowledged in interface IStorageManager

addSequence

public void addSequence(java.lang.String sequenceID)
Specified by:
addSequence in interface IStorageManager

addCreateSequenceResponse

public void addCreateSequenceResponse(RMMessageContext rmMessageContext)
This will be used both by the Sender and the SimpleAxisServer to set the create sequence responses.

Specified by:
addCreateSequenceResponse in interface IStorageManager

addCreateSequenceRequest

public void addCreateSequenceRequest(RMMessageContext rmMessageContext)
This will be used by the RMSender to add the create sequence request.

Specified by:
addCreateSequenceRequest in interface IStorageManager

addAcknowledgement

public void addAcknowledgement(RMMessageContext rmMessageContext)
SimpleAxisServer will use this method to add acks for the application responses received from the server side.

Specified by:
addAcknowledgement in interface IStorageManager

isMessageExist

public boolean isMessageExist(java.lang.String sequenceID,
                              long messageNumber)
Check the existance of a message.

Specified by:
isMessageExist in interface IStorageManager

getListOfMessageNumbers

public java.util.Map getListOfMessageNumbers(java.lang.String sequenceID)
Get a Map of messages.

Specified by:
getListOfMessageNumbers in interface IStorageManager

getNextMessageToSend

public RMMessageContext getNextMessageToSend()
This will be used by the sender.

Specified by:
getNextMessageToSend in interface IStorageManager

setTemporaryOutSequence

public void setTemporaryOutSequence(java.lang.String sequenceId,
                                    java.lang.String outSequenceId)
This will be used by the RMSender when adding messages to the Queue. RMSender will also add a createSequenceRequest message to the prioriy queue using this temporary ID as the messageID.

Specified by:
setTemporaryOutSequence in interface IStorageManager

setApprovedOutSequence

public boolean setApprovedOutSequence(java.lang.String oldSeqId,
                                      java.lang.String newSeqId)
This will be used by the Client Listener and the Sender to set the proper sequenceID

Specified by:
setApprovedOutSequence in interface IStorageManager

getNextMessageNumber

public long getNextMessageNumber(java.lang.String sequenceID)
This will be used by the RMSender when adding messages. Initially it should return 1.

Specified by:
getNextMessageNumber in interface IStorageManager

insertOutgoingMessage

public void insertOutgoingMessage(RMMessageContext msg)
Specified by:
insertOutgoingMessage in interface IStorageManager

insertIncomingMessage

public void insertIncomingMessage(RMMessageContext rmMessageContext)
Specified by:
insertIncomingMessage in interface IStorageManager

checkForResponseMessage

public RMMessageContext checkForResponseMessage(java.lang.String sequenceId,
                                                java.lang.String requestMsgId)
Specified by:
checkForResponseMessage in interface IStorageManager

insertTerminateSeqMessage

public void insertTerminateSeqMessage(RMMessageContext terminateSeqMessage)
Specified by:
insertTerminateSeqMessage in interface IStorageManager

setAckReceived

public void setAckReceived(java.lang.String seqId,
                           long msgNo)
Specified by:
setAckReceived in interface IStorageManager

insertFault

public void insertFault(RMMessageContext rmMsgCtx)
Specified by:
insertFault in interface IStorageManager

addSendMsgNo

public void addSendMsgNo(java.lang.String seqId,
                         long msgNo)
Specified by:
addSendMsgNo in interface IStorageManager

addOutgoingSequence

public void addOutgoingSequence(java.lang.String sequenceId)
Specified by:
addOutgoingSequence in interface IStorageManager

addIncomingSequence

public void addIncomingSequence(java.lang.String sequenceId)
Specified by:
addIncomingSequence in interface IStorageManager

getLastIncomingMsgNo

public long getLastIncomingMsgNo(java.lang.String seqId)
Specified by:
getLastIncomingMsgNo in interface IStorageManager

hasLastIncomingMsgReceived

public boolean hasLastIncomingMsgReceived(java.lang.String seqId)
Specified by:
hasLastIncomingMsgReceived in interface IStorageManager

addRequestedSequence

public void addRequestedSequence(java.lang.String seqId)
Specified by:
addRequestedSequence in interface IStorageManager

isRequestedSeqPresent

public boolean isRequestedSeqPresent(java.lang.String seqId)
Specified by:
isRequestedSeqPresent in interface IStorageManager

isSentMsg

public boolean isSentMsg(java.lang.String seqId,
                         long msgNo)
Specified by:
isSentMsg in interface IStorageManager

getOutgoingSeqOfMsg

public java.lang.String getOutgoingSeqOfMsg(java.lang.String msgId)
Specified by:
getOutgoingSeqOfMsg in interface IStorageManager

getOutgoingSeqenceIdOfIncomingMsg

public java.lang.String getOutgoingSeqenceIdOfIncomingMsg(RMMessageContext msg)
Specified by:
getOutgoingSeqenceIdOfIncomingMsg in interface IStorageManager

setTerminateSend

public void setTerminateSend(java.lang.String seqId)
Specified by:
setTerminateSend in interface IStorageManager

setTerminateReceived

public void setTerminateReceived(java.lang.String seqId)
Specified by:
setTerminateReceived in interface IStorageManager

getKeyFromOutgoingSeqId

public java.lang.String getKeyFromOutgoingSeqId(java.lang.String seqId)
Specified by:
getKeyFromOutgoingSeqId in interface IStorageManager

setAcksTo

public void setAcksTo(java.lang.String seqId,
                      java.lang.String acksTo)
Specified by:
setAcksTo in interface IStorageManager

getAcksTo

public java.lang.String getAcksTo(java.lang.String seqId)
Specified by:
getAcksTo in interface IStorageManager

addOffer

public void addOffer(java.lang.String msgID,
                     java.lang.String offerID)
Specified by:
addOffer in interface IStorageManager

getOffer

public java.lang.String getOffer(java.lang.String msgID)
Specified by:
getOffer in interface IStorageManager

setCallback

public void setCallback(Callback cb)
Specified by:
setCallback in interface IStorageManager

removeCallback

public void removeCallback()
Specified by:
removeCallback in interface IStorageManager

clearStorage

public void clearStorage()
Specified by:
clearStorage in interface IStorageManager

isSequenceComplete

public boolean isSequenceComplete(java.lang.String seqId)
Specified by:
isSequenceComplete in interface IStorageManager

sendAck

public void sendAck(java.lang.String sequenceId)
Specified by:
sendAck in interface IStorageManager