Opc.Ua.Server.MasterNodeManager.DeleteMonitoredItems C# (CSharp) Method

DeleteMonitoredItems() public method

Deletes a set of monitored items.
public DeleteMonitoredItems ( OperationContext context, uint subscriptionId, IList itemsToDelete, IList errors ) : void
context OperationContext
subscriptionId uint
itemsToDelete IList
errors IList
return void
        public virtual void DeleteMonitoredItems(
            OperationContext      context,
            uint                  subscriptionId,
            IList<IMonitoredItem> itemsToDelete, 
            IList<ServiceResult>  errors)
        {  
            if (context == null)       throw new ArgumentNullException("context");
            if (itemsToDelete == null) throw new ArgumentNullException("itemsToDelete");
            if (errors == null)        throw new ArgumentNullException("errors");

            List<bool> processedItems = new List<bool>(itemsToDelete.Count);

            for (int ii = 0; ii < itemsToDelete.Count; ii++)
            {
                processedItems.Add(ServiceResult.IsBad(errors[ii]) || itemsToDelete[ii] == null);
            }
            
            // delete items for event filters.
            DeleteMonitoredItemsForEvents(
                context,
                subscriptionId,
                itemsToDelete,
                processedItems,
                errors);

            // call each node manager.
            foreach (INodeManager nodeManager in m_nodeManagers)
            {
                nodeManager.DeleteMonitoredItems(
                    context,
                    itemsToDelete,
                    processedItems,
                    errors);
            }

            // fill results for unknown nodes.
            for (int ii = 0; ii < errors.Count; ii++)
            {
                if (!processedItems[ii])
                {
                    errors[ii] = StatusCodes.BadMonitoredItemIdInvalid;
                }
            }
        }