Updates:
Status: Started
Comment #4 on issue 51 by [email protected]: MAP/CAP the case of
invoking send() and close() inside component processing events
http://code.google.com/p/jss7/issues/detail?id=51
1. delayed send() and close() processing when components processing
I have added into MAPDialog and CAPDialog:
/**
* This method makes the same as send() method.
* But when invoking it from events of parsing incoming components
* real sending will occur only when all incoming components events
* and onDialogDelimiter() or onDialogClose() would be processed
*
* If you are receiving several primitives you can invoke sendDelayed()
* in several processing components events - the result will be sent
after
* onDialogDelimiter() in a single TC-CONTINUE message
*/
public void sendDelayed() throws CAPException;
/**
* This method makes the same as close() method.
* But when invoking it from events of parsing incoming components
* real sending and dialog closing will occur only when all incoming
components events
* and onDialogDelimiter() or onDialogClose() would be processed
*
* If you are receiving several primitives you can invoke closeDelayed()
* in several processing components events - the result will be sent
* and the dialog will be closed after onDialogDelimiter() in a single
TC-END message
*
* If both of sendDelayed() and closeDelayed() have been invoked
* TC-END will be issued and the dialog will be closed
* If sendDelayed() or closeDelayed() were invoked, TC-CONTINUE/TC-END
were not sent
* and abort() or release() are invoked - no TC-CONTINUE/TC-END messages
will be sent
*/
public void closeDelayed(boolean prearrangedEnd) throws CAPException;
2. DialogTimeout and InvokeTimeout checking
After revising MAP and CAP stack I think that DialogTimeout and
InvokeTimeout are implemented in good way. I still did not find the use
cases for introducing keepAlive() for InvokeTimeout (like we do for
DialogTimeout)
3. MAPFunctionalTest for DialogTimeout and InvokeTimeout
Functional tests DialogTimeout and InvokeTimeout have been added into
CAPFunctionalTests
4. saving incoming origReferense, destReference, extContainer int
MAPDialog/CAPDialog for they will be accessable when components processing
added into MAPDialog:
/**
* Return received OrigReference from MAPOpenInfo or null if no
OrigReference has been received
* @return
*/
public AddressString getReceivedOrigReference();
/**
* Return received DestReference from MAPOpenInfo or null if no
OrigReference has been received
* @return
*/
public AddressString getReceivedDestReference();
/**
* Return received ExtensionContainer from MAPOpenInfo or null if no
OrigReference has been received
* @return
*/
public MAPExtensionContainer getReceivedExtensionContainer();
added into CAPDialog:
/**
* Return received GprsReferenceNumber or null if no GprsReferenceNumber
has been received
* @return
*/
public CAPGprsReferenceNumber getReceivedGprsReferenceNumber();
WDYT?