Opc.Ua.Server.Session.UpdateDiagnosticCounters C# (CSharp) Method

UpdateDiagnosticCounters() private method

private UpdateDiagnosticCounters ( RequestType requestType, bool error, bool authorizationError ) : void
requestType RequestType
error bool
authorizationError bool
return void
        private void UpdateDiagnosticCounters(RequestType requestType, bool error, bool authorizationError)
        {
            lock (m_diagnostics)
            {
                if (!error)
                {
                    m_diagnostics.ClientLastContactTime = DateTime.UtcNow;
                }

                m_diagnostics.TotalRequestCount.TotalCount++;

                if (error)
                {               
                    m_diagnostics.TotalRequestCount.ErrorCount++;

                    if (authorizationError)
                    {
                        m_diagnostics.UnauthorizedRequestCount++;
                    }
                }

                ServiceCounterDataType counter = null;
                
                switch (requestType)
                {            
		            case RequestType.Read:                          { counter = m_diagnostics.ReadCount; break; }
		            case RequestType.HistoryRead:                   { counter = m_diagnostics.HistoryReadCount; break; }
		            case RequestType.Write:                         { counter = m_diagnostics.WriteCount; break; }
		            case RequestType.HistoryUpdate:                 { counter = m_diagnostics.HistoryUpdateCount; break; }
		            case RequestType.Call:                          { counter = m_diagnostics.CallCount; break; }
		            case RequestType.CreateMonitoredItems:          { counter = m_diagnostics.CreateMonitoredItemsCount; break; }
		            case RequestType.ModifyMonitoredItems:          { counter = m_diagnostics.ModifyMonitoredItemsCount; break; }
		            case RequestType.SetMonitoringMode:             { counter = m_diagnostics.SetMonitoringModeCount; break; }
		            case RequestType.SetTriggering:                 { counter = m_diagnostics.SetTriggeringCount; break; }
		            case RequestType.DeleteMonitoredItems:          { counter = m_diagnostics.DeleteMonitoredItemsCount; break; }
		            case RequestType.CreateSubscription:            { counter = m_diagnostics.CreateSubscriptionCount; break; }
		            case RequestType.ModifySubscription:            { counter = m_diagnostics.ModifySubscriptionCount; break; }
		            case RequestType.SetPublishingMode:             { counter = m_diagnostics.SetPublishingModeCount; break; }
		            case RequestType.Publish:                       { counter = m_diagnostics.PublishCount; break; }
		            case RequestType.Republish:                     { counter = m_diagnostics.RepublishCount; break; }
		            case RequestType.TransferSubscriptions:         { counter = m_diagnostics.TransferSubscriptionsCount; break; }
		            case RequestType.DeleteSubscriptions:           { counter = m_diagnostics.DeleteSubscriptionsCount; break; }
		            case RequestType.AddNodes:                      { counter = m_diagnostics.AddNodesCount; break; }
		            case RequestType.AddReferences:                 { counter = m_diagnostics.AddReferencesCount; break; }
		            case RequestType.DeleteNodes:                   { counter = m_diagnostics.DeleteNodesCount; break; }
		            case RequestType.DeleteReferences:              { counter = m_diagnostics.DeleteReferencesCount; break; }
		            case RequestType.Browse:                        { counter = m_diagnostics.BrowseCount; break; }
		            case RequestType.BrowseNext:                    { counter = m_diagnostics.BrowseNextCount; break; }
		            case RequestType.TranslateBrowsePathsToNodeIds: { counter = m_diagnostics.TranslateBrowsePathsToNodeIdsCount; break; }
		            case RequestType.QueryFirst:                    { counter = m_diagnostics.QueryFirstCount; break; }
		            case RequestType.QueryNext:                     { counter = m_diagnostics.QueryNextCount; break; }
		            case RequestType.RegisterNodes:                 { counter = m_diagnostics.RegisterNodesCount; break; }
		            case RequestType.UnregisterNodes:               { counter = m_diagnostics.UnregisterNodesCount; break; }
                }
                                
                if (counter != null)
                {
                    counter.TotalCount = counter.TotalCount + 1;

                    if (error)
                    {
                        counter.ErrorCount = counter.ErrorCount + 1;
                    }
                }
            }
        }
        #endregion