Opc.Ua.Com.Server.ComAe2Subscription.DoRefresh C# (CSharp) Method

DoRefresh() private method

Cslled to send refresh events to client.
private DoRefresh ( object state ) : void
state object
return void
        private void DoRefresh(object state)
        {
            try
            {
                // check if disposed.
                if (m_disposed)
                {
                    return;
                }

                // send a dummy callback after a cancel.
                if (state == null)
                {
                    IComAeEventCallback callback = m_callback;

                    if (callback != null)
                    {
                        callback.OnEvent(
                            ClientHandle,
                            true,
                            true,
                            null);
                    }

                    return;
                }

                Queue<AeEvent> eventsToSend = null;

                lock (m_lock)
                {
                    // check if refresh has been cancelled.
                    if (!Object.ReferenceEquals(state, m_refreshQueue))
                    {
                        return;
                    }

                    // clear the queue to indicate operation is complete.
                    eventsToSend = m_refreshQueue;
                    m_refreshQueue = null;
                }

                // send the events to client.
                SendInBlocks(m_callback, eventsToSend, MaxSize, true);
            }
            catch (Exception exception)
            {
                Utils.Trace(exception, "Error processing refresh callback.");
            }
        }