public void IdentifyResponseMessageClear() { IdentifyResponseMessage originalMessage = new IdentifyResponseMessage(); originalMessage.RequestMessageId = 1; originalMessage.FailureCode = 2; originalMessage.Clear(); IdentifyResponseMessage emptyMessage = new IdentifyResponseMessage(); emptyMessage.MessageId = originalMessage.MessageId; Assert.AreEqual(originalMessage.ToString(), emptyMessage.ToString()); }
private void HandleIdentifyRequest(Session session, IdentifyRequestMessage identifyRequest) { BubbleLink bubbleLink = bubble.GetBubbleLink(session); LogUtil.Info("Received identify request from " + bubbleLink.RemoteBubbleName + " to " + bubble.BubbleName + " for " + identifyRequest.ParticipantIdentity + " (" + identifyRequest.ParticipantIdentityType + ")."); IdentifyResponseMessage identifyResponse = (IdentifyResponseMessage)MessageFactory.Current.ReserveMessage(typeof(IdentifyResponseMessage)); identifyResponse.RequestMessageId = identifyRequest.MessageId; // Call identify to allow application to reject identity. identifyResponse.FailureCode = CloudParticipantIdentified(bubble, identifyRequest); session.Send(identifyResponse); }
private void HandleIdentifyResponse(Session session, IdentifyResponseMessage identifyResponse) { foreach (Handover handover in handovers) { if (identifyResponse.RequestMessageId == handover.IdentityRequestMessageId) { CloudObject cloudObject = bubble.CloudCache.GetObject(handover.ObjectId); if (cloudObject == null) { return; } if (cloudObject.BubbleId != bubble.BubbleId) { throw new Exception("Remote objects can not need to be handed over."); } ParticipantLink participantLink = bubble.GetParticipant(cloudObject.OwnerId); BubbleLink bubbleLink = bubble.GetBubbleLink(handover.RemoteBubbleId); LogUtil.Info("Received identify response (" + identifyResponse.FailureCode + ") from " + bubble.BubbleName + " to " + bubbleLink.RemoteBubbleName + " to be able to handover object " + handover.ObjectId + "."); if (identifyResponse.FailureCode != MxpResponseCodes.SUCCESS) { return; } HandoverRequestMessage handoverRequest = (HandoverRequestMessage)MessageFactory.Current.ReserveMessage(typeof(HandoverRequestMessage)); handoverRequest.SourceBubbleId = bubble.BubbleId; handoverRequest.TargetBubbleId = handover.RemoteBubbleId; cloudObject.ToObjectFragment(handoverRequest.ObjectFragment); handoverRequest.ObjectFragment.Location.X = cloudObject.Location.X - bubbleLink.RemoteBubbleCenter.X; handoverRequest.ObjectFragment.Location.Y = cloudObject.Location.Y - bubbleLink.RemoteBubbleCenter.Y; handoverRequest.ObjectFragment.Location.Z = cloudObject.Location.Z - bubbleLink.RemoteBubbleCenter.Z; handover.HandoverRequestMessageId = handoverRequest.MessageId; session.Send(handoverRequest); // Storing cloud object in case of rollback handover.CloudObject = cloudObject; // Removing cloud object from bubble. bubble.CloudCache.RemoveObject(cloudObject.ObjectId); return; } } }
public void IdentifyResponseMessageEncoding() { IdentifyResponseMessage originalMessage = new IdentifyResponseMessage(); originalMessage.RequestMessageId = 1; originalMessage.FailureCode = 2; byte[] encodedBytes = new byte[originalMessage.FrameDataSize(0)]; int dataLength = originalMessage.EncodeFrameData(0, encodedBytes, 0); IdentifyResponseMessage decodedMessage = new IdentifyResponseMessage(); decodedMessage.DecodeFrameData(0, encodedBytes, 0, dataLength); decodedMessage.MessageId = originalMessage.MessageId; String originalMessageString = originalMessage.ToString(); String decodedMessageString = decodedMessage.ToString(); Assert.AreEqual(originalMessageString, decodedMessageString); }