private BrowseResultCollection Browse(Session session, BrowseDescriptionCollection nodesToBrowse)
{
BrowseResultCollection results = null;
// break the request into smaller blocks.
if (m_browseBlockSize > 0 && nodesToBrowse.Count > m_browseBlockSize)
{
results = new BrowseResultCollection();
for (int ii = 0; ii < nodesToBrowse.Count; ii += m_browseBlockSize)
{
BrowseDescriptionCollection x = new BrowseDescriptionCollection();
for (int jj = ii; jj < ii + m_browseBlockSize && jj < nodesToBrowse.Count; jj++)
{
x.Add(nodesToBrowse[jj]);
}
BrowseResultCollection y = BrowseBlock(session, x);
results.AddRange(y);
}
return results;
}
// small enough to do directly.
return BrowseBlock(session, nodesToBrowse);
}