Exemplo n.º 1
0
 private void OnSegmentComplete(ActionUnit actionUnit)
 {
     if (_segmentCompleteExpect.Result.State == ActionStates.Expired)
     {
         if (!_isLastSegmentRetransmited)
         {
             _segmentCompleteExpect.NewToken();
             _nextSegmentSendOperation.NewToken();
             _dataOffset -= _subsequentSegmentPayloadSize;
             _nextSegmentSendOperation.Data = CreateSubsequentSegmentCmd(_data, _dataOffset);
             actionUnit.SetNextActionItems(_segmentCompleteExpect, _nextSegmentSendOperation);
             _dataOffset += _subsequentSegmentPayloadSize;
             _isLastSegmentRetransmited = true;
         }
         else
         {
             SpecificResult.SubstituteStatus = SubstituteStatuses.Failed;
             SetStateFailed(actionUnit);
         }
     }
     else if (_segmentCompleteExpect.Result.State == ActionStates.Completed)
     {
         SpecificResult.SubstituteStatus = SubstituteStatuses.Done;
         SetStateCompleted(actionUnit);
     }
 }