Beispiel #1
0
        internal void RemoveAttributeSet(ReceivedAttributeMessage request)
        {
            var attributeSet = _repository.AttributeSetOf(request.AttributeSetName !);

            if (attributeSet.IsDefined)
            {
                attributeSet = AttributeSet.Named(request.AttributeSetName);
                _repository.Remove(request.AttributeSetName !);
            }
            _confirmingDistributor.ConfirmRemove(request.TrackingId, attributeSet, _configuration.NodeMatching(request.SourceNodeId));
        }
        internal void CreateAttributeSet(ReceivedAttributeMessage request)
        {
            var attributeSet = _repository.AttributeSetOf(request.AttributeSetName);

            if (attributeSet.IsNone)
            {
                attributeSet = AttributeSet.Named(request.AttributeSetName);
                _repository.Add(attributeSet);
            }
            _confirmingDistributor.ConfirmCreate(request.TrackingId, attributeSet, _configuration.NodeMatching(request.SourceNodeId));
        }
Beispiel #3
0
        internal void RemoveAttribute(ReceivedAttributeMessage request)
        {
            var attributeSet = _repository.AttributeSetOf(request.AttributeSetName !);

            if (attributeSet.IsDefined)
            {
                var tracked = attributeSet.Remove(request.Attribute());
                if (tracked.IsPresent) // actually was present, now removed
                {
                    _confirmingDistributor.Confirm(request.TrackingId, attributeSet, tracked, request.Type, _configuration.NodeMatching(request.SourceNodeId));
                }
            }
        }
Beispiel #4
0
        internal void AddAttribute(ReceivedAttributeMessage request)
        {
            var attributeSet = _repository.AttributeSetOf(request.AttributeSetName !);

            if (attributeSet.IsNone)
            {
                attributeSet = AttributeSet.Named(request.AttributeSetName);
                _repository.Add(attributeSet);
            }
            var tracked = attributeSet.AddIfAbsent(request.Attribute());

            _confirmingDistributor.Confirm(request.TrackingId, attributeSet, tracked, request.Type, _configuration.NodeMatching(request.SourceNodeId));
        }
Beispiel #5
0
        //=========================================
        // InboundStreamInterest (operations App)
        //=========================================

        #region InboundStreamInterest (operations App)

        public void HandleInboundStreamMessage(AddressType addressType, RawMessage message)
        {
            if (addressType.IsOperational)
            {
                var request = new ReceivedAttributeMessage(message);
                var type    = request.Type;

                switch (type)
                {
                case ApplicationMessageType.CreateAttributeSet:
                    _remoteRequestHandler.CreateAttributeSet(request);
                    break;

                case ApplicationMessageType.AddAttribute:
                    _remoteRequestHandler.AddAttribute(request);
                    break;

                case ApplicationMessageType.ReplaceAttribute:
                    _remoteRequestHandler.ReplaceAttribute(request);
                    break;

                case ApplicationMessageType.RemoveAttribute:
                    _remoteRequestHandler.RemoveAttribute(request);
                    break;

                case ApplicationMessageType.RemoveAttributeSet:
                    _remoteRequestHandler.RemoveAttributeSet(request);
                    break;

                case ApplicationMessageType.ConfirmCreateAttributeSet:
                case ApplicationMessageType.ConfirmAddAttribute:
                case ApplicationMessageType.ConfirmReplaceAttribute:
                case ApplicationMessageType.ConfirmRemoveAttribute:
                case ApplicationMessageType.ConfirmRemoveAttributeSet:
                    _confirmingDistributor.AcknowledgeConfirmation(request.CorrelatingMessageId, _configuration.NodeMatching(request.SourceNodeId));
                    _confirmationInterest.Confirm(request.SourceNodeId, request.AttributeSetName, request.AttributeName, type);
                    break;

                default:
                    _configuration.Logger.Warn($"Received unknown message: {type.ToString()}");
                    break;
                }
            }
        }