LCOV - code coverage report
Current view: top level - workdir/unxlngi6.pro/CustomTarget/writerfilter/source - OOXMLFactory_dml-documentProperties.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 62 150 41.3 %
Date: 2012-08-25 Functions: 10 13 76.9 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 66 422 15.6 %

           Branch data     Line data    Source code
       1                 :            : 
       2                 :            : #include "doctok/sprmids.hxx"
       3                 :            : #include "doctok/resourceids.hxx"
       4                 :            : #include "ooxml/resourceids.hxx"
       5                 :            : #include "OOXMLFactory_values.hxx"
       6                 :            : #include "OOXMLFactory_dml-documentProperties.hxx"
       7                 :            : #include "ooxml/OOXMLFastHelper.hxx"
       8                 :            :     
       9                 :            : #ifdef _MSC_VER
      10                 :            : #pragma warning(disable:4065) // switch statement contains 'default' but no 'case' labels
      11                 :            : #endif
      12                 :            : 
      13                 :            : namespace writerfilter {
      14                 :            : namespace ooxml {
      15                 :            : 
      16                 :            : /// @cond GENERATED
      17                 :            :     
      18                 :            : typedef rtl::Static < osl::Mutex, OOXMLFactory_dml_documentProperties > OOXMLFactory_dml_documentProperties_Mutex;
      19                 :            : 
      20                 :          8 : OOXMLFactory_dml_documentProperties::OOXMLFactory_dml_documentProperties()
      21                 :            : {
      22                 :            :     // multi-thread-safe mutex for all platforms
      23                 :            :     
      24 [ +  - ][ +  - ]:          8 :     osl::MutexGuard aGuard(OOXMLFactory_dml_documentProperties_Mutex::get());
                 [ +  - ]
      25                 :          8 : }
      26                 :            : 
      27                 :          8 : OOXMLFactory_dml_documentProperties::~OOXMLFactory_dml_documentProperties()
      28                 :            : {
      29         [ -  + ]:         16 : }
      30                 :            : 
      31                 :         20 : OOXMLFactory_ns::Pointer_t OOXMLFactory_dml_documentProperties::m_pInstance;
      32                 :            :     
      33                 :        965 : OOXMLFactory_ns::Pointer_t OOXMLFactory_dml_documentProperties::getInstance()
      34                 :            : {
      35         [ +  + ]:        965 :     if (m_pInstance.get() == NULL)
      36         [ +  - ]:          8 :         m_pInstance.reset(new OOXMLFactory_dml_documentProperties());
      37                 :            :     
      38                 :        965 :     return m_pInstance;
      39                 :            : }
      40                 :            : 
      41                 :          9 : AttributeToResourceMapPointer OOXMLFactory_dml_documentProperties::createAttributeToResourceMap(Id nId)
      42                 :            : {
      43 [ +  - ][ +  - ]:          9 :     AttributeToResourceMapPointer pMap(new AttributeToResourceMap());
                 [ +  - ]
      44                 :            :     
      45   [ -  -  -  -  :          9 :     switch (nId)
          -  +  +  -  -  
                      + ]
      46                 :            :     {
      47                 :            :     case NN_dml_documentProperties|DEFINE_AG_Locking:
      48                 :            :       // AG_Locking
      49 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noGrp] = AttributeInfo(RT_Boolean, 0);
      50 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noSelect] = AttributeInfo(RT_Boolean, 0);
      51 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noRot] = AttributeInfo(RT_Boolean, 0);
      52 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noChangeAspect] = AttributeInfo(RT_Boolean, 0);
      53 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noMove] = AttributeInfo(RT_Boolean, 0);
      54 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noResize] = AttributeInfo(RT_Boolean, 0);
      55 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noEditPoints] = AttributeInfo(RT_Boolean, 0);
      56 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noAdjustHandles] = AttributeInfo(RT_Boolean, 0);
      57 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noChangeArrowheads] = AttributeInfo(RT_Boolean, 0);
      58 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noChangeShapeType] = AttributeInfo(RT_Boolean, 0);
      59                 :          0 :         break;
      60                 :            :     case NN_dml_documentProperties|DEFINE_CT_ConnectorLocking:
      61                 :            :       // AG_Locking
      62 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noGrp] = AttributeInfo(RT_Boolean, 0);
      63 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noSelect] = AttributeInfo(RT_Boolean, 0);
      64 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noRot] = AttributeInfo(RT_Boolean, 0);
      65 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noChangeAspect] = AttributeInfo(RT_Boolean, 0);
      66 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noMove] = AttributeInfo(RT_Boolean, 0);
      67 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noResize] = AttributeInfo(RT_Boolean, 0);
      68 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noEditPoints] = AttributeInfo(RT_Boolean, 0);
      69 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noAdjustHandles] = AttributeInfo(RT_Boolean, 0);
      70 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noChangeArrowheads] = AttributeInfo(RT_Boolean, 0);
      71 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noChangeShapeType] = AttributeInfo(RT_Boolean, 0);
      72                 :          0 :         break;
      73                 :            :     case NN_dml_documentProperties|DEFINE_CT_ShapeLocking:
      74                 :            :       // AG_Locking
      75 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noGrp] = AttributeInfo(RT_Boolean, 0);
      76 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noSelect] = AttributeInfo(RT_Boolean, 0);
      77 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noRot] = AttributeInfo(RT_Boolean, 0);
      78 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noChangeAspect] = AttributeInfo(RT_Boolean, 0);
      79 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noMove] = AttributeInfo(RT_Boolean, 0);
      80 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noResize] = AttributeInfo(RT_Boolean, 0);
      81 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noEditPoints] = AttributeInfo(RT_Boolean, 0);
      82 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noAdjustHandles] = AttributeInfo(RT_Boolean, 0);
      83 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noChangeArrowheads] = AttributeInfo(RT_Boolean, 0);
      84 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noChangeShapeType] = AttributeInfo(RT_Boolean, 0);
      85                 :            :       // CT_ShapeLocking
      86 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noTextEdit] = AttributeInfo(RT_Boolean, 0);
      87                 :          0 :         break;
      88                 :            :     case NN_dml_documentProperties|DEFINE_CT_PictureLocking:
      89                 :            :       // AG_Locking
      90 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noGrp] = AttributeInfo(RT_Boolean, 0);
      91 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noSelect] = AttributeInfo(RT_Boolean, 0);
      92 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noRot] = AttributeInfo(RT_Boolean, 0);
      93 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noChangeAspect] = AttributeInfo(RT_Boolean, 0);
      94 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noMove] = AttributeInfo(RT_Boolean, 0);
      95 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noResize] = AttributeInfo(RT_Boolean, 0);
      96 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noEditPoints] = AttributeInfo(RT_Boolean, 0);
      97 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noAdjustHandles] = AttributeInfo(RT_Boolean, 0);
      98 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noChangeArrowheads] = AttributeInfo(RT_Boolean, 0);
      99 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noChangeShapeType] = AttributeInfo(RT_Boolean, 0);
     100                 :            :       // CT_PictureLocking
     101 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noCrop] = AttributeInfo(RT_Boolean, 0);
     102                 :          0 :         break;
     103                 :            :     case NN_dml_documentProperties|DEFINE_CT_GroupLocking:
     104                 :            :       // CT_GroupLocking
     105 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noGrp] = AttributeInfo(RT_Boolean, 0);
     106 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noUngrp] = AttributeInfo(RT_Boolean, 0);
     107 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noSelect] = AttributeInfo(RT_Boolean, 0);
     108 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noRot] = AttributeInfo(RT_Boolean, 0);
     109 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noChangeAspect] = AttributeInfo(RT_Boolean, 0);
     110 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noMove] = AttributeInfo(RT_Boolean, 0);
     111 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_noResize] = AttributeInfo(RT_Boolean, 0);
     112                 :          0 :         break;
     113                 :            :     case NN_dml_documentProperties|DEFINE_CT_GraphicalObjectFrameLocking:
     114                 :            :       // CT_GraphicalObjectFrameLocking
     115 [ +  - ][ +  - ]:          3 :         (*pMap)[OOXML_noGrp] = AttributeInfo(RT_Boolean, 0);
     116 [ +  - ][ +  - ]:          3 :         (*pMap)[OOXML_noDrilldown] = AttributeInfo(RT_Boolean, 0);
     117 [ +  - ][ +  - ]:          3 :         (*pMap)[OOXML_noSelect] = AttributeInfo(RT_Boolean, 0);
     118 [ +  - ][ +  - ]:          3 :         (*pMap)[OOXML_noChangeAspect] = AttributeInfo(RT_Boolean, 0);
     119 [ +  - ][ +  - ]:          3 :         (*pMap)[OOXML_noMove] = AttributeInfo(RT_Boolean, 0);
     120 [ +  - ][ +  - ]:          3 :         (*pMap)[OOXML_noResize] = AttributeInfo(RT_Boolean, 0);
     121                 :          3 :         break;
     122                 :            :     case NN_dml_documentProperties|DEFINE_CT_NonVisualDrawingProps:
     123                 :            :       // CT_NonVisualDrawingProps
     124                 :            :       // empty resource: OOXML_id
     125 [ +  - ][ +  - ]:          3 :         (*pMap)[OOXML_name] = AttributeInfo(RT_String, 0);
     126 [ +  - ][ +  - ]:          3 :         (*pMap)[OOXML_descr] = AttributeInfo(RT_String, 0);
     127 [ +  - ][ +  - ]:          3 :         (*pMap)[OOXML_hidden] = AttributeInfo(RT_Boolean, 0);
     128 [ +  - ][ +  - ]:          3 :         (*pMap)[OOXML_title] = AttributeInfo(RT_String, 0);
     129                 :          3 :         break;
     130                 :            :     case NN_dml_documentProperties|DEFINE_CT_NonVisualDrawingShapeProps:
     131                 :            :       // CT_NonVisualDrawingShapeProps
     132 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_txBox] = AttributeInfo(RT_Boolean, 0);
     133                 :          0 :         break;
     134                 :            :     case NN_dml_documentProperties|DEFINE_CT_NonVisualPictureProperties:
     135                 :            :       // CT_NonVisualPictureProperties
     136 [ #  # ][ #  # ]:          0 :         (*pMap)[OOXML_preferRelativeResize] = AttributeInfo(RT_Boolean, 0);
     137                 :          0 :         break;
     138                 :            :     default:
     139                 :          3 :         break;
     140                 :            :     }
     141                 :            :     
     142                 :          9 :     return pMap;
     143                 :            : }
     144                 :            : 
     145                 :          0 : ListValueMapPointer OOXMLFactory_dml_documentProperties::createListValueMap(Id nId)
     146                 :            : {
     147 [ #  # ][ #  # ]:          0 :     ListValueMapPointer pMap(new ListValueMap());
                 [ #  # ]
     148                 :            :     
     149                 :            :     switch (nId)
     150                 :            :     {
     151                 :            :     default:
     152                 :          0 :         break;
     153                 :            :     }
     154                 :            :     
     155                 :          0 :     return pMap;
     156                 :            : }
     157                 :         17 : CreateElementMapPointer OOXMLFactory_dml_documentProperties::createCreateElementMap(Id nId)
     158                 :            : {
     159 [ +  - ][ +  - ]:         17 :     CreateElementMapPointer pMap(new CreateElementMap());
                 [ +  - ]
     160                 :            :     
     161      [ -  +  + ]:         17 :     switch (nId)
     162                 :            :     {
     163                 :            :     case NN_dml_documentProperties|DEFINE_CT_NonVisualDrawingProps:
     164 [ #  # ][ #  # ]:          0 :         (*pMap)[NS_drawingml|OOXML_hlinkClick] = CreateElement(RT_Stream, NN_dml_baseTypes|DEFINE_CT_Hyperlink);
     165 [ #  # ][ #  # ]:          0 :         (*pMap)[NS_drawingml|OOXML_hlinkHover] = CreateElement(RT_Stream, NN_dml_baseTypes|DEFINE_CT_Hyperlink);
     166                 :          0 :         break;
     167                 :            :     case NN_dml_documentProperties|DEFINE_CT_NonVisualGraphicFrameProperties:
     168 [ +  - ][ +  - ]:          3 :         (*pMap)[NS_drawingml|OOXML_graphicFrameLocks] = CreateElement(RT_Properties, NN_dml_documentProperties|DEFINE_CT_GraphicalObjectFrameLocking);
     169                 :          3 :         break;
     170                 :            :     default:
     171                 :         14 :         break;
     172                 :            :     }
     173                 :            :     
     174                 :         17 :     return pMap;
     175                 :            : }
     176                 :            : 
     177                 :          0 : void OOXMLFactory_dml_documentProperties::charactersAction(OOXMLFastContextHandler*, const OUString &)
     178                 :            : {
     179                 :          0 : }
     180                 :            : 
     181                 :          0 : string OOXMLFactory_dml_documentProperties::getDefineName(Id nId) const
     182                 :            : {
     183 [ #  # ][ #  # ]:          0 :     static IdToStringMapPointer pMap;
         [ #  # ][ #  # ]
     184                 :            :     
     185         [ #  # ]:          0 :     if (pMap.get() == NULL)
     186                 :            :     {
     187 [ #  # ][ #  # ]:          0 :         pMap = IdToStringMapPointer(new IdToStringMap());
         [ #  # ][ #  # ]
                 [ #  # ]
     188                 :            :         
     189                 :            : 
     190 [ #  # ][ #  # ]:          0 :         (*pMap)[NN_dml_documentProperties|DEFINE_AG_Locking] = "AG_Locking";
     191 [ #  # ][ #  # ]:          0 :         (*pMap)[NN_dml_documentProperties|DEFINE_CT_ConnectorLocking] = "CT_ConnectorLocking";
     192 [ #  # ][ #  # ]:          0 :         (*pMap)[NN_dml_documentProperties|DEFINE_CT_ShapeLocking] = "CT_ShapeLocking";
     193 [ #  # ][ #  # ]:          0 :         (*pMap)[NN_dml_documentProperties|DEFINE_CT_PictureLocking] = "CT_PictureLocking";
     194 [ #  # ][ #  # ]:          0 :         (*pMap)[NN_dml_documentProperties|DEFINE_CT_GroupLocking] = "CT_GroupLocking";
     195 [ #  # ][ #  # ]:          0 :         (*pMap)[NN_dml_documentProperties|DEFINE_CT_GraphicalObjectFrameLocking] = "CT_GraphicalObjectFrameLocking";
     196 [ #  # ][ #  # ]:          0 :         (*pMap)[NN_dml_documentProperties|DEFINE_CT_NonVisualDrawingProps] = "CT_NonVisualDrawingProps";
     197 [ #  # ][ #  # ]:          0 :         (*pMap)[NN_dml_documentProperties|DEFINE_CT_NonVisualDrawingShapeProps] = "CT_NonVisualDrawingShapeProps";
     198 [ #  # ][ #  # ]:          0 :         (*pMap)[NN_dml_documentProperties|DEFINE_CT_NonVisualConnectorProperties] = "CT_NonVisualConnectorProperties";
     199 [ #  # ][ #  # ]:          0 :         (*pMap)[NN_dml_documentProperties|DEFINE_CT_NonVisualPictureProperties] = "CT_NonVisualPictureProperties";
     200 [ #  # ][ #  # ]:          0 :         (*pMap)[NN_dml_documentProperties|DEFINE_CT_NonVisualGroupDrawingShapeProps] = "CT_NonVisualGroupDrawingShapeProps";
     201 [ #  # ][ #  # ]:          0 :         (*pMap)[NN_dml_documentProperties|DEFINE_CT_NonVisualGraphicFrameProperties] = "CT_NonVisualGraphicFrameProperties";
     202                 :            :     }
     203                 :            :     
     204                 :          0 :     return (*pMap)[nId];
     205                 :            : }
     206                 :            :     
     207                 :            : 
     208                 :         23 : TokenToIdMapPointer OOXMLFactory_dml_documentProperties::createTokenToIdMap(Id nId)
     209                 :            : {
     210 [ +  - ][ +  - ]:         23 :     TokenToIdMapPointer pMap(new TokenToIdMap());
                 [ +  - ]
     211                 :            :     
     212   [ +  +  -  +  :         23 :     switch (nId)
                      + ]
     213                 :            :     {
     214                 :            :     case NN_dml_documentProperties|DEFINE_CT_GraphicalObjectFrameLocking:
     215                 :            :         // CT_GraphicalObjectFrameLocking
     216         [ +  - ]:          3 :         (*pMap)[NS_drawingml|OOXML_extLst] = NS_ooxml::LN_CT_GraphicalObjectFrameLocking_extLst;
     217         [ +  - ]:          3 :         (*pMap)[OOXML_noGrp] = NS_ooxml::LN_CT_GraphicalObjectFrameLocking_noGrp;
     218         [ +  - ]:          3 :         (*pMap)[OOXML_noDrilldown] = NS_ooxml::LN_CT_GraphicalObjectFrameLocking_noDrilldown;
     219         [ +  - ]:          3 :         (*pMap)[OOXML_noSelect] = NS_ooxml::LN_CT_GraphicalObjectFrameLocking_noSelect;
     220         [ +  - ]:          3 :         (*pMap)[OOXML_noChangeAspect] = NS_ooxml::LN_CT_GraphicalObjectFrameLocking_noChangeAspect;
     221         [ +  - ]:          3 :         (*pMap)[OOXML_noMove] = NS_ooxml::LN_CT_GraphicalObjectFrameLocking_noMove;
     222         [ +  - ]:          3 :         (*pMap)[OOXML_noResize] = NS_ooxml::LN_CT_GraphicalObjectFrameLocking_noResize;
     223                 :          3 :         break;
     224                 :            :     case NN_dml_documentProperties|DEFINE_CT_NonVisualDrawingProps:
     225                 :            :         // CT_NonVisualDrawingProps
     226         [ +  - ]:          3 :         (*pMap)[NS_drawingml|OOXML_hlinkClick] = NS_ooxml::LN_CT_NonVisualDrawingProps_hlinkClick;
     227         [ +  - ]:          3 :         (*pMap)[NS_drawingml|OOXML_hlinkHover] = NS_ooxml::LN_CT_NonVisualDrawingProps_hlinkHover;
     228         [ +  - ]:          3 :         (*pMap)[NS_drawingml|OOXML_extLst] = NS_ooxml::LN_CT_NonVisualDrawingProps_extLst;
     229         [ +  - ]:          3 :         (*pMap)[OOXML_id] = NS_ooxml::LN_CT_NonVisualDrawingProps_id;
     230         [ +  - ]:          3 :         (*pMap)[OOXML_name] = NS_ooxml::LN_CT_NonVisualDrawingProps_name;
     231         [ +  - ]:          3 :         (*pMap)[OOXML_descr] = NS_ooxml::LN_CT_NonVisualDrawingProps_descr;
     232         [ +  - ]:          3 :         (*pMap)[OOXML_hidden] = NS_ooxml::LN_CT_NonVisualDrawingProps_hidden;
     233         [ +  - ]:          3 :         (*pMap)[OOXML_title] = NS_ooxml::LN_CT_NonVisualDrawingProps_title;
     234                 :          3 :         break;
     235                 :            :     case NN_dml_documentProperties|DEFINE_CT_NonVisualPictureProperties:
     236                 :            :         // CT_NonVisualPictureProperties
     237         [ #  # ]:          0 :         (*pMap)[NS_drawingml|OOXML_picLocks] = NS_ooxml::LN_CT_NonVisualPictureProperties_picLocks;
     238         [ #  # ]:          0 :         (*pMap)[NS_drawingml|OOXML_extLst] = NS_ooxml::LN_CT_NonVisualPictureProperties_extLst;
     239         [ #  # ]:          0 :         (*pMap)[OOXML_preferRelativeResize] = NS_ooxml::LN_CT_NonVisualPictureProperties_preferRelativeResize;
     240                 :          0 :         break;
     241                 :            :     case NN_dml_documentProperties|DEFINE_CT_NonVisualGraphicFrameProperties:
     242                 :            :         // CT_NonVisualGraphicFrameProperties
     243         [ +  - ]:          3 :         (*pMap)[NS_drawingml|OOXML_graphicFrameLocks] = NS_ooxml::LN_CT_NonVisualGraphicFrameProperties_graphicFrameLocks;
     244         [ +  - ]:          3 :         (*pMap)[NS_drawingml|OOXML_extLst] = NS_ooxml::LN_CT_NonVisualGraphicFrameProperties_extLst;
     245                 :          3 :         break;
     246                 :            :     default:
     247                 :         14 :         break;
     248                 :            :     }
     249                 :            :     
     250                 :         23 :     return pMap;
     251                 :            : }
     252                 :            : 
     253                 :         39 : void OOXMLFactory_dml_documentProperties::attributeAction(OOXMLFastContextHandler *, Token_t, OOXMLValue::Pointer_t)
     254                 :            : {
     255                 :         39 : }
     256                 :            : 
     257                 :            : #ifdef DEBUG_FACTORY
     258                 :            : string OOXMLFactory_dml_documentProperties::getName() const
     259                 :            : {
     260                 :            :     return "dml-documentProperties";
     261                 :            : }
     262                 :            : #endif
     263                 :            : 
     264                 :            : /// @endcond
     265 [ +  - ][ +  - ]:         60 : }}

Generated by: LCOV version 1.10