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());
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }