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