Opc.Ua.ServerTest.SubscribeTest.SetPublishingEnabled C# (CSharp) Method

SetPublishingEnabled() private method

Sets the publishing enable state for the subscriptions.
private SetPublishingEnabled ( bool enabled ) : bool
enabled bool
return bool
        private bool SetPublishingEnabled(bool enabled)
        {   
            try
            {
                UInt32Collection subscriptionIds = new UInt32Collection();

                lock (m_subscriptions)
                {
                    for (int ii = 0; ii < m_subscriptions.Count; ii++)
                    {
                        subscriptionIds.Add(m_subscriptions[ii].SubscriptionId);
                        m_subscriptions[ii].PublishingEnabled = enabled;
                    }
                }
                    
                RequestHeader requestHeader = new RequestHeader();
                requestHeader.ReturnDiagnostics = 0;

                StatusCodeCollection results;
                DiagnosticInfoCollection diagnosticInfos;

                Session.SetPublishingMode(
                    requestHeader,
                    enabled,
                    subscriptionIds,
                    out results,
                    out diagnosticInfos);

                ClientBase.ValidateResponse(results, subscriptionIds);
                ClientBase.ValidateDiagnosticInfos(diagnosticInfos, subscriptionIds);
                                
                if (diagnosticInfos != null && diagnosticInfos.Count > 0)
                {
                    Log("Returned non-empty DiagnosticInfos array during SetPublishingMode.");
                    return false;
                }

                bool success = true;
                
                for  (int ii = 0; ii < results.Count; ii++)
                {
                    if (StatusCode.IsBad(results[ii]))
                    {
                        Log(
                            "Unexpected error setting publish enable state for subscription {0}. StatusCode = {1}", 
                            subscriptionIds[ii],
                            subscriptionIds);

                        success = false;
                    }
                }

                return success;
            }
            catch (Exception e)
            {
                Log(e, "SetPublishingMode Failed.");
                return false;
            } 
        }