public void processRequestAck ( long tick , long dmeVersion ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( tc , "processRequestAck" , new Object [ ] { Long . valueOf ( tick ) , Long . valueOf ( dmeVersion ) } ) ; // Only consider non-stale request acks if ( dmeVersion >= _latestDMEVersion ) { _targetStream . setCursor ( tick ) ; TickRange tickRange = _targetStream . getNext ( ) ; // Make sure that we still have a Q/G if ( tickRange . type == TickRange . Requested ) { AIRequestedTick airt = ( AIRequestedTick ) tickRange . value ; // serialize with get repetition and request timeouts synchronized ( airt ) { // Set the request timer to slow, but only if it is not already slowed if ( ! airt . isSlowed ( ) ) { _eagerGetTOM . removeTimeoutEntry ( airt ) ; airt . setSlowed ( true ) ; airt . setAckingDMEVersion ( dmeVersion ) ; long to = airt . getTimeout ( ) ; if ( to > 0 || to == _mp . getCustomProperties ( ) . get_infinite_timeout ( ) ) { _slowedGetTOM . addTimeoutEntry ( airt ) ; } } } } else { // This can happen if the request ack got in too late and the Q/G was timed out and rejected } } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "processRequestAck" ) ; }
A ControlRequestAck message tells the RME to slow down its get repetition timeout since we now know that the DME has received the request .