Opc.Ua.Client.Browser.BrowseNext C# (CSharp) Method

BrowseNext() private method

Fetches the next batch of references.
private BrowseNext ( byte &continuationPoint, bool cancel ) : ReferenceDescriptionCollection
continuationPoint byte The continuation point.
cancel bool if set to true the browse operation is cancelled.
return ReferenceDescriptionCollection
        private ReferenceDescriptionCollection BrowseNext(ref byte[] continuationPoint, bool cancel)
        {
            ByteStringCollection continuationPoints = new ByteStringCollection();
            continuationPoints.Add(continuationPoint);

            // make the call to the server.
            BrowseResultCollection results;
            DiagnosticInfoCollection diagnosticInfos;

            ResponseHeader responseHeader = m_session.BrowseNext(
                null,
                cancel,
                continuationPoints,
                out results,
                out diagnosticInfos);

            // ensure that the server returned valid results.
            Session.ValidateResponse(results, continuationPoints);
            Session.ValidateDiagnosticInfos(diagnosticInfos, continuationPoints);

            // check if valid.
            if (StatusCode.IsBad(results[0].StatusCode))
            {
                throw ServiceResultException.Create(results[0].StatusCode, 0, diagnosticInfos, responseHeader.StringTable);
            }

            // update continuation point.
            continuationPoint = results[0].ContinuationPoint;           
            
            // return references.
            return results[0].References;
        }
        #endregion