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

BrowseNext() public method

Invokes the BrowseNext service.
public BrowseNext ( RequestHeader requestHeader, bool releaseContinuationPoints, ByteStringCollection continuationPoints, BrowseResultCollection &results, DiagnosticInfoCollection &diagnosticInfos ) : ResponseHeader
requestHeader RequestHeader The request header.
releaseContinuationPoints bool if set to true the continuation points are released.
continuationPoints ByteStringCollection A list of continuation points returned in a previous Browse or BrewseNext call.
results BrowseResultCollection The list of resulted references for browse.
diagnosticInfos DiagnosticInfoCollection The diagnostic information for the results.
return ResponseHeader
        public override ResponseHeader BrowseNext(
            RequestHeader                requestHeader,
            bool                         releaseContinuationPoints,
            ByteStringCollection         continuationPoints,
            out BrowseResultCollection   results,
            out DiagnosticInfoCollection diagnosticInfos)
        {   
            results = null;
            diagnosticInfos = null;
            
            OperationContext context = ValidateRequest(requestHeader, RequestType.BrowseNext);
            
            try
            {
                if (continuationPoints == null || continuationPoints.Count == 0)
                {
                    throw new ServiceResultException(StatusCodes.BadNothingToDo);
                }

                m_serverInternal.NodeManager.BrowseNext(
                    context,
                    releaseContinuationPoints,
                    continuationPoints,
                    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);
            }   
        }