LCOV - code coverage report
Current view: top level - ogr/ogrsf_frmts/cad/libopencad - caddictionary.cpp (source / functions) Hit Total Coverage
Test: gdal_filtered.info Lines: 21 35 60.0 %
Date: 2024-11-21 22:18:42 Functions: 7 12 58.3 %

          Line data    Source code
       1             : /*******************************************************************************
       2             :  *  Project: libopencad
       3             :  *  Purpose: OpenSource CAD formats support library
       4             :  *  Author: Alexandr Borzykh, mush3d at gmail.com
       5             :  *  Author: Dmitry Baryshnikov, bishop.dev@gmail.com
       6             :  *  Language: C++
       7             :  *******************************************************************************
       8             :  *  The MIT License (MIT)
       9             :  *
      10             :  *  Copyright (c) 2016 Alexandr Borzykh
      11             :  *  Copyright (c) 2016 NextGIS, <info@nextgis.com>
      12             :  *
      13             :   * SPDX-License-Identifier: MIT
      14             :  *******************************************************************************/
      15             : 
      16             : #include "caddictionary.h"
      17             : 
      18             : using namespace std;
      19             : //
      20             : // CADDictionaryRecord
      21             : //
      22             : 
      23          32 : CADDictionaryRecord::CADDictionaryRecord() :
      24          32 :     objType(CADObject::UNUSED)
      25             : {
      26          32 : }
      27             : 
      28           0 : CADObject::ObjectType CADDictionaryRecord::getType() const
      29             : {
      30           0 :     return objType;
      31             : }
      32             : 
      33             : //
      34             : // CADXRecord
      35             : //
      36             : 
      37          24 : CADXRecord::CADXRecord()
      38             : {
      39          24 :     objType = CADObject::XRECORD;
      40          24 : }
      41             : 
      42           0 : const string CADXRecord::getRecordData() const
      43             : {
      44           0 :     return sRecordData;
      45             : }
      46             : 
      47          24 : void CADXRecord::setRecordData( const string& data )
      48             : {
      49          24 :     sRecordData = data;
      50          24 : }
      51             : 
      52             : //
      53             : // CADDictionary
      54             : //
      55             : 
      56           8 : CADDictionary::CADDictionary()
      57             : {
      58           8 :     objType = CADObject::DICTIONARY;
      59           8 : }
      60             : 
      61           8 : CADDictionary::~CADDictionary()
      62             : {
      63           8 : }
      64             : 
      65           0 : size_t CADDictionary::getRecordsCount()
      66             : {
      67           0 :     return astXRecords.size();
      68             : }
      69             : 
      70           0 : CADDictionaryItem CADDictionary::getRecord( size_t index )
      71             : {
      72           0 :     return astXRecords[index];
      73             : }
      74             : 
      75          24 : void CADDictionary::addRecord( CADDictionaryItem record )
      76             : {
      77          24 :     astXRecords.emplace_back( record );
      78          24 : }
      79             : 
      80           8 : string CADDictionary::getRecordByName(const string& name) const
      81             : {
      82          32 :     for( size_t i = 0; i < astXRecords.size(); ++i )
      83             :     {
      84          24 :         if( astXRecords[i].first.compare(name) == 0 )
      85             :         {
      86           0 :             std::shared_ptr<CADDictionaryRecord> XRecordPtr = astXRecords[i].second;
      87           0 :             if(XRecordPtr == nullptr ||
      88           0 :                XRecordPtr->getType() != CADObject::XRECORD)
      89           0 :                 continue;
      90           0 :             CADXRecord * poXRecord = static_cast<CADXRecord*>(XRecordPtr.get() );
      91           0 :             return poXRecord->getRecordData();
      92             :         }
      93             :     }
      94           8 :     return "";
      95             : }

Generated by: LCOV version 1.14