Example #1
0
        /// <summary>
        /// Removes a request for the specified item.
        /// </summary>
        /// <param name="item">The item.</param>
        /// <param name="monitoredItem">The monitored item.</param>
        private void Remove(DaItemState item, MonitoredItem monitoredItem)
        {
            if (monitoredItem.AttributeId == Attributes.Value)
            {
                SubscribeItemRequest request = FindItemRequest(item.ItemId, false);

                if (request != null)
                {
                    request.Remove(monitoredItem);
                }
            }
            else
            {
                int propertyId = SubscribePropertyRequest.DaItemAttributeToDaProperty(monitoredItem.AttributeId);

                if (propertyId < 0)
                {
                    return;
                }

                SubscribePropertyRequest request = FindPropertyRequest(item.ItemId, false);

                if (request != null)
                {
                    request.Remove(m_context, monitoredItem);

                    if (request.MonitoredItems.Count == 0)
                    {
                        m_subscribedProperties.Remove(item.ItemId);
                    }
                }
            }
        }
Example #2
0
        /// <summary>
        /// Adds a request for the specified item.
        /// </summary>
        /// <param name="item">The item.</param>
        /// <param name="monitoredItem">The monitored item.</param>
        private void Add(DaItemState item, MonitoredItem monitoredItem)
        {
            if (monitoredItem.AttributeId == Attributes.Value)
            {
                SubscribeItemRequest request = FindItemRequest(item.ItemId, true);

                if (request != null)
                {
                    request.Add(monitoredItem);
                }
            }
            else
            {
                int propertyId = SubscribePropertyRequest.DaItemAttributeToDaProperty(monitoredItem.AttributeId);

                if (propertyId < 0)
                {
                    return;
                }

                SubscribePropertyRequest request = FindPropertyRequest(item.ItemId, true);

                if (request != null)
                {
                    request.Add(m_context, monitoredItem);
                }
            }
        }