Example #1
1
		public APIVariable(APIPage InParent, XmlNode InNode)
			: base(InParent, InNode.SelectSingleNode("name").InnerText)
		{
			Node = InNode;
			Protection = ParseProtection(Node);
			AddRefLink(Node.Attributes["id"].InnerText, this);
		}
		public APIRecord(APIPage InParent, DoxygenEntity InEntity)
			: base(InParent, GetNameFromNode(InEntity.Node))
		{
			// Set all the readonly vars
			Entity = InEntity;
			Node = InEntity.Node;
			RefId = Node.Attributes["id"].InnerText;
			Protection = ParseProtection(Node);

			// Set the record type
			switch (Node.Attributes["kind"].Value)
			{
				case "class":
					RecordType = Name.StartsWith("I")? APIRecordType.Interface : APIRecordType.Class;
					break;
				case "struct":
					RecordType = APIRecordType.Struct;
					break;
				case "union":
					RecordType = APIRecordType.Union;
					break;
			}

			// Register the record for incoming links
			AddRefLink(RefId, this);

			// Add it to the template list
			if(Node.SelectSingleNode("templateparamlist") != null)
			{
				bIsTemplate = true;
				bIsTemplateSpecialization = Name.Contains('<');
				if(!bIsTemplateSpecialization && !TemplateRecords.ContainsKey(FullName)) TemplateRecords.Add(FullName, this);
			}
        }
Example #3
0
 public APIVariable(APIPage InParent, XmlNode InNode)
     : base(InParent, InNode.SelectSingleNode("name").InnerText)
 {
     Node       = InNode;
     Protection = ParseProtection(Node);
     AddRefLink(Node.Attributes["id"].InnerText, this);
 }
Example #4
0
        public APIFunction(APIPage InParent, DoxygenEntity InEntity, APIFunctionKey InKey, string InLinkPath)
            : base(InParent, InEntity.Name, InLinkPath)
        {
            Entity = InEntity;
            Node   = Entity.Node;

            Protection   = ParseProtection(Node);
            FunctionType = InKey.Type;
            AddRefLink(Entity.Node.Attributes["id"].Value, this);

            bIsTemplateSpecialization = Name.Contains('<');
            if (Node.SelectSingleNode("templateparamlist") != null && !bIsTemplateSpecialization && !TemplateFunctions.ContainsKey(FullName))
            {
                TemplateFunctions.Add(FullName, this);
            }
        }
Example #5
0
        public APIEnum(APIPage InParent, XmlNode InNode, string InName)
            : base(InParent, InName)
        {
            // Set the defaults
            Node = InNode;
            Protection = ParseProtection(Node);

            // Read the values
            using(XmlNodeList ValueNodeList = Node.SelectNodes("enumvalue"))
            {
                foreach(XmlNode ValueNode in ValueNodeList)
                {
                    APIEnumValue Value = new APIEnumValue(ValueNode);
                    AddRefLink(Value.Id, this);
                    Values.Add(Value);
                }
            }

            // Add it as a link target
            AddRefLink(Node.Attributes["id"].InnerText, this);
        }
Example #6
0
        public APIRecord(APIPage InParent, DoxygenEntity InEntity)
            : base(InParent, GetNameFromNode(InEntity.Node))
        {
            // Set all the readonly vars
            Entity     = InEntity;
            Node       = InEntity.Node;
            RefId      = Node.Attributes["id"].InnerText;
            Protection = ParseProtection(Node);

            // Set the record type
            switch (Node.Attributes["kind"].Value)
            {
            case "class":
                RecordType = Name.StartsWith("I")? APIRecordType.Interface : APIRecordType.Class;
                break;

            case "struct":
                RecordType = APIRecordType.Struct;
                break;

            case "union":
                RecordType = APIRecordType.Union;
                break;
            }

            // Register the record for incoming links
            AddRefLink(RefId, this);

            // Add it to the template list
            if (Node.SelectSingleNode("templateparamlist") != null)
            {
                bIsTemplate = true;
                bIsTemplateSpecialization = Name.Contains('<');
                if (!bIsTemplateSpecialization && !TemplateRecords.ContainsKey(FullName))
                {
                    TemplateRecords.Add(FullName, this);
                }
            }
        }
Example #7
0
        public APIEnum(APIPage InParent, DoxygenEntity InEntity, string InName)
            : base(InParent, GetCleanName(InName))
        {
            // Set the defaults
            Entity     = InEntity;
            Node       = InEntity.Node;
            Protection = ParseProtection(Node);

            // Read the values
            using (XmlNodeList ValueNodeList = Node.SelectNodes("enumvalue"))
            {
                foreach (XmlNode ValueNode in ValueNodeList)
                {
                    APIEnumValue Value = new APIEnumValue(ValueNode);
                    AddRefLink(Value.Id, this);
                    Values.Add(Value);
                }
            }

            // Add it as a link target
            AddRefLink(Node.Attributes["id"].InnerText, this);
        }
Example #8
0
        public APIFunction(APIPage InParent, DoxygenEntity InEntity, APIFunctionKey InKey, string InLinkPath)
            : base(InParent, InEntity.Name, InLinkPath)
        {
            Entity = InEntity;
            Node = Entity.Node;

            Protection = ParseProtection(Node);
            FunctionType = InKey.Type;
            AddRefLink(Entity.Node.Attributes["id"].Value, this);

            bIsTemplateSpecialization = Name.Contains('<');
            if (Node.SelectSingleNode("templateparamlist") != null && !bIsTemplateSpecialization && !TemplateFunctions.ContainsKey(FullName))
            {
                TemplateFunctions.Add(FullName, this);
            }
        }