blob: d59929c60ded20f112ae1467223e5dd196e84338 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (C) 2009-2011, International Business Machines Corporation and others. All Rights Reserved. -->
<!-- List all cpp public functions generated from the 'index.xml' -->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="docFolder" />
<xsl:template match="/">
<list>
<xsl:variable name="files_node"
select="/doxygenindex/compound[@kind='class']/@refid" />
<xsl:for-each select="$files_node">
<xsl:variable name="file"
select="concat($docFolder, '/', . , '.xml')" />
<xsl:variable name="funcs_node"
select="document($file)/doxygen/compounddef[@prot='public']/sectiondef/memberdef[@prot='public'][@kind='function']" />
<xsl:variable name="compoundname"
select="document($file)/doxygen/compounddef[@prot='public']/compoundname/text()" />
<xsl:for-each select="$funcs_node">
<cppfunc>
<xsl:copy-of select="@id" />
<xsl:attribute name="status"><xsl:value-of
select="detaileddescription/para/xrefsect/xreftitle/text()" /></xsl:attribute>
<xsl:attribute name="version"><xsl:value-of
select="detaileddescription/para/xrefsect/xrefdescription/para/text()" /></xsl:attribute>
<xsl:attribute name="prototype"><xsl:value-of
select="concat(definition/text(), argsstring/text())" /></xsl:attribute>
<xsl:copy-of select="location/@file" />
<xsl:copy-of select="@static" />
<xsl:copy-of select="@inline" />
</cppfunc>
</xsl:for-each>
<!-- now const static publics -->
<xsl:variable name="sconst_node"
select="document($file)/doxygen/compounddef[@prot='public']/sectiondef/memberdef[@prot='public'][@kind='variable'][@static='yes']" />
<xsl:for-each select="$sconst_node">
<cppfunc>
<xsl:copy-of select="@id" />
<xsl:attribute name="status"><xsl:value-of
select="detaileddescription/para/xrefsect/xreftitle/text()" /></xsl:attribute>
<xsl:attribute name="version"><xsl:value-of
select="detaileddescription/para/xrefsect/xrefdescription/para/text()" /></xsl:attribute>
<xsl:attribute name="prototype">static <xsl:value-of
select="definition/text()" /></xsl:attribute>
<xsl:copy-of select="location/@file" />
<xsl:copy-of select="@static" />
<xsl:copy-of select="@inline" />
</cppfunc>
</xsl:for-each>
<!--
//No real non-static variables - and also, doxygen is confused about nested structs/unions
<xsl:variable name="const_node"
select="document($file)/doxygen/compounddef[@prot='public']/sectiondef/memberdef[@prot='public'][@kind='variable'][@static='no']" />
<xsl:for-each select="$const_node">
<cppfunc>
<xsl:copy-of select="@id" />
<xsl:attribute name="status"><xsl:value-of
select="detaileddescription/para/xrefsect/xreftitle/text()" /></xsl:attribute>
<xsl:attribute name="version"><xsl:value-of
select="detaileddescription/para/xrefsect/xrefdescription/para/text()" /></xsl:attribute>
<xsl:attribute name="prototype">/* not static */ <xsl:value-of
select="definition/text()" /></xsl:attribute>
<xsl:copy-of select="location/@file" />
<xsl:copy-of select="@static" />
<xsl:copy-of select="@inline" />
</cppfunc>
</xsl:for-each>
-->
<!-- now enums -->
<xsl:variable name="enum_node"
select="document($file)/doxygen/compounddef[@prot='public']/sectiondef/memberdef[@kind='enum'][@prot='public']" />
<xsl:for-each select="$enum_node">
<!-- use a name, else '(anonymous)' -->
<xsl:variable name="enum_node_name"><xsl:choose>
<xsl:when test="contains(name/text(), '@')">(anonymous)</xsl:when>
<xsl:otherwise><xsl:value-of select="name/text()" /></xsl:otherwise>
</xsl:choose></xsl:variable>
<xsl:variable name="enum_status" select="detaileddescription/para/xrefsect/xreftitle/text()"/>
<xsl:variable name="enum_version" select="detaileddescription/para/xrefsect/xrefdescription/para/text()"/>
<cppfunc>
<xsl:copy-of select="@id" />
<xsl:attribute name="status"><xsl:value-of
select="$enum_status" /></xsl:attribute>
<xsl:attribute name="version"><xsl:value-of
select="$enum_version" /></xsl:attribute>
<xsl:attribute name="prototype">enum
<xsl:value-of select="$compoundname"/>::<xsl:value-of
select="$enum_node_name" /> {}</xsl:attribute>
<xsl:copy-of select="location/@file" />
</cppfunc>
<xsl:variable name="enum_node_file" select="location/@file" />
<xsl:variable name="enum_member" select="enumvalue[@prot='public']"/>
<!-- for each member -->
<xsl:for-each select="$enum_member">
<cppfunc>
<xsl:copy-of select="@id" />
<!-- status and version: only override if set. -->
<xsl:attribute name="status">
<xsl:choose>
<xsl:when test="detaileddescription/para/xrefsect/xreftitle/text() != ''">
<xsl:value-of select="detaileddescription/para/xrefsect/xreftitle/text()"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$enum_status" />
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:attribute name="version">
<xsl:choose>
<xsl:when test="detaileddescription/para/xrefsect/xrefdescription/para/text() != ''">
<xsl:value-of select="detaileddescription/para/xrefsect/xrefdescription/para/text()"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$enum_version" />
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:attribute name="prototype">enum
<xsl:value-of select="$compoundname"/>::<xsl:value-of
select="$enum_node_name" />::<xsl:value-of
select="name/text()" /></xsl:attribute>
<xsl:attribute name="file"><xsl:value-of select="$enum_node_file" /></xsl:attribute>
</cppfunc>
</xsl:for-each> <!-- done with enum member -->
 
</xsl:for-each> <!-- done with enums -->
</xsl:for-each> <!-- done with file -->
</list>
</xsl:template>
</xsl:stylesheet>