Orb/python/doxygen/guidiser.py
changeset 0 42188c7ea2d9
child 1 82f11024044a
equal deleted inserted replaced
-1:000000000000 0:42188c7ea2d9
       
     1 # Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved.
       
     2 # This component and the accompanying materials are made available under the terms of the License 
       
     3 # "Eclipse Public License v1.0" which accompanies this distribution, 
       
     4 # and is available at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     5 #
       
     6 # Initial Contributors:
       
     7 # Nokia Corporation - initial contribution.
       
     8 #
       
     9 # Contributors:
       
    10 #
       
    11 # Description:
       
    12 #
       
    13 from __future__ import with_statement
       
    14 import unittest
       
    15 import uuid
       
    16 import os
       
    17 import stat
       
    18 import sys
       
    19 import shutil
       
    20 import xml
       
    21 from xml.etree import ElementTree as etree
       
    22 from cStringIO import StringIO
       
    23 from lib import scan, main, xml_decl, doctype_identifier
       
    24 
       
    25 
       
    26 __version__ = "0.1"
       
    27 
       
    28 
       
    29 class Guidiser(object):
       
    30     """
       
    31     A simple class that parses an xml file and converts the values of all
       
    32     id, href and keyref attributes to a 'GUID'.
       
    33     
       
    34     >>> guid = Guidiser()
       
    35     >>> root = guid.guidise(StringIO(cxxclass))
       
    36     >>> oldroot = etree.parse(StringIO(cxxclass)).getroot()
       
    37     >>> oldroot.attrib['id']
       
    38     'CP_class'
       
    39     >>> root.attrib['id']
       
    40     'GUID-25825EC4-341F-3EA4-94AA-7DCE380E6D2E'
       
    41     """
       
    42     def __init__(self, namespace='www.nokia.com'):
       
    43         self.namespace = self._get_namespace(namespace)
       
    44     
       
    45     def _get_namespace(self, namespace, LEN_BYTES=16):
       
    46         if len(namespace) < LEN_BYTES:
       
    47             namespace = namespace + (' ' * (LEN_BYTES - len(namespace)))
       
    48         return uuid.UUID(bytes=namespace[:LEN_BYTES])
       
    49     
       
    50     def _get_guid(self, id):
       
    51         # Sometimes need to remove filepath and hash if id is an href
       
    52         id = id.split('#')[-1]
       
    53         # If id is an href and points to a ditamap, then the id of the map is filename minus ".ditamap"
       
    54         if id.endswith(".ditamap"):
       
    55             id = id[:-8]
       
    56         return ('GUID-%s' % (uuid.uuid3(self.namespace, id))).upper()
       
    57     
       
    58     def guidise(self, xmlfile):
       
    59         def _update_attrib(el, key):
       
    60             child.attrib[key] = self._get_guid(child.attrib[key])
       
    61         try:
       
    62             root = etree.parse(xmlfile).getroot()
       
    63         except xml.parsers.expat.ExpatError, e:
       
    64             sys.stderr.write("ERROR: %s could not be parser: %s\n" % (xmlfile, str(e)))
       
    65             return None
       
    66         for child in root.getiterator():
       
    67             for key in [key for key in ('id', 'href', 'keyref') if key in child.attrib]:
       
    68                 _update_attrib(child, key) 
       
    69         return root
       
    70 
       
    71 
       
    72 def updatefiles(xmldir):
       
    73     guidiser = Guidiser()
       
    74     for filepath in scan(xmldir):
       
    75         root = guidiser.guidise(filepath)
       
    76         if root is not None:
       
    77             os.chmod(filepath, stat.S_IWRITE)
       
    78             with open(filepath, 'w') as f:
       
    79                 f.write(xml_decl()+'\n')
       
    80                 f.write(doctype_identifier(root.tag)+'\n')
       
    81                 f.write(etree.tostring(root))        
       
    82 
       
    83 
       
    84 if __name__ == '__main__':
       
    85     sys.exit(main(updatefiles, __version__))
       
    86     
       
    87 ######################################
       
    88 # Test code
       
    89 ######################################
       
    90 
       
    91 class TestGuidiser(unittest.TestCase):
       
    92     def setUp(self):
       
    93         self.guidiser = Guidiser()
       
    94         
       
    95     def test_i_update_root_elements_id(self):        
       
    96         root = self.guidiser.guidise(StringIO(cxxclass))
       
    97         self.assertTrue(root.attrib['id'] == "GUID-25825EC4-341F-3EA4-94AA-7DCE380E6D2E")
       
    98 
       
    99     def test_i_continue_if_passed_an_invalid_file(self):
       
   100         try:
       
   101             self.guidiser.guidise(StringIO("<cxxclass><argh</cxxclass>"))
       
   102         except Exception:
       
   103             self.fail("I shouldnt have raised an exception")
       
   104 
       
   105     def _test_keys_were_converted(self, key):
       
   106         root = self.guidiser.guidise(StringIO(cxxclass))
       
   107         for child in root.getiterator():
       
   108             if key in child.attrib:
       
   109                 self.assertTrue(child.attrib[key].startswith('GUID'))        
       
   110 
       
   111     def test_i_update_a_subelements_id(self):
       
   112         self._test_keys_were_converted('id')
       
   113 
       
   114     def test_i_update_all_hrefs_with_a_guid(self):
       
   115         self._test_keys_were_converted('href')
       
   116 
       
   117     def test_i_update_all_keyrefs_with_a_guid(self):
       
   118         self._test_keys_were_converted('keyref')
       
   119                 
       
   120     def test_based_fqn_and_one_param(self):
       
   121         self.assertTrue(self.guidiser._get_guid("RConnection::EnumerateConnections(TUint&)") ==
       
   122                         "GUID-18F9018F-78DE-3A7E-8363-B7CB101E7A99" 
       
   123                        )
       
   124         
       
   125     def test_based_fqn_and_muiltiple_params(self):
       
   126         self.assertTrue(self.guidiser._get_guid("RConnection::ProgressNotification(TSubConnectionUniqueId, TNifProgressBuf&, TRequestStatus&, TUint)") ==
       
   127                         "GUID-6E7005CF-4D8E-31CE-BAEA-21965ACC9C17" 
       
   128                        )
       
   129         
       
   130     def test_based_fqn_and_muiltiple_params_ones_a_default(self):
       
   131         self.assertTrue(self.guidiser._get_guid("RConnection::Open(RSocketServ& aSocketServer, TUint aConnectionType = KConnectionTypeDefault)") ==
       
   132                         "GUID-CE8F3FE7-14F2-3FB6-B04C-8596B5F80DFC" 
       
   133                        )
       
   134                 
       
   135     def test_based_fqn_and_muiltiple_params_ones_templated(self):
       
   136         self.assertTrue(self.guidiser._get_guid("RConnection::DataReceivedNotificationRequest(TSubConnectionUniqueId, TUint, TPckg<TUint>&, TRequestStatus&)") ==
       
   137                         "GUID-9E056551-22C2-3F85-8E3D-C11FA3B46F07" 
       
   138                        )
       
   139         
       
   140     def test_based_toplevel_class(self):
       
   141         self.assertTrue(self.guidiser._get_guid("RConnection") ==
       
   142                         "GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD" 
       
   143                        )
       
   144         
       
   145     def test_based_toplevel_class_jarnos_output(self):
       
   146         self.assertTrue(self.guidiser._get_guid("RConnection") ==
       
   147                          "GUID-01926597-E8A1-35E5-A221-B4530CF1783F"
       
   148                          )
       
   149         
       
   150     def test_target_id(self):
       
   151         self.assertTrue(self.guidiser._get_guid("ESock::TAddrUpdate") ==
       
   152                          "GUID-E72084E6-C1CE-3388-93F7-5B7A3F506C3B"
       
   153                          )
       
   154         
       
   155     def test_map_href(self):
       
   156         self.assertTrue(self.guidiser._get_guid("ESock::struct_e_sock_1_1_t_addr_update.xml#ESock::TAddrUpdate") ==
       
   157                  "GUID-E72084E6-C1CE-3388-93F7-5B7A3F506C3B"
       
   158                  )
       
   159                 
       
   160     def test_map_href_to_another_map(self):
       
   161         self.assertTrue(self.guidiser._get_guid("ziplib.ditamap") ==
       
   162                  "GUID-7C7A889C-AE2B-31FC-A5DA-A87019E1251D"
       
   163                  )
       
   164         
       
   165         
       
   166 class Testupdate_files(unittest.TestCase):
       
   167     
       
   168     def setUp(self):
       
   169         self.test_dir = "guidisertestdata"
       
   170         
       
   171     def tearDown(self):
       
   172         shutil.rmtree(self.test_dir)
       
   173     
       
   174     def test_i_can_update_a_file_on_the_file_sys(self):
       
   175         def reference_file_handle(mode):
       
   176             return open(os.path.join(self.test_dir, "reference.dita"), mode) 
       
   177         os.mkdir(self.test_dir)
       
   178         f = reference_file_handle("w")
       
   179         f.write(reference)
       
   180         f.close()
       
   181         updatefiles(self.test_dir)
       
   182         self.assertEquals(reference_file_handle("r").read(), guidised_reference)
       
   183         
       
   184         
       
   185         
       
   186 reference = """<?xml version="1.0" encoding="UTF-8"?>
       
   187 <!DOCTYPE reference PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
       
   188 <reference id="CActiveScheduler::TCleanupBundle">
       
   189     <title>CActiveScheduler::TCleanupBundle</title>
       
   190     <shortdesc/>
       
   191     <refbody>
       
   192         <section>
       
   193             <ph>
       
   194             </ph>
       
   195         </section>
       
   196         <section/>
       
   197     </refbody>
       
   198     <reference id="CActiveScheduler::TCleanupBundle::iCleanupPtr">
       
   199         <title>iCleanupPtr</title>
       
   200         <shortdesc/>
       
   201         <refbody>
       
   202             <section>
       
   203                 <ph>
       
   204                 </ph>
       
   205             </section>
       
   206             <section/>
       
   207         </refbody>
       
   208     </reference>
       
   209     <reference id="CActiveScheduler::TCleanupBundle::iDummyInt">
       
   210         <title>iDummyInt</title>
       
   211         <shortdesc/>
       
   212         <refbody>
       
   213             <section>
       
   214             </section>
       
   215             <section/>
       
   216         </refbody>
       
   217     </reference>
       
   218 </reference>
       
   219 """
       
   220 
       
   221 guidised_reference = """<?xml version="1.0" encoding="UTF-8"?>
       
   222 <!DOCTYPE reference PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
       
   223 <reference id="GUID-83FD90ED-B2F7-3ED5-ABC5-83ED6A3F1C2F">
       
   224     <title>CActiveScheduler::TCleanupBundle</title>
       
   225     <shortdesc />
       
   226     <refbody>
       
   227         <section>
       
   228             <ph>
       
   229             </ph>
       
   230         </section>
       
   231         <section />
       
   232     </refbody>
       
   233     <reference id="GUID-903F7E6D-EFFE-3A37-9348-B9FE3A27AF4A">
       
   234         <title>iCleanupPtr</title>
       
   235         <shortdesc />
       
   236         <refbody>
       
   237             <section>
       
   238                 <ph>
       
   239                 </ph>
       
   240             </section>
       
   241             <section />
       
   242         </refbody>
       
   243     </reference>
       
   244     <reference id="GUID-DA4580F4-EBCC-3FA2-A856-810EAFC82236">
       
   245         <title>iDummyInt</title>
       
   246         <shortdesc />
       
   247         <refbody>
       
   248             <section>
       
   249             </section>
       
   250             <section />
       
   251         </refbody>
       
   252     </reference>
       
   253 </reference>"""
       
   254         
       
   255 cxxclass = """<?xml version='1.0' encoding='UTF-8' standalone='no'?>
       
   256 <!DOCTYPE cxxClass PUBLIC "-//NOKIA//DTD DITA C++ API Class Reference Type v0.1.0//EN" "dtd/cxxClass.dtd" >
       
   257 <cxxClass id="CP_class">
       
   258     <apiName>CP_class</apiName>
       
   259     <shortdesc/>
       
   260     <cxxClassDetail>
       
   261       <cxxClassNestedStruct keyref="CB_class">CB_class</cxxClassNestedStruct>
       
   262       <cxxClassNestedUnion keyref="CB_class">CB_class</cxxClassNestedUnion>
       
   263       <cxxClassNestedClass keyref="CB_class">CB_class</cxxClassNestedClass>    
       
   264         <cxxClassDefinition>
       
   265             <cxxClassAccessSpecifier value="public"/>
       
   266             <cxxClassAPIItemLocation>
       
   267                 <cxxClassDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   268                 <cxxClassDeclarationFileLine name="lineNumber" value="25"/>
       
   269                 <cxxClassDefinitionFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   270                 <cxxClassDefinitionFileLineStart name="lineNumber" value="21"/>
       
   271                 <cxxClassDefinitionFileLineEnd name="lineNumber" value="168"/>
       
   272             </cxxClassAPIItemLocation>
       
   273         </cxxClassDefinition>
       
   274         <apiDesc>
       
   275             <p>CP_class_text. A link to a method, <xref href="CP_class::CPD_function(CPD_type_1)">CP_class::CPD_function(CPD_type_1)</xref>.</p>
       
   276         </apiDesc>
       
   277     </cxxClassDetail>
       
   278     <cxxFunction id="CP_class::CPD_function(CPD_type_1)">
       
   279         <apiName>CPD_function</apiName>
       
   280         <shortdesc/>
       
   281         <cxxFunctionDetail>
       
   282             <cxxFunctionDefinition>
       
   283                 <cxxFunctionAccessSpecifier value="private"/>
       
   284                 <cxxFunctionDeclaredType>CPD_return</cxxFunctionDeclaredType>
       
   285                 <cxxFunctionScopedName>CP_class</cxxFunctionScopedName>
       
   286                 <cxxFunctionPrototype>CPD_return CPD_function(CPD_type_1 CPD_param_1)</cxxFunctionPrototype>
       
   287                 <cxxFunctionNameLookup>CP_class::CPD_function(CPD_type_1)</cxxFunctionNameLookup>
       
   288                 <cxxFunctionParameters>
       
   289                     <cxxFunctionParameter>
       
   290                         <cxxFunctionParameterDeclaredType>CPD_type_1</cxxFunctionParameterDeclaredType>
       
   291                         <cxxFunctionParameterDeclarationName>CPD_param_1</cxxFunctionParameterDeclarationName>
       
   292                         <apiDefNote>CPD_param_1_text </apiDefNote>
       
   293                     </cxxFunctionParameter>
       
   294                 </cxxFunctionParameters>
       
   295                 <cxxFunctionAPIItemLocation>
       
   296                     <cxxFunctionDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   297                     <cxxFunctionDeclarationFileLine name="lineNumber" value="33"/>
       
   298                     <cxxFunctionDefinitionFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   299                     <cxxFunctionDefinitionFileLineStart name="lineNumber" value="-1"/>
       
   300                     <cxxFunctionDefinitionFileLineEnd name="lineNumber" value="-1"/>
       
   301                 </cxxFunctionAPIItemLocation>
       
   302             </cxxFunctionDefinition>
       
   303             <apiDesc>
       
   304                 <p>CPD_function_text. CPD_return CPD_return_text </p>
       
   305             </apiDesc>
       
   306         </cxxFunctionDetail>
       
   307     </cxxFunction>
       
   308     <cxxFunction id="CP_class::CPC_function(CPC_type_1)">
       
   309         <apiName>CPC_function</apiName>
       
   310         <shortdesc/>
       
   311         <cxxFunctionDetail>
       
   312             <cxxFunctionDefinition>
       
   313                 <cxxFunctionAccessSpecifier value="private"/>
       
   314                 <cxxFunctionDeclaredType>CPC_return</cxxFunctionDeclaredType>
       
   315                 <cxxFunctionScopedName>CP_class</cxxFunctionScopedName>
       
   316                 <cxxFunctionPrototype>CPC_return CPC_function(CPC_type_1 CPC_param_1)</cxxFunctionPrototype>
       
   317                 <cxxFunctionNameLookup>CP_class::CPC_function(CPC_type_1)</cxxFunctionNameLookup>
       
   318                 <cxxFunctionParameters>
       
   319                     <cxxFunctionParameter>
       
   320                         <cxxFunctionParameterDeclaredType>CPC_type_1</cxxFunctionParameterDeclaredType>
       
   321                         <cxxFunctionParameterDeclarationName>CPC_param_1</cxxFunctionParameterDeclarationName>
       
   322                         <apiDefNote>CPC_param_1_text </apiDefNote>
       
   323                     </cxxFunctionParameter>
       
   324                 </cxxFunctionParameters>
       
   325                 <cxxFunctionAPIItemLocation>
       
   326                     <cxxFunctionDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   327                     <cxxFunctionDeclarationFileLine name="lineNumber" value="39"/>
       
   328                     <cxxFunctionDefinitionFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   329                     <cxxFunctionDefinitionFileLineStart name="lineNumber" value="-1"/>
       
   330                     <cxxFunctionDefinitionFileLineEnd name="lineNumber" value="-1"/>
       
   331                 </cxxFunctionAPIItemLocation>
       
   332             </cxxFunctionDefinition>
       
   333             <apiDesc>
       
   334                 <p>CPC_function_text. CPC_return CPC_return_text </p>
       
   335             </apiDesc>
       
   336         </cxxFunctionDetail>
       
   337     </cxxFunction>
       
   338     <cxxFunction id="CP_class::CPF_function(CPF_type_1)">
       
   339         <apiName>CPF_function</apiName>
       
   340         <shortdesc/>
       
   341         <cxxFunctionDetail>
       
   342             <cxxFunctionDefinition>
       
   343                 <cxxFunctionAccessSpecifier value="protected"/>
       
   344                 <cxxFunctionDeclaredType>CPF_return</cxxFunctionDeclaredType>
       
   345                 <cxxFunctionScopedName>CP_class</cxxFunctionScopedName>
       
   346                 <cxxFunctionPrototype>CPF_return CPF_function(CPF_type_1 CPF_param_1)</cxxFunctionPrototype>
       
   347                 <cxxFunctionNameLookup>CP_class::CPF_function(CPF_type_1)</cxxFunctionNameLookup>
       
   348                 <cxxFunctionParameters>
       
   349                     <cxxFunctionParameter>
       
   350                         <cxxFunctionParameterDeclaredType>CPF_type_1</cxxFunctionParameterDeclaredType>
       
   351                         <cxxFunctionParameterDeclarationName>CPF_param_1</cxxFunctionParameterDeclarationName>
       
   352                         <apiDefNote>CPF_param_1_text </apiDefNote>
       
   353                     </cxxFunctionParameter>
       
   354                 </cxxFunctionParameters>
       
   355                 <cxxFunctionAPIItemLocation>
       
   356                     <cxxFunctionDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   357                     <cxxFunctionDeclarationFileLine name="lineNumber" value="46"/>
       
   358                     <cxxFunctionDefinitionFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   359                     <cxxFunctionDefinitionFileLineStart name="lineNumber" value="-1"/>
       
   360                     <cxxFunctionDefinitionFileLineEnd name="lineNumber" value="-1"/>
       
   361                 </cxxFunctionAPIItemLocation>
       
   362             </cxxFunctionDefinition>
       
   363             <apiDesc>
       
   364                 <p>CPF_function_text. CPF_return CPF_return_text </p>
       
   365             </apiDesc>
       
   366         </cxxFunctionDetail>
       
   367     </cxxFunction>
       
   368     <cxxFunction id="CP_class::CPE_function(CPE_type_1)">
       
   369         <apiName>CPE_function</apiName>
       
   370         <shortdesc/>
       
   371         <cxxFunctionDetail>
       
   372             <cxxFunctionDefinition>
       
   373                 <cxxFunctionAccessSpecifier value="protected"/>
       
   374                 <cxxFunctionDeclaredType>CPE_return</cxxFunctionDeclaredType>
       
   375                 <cxxFunctionScopedName>CP_class</cxxFunctionScopedName>
       
   376                 <cxxFunctionPrototype>CPE_return CPE_function(CPE_type_1 CPE_param_1)</cxxFunctionPrototype>
       
   377                 <cxxFunctionNameLookup>CP_class::CPE_function(CPE_type_1)</cxxFunctionNameLookup>
       
   378                 <cxxFunctionParameters>
       
   379                     <cxxFunctionParameter>
       
   380                         <cxxFunctionParameterDeclaredType>CPE_type_1</cxxFunctionParameterDeclaredType>
       
   381                         <cxxFunctionParameterDeclarationName>CPE_param_1</cxxFunctionParameterDeclarationName>
       
   382                         <apiDefNote>CPE_param_1_text </apiDefNote>
       
   383                     </cxxFunctionParameter>
       
   384                 </cxxFunctionParameters>
       
   385                 <cxxFunctionAPIItemLocation>
       
   386                     <cxxFunctionDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   387                     <cxxFunctionDeclarationFileLine name="lineNumber" value="52"/>
       
   388                     <cxxFunctionDefinitionFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   389                     <cxxFunctionDefinitionFileLineStart name="lineNumber" value="-1"/>
       
   390                     <cxxFunctionDefinitionFileLineEnd name="lineNumber" value="-1"/>
       
   391                 </cxxFunctionAPIItemLocation>
       
   392             </cxxFunctionDefinition>
       
   393             <apiDesc>
       
   394                 <p>CPE_function_text. CPE_return CPE_return_text </p>
       
   395             </apiDesc>
       
   396         </cxxFunctionDetail>
       
   397     </cxxFunction>
       
   398     <cxxFunction id="CP_class::CPB_function(CPB_type_1)">
       
   399         <apiName>CPB_function</apiName>
       
   400         <shortdesc/>
       
   401         <cxxFunctionDetail>
       
   402             <cxxFunctionDefinition>
       
   403                 <cxxFunctionAccessSpecifier value="public"/>
       
   404                 <cxxFunctionDeclaredType>CPB_return</cxxFunctionDeclaredType>
       
   405                 <cxxFunctionScopedName>CP_class</cxxFunctionScopedName>
       
   406                 <cxxFunctionPrototype>CPB_return CPB_function(CPB_type_1 CPB_param_1)</cxxFunctionPrototype>
       
   407                 <cxxFunctionNameLookup>CP_class::CPB_function(CPB_type_1)</cxxFunctionNameLookup>
       
   408                 <cxxFunctionParameters>
       
   409                     <cxxFunctionParameter>
       
   410                         <cxxFunctionParameterDeclaredType>CPB_type_1</cxxFunctionParameterDeclaredType>
       
   411                         <cxxFunctionParameterDeclarationName>CPB_param_1</cxxFunctionParameterDeclarationName>
       
   412                         <apiDefNote>CPB_param_1_text </apiDefNote>
       
   413                     </cxxFunctionParameter>
       
   414                 </cxxFunctionParameters>
       
   415                 <cxxFunctionAPIItemLocation>
       
   416                     <cxxFunctionDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   417                     <cxxFunctionDeclarationFileLine name="lineNumber" value="59"/>
       
   418                     <cxxFunctionDefinitionFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   419                     <cxxFunctionDefinitionFileLineStart name="lineNumber" value="-1"/>
       
   420                     <cxxFunctionDefinitionFileLineEnd name="lineNumber" value="-1"/>
       
   421                 </cxxFunctionAPIItemLocation>
       
   422             </cxxFunctionDefinition>
       
   423             <apiDesc>
       
   424                 <p>CPB_function_text. CPB_return CPB_return_text </p>
       
   425             </apiDesc>
       
   426         </cxxFunctionDetail>
       
   427     </cxxFunction>
       
   428     <cxxFunction id="CP_class::CPA_function(CPA_type_1)">
       
   429         <apiName>CPA_function</apiName>
       
   430         <shortdesc/>
       
   431         <cxxFunctionDetail>
       
   432             <cxxFunctionDefinition>
       
   433                 <cxxFunctionAccessSpecifier value="public"/>
       
   434                 <cxxFunctionDeclaredType>CPA_return</cxxFunctionDeclaredType>
       
   435                 <cxxFunctionScopedName>CP_class</cxxFunctionScopedName>
       
   436                 <cxxFunctionPrototype>CPA_return CPA_function(CPA_type_1 CPA_param_1)</cxxFunctionPrototype>
       
   437                 <cxxFunctionNameLookup>CP_class::CPA_function(CPA_type_1)</cxxFunctionNameLookup>
       
   438                 <cxxFunctionParameters>
       
   439                     <cxxFunctionParameter>
       
   440                         <cxxFunctionParameterDeclaredType>CPA_type_1</cxxFunctionParameterDeclaredType>
       
   441                         <cxxFunctionParameterDeclarationName>CPA_param_1</cxxFunctionParameterDeclarationName>
       
   442                         <apiDefNote>CPA_param_1_text </apiDefNote>
       
   443                     </cxxFunctionParameter>
       
   444                 </cxxFunctionParameters>
       
   445                 <cxxFunctionAPIItemLocation>
       
   446                     <cxxFunctionDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   447                     <cxxFunctionDeclarationFileLine name="lineNumber" value="65"/>
       
   448                     <cxxFunctionDefinitionFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   449                     <cxxFunctionDefinitionFileLineStart name="lineNumber" value="-1"/>
       
   450                     <cxxFunctionDefinitionFileLineEnd name="lineNumber" value="-1"/>
       
   451                 </cxxFunctionAPIItemLocation>
       
   452             </cxxFunctionDefinition>
       
   453             <apiDesc>
       
   454                 <p>CPA_function_text. CPA_return CPA_return_text </p>
       
   455             </apiDesc>
       
   456         </cxxFunctionDetail>
       
   457     </cxxFunction>
       
   458     <cxxFunction id="CP_class::CPH_function(CPH_type_1)">
       
   459         <apiName>CPH_function</apiName>
       
   460         <shortdesc/>
       
   461         <cxxFunctionDetail>
       
   462             <cxxFunctionDefinition>
       
   463                 <cxxFunctionAccessSpecifier value="protected"/>
       
   464                 <cxxFunctionStorageClassSpecifierStatic/>
       
   465                 <cxxFunctionDeclaredType>CPH_return</cxxFunctionDeclaredType>
       
   466                 <cxxFunctionScopedName>CP_class</cxxFunctionScopedName>
       
   467                 <cxxFunctionPrototype>static CPH_return CPH_function(CPH_type_1 CPH_param_1)</cxxFunctionPrototype>
       
   468                 <cxxFunctionNameLookup>CP_class::CPH_function(CPH_type_1)</cxxFunctionNameLookup>
       
   469                 <cxxFunctionParameters>
       
   470                     <cxxFunctionParameter>
       
   471                         <cxxFunctionParameterDeclaredType>CPH_type_1</cxxFunctionParameterDeclaredType>
       
   472                         <cxxFunctionParameterDeclarationName>CPH_param_1</cxxFunctionParameterDeclarationName>
       
   473                         <apiDefNote>CPH_param_1_text </apiDefNote>
       
   474                     </cxxFunctionParameter>
       
   475                 </cxxFunctionParameters>
       
   476                 <cxxFunctionAPIItemLocation>
       
   477                     <cxxFunctionDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   478                     <cxxFunctionDeclarationFileLine name="lineNumber" value="76"/>
       
   479                     <cxxFunctionDefinitionFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   480                     <cxxFunctionDefinitionFileLineStart name="lineNumber" value="-1"/>
       
   481                     <cxxFunctionDefinitionFileLineEnd name="lineNumber" value="-1"/>
       
   482                 </cxxFunctionAPIItemLocation>
       
   483             </cxxFunctionDefinition>
       
   484             <apiDesc>
       
   485                 <p>CPH_function_text. CPH_return CPH_return_text </p>
       
   486             </apiDesc>
       
   487         </cxxFunctionDetail>
       
   488     </cxxFunction>
       
   489     <cxxFunction id="CP_class::CPG_function(CPG_type_1)">
       
   490         <apiName>CPG_function</apiName>
       
   491         <shortdesc/>
       
   492         <cxxFunctionDetail>
       
   493             <cxxFunctionDefinition>
       
   494                 <cxxFunctionAccessSpecifier value="protected"/>
       
   495                 <cxxFunctionStorageClassSpecifierStatic/>
       
   496                 <cxxFunctionDeclaredType>CPG_return</cxxFunctionDeclaredType>
       
   497                 <cxxFunctionScopedName>CP_class</cxxFunctionScopedName>
       
   498                 <cxxFunctionPrototype>static CPG_return CPG_function(CPG_type_1 CPG_param_1)</cxxFunctionPrototype>
       
   499                 <cxxFunctionNameLookup>CP_class::CPG_function(CPG_type_1)</cxxFunctionNameLookup>
       
   500                 <cxxFunctionParameters>
       
   501                     <cxxFunctionParameter>
       
   502                         <cxxFunctionParameterDeclaredType>CPG_type_1</cxxFunctionParameterDeclaredType>
       
   503                         <cxxFunctionParameterDeclarationName>CPG_param_1</cxxFunctionParameterDeclarationName>
       
   504                         <apiDefNote>CPG_param_1_text </apiDefNote>
       
   505                     </cxxFunctionParameter>
       
   506                 </cxxFunctionParameters>
       
   507                 <cxxFunctionAPIItemLocation>
       
   508                     <cxxFunctionDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   509                     <cxxFunctionDeclarationFileLine name="lineNumber" value="82"/>
       
   510                     <cxxFunctionDefinitionFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   511                     <cxxFunctionDefinitionFileLineStart name="lineNumber" value="-1"/>
       
   512                     <cxxFunctionDefinitionFileLineEnd name="lineNumber" value="-1"/>
       
   513                 </cxxFunctionAPIItemLocation>
       
   514             </cxxFunctionDefinition>
       
   515             <apiDesc>
       
   516                 <p>CPG_function_text. CPG_return CPG_return_text </p>
       
   517             </apiDesc>
       
   518         </cxxFunctionDetail>
       
   519     </cxxFunction>
       
   520     <cxxFunction id="CP_class::CPJ_function(CPJ_type_1)">
       
   521         <apiName>CPJ_function</apiName>
       
   522         <shortdesc/>
       
   523         <cxxFunctionDetail>
       
   524             <cxxFunctionDefinition>
       
   525                 <cxxFunctionAccessSpecifier value="private"/>
       
   526                 <cxxFunctionStorageClassSpecifierStatic/>
       
   527                 <cxxFunctionDeclaredType>CPJ_return</cxxFunctionDeclaredType>
       
   528                 <cxxFunctionScopedName>CP_class</cxxFunctionScopedName>
       
   529                 <cxxFunctionPrototype>static CPJ_return CPJ_function(CPJ_type_1 CPJ_param_1)</cxxFunctionPrototype>
       
   530                 <cxxFunctionNameLookup>CP_class::CPJ_function(CPJ_type_1)</cxxFunctionNameLookup>
       
   531                 <cxxFunctionParameters>
       
   532                     <cxxFunctionParameter>
       
   533                         <cxxFunctionParameterDeclaredType>CPJ_type_1</cxxFunctionParameterDeclaredType>
       
   534                         <cxxFunctionParameterDeclarationName>CPJ_param_1</cxxFunctionParameterDeclarationName>
       
   535                         <apiDefNote>CPJ_param_1_text </apiDefNote>
       
   536                     </cxxFunctionParameter>
       
   537                 </cxxFunctionParameters>
       
   538                 <cxxFunctionAPIItemLocation>
       
   539                     <cxxFunctionDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   540                     <cxxFunctionDeclarationFileLine name="lineNumber" value="89"/>
       
   541                     <cxxFunctionDefinitionFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   542                     <cxxFunctionDefinitionFileLineStart name="lineNumber" value="-1"/>
       
   543                     <cxxFunctionDefinitionFileLineEnd name="lineNumber" value="-1"/>
       
   544                 </cxxFunctionAPIItemLocation>
       
   545             </cxxFunctionDefinition>
       
   546             <apiDesc>
       
   547                 <p>CPJ_function_text. CPJ_return CPJ_return_text </p>
       
   548             </apiDesc>
       
   549         </cxxFunctionDetail>
       
   550     </cxxFunction>
       
   551     <cxxFunction id="CP_class::CPI_function(CPI_type_1)">
       
   552         <apiName>CPI_function</apiName>
       
   553         <shortdesc/>
       
   554         <cxxFunctionDetail>
       
   555             <cxxFunctionDefinition>
       
   556                 <cxxFunctionAccessSpecifier value="private"/>
       
   557                 <cxxFunctionStorageClassSpecifierStatic/>
       
   558                 <cxxFunctionDeclaredType>CPI_return</cxxFunctionDeclaredType>
       
   559                 <cxxFunctionScopedName>CP_class</cxxFunctionScopedName>
       
   560                 <cxxFunctionPrototype>static CPI_return CPI_function(CPI_type_1 CPI_param_1)</cxxFunctionPrototype>
       
   561                 <cxxFunctionNameLookup>CP_class::CPI_function(CPI_type_1)</cxxFunctionNameLookup>
       
   562                 <cxxFunctionParameters>
       
   563                     <cxxFunctionParameter>
       
   564                         <cxxFunctionParameterDeclaredType>CPI_type_1</cxxFunctionParameterDeclaredType>
       
   565                         <cxxFunctionParameterDeclarationName>CPI_param_1</cxxFunctionParameterDeclarationName>
       
   566                         <apiDefNote>CPI_param_1_text </apiDefNote>
       
   567                     </cxxFunctionParameter>
       
   568                 </cxxFunctionParameters>
       
   569                 <cxxFunctionAPIItemLocation>
       
   570                     <cxxFunctionDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   571                     <cxxFunctionDeclarationFileLine name="lineNumber" value="95"/>
       
   572                     <cxxFunctionDefinitionFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   573                     <cxxFunctionDefinitionFileLineStart name="lineNumber" value="-1"/>
       
   574                     <cxxFunctionDefinitionFileLineEnd name="lineNumber" value="-1"/>
       
   575                 </cxxFunctionAPIItemLocation>
       
   576             </cxxFunctionDefinition>
       
   577             <apiDesc>
       
   578                 <p>CPI_function_text. CPI_return CPI_return_text </p>
       
   579             </apiDesc>
       
   580         </cxxFunctionDetail>
       
   581     </cxxFunction>
       
   582     <cxxFunction id="CP_class::CPL_function(CPL_type_1)">
       
   583         <apiName>CPL_function</apiName>
       
   584         <shortdesc/>
       
   585         <cxxFunctionDetail>
       
   586             <cxxFunctionDefinition>
       
   587                 <cxxFunctionAccessSpecifier value="public"/>
       
   588                 <cxxFunctionStorageClassSpecifierStatic/>
       
   589                 <cxxFunctionDeclaredType>CPL_return</cxxFunctionDeclaredType>
       
   590                 <cxxFunctionScopedName>CP_class</cxxFunctionScopedName>
       
   591                 <cxxFunctionPrototype>static CPL_return CPL_function(CPL_type_1 CPL_param_1)</cxxFunctionPrototype>
       
   592                 <cxxFunctionNameLookup>CP_class::CPL_function(CPL_type_1)</cxxFunctionNameLookup>
       
   593                 <cxxFunctionParameters>
       
   594                     <cxxFunctionParameter>
       
   595                         <cxxFunctionParameterDeclaredType>CPL_type_1</cxxFunctionParameterDeclaredType>
       
   596                         <cxxFunctionParameterDeclarationName>CPL_param_1</cxxFunctionParameterDeclarationName>
       
   597                         <apiDefNote>CPL_param_1_text </apiDefNote>
       
   598                     </cxxFunctionParameter>
       
   599                 </cxxFunctionParameters>
       
   600                 <cxxFunctionAPIItemLocation>
       
   601                     <cxxFunctionDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   602                     <cxxFunctionDeclarationFileLine name="lineNumber" value="102"/>
       
   603                     <cxxFunctionDefinitionFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   604                     <cxxFunctionDefinitionFileLineStart name="lineNumber" value="-1"/>
       
   605                     <cxxFunctionDefinitionFileLineEnd name="lineNumber" value="-1"/>
       
   606                 </cxxFunctionAPIItemLocation>
       
   607             </cxxFunctionDefinition>
       
   608             <apiDesc>
       
   609                 <p>CPL_function_text. CPL_return CPL_return_text </p>
       
   610             </apiDesc>
       
   611         </cxxFunctionDetail>
       
   612     </cxxFunction>
       
   613     <cxxFunction id="CP_class::CPK_function(CPK_type_1)">
       
   614         <apiName>CPK_function</apiName>
       
   615         <shortdesc/>
       
   616         <cxxFunctionDetail>
       
   617             <cxxFunctionDefinition>
       
   618                 <cxxFunctionAccessSpecifier value="public"/>
       
   619                 <cxxFunctionStorageClassSpecifierStatic/>
       
   620                 <cxxFunctionDeclaredType>CPK_return</cxxFunctionDeclaredType>
       
   621                 <cxxFunctionScopedName>CP_class</cxxFunctionScopedName>
       
   622                 <cxxFunctionPrototype>static CPK_return CPK_function(CPK_type_1 CPK_param_1)</cxxFunctionPrototype>
       
   623                 <cxxFunctionNameLookup>CP_class::CPK_function(CPK_type_1)</cxxFunctionNameLookup>
       
   624                 <cxxFunctionParameters>
       
   625                     <cxxFunctionParameter>
       
   626                         <cxxFunctionParameterDeclaredType>CPK_type_1</cxxFunctionParameterDeclaredType>
       
   627                         <cxxFunctionParameterDeclarationName>CPK_param_1</cxxFunctionParameterDeclarationName>
       
   628                         <apiDefNote>CPK_param_1_text </apiDefNote>
       
   629                     </cxxFunctionParameter>
       
   630                 </cxxFunctionParameters>
       
   631                 <cxxFunctionAPIItemLocation>
       
   632                     <cxxFunctionDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   633                     <cxxFunctionDeclarationFileLine name="lineNumber" value="108"/>
       
   634                     <cxxFunctionDefinitionFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   635                     <cxxFunctionDefinitionFileLineStart name="lineNumber" value="-1"/>
       
   636                     <cxxFunctionDefinitionFileLineEnd name="lineNumber" value="-1"/>
       
   637                 </cxxFunctionAPIItemLocation>
       
   638             </cxxFunctionDefinition>
       
   639             <apiDesc>
       
   640                 <p>CPK_function_text. CPK_return CPK_return_text </p>
       
   641             </apiDesc>
       
   642         </cxxFunctionDetail>
       
   643     </cxxFunction>
       
   644     <cxxVariable id="CP_class::CPN_name">
       
   645         <apiName>CPN_name</apiName>
       
   646         <shortdesc/>
       
   647         <cxxVariableDetail>
       
   648             <cxxVariableDefinition>
       
   649                 <cxxVariableAccessSpecifier value="public"/>
       
   650                 <cxxVariableDeclaredType>CPN_type</cxxVariableDeclaredType>
       
   651                 <cxxVariableScopedName>CP_class</cxxVariableScopedName>
       
   652                 <cxxVariablePrototype>CPN_type CPN_name</cxxVariablePrototype>
       
   653                 <cxxVariableNameLookup>CP_class::CPN_name</cxxVariableNameLookup>
       
   654                 <cxxVariableAPIItemLocation>
       
   655                     <cxxVariableDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   656                     <cxxVariableDeclarationFileLine name="lineNumber" value="114"/>
       
   657                 </cxxVariableAPIItemLocation>
       
   658             </cxxVariableDefinition>
       
   659             <apiDesc>
       
   660                 <p>CPN_text </p>
       
   661             </apiDesc>
       
   662         </cxxVariableDetail>
       
   663     </cxxVariable>
       
   664     <cxxVariable id="CP_class::CPM_name">
       
   665         <apiName>CPM_name</apiName>
       
   666         <shortdesc/>
       
   667         <cxxVariableDetail>
       
   668             <cxxVariableDefinition>
       
   669                 <cxxVariableAccessSpecifier value="public"/>
       
   670                 <cxxVariableDeclaredType>CPM_type</cxxVariableDeclaredType>
       
   671                 <cxxVariableScopedName>CP_class</cxxVariableScopedName>
       
   672                 <cxxVariablePrototype>CPM_type CPM_name</cxxVariablePrototype>
       
   673                 <cxxVariableNameLookup>CP_class::CPM_name</cxxVariableNameLookup>
       
   674                 <cxxVariableAPIItemLocation>
       
   675                     <cxxVariableDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   676                     <cxxVariableDeclarationFileLine name="lineNumber" value="116"/>
       
   677                 </cxxVariableAPIItemLocation>
       
   678             </cxxVariableDefinition>
       
   679             <apiDesc>
       
   680                 <p>CPM_text </p>
       
   681             </apiDesc>
       
   682         </cxxVariableDetail>
       
   683     </cxxVariable>
       
   684     <cxxVariable id="CP_class::CPP_name">
       
   685         <apiName>CPP_name</apiName>
       
   686         <shortdesc/>
       
   687         <cxxVariableDetail>
       
   688             <cxxVariableDefinition>
       
   689                 <cxxVariableAccessSpecifier value="protected"/>
       
   690                 <cxxVariableDeclaredType>CPP_type</cxxVariableDeclaredType>
       
   691                 <cxxVariableScopedName>CP_class</cxxVariableScopedName>
       
   692                 <cxxVariablePrototype>CPP_type CPP_name</cxxVariablePrototype>
       
   693                 <cxxVariableNameLookup>CP_class::CPP_name</cxxVariableNameLookup>
       
   694                 <cxxVariableAPIItemLocation>
       
   695                     <cxxVariableDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   696                     <cxxVariableDeclarationFileLine name="lineNumber" value="119"/>
       
   697                 </cxxVariableAPIItemLocation>
       
   698             </cxxVariableDefinition>
       
   699             <apiDesc>
       
   700                 <p>CPP_text </p>
       
   701             </apiDesc>
       
   702         </cxxVariableDetail>
       
   703     </cxxVariable>
       
   704     <cxxVariable id="CP_class::CPO_name">
       
   705         <apiName>CPO_name</apiName>
       
   706         <shortdesc/>
       
   707         <cxxVariableDetail>
       
   708             <cxxVariableDefinition>
       
   709                 <cxxVariableAccessSpecifier value="protected"/>
       
   710                 <cxxVariableDeclaredType>CPO_type</cxxVariableDeclaredType>
       
   711                 <cxxVariableScopedName>CP_class</cxxVariableScopedName>
       
   712                 <cxxVariablePrototype>CPO_type CPO_name</cxxVariablePrototype>
       
   713                 <cxxVariableNameLookup>CP_class::CPO_name</cxxVariableNameLookup>
       
   714                 <cxxVariableAPIItemLocation>
       
   715                     <cxxVariableDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   716                     <cxxVariableDeclarationFileLine name="lineNumber" value="121"/>
       
   717                 </cxxVariableAPIItemLocation>
       
   718             </cxxVariableDefinition>
       
   719             <apiDesc>
       
   720                 <p>CPO_text </p>
       
   721             </apiDesc>
       
   722         </cxxVariableDetail>
       
   723     </cxxVariable>
       
   724     <cxxVariable id="CP_class::CPR_name">
       
   725         <apiName>CPR_name</apiName>
       
   726         <shortdesc/>
       
   727         <cxxVariableDetail>
       
   728             <cxxVariableDefinition>
       
   729                 <cxxVariableAccessSpecifier value="private"/>
       
   730                 <cxxVariableDeclaredType>CPR_type</cxxVariableDeclaredType>
       
   731                 <cxxVariableScopedName>CP_class</cxxVariableScopedName>
       
   732                 <cxxVariablePrototype>CPR_type CPR_name</cxxVariablePrototype>
       
   733                 <cxxVariableNameLookup>CP_class::CPR_name</cxxVariableNameLookup>
       
   734                 <cxxVariableAPIItemLocation>
       
   735                     <cxxVariableDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   736                     <cxxVariableDeclarationFileLine name="lineNumber" value="124"/>
       
   737                 </cxxVariableAPIItemLocation>
       
   738             </cxxVariableDefinition>
       
   739             <apiDesc>
       
   740                 <p>CPR_text </p>
       
   741             </apiDesc>
       
   742         </cxxVariableDetail>
       
   743     </cxxVariable>
       
   744     <cxxVariable id="CP_class::CPQ_name">
       
   745         <apiName>CPQ_name</apiName>
       
   746         <shortdesc/>
       
   747         <cxxVariableDetail>
       
   748             <cxxVariableDefinition>
       
   749                 <cxxVariableAccessSpecifier value="private"/>
       
   750                 <cxxVariableDeclaredType>CPQ_type</cxxVariableDeclaredType>
       
   751                 <cxxVariableScopedName>CP_class</cxxVariableScopedName>
       
   752                 <cxxVariablePrototype>CPQ_type CPQ_name</cxxVariablePrototype>
       
   753                 <cxxVariableNameLookup>CP_class::CPQ_name</cxxVariableNameLookup>
       
   754                 <cxxVariableAPIItemLocation>
       
   755                     <cxxVariableDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   756                     <cxxVariableDeclarationFileLine name="lineNumber" value="126"/>
       
   757                 </cxxVariableAPIItemLocation>
       
   758             </cxxVariableDefinition>
       
   759             <apiDesc>
       
   760                 <p>CPQ_text </p>
       
   761             </apiDesc>
       
   762         </cxxVariableDetail>
       
   763     </cxxVariable>
       
   764     <cxxVariable id="CP_class::CPX_name">
       
   765         <apiName>CPX_name</apiName>
       
   766         <shortdesc/>
       
   767         <cxxVariableDetail>
       
   768             <cxxVariableDefinition>
       
   769                 <cxxVariableAccessSpecifier value="private"/>
       
   770                 <cxxVariableStorageClassSpecifierStatic/>
       
   771                 <cxxVariableDeclaredType>CPX_type</cxxVariableDeclaredType>
       
   772                 <cxxVariableScopedName>CP_class</cxxVariableScopedName>
       
   773                 <cxxVariablePrototype>static CPX_type CPX_name</cxxVariablePrototype>
       
   774                 <cxxVariableNameLookup>CP_class::CPX_name</cxxVariableNameLookup>
       
   775                 <cxxVariableAPIItemLocation>
       
   776                     <cxxVariableDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   777                     <cxxVariableDeclarationFileLine name="lineNumber" value="132"/>
       
   778                 </cxxVariableAPIItemLocation>
       
   779             </cxxVariableDefinition>
       
   780             <apiDesc>
       
   781                 <p>CPX_text </p>
       
   782             </apiDesc>
       
   783         </cxxVariableDetail>
       
   784     </cxxVariable>
       
   785     <cxxVariable id="CP_class::CPW_name">
       
   786         <apiName>CPW_name</apiName>
       
   787         <shortdesc/>
       
   788         <cxxVariableDetail>
       
   789             <cxxVariableDefinition>
       
   790                 <cxxVariableAccessSpecifier value="private"/>
       
   791                 <cxxVariableStorageClassSpecifierStatic/>
       
   792                 <cxxVariableDeclaredType>CPW_type</cxxVariableDeclaredType>
       
   793                 <cxxVariableScopedName>CP_class</cxxVariableScopedName>
       
   794                 <cxxVariablePrototype>static CPW_type CPW_name</cxxVariablePrototype>
       
   795                 <cxxVariableNameLookup>CP_class::CPW_name</cxxVariableNameLookup>
       
   796                 <cxxVariableAPIItemLocation>
       
   797                     <cxxVariableDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   798                     <cxxVariableDeclarationFileLine name="lineNumber" value="134"/>
       
   799                 </cxxVariableAPIItemLocation>
       
   800             </cxxVariableDefinition>
       
   801             <apiDesc>
       
   802                 <p>CPW_text </p>
       
   803             </apiDesc>
       
   804         </cxxVariableDetail>
       
   805     </cxxVariable>
       
   806     <cxxVariable id="CP_class::CPV_name">
       
   807         <apiName>CPV_name</apiName>
       
   808         <shortdesc/>
       
   809         <cxxVariableDetail>
       
   810             <cxxVariableDefinition>
       
   811                 <cxxVariableAccessSpecifier value="protected"/>
       
   812                 <cxxVariableStorageClassSpecifierStatic/>
       
   813                 <cxxVariableDeclaredType>CPV_type</cxxVariableDeclaredType>
       
   814                 <cxxVariableScopedName>CP_class</cxxVariableScopedName>
       
   815                 <cxxVariablePrototype>static CPV_type CPV_name</cxxVariablePrototype>
       
   816                 <cxxVariableNameLookup>CP_class::CPV_name</cxxVariableNameLookup>
       
   817                 <cxxVariableAPIItemLocation>
       
   818                     <cxxVariableDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   819                     <cxxVariableDeclarationFileLine name="lineNumber" value="137"/>
       
   820                 </cxxVariableAPIItemLocation>
       
   821             </cxxVariableDefinition>
       
   822             <apiDesc>
       
   823                 <p>CPV_text </p>
       
   824             </apiDesc>
       
   825         </cxxVariableDetail>
       
   826     </cxxVariable>
       
   827     <cxxVariable id="CP_class::CPU_name">
       
   828         <apiName>CPU_name</apiName>
       
   829         <shortdesc/>
       
   830         <cxxVariableDetail>
       
   831             <cxxVariableDefinition>
       
   832                 <cxxVariableAccessSpecifier value="protected"/>
       
   833                 <cxxVariableStorageClassSpecifierStatic/>
       
   834                 <cxxVariableDeclaredType>CPU_type</cxxVariableDeclaredType>
       
   835                 <cxxVariableScopedName>CP_class</cxxVariableScopedName>
       
   836                 <cxxVariablePrototype>static CPU_type CPU_name</cxxVariablePrototype>
       
   837                 <cxxVariableNameLookup>CP_class::CPU_name</cxxVariableNameLookup>
       
   838                 <cxxVariableAPIItemLocation>
       
   839                     <cxxVariableDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   840                     <cxxVariableDeclarationFileLine name="lineNumber" value="139"/>
       
   841                 </cxxVariableAPIItemLocation>
       
   842             </cxxVariableDefinition>
       
   843             <apiDesc>
       
   844                 <p>CPU_text </p>
       
   845             </apiDesc>
       
   846         </cxxVariableDetail>
       
   847     </cxxVariable>
       
   848     <cxxVariable id="CP_class::CPT_name">
       
   849         <apiName>CPT_name</apiName>
       
   850         <shortdesc/>
       
   851         <cxxVariableDetail>
       
   852             <cxxVariableDefinition>
       
   853                 <cxxVariableAccessSpecifier value="public"/>
       
   854                 <cxxVariableStorageClassSpecifierStatic/>
       
   855                 <cxxVariableDeclaredType>CPT_type</cxxVariableDeclaredType>
       
   856                 <cxxVariableScopedName>CP_class</cxxVariableScopedName>
       
   857                 <cxxVariablePrototype>static CPT_type CPT_name</cxxVariablePrototype>
       
   858                 <cxxVariableNameLookup>CP_class::CPT_name</cxxVariableNameLookup>
       
   859                 <cxxVariableAPIItemLocation>
       
   860                     <cxxVariableDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   861                     <cxxVariableDeclarationFileLine name="lineNumber" value="142"/>
       
   862                 </cxxVariableAPIItemLocation>
       
   863             </cxxVariableDefinition>
       
   864             <apiDesc>
       
   865                 <p>CPT_text </p>
       
   866             </apiDesc>
       
   867         </cxxVariableDetail>
       
   868     </cxxVariable>
       
   869     <cxxVariable id="CP_class::CPS_name">
       
   870         <apiName>CPS_name</apiName>
       
   871         <shortdesc/>
       
   872         <cxxVariableDetail>
       
   873             <cxxVariableDefinition>
       
   874                 <cxxVariableAccessSpecifier value="public"/>
       
   875                 <cxxVariableStorageClassSpecifierStatic/>
       
   876                 <cxxVariableDeclaredType>CPS_type</cxxVariableDeclaredType>
       
   877                 <cxxVariableScopedName>CP_class</cxxVariableScopedName>
       
   878                 <cxxVariablePrototype>static CPS_type CPS_name</cxxVariablePrototype>
       
   879                 <cxxVariableNameLookup>CP_class::CPS_name</cxxVariableNameLookup>
       
   880                 <cxxVariableAPIItemLocation>
       
   881                     <cxxVariableDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   882                     <cxxVariableDeclarationFileLine name="lineNumber" value="144"/>
       
   883                 </cxxVariableAPIItemLocation>
       
   884             </cxxVariableDefinition>
       
   885             <apiDesc>
       
   886                 <p>CPS_text </p>
       
   887             </apiDesc>
       
   888         </cxxVariableDetail>
       
   889     </cxxVariable>
       
   890     <cxxTypedef id="CP_class::CPb_type_alias">
       
   891         <apiName>CPb_type_alias</apiName>
       
   892         <shortdesc/>
       
   893         <cxxTypedefDetail>
       
   894             <cxxTypedefDefinition>
       
   895                 <cxxTypedefAccessSpecifier value="public"/>
       
   896                 <cxxTypedefDeclaredType>CPb_typedef</cxxTypedefDeclaredType>
       
   897                 <cxxTypedefScopedName>CP_class</cxxTypedefScopedName>
       
   898                 <cxxTypedefPrototype>CPb_typedef CPb_type_alias</cxxTypedefPrototype>
       
   899                 <cxxTypedefNameLookup>CP_class::CPb_type_alias</cxxTypedefNameLookup>
       
   900                 <cxxTypedefAPIItemLocation>
       
   901                     <cxxTypedefDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   902                     <cxxTypedefDeclarationFileLine name="lineNumber" value="150"/>
       
   903                 </cxxTypedefAPIItemLocation>
       
   904             </cxxTypedefDefinition>
       
   905             <apiDesc>
       
   906                 <p>CPb_text </p>
       
   907             </apiDesc>
       
   908         </cxxTypedefDetail>
       
   909     </cxxTypedef>
       
   910     <cxxTypedef id="CP_class::CPa_type_alias">
       
   911         <apiName>CPa_type_alias</apiName>
       
   912         <shortdesc/>
       
   913         <cxxTypedefDetail>
       
   914             <cxxTypedefDefinition>
       
   915                 <cxxTypedefAccessSpecifier value="public"/>
       
   916                 <cxxTypedefDeclaredType>CPa_typedef</cxxTypedefDeclaredType>
       
   917                 <cxxTypedefScopedName>CP_class</cxxTypedefScopedName>
       
   918                 <cxxTypedefPrototype>CPa_typedef CPa_type_alias</cxxTypedefPrototype>
       
   919                 <cxxTypedefNameLookup>CP_class::CPa_type_alias</cxxTypedefNameLookup>
       
   920                 <cxxTypedefAPIItemLocation>
       
   921                     <cxxTypedefDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   922                     <cxxTypedefDeclarationFileLine name="lineNumber" value="152"/>
       
   923                 </cxxTypedefAPIItemLocation>
       
   924             </cxxTypedefDefinition>
       
   925             <apiDesc>
       
   926                 <p>CPa_text </p>
       
   927             </apiDesc>
       
   928         </cxxTypedefDetail>
       
   929     </cxxTypedef>
       
   930     <cxxTypedef id="CP_class::CPd_type_alias">
       
   931         <apiName>CPd_type_alias</apiName>
       
   932         <shortdesc/>
       
   933         <cxxTypedefDetail>
       
   934             <cxxTypedefDefinition>
       
   935                 <cxxTypedefAccessSpecifier value="private"/>
       
   936                 <cxxTypedefDeclaredType>CPd_typedef</cxxTypedefDeclaredType>
       
   937                 <cxxTypedefScopedName>CP_class</cxxTypedefScopedName>
       
   938                 <cxxTypedefPrototype>CPd_typedef CPd_type_alias</cxxTypedefPrototype>
       
   939                 <cxxTypedefNameLookup>CP_class::CPd_type_alias</cxxTypedefNameLookup>
       
   940                 <cxxTypedefAPIItemLocation>
       
   941                     <cxxTypedefDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   942                     <cxxTypedefDeclarationFileLine name="lineNumber" value="155"/>
       
   943                 </cxxTypedefAPIItemLocation>
       
   944             </cxxTypedefDefinition>
       
   945             <apiDesc>
       
   946                 <p>CPd_text </p>
       
   947             </apiDesc>
       
   948         </cxxTypedefDetail>
       
   949     </cxxTypedef>
       
   950     <cxxTypedef id="CP_class::CPc_type_alias">
       
   951         <apiName>CPc_type_alias</apiName>
       
   952         <shortdesc/>
       
   953         <cxxTypedefDetail>
       
   954             <cxxTypedefDefinition>
       
   955                 <cxxTypedefAccessSpecifier value="private"/>
       
   956                 <cxxTypedefDeclaredType>CPc_typedef</cxxTypedefDeclaredType>
       
   957                 <cxxTypedefScopedName>CP_class</cxxTypedefScopedName>
       
   958                 <cxxTypedefPrototype>CPc_typedef CPc_type_alias</cxxTypedefPrototype>
       
   959                 <cxxTypedefNameLookup>CP_class::CPc_type_alias</cxxTypedefNameLookup>
       
   960                 <cxxTypedefAPIItemLocation>
       
   961                     <cxxTypedefDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   962                     <cxxTypedefDeclarationFileLine name="lineNumber" value="157"/>
       
   963                 </cxxTypedefAPIItemLocation>
       
   964             </cxxTypedefDefinition>
       
   965             <apiDesc>
       
   966                 <p>CPc_text </p>
       
   967             </apiDesc>
       
   968         </cxxTypedefDetail>
       
   969     </cxxTypedef>
       
   970     <cxxTypedef id="CP_class::CPf_type_alias">
       
   971         <apiName>CPf_type_alias</apiName>
       
   972         <shortdesc/>
       
   973         <cxxTypedefDetail>
       
   974             <cxxTypedefDefinition>
       
   975                 <cxxTypedefAccessSpecifier value="protected"/>
       
   976                 <cxxTypedefDeclaredType>CPf_typedef</cxxTypedefDeclaredType>
       
   977                 <cxxTypedefScopedName>CP_class</cxxTypedefScopedName>
       
   978                 <cxxTypedefPrototype>CPf_typedef CPf_type_alias</cxxTypedefPrototype>
       
   979                 <cxxTypedefNameLookup>CP_class::CPf_type_alias</cxxTypedefNameLookup>
       
   980                 <cxxTypedefAPIItemLocation>
       
   981                     <cxxTypedefDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
   982                     <cxxTypedefDeclarationFileLine name="lineNumber" value="160"/>
       
   983                 </cxxTypedefAPIItemLocation>
       
   984             </cxxTypedefDefinition>
       
   985             <apiDesc>
       
   986                 <p>CPf_text </p>
       
   987             </apiDesc>
       
   988         </cxxTypedefDetail>
       
   989     </cxxTypedef>
       
   990     <cxxTypedef id="CP_class::CPe_type_alias">
       
   991         <apiName>CPe_type_alias</apiName>
       
   992         <shortdesc/>
       
   993         <cxxTypedefDetail>
       
   994             <cxxTypedefDefinition>
       
   995                 <cxxTypedefAccessSpecifier value="protected"/>
       
   996                 <cxxTypedefDeclaredType>CPe_typedef</cxxTypedefDeclaredType>
       
   997                 <cxxTypedefScopedName>CP_class</cxxTypedefScopedName>
       
   998                 <cxxTypedefPrototype>CPe_typedef CPe_type_alias</cxxTypedefPrototype>
       
   999                 <cxxTypedefNameLookup>CP_class::CPe_type_alias</cxxTypedefNameLookup>
       
  1000                 <cxxTypedefAPIItemLocation>
       
  1001                     <cxxTypedefDeclarationFile name="filePath" value="C:/p4work/EPOC/DV3/team/2005/sysdoc/tools/Doxygen/branches/DITA/test/CXX/daft/structure/classes/src/CP.h"/>
       
  1002                     <cxxTypedefDeclarationFileLine name="lineNumber" value="162"/>
       
  1003                 </cxxTypedefAPIItemLocation>
       
  1004             </cxxTypedefDefinition>
       
  1005             <apiDesc>
       
  1006                 <p>CPe_text </p>
       
  1007             </apiDesc>
       
  1008         </cxxTypedefDetail>
       
  1009     </cxxTypedef>
       
  1010 </cxxClass>"""