Opc.Ua.Server.StandardServer.SetPublishingMode C# (CSharp) Method

SetPublishingMode() public method

Invokes the SetPublishingMode service.
public SetPublishingMode ( RequestHeader requestHeader, bool publishingEnabled, UInt32Collection subscriptionIds, StatusCodeCollection &results, DiagnosticInfoCollection &diagnosticInfos ) : ResponseHeader
requestHeader RequestHeader The request header.
publishingEnabled bool If set to true publishing of NotificationMessages is enabled for the Subscription.
subscriptionIds UInt32Collection The list of subscription ids.
results StatusCodeCollection The list of StatusCodes for the Subscriptions to enable/disable.
diagnosticInfos DiagnosticInfoCollection The diagnostic information for the results.
return ResponseHeader
        public override ResponseHeader SetPublishingMode(
            RequestHeader                requestHeader, 
            bool                         publishingEnabled, 
            UInt32Collection             subscriptionIds, 
            out StatusCodeCollection     results, 
            out DiagnosticInfoCollection diagnosticInfos)
        {
            OperationContext context = ValidateRequest(requestHeader, RequestType.SetPublishingMode);
            
            try
            {
                if (subscriptionIds == null || subscriptionIds.Count == 0)
                {
                    throw new ServiceResultException(StatusCodes.BadNothingToDo);
                }         

                ServerInternal.SubscriptionManager.SetPublishingMode(
                    context,
                    publishingEnabled,
                    subscriptionIds,
                    out results,
                    out diagnosticInfos);

                return CreateResponse(requestHeader, context.StringTable);  
            }
            catch (ServiceResultException e)
            {
                lock (ServerInternal.DiagnosticsLock)
                {
                    ServerInternal.ServerDiagnostics.RejectedRequestsCount++;

                    if (IsSecurityError(e.StatusCode))
                    {
                        ServerInternal.ServerDiagnostics.SecurityRejectedRequestsCount++;
                    }
                }

                throw TranslateException(context, e);
            }  
            finally
            {
                OnRequestComplete(context);
            }            
        }