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)); }
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)); } } }
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)); }
//========================================= // 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; } } }