Opc.Ua.Com.Server.ComHdaProxy.GetAggregateFunctions C# (CSharp) Method

GetAggregateFunctions() private method

Gets the aggregate functions object id.
private GetAggregateFunctions ( Session session, NodeId objectId ) : List
session Opc.Ua.Client.Session The session.
objectId NodeId The object id.
return List
        private List<HdaAggregate> GetAggregateFunctions(Session session, NodeId objectId)
        {
            Browser browser = new Browser(session);

            browser.BrowseDirection = BrowseDirection.Forward;
            browser.ReferenceTypeId = Opc.Ua.ReferenceTypeIds.HierarchicalReferences;
            browser.IncludeSubtypes = true;
            browser.NodeClassMask = (int)NodeClass.Object;
            browser.ResultMask = (uint)(BrowseResultMask.DisplayName | BrowseResultMask.BrowseName | BrowseResultMask.TypeDefinition);
            browser.ContinueUntilDone = true;

            ReferenceDescriptionCollection references = browser.Browse(objectId);

            List<HdaAggregate> aggregates = new List<HdaAggregate>();

            for (int ii = 0; ii < references.Count; ii++)
            {
                ReferenceDescription reference = references[ii];

                if (reference.TypeDefinition != Opc.Ua.ObjectTypeIds.AggregateFunctionType)
                {
                    continue;
                }

                HdaAggregate aggregate = new HdaAggregate();

                NodeId remoteId = (NodeId)reference.NodeId;

                aggregate.RemoteId = remoteId;
                aggregate.LocalId = ComUtils.GetHdaAggregateId(remoteId);                
                aggregate.Name = reference.ToString();
                aggregate.Description = null;

                // check for previously mapped ids.
                if (aggregate.LocalId == 0)
                {
                    aggregate.LocalId = m_mapper.GetLocalIntegerIdMapping(Opc.Ua.BrowseNames.AggregateFunctions, remoteId);
                }
                
                aggregates.Add(aggregate);
            }

            return aggregates;
        }