Opc.Ua.Server.DataChangeMonitoredItem.Publish C# (CSharp) Method

Publish() public method

Called by the subscription to publish any notification.
public Publish ( OperationContext context, Queue notifications, Queue diagnostics ) : bool
context OperationContext
notifications Queue
diagnostics Queue
return bool
        public bool Publish(OperationContext context, Queue<MonitoredItemNotification> notifications, Queue<DiagnosticInfo> diagnostics)
        {
            lock (m_lock)
            {
                // check if not ready to publish.
                if (!IsReadyToPublish)
                {
                    return false;
                }

                // update sample time.
                IncrementSampleTime();

                // update publish flag.
                m_readyToPublish = false;
                m_readyToTrigger = false;
                                
                // check if queuing is enabled.
                if (m_queue == null)
                {
                    Publish(context, m_lastValue, m_lastError, notifications, diagnostics);                        
                }
                else
                {
                    DataValue value = null;
                    ServiceResult error = null;

                    while (m_queue.Publish(out value, out error))
                    {
                        Publish(context, value, error, notifications, diagnostics);     
                    }
                }

                return true;
            }
        }
        

Same methods

DataChangeMonitoredItem::Publish ( OperationContext context, DataValue value, ServiceResult error, Queue notifications, Queue diagnostics ) : void