LCOV - code coverage report
Current view: top level - geom - CubitAttribManager.cpp (source / functions) Hit Total Coverage
Test: coverage_sk.info Lines: 199 261 76.2 %
Date: 2020-06-30 00:58:45 Functions: 25 29 86.2 %
Branches: 139 362 38.4 %

           Branch data     Line data    Source code
       1                 :            : 
       2                 :            : #include "CubitAttribManager.hpp"
       3                 :            : #include "CubitAttribUser.hpp"
       4                 :            : #include "CastTo.hpp"
       5                 :            : #include "assert.h"
       6                 :            : #include "CADefines.hpp"
       7                 :            : 
       8                 :            : #include "RefEntity.hpp"
       9                 :            : #include "CubitMessage.hpp"
      10                 :            : 
      11                 :        874 : CubitAttribManager::CubitAttribManager() 
      12 [ +  - ][ +  - ]:        874 :     : silentFlag(false)
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
      13                 :            : {
      14                 :        874 : }
      15                 :            : 
      16 [ #  # ][ #  # ]:          0 : CubitAttribManager::~CubitAttribManager()
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
      17                 :            : {
      18                 :            : /*
      19                 :            :   std::map<int, CARegisterData*>::iterator iter = mTypeToCAData.begin();
      20                 :            : 
      21                 :            :   while (mTypeToCAData.end() != iter)
      22                 :            :   {
      23                 :            :     delete iter->second;
      24                 :            :     iter++;
      25                 :            :   }
      26                 :            : */
      27                 :            :   int i;
      28 [ #  # ][ #  # ]:          0 :   assert(mTypeNames.size() == mInternalNames.size());
                 [ #  # ]
      29                 :            : 
      30                 :            : 
      31 [ #  # ][ #  # ]:          0 :   for (i=mTypeNames.size(); i>0; i--)
      32                 :            :   {
      33 [ #  # ][ #  # ]:          0 :     delete [] mTypeNames.get_and_step();
      34 [ #  # ][ #  # ]:          0 :     delete [] mInternalNames.get_and_step();
      35                 :            :   }
      36                 :            : 
      37         [ #  # ]:          0 : }
      38                 :            : 
      39                 :            : CubitStatus
      40                 :      13100 : CubitAttribManager::register_attrib_type( const int att_type,
      41                 :            :                                          const char* att_type_name,
      42                 :            :                                       const char* att_internal_name,
      43                 :            :                                       CACreateFunction p_create_function,
      44                 :            :                                       CubitBoolean auto_actuate_flag,
      45                 :            :                                       CubitBoolean auto_update_flag,
      46                 :            :                                       CubitBoolean auto_write_flag,
      47                 :            :                                       CubitBoolean auto_read_flag,
      48                 :            :                                       CubitBoolean actuate_in_constructor,
      49                 :            :                                       CubitBoolean actuate_after_geom_changes)
      50                 :            : {
      51         [ -  + ]:      13100 :   assert(CA_UNDEFINED != att_type);
      52         [ -  + ]:      13100 :   assert(CA_ALL_ATTRIBUTES != att_type);
      53                 :            : 
      54                 :            : /*
      55                 :            :   unsigned int flags = 0;
      56                 :            :   if (auto_actuate_flag) flags |= CA_AUTOACTUATE;
      57                 :            :   if (auto_update_flag) flags |= CA_AUTOUPDATE;
      58                 :            :   if (auto_write_flag) flags |= CA_AUTOWRITE;
      59                 :            :   if (auto_read_flag) flags |= CA_AUTOREAD;
      60                 :            :   if (actuate_in_constructor) flags |= CA_ACTUATEINCONSTRUCTOR;
      61                 :            :   if (actuate_after_geom_changes) flags |= CA_ACTUATEAFTERGEOMCHANGES;
      62                 :            :   CARegisterData *p_entry = new CARegisterData(att_type_name, att_internal_name,
      63                 :            :                                                p_create_function, flags);
      64                 :            :   
      65                 :            :   std::pair<std::map<int, CARegisterData*>::iterator, bool> result_pair;
      66                 :            :   result_pair = mTypeToCAData.insert( std::pair<int, CARegisterData*>(att_type, p_entry) );
      67                 :            : 
      68                 :            :   if (!result_pair.second) // failed to insert because the type was already registered
      69                 :            :   {
      70                 :            :     assert(false);
      71                 :            :     delete p_entry;
      72                 :            :     return CUBIT_FAILURE;
      73                 :            :   }
      74                 :            : */
      75                 :            : 
      76         [ +  - ]:      13100 :   int index = mTypes.where_is_item(att_type);
      77         [ +  + ]:      13100 :   if (-1 != index) // type already registered
      78                 :            :   {
      79 [ +  - ][ +  - ]:         11 :     if (!silentFlag) PRINT_ERROR("Attribute type %d already registered\n.", att_type);
         [ +  - ][ +  - ]
                 [ +  - ]
      80                 :         11 :     return CUBIT_FAILURE;
      81                 :            :   }
      82                 :            : 
      83                 :            : #ifndef NDEBUG
      84         [ +  - ]:      13089 :   int size = mTypes.size();
      85 [ +  - ][ -  + ]:      13089 :   assert (mTypeNames.size() == size);
      86 [ +  - ][ -  + ]:      13089 :   assert (mCreatorFunctions.size() == size);
      87 [ +  - ][ -  + ]:      13089 :   assert (mInternalNames.size() == size);
      88 [ +  - ][ -  + ]:      13089 :   assert (mAutoActuateFlags.size() == size);
      89 [ +  - ][ -  + ]:      13089 :   assert (mAutoUpdateFlags.size() == size);
      90 [ +  - ][ -  + ]:      13089 :   assert (mAutoWriteFlags.size() == size);
      91 [ +  - ][ -  + ]:      13089 :   assert (mAutoReadFlags.size() == size);
      92 [ +  - ][ -  + ]:      13089 :   assert (mActuateInConstructor.size() == size);
      93 [ +  - ][ -  + ]:      13089 :   assert (mActuateAfterGeomChanges.size() == size);
      94                 :            : //  assert (mAttribImported.size() == size);
      95                 :            : #endif
      96                 :            : 
      97         [ +  - ]:      13089 :   mTypes.append(att_type);
      98                 :            : 
      99                 :      13089 :   int namesize = strlen(att_type_name);
     100         [ +  - ]:      13089 :   char *stemp = new char[namesize+1];
     101                 :      13089 :   strcpy(stemp, att_type_name);
     102         [ +  - ]:      13089 :   mTypeNames.append(stemp);
     103                 :            : 
     104                 :      13089 :   namesize = strlen(att_internal_name);
     105         [ +  - ]:      13089 :   stemp = new char[namesize+1];
     106                 :      13089 :   strcpy(stemp, att_internal_name);
     107         [ +  - ]:      13089 :   mInternalNames.append(stemp);
     108                 :            : 
     109         [ +  - ]:      13089 :   mCreatorFunctions.append(p_create_function);
     110                 :            : 
     111         [ +  - ]:      13089 :   mAutoActuateFlags.append(auto_actuate_flag);
     112         [ +  - ]:      13089 :   mAutoUpdateFlags.append(auto_update_flag);
     113         [ +  - ]:      13089 :   mAutoWriteFlags.append(auto_write_flag);
     114         [ +  - ]:      13089 :   mAutoReadFlags.append(auto_read_flag);
     115         [ +  - ]:      13089 :   mActuateInConstructor.append(actuate_in_constructor);
     116         [ +  - ]:      13089 :   mActuateAfterGeomChanges.append(actuate_after_geom_changes);
     117                 :            : //  mAttribImported.append(CUBIT_FALSE); // TODO - get rid of mAttribImported
     118                 :            : 
     119                 :      13100 :   return CUBIT_SUCCESS;
     120                 :            : }
     121                 :            : 
     122                 :            : CubitAttrib*
     123                 :     298794 : CubitAttribManager::create_cubit_attrib(const int attrib_type,
     124                 :            :                                         RefEntity *attrib_user,
     125                 :            :                                         const CubitSimpleAttrib &p_csa)
     126                 :            : {
     127                 :     298794 :   CubitAttrib* new_attrib = NULL;
     128                 :            : /*
     129                 :            :   CARegisterData *p_entry = NULL;
     130                 :            :   CACreateFunction p_creator;
     131                 :            :   std::map<int, CARegisterData*>::iterator iter;
     132                 :            : 
     133                 :            :   iter = mTypeToCAData.find(attrib_type);
     134                 :            :   if (mTypeToCAData.end() == iter)
     135                 :            :   {
     136                 :            :     assert(false);
     137                 :            :     return NULL;
     138                 :            :   }
     139                 :            : 
     140                 :            :   p_entry = iter->second;
     141                 :            :   p_creator = p_entry->mCreateFunction;
     142                 :            :   new_attrib = (*p_creator)(attrib_user);
     143                 :            :   return new_attrib;
     144                 :            : */
     145                 :            : 
     146                 :     298794 :   int index = mTypes.where_is_item(attrib_type);
     147         [ -  + ]:     298794 :   if (-1 == index) // type not registered
     148                 :            :   {
     149 [ #  # ][ #  # ]:          0 :     if (!silentFlag) PRINT_ERROR("Attribute type %d can't be created because it hasn't been registered.\n", 
     150         [ #  # ]:          0 :                 attrib_type);
     151                 :          0 :     return NULL;
     152                 :            :   }
     153                 :            : 
     154                 :            : 
     155                 :            :   CACreateFunction p_creator;
     156                 :     298794 :   mCreatorFunctions.reset();
     157                 :     298794 :   p_creator = mCreatorFunctions.next(index);
     158                 :            : 
     159                 :     298794 :   new_attrib = (*p_creator)(attrib_user, p_csa);
     160                 :     298794 :   return new_attrib;
     161                 :            : 
     162                 :            : }
     163                 :            : 
     164                 :            : /*
     165                 :            : CubitStatus CubitAttribManager::actuate_list(DLIList<RefEntity*> entity_list)
     166                 :            : {
     167                 :            :   int i, j;
     168                 :            :   RefEntity * ref_ent;
     169                 :            :   for(i = entity_list.size(); i > 0; i--)
     170                 :            :   {
     171                 :            :     ref_ent = entity_list.get_and_step();
     172                 :            : 
     173                 :            :     mTypes.reset();
     174                 :            :     for (j = mTypes.size(); j>0; j--)
     175                 :            :     {
     176                 :            :       ref_ent->actuate_cubit_attrib(mTypes.get_and_step());
     177                 :            :     }
     178                 :            :   }
     179                 :            :   return CUBIT_SUCCESS;
     180                 :            : }
     181                 :            : */
     182                 :      32396 : CubitStatus CubitAttribManager::auto_update_attribs(RefEntity *cau)
     183                 :            : {
     184                 :            :     //- create attribs whose auto update flag is set
     185                 :            : 
     186                 :      32396 :   CubitStatus status = CUBIT_SUCCESS;
     187         [ +  - ]:      32396 :   DLIList<CubitAttrib*> attrib_list;
     188                 :            : 
     189                 :            : /*
     190                 :            :   std::map<int, CARegisterData*>::iterator iter = mTypeToCAData.begin();
     191                 :            : 
     192                 :            :   while (mTypeToCAData.end() != iter)
     193                 :            :   {
     194                 :            :     CubitBoolean auto_update = ((iter->second)->flags) & CA_AUTOUPDATE;
     195                 :            :     int attrib_type = iter->first;
     196                 :            : 
     197                 :            :     if (auto_update)
     198                 :            :     {
     199                 :            :       attrib_list.clean_out();
     200                 :            :       cau->find_cubit_attrib_type(attrib_type, attrib_list);
     201                 :            :       if (attrib_list.size() == 0) {
     202                 :            :         create_cubit_attrib(attrib_type, cau);
     203                 :            :         if (status == CUBIT_FAILURE) break;
     204                 :            :       }
     205                 :            :     }
     206                 :            :     iter++;
     207                 :            :   }
     208                 :            : */
     209         [ +  - ]:      32396 :   mAutoUpdateFlags.reset();
     210         [ +  - ]:      32396 :   mTypes.reset();
     211 [ +  - ][ +  - ]:      32396 :   assert(mTypes.size() == mAutoUpdateFlags.size());
                 [ -  + ]
     212                 :            :   int index;
     213 [ +  - ][ +  + ]:     526059 :   for (index=mAutoUpdateFlags.size(); index>0; index--) {
     214                 :            :       // check the auto update flag first, if not set we can go
     215 [ +  - ][ +  - ]:     493663 :     if (mAutoUpdateFlags.get() == CUBIT_TRUE)
                 [ +  + ]
     216                 :            :     {
     217                 :            : 
     218                 :            :         // else we must create a CA of type if there's not one already there
     219         [ +  - ]:     231436 :       attrib_list.clean_out();
     220 [ +  - ][ +  - ]:     231436 :       cau->find_cubit_attrib_type(mTypes.get(), attrib_list);
     221 [ +  - ][ +  + ]:     231436 :       if (attrib_list.size() == 0) {
     222 [ +  - ][ +  - ]:     218828 :         create_cubit_attrib(mTypes.get(), cau, CubitSimpleAttrib());
         [ +  - ][ +  - ]
     223         [ -  + ]:     218828 :         if (status == CUBIT_FAILURE) break;
     224                 :            :       }
     225                 :            :     }
     226         [ +  - ]:     493663 :     mAutoUpdateFlags.step();
     227         [ +  - ]:     493663 :     mTypes.step();
     228                 :            :   }
     229                 :            : 
     230         [ +  - ]:      32396 :   return status;
     231                 :            : }
     232                 :            : 
     233                 :        360 : void CubitAttribManager::set_all_auto_actuate_flags(CubitBoolean value)
     234                 :            : {
     235                 :            : 
     236                 :            : //  std::map<int, CARegisterData*>::iterator iter = mTypeToCAData.begin();
     237                 :            : 
     238                 :            : //  while (mTypeToCAData.end() != iter)
     239                 :            : //  {
     240                 :            : 
     241                 :        360 :   mAutoActuateFlags.reset();
     242         [ +  + ]:       5841 :   for (int i = mAutoActuateFlags.size(); i>0; i--)
     243                 :            :   {
     244                 :       5481 :     mAutoActuateFlags.change_to(value);
     245                 :       5481 :     mAutoActuateFlags.step();
     246                 :            :   }
     247                 :        360 : }
     248                 :            : 
     249                 :       6720 : CubitStatus CubitAttribManager::set_auto_actuate_flag(int attrib_type, CubitBoolean value)
     250                 :            : {
     251         [ -  + ]:       6720 :   assert(CA_UNDEFINED != attrib_type);
     252         [ -  + ]:       6720 :   assert(CA_ALL_ATTRIBUTES != attrib_type);
     253                 :            : 
     254                 :       6720 :   int index = mTypes.where_is_item(attrib_type);
     255                 :            : 
     256         [ +  + ]:       6720 :   if (-1 == index)
     257                 :        717 :     return CUBIT_FAILURE;
     258                 :            : 
     259                 :       6003 :   mAutoActuateFlags.reset();
     260                 :       6003 :   mAutoActuateFlags.step(index);
     261                 :       6003 :   mAutoActuateFlags.change_to(value);
     262                 :       6003 :   return CUBIT_SUCCESS;
     263                 :            : }
     264                 :            : 
     265                 :        120 : void CubitAttribManager::set_all_auto_update_flags(CubitBoolean value)
     266                 :            : {
     267                 :        120 :   mAutoUpdateFlags.reset();
     268         [ +  + ]:       1941 :   for (int i = mAutoUpdateFlags.size(); i>0; i--)
     269                 :            :   {
     270                 :       1821 :     mAutoUpdateFlags.change_to(value);
     271                 :       1821 :     mAutoUpdateFlags.step();
     272                 :            :   }
     273                 :        120 : }
     274                 :            : 
     275                 :       6720 : CubitStatus CubitAttribManager::set_auto_update_flag(int attrib_type, CubitBoolean value)
     276                 :            : {
     277         [ -  + ]:       6720 :   assert(CA_UNDEFINED != attrib_type);
     278         [ -  + ]:       6720 :   assert(CA_ALL_ATTRIBUTES != attrib_type);
     279                 :            : 
     280                 :       6720 :   int index = mTypes.where_is_item(attrib_type);
     281                 :            : 
     282         [ +  + ]:       6720 :   if (-1 == index)
     283                 :        717 :     return CUBIT_FAILURE;
     284                 :            : 
     285                 :       6003 :   mAutoUpdateFlags.reset();
     286                 :       6003 :   mAutoUpdateFlags.step(index);
     287                 :       6003 :   mAutoUpdateFlags.change_to(value);
     288                 :       6003 :   return CUBIT_SUCCESS;
     289                 :            : }
     290                 :            : 
     291                 :        120 : void CubitAttribManager::set_all_auto_write_flags(CubitBoolean value)
     292                 :            : {
     293                 :        120 :   mAutoWriteFlags.reset();
     294         [ +  + ]:       1941 :   for (int i = mAutoWriteFlags.size(); i>0; i--)
     295                 :            :   {
     296                 :       1821 :     mAutoWriteFlags.change_to(value);
     297                 :       1821 :     mAutoWriteFlags.step();
     298                 :            :   }
     299                 :        120 : }
     300                 :            : 
     301                 :       6720 : CubitStatus CubitAttribManager::set_auto_write_flag(int attrib_type, CubitBoolean value)
     302                 :            : {
     303         [ -  + ]:       6720 :   assert(CA_UNDEFINED != attrib_type);
     304         [ -  + ]:       6720 :   assert(CA_ALL_ATTRIBUTES != attrib_type);
     305                 :            : 
     306                 :       6720 :   int index = mTypes.where_is_item(attrib_type);
     307                 :            : 
     308         [ +  + ]:       6720 :   if (-1 == index)
     309                 :        717 :     return CUBIT_FAILURE;
     310                 :            : 
     311                 :       6003 :   mAutoWriteFlags.reset();
     312                 :       6003 :   mAutoWriteFlags.step(index);
     313                 :       6003 :   mAutoWriteFlags.change_to(value);
     314                 :       6003 :   return CUBIT_SUCCESS;
     315                 :            : }
     316                 :            : 
     317                 :        360 : void CubitAttribManager::set_all_auto_read_flags(CubitBoolean value)
     318                 :            : {
     319                 :        360 :   mAutoReadFlags.reset();
     320         [ +  + ]:       5841 :   for (int i = mAutoReadFlags.size(); i>0; i--)
     321                 :            :   {
     322                 :       5481 :     mAutoReadFlags.change_to(value);
     323                 :       5481 :     mAutoReadFlags.step();
     324                 :            :   }
     325                 :        360 : }
     326                 :            : 
     327                 :       6720 : CubitStatus CubitAttribManager::set_auto_read_flag(int attrib_type, CubitBoolean value)
     328                 :            : {
     329         [ -  + ]:       6720 :   assert(CA_UNDEFINED != attrib_type);
     330         [ -  + ]:       6720 :   assert(CA_ALL_ATTRIBUTES != attrib_type);
     331                 :            : 
     332                 :       6720 :   int index = mTypes.where_is_item(attrib_type);
     333                 :            : 
     334         [ +  + ]:       6720 :   if (-1 == index)
     335                 :        717 :     return CUBIT_FAILURE;
     336                 :            : 
     337                 :       6003 :   mAutoReadFlags.reset();
     338                 :       6003 :   mAutoReadFlags.step(index);
     339                 :       6003 :   mAutoReadFlags.change_to(value);
     340                 :       6003 :   return CUBIT_SUCCESS;
     341                 :            : }
     342                 :            : 
     343                 :        717 : void CubitAttribManager::auto_flag(int flag) 
     344                 :            : {
     345         [ -  + ]:        717 :   if (flag == -1) {
     346                 :          0 :     flag = auto_flag();
     347         [ #  # ]:          0 :     if (flag == -1) {
     348 [ #  # ][ #  # ]:          0 :       if (!silentFlag) PRINT_ERROR("Can't change attribute flag with toggle, "
     349         [ #  # ]:          0 :                   "some are already set.\n");
     350                 :        717 :       return;
     351                 :            :     }
     352                 :            :   }
     353                 :            : 
     354         [ +  - ]:        717 :   CubitBoolean set_flag = (flag == 1 ? CUBIT_TRUE : CUBIT_FALSE);
     355                 :            :   
     356                 :        717 :   mAutoUpdateFlags.reset();
     357                 :        717 :   mAutoActuateFlags.reset();
     358         [ -  + ]:        717 :   assert (mAutoUpdateFlags.size() == mAutoActuateFlags.size());
     359         [ +  + ]:      11671 :   for (int i = mAutoUpdateFlags.size(); i>0; i--)
     360                 :            :   {
     361                 :      10954 :     mAutoUpdateFlags.change_to(set_flag);
     362                 :      10954 :     mAutoUpdateFlags.step();
     363                 :      10954 :     mAutoActuateFlags.change_to(set_flag);
     364                 :      10954 :     mAutoActuateFlags.step();
     365                 :            :   }
     366                 :            : 
     367         [ -  + ]:        717 :   if (!set_flag) {
     368                 :            :       // make sure entity_name flag isn't set false here
     369                 :            : 
     370         [ #  # ]:          0 :     int index = mTypes.where_is_item(CA_ENTITY_NAME);
     371         [ #  # ]:          0 :     assert(-1 != index);
     372                 :            : 
     373                 :          0 :     mAutoUpdateFlags.reset();
     374                 :          0 :     mAutoUpdateFlags.step(index);
     375                 :          0 :     mAutoUpdateFlags.change_to(CUBIT_TRUE);
     376                 :            : 
     377                 :          0 :     mAutoActuateFlags.reset();
     378                 :          0 :     mAutoActuateFlags.step(index);
     379                 :          0 :     mAutoActuateFlags.change_to(CUBIT_TRUE);
     380                 :            :   }
     381                 :            : }
     382                 :            :   
     383                 :          0 : int CubitAttribManager::auto_flag() 
     384                 :            : {
     385                 :          0 :   int sum = 0;
     386                 :            :   CubitBoolean b_temp;
     387                 :          0 :   mAutoUpdateFlags.reset();
     388                 :          0 :   mAutoActuateFlags.reset();
     389         [ #  # ]:          0 :   assert (mAutoUpdateFlags.size() == mAutoActuateFlags.size());
     390         [ #  # ]:          0 :   for (int i = mAutoUpdateFlags.size(); i>0; i--)
     391                 :            :   {
     392         [ #  # ]:          0 :     b_temp = mAutoUpdateFlags.get_and_step();
     393         [ #  # ]:          0 :     if (b_temp) sum++;
     394         [ #  # ]:          0 :     b_temp = mAutoActuateFlags.get_and_step();
     395         [ #  # ]:          0 :     if (b_temp) sum++;
     396                 :            :   }
     397                 :            :     
     398         [ #  # ]:          0 :   if (2*mAutoUpdateFlags.size() == sum) return 0;
     399         [ #  # ]:          0 :   else if (sum == 0) return 1;
     400                 :          0 :   else return -1;
     401                 :            : }
     402                 :            : 
     403                 :          0 : int CubitAttribManager::attrib_type(const char* name)
     404                 :            : {
     405                 :            :   int i;
     406                 :          0 :   mTypeNames.reset();
     407         [ #  # ]:          0 :   assert (mTypes.size() == mTypeNames.size());
     408         [ #  # ]:          0 :   for (i=0; i<mTypeNames.size(); i++)
     409                 :            :   {
     410         [ #  # ]:          0 :     if (!strcmp(name, mTypeNames.get_and_step()))
     411                 :            :     {
     412                 :          0 :       mTypes.reset();
     413                 :          0 :       mTypes.step(i);
     414                 :          0 :       return mTypes.get();
     415                 :            :     }
     416                 :            :   }
     417                 :            : 
     418                 :          0 :   return CA_UNDEFINED;
     419                 :            : }
     420                 :            : 
     421                 :       5305 : int CubitAttribManager::attrib_type(const CubitSimpleAttrib& csa_ptr)
     422                 :            : {
     423         [ +  - ]:       5305 :   CubitString char_type = csa_ptr.character_type();
     424 [ +  - ][ +  - ]:       5305 :   return attrib_type_from_internal_name(char_type.c_str());
                 [ +  - ]
     425                 :            : }
     426                 :            : 
     427                 :      20589 : int CubitAttribManager::attrib_type_from_internal_name(const char* name)
     428                 :            : {
     429                 :            :   int i;
     430                 :      20589 :   mInternalNames.reset();
     431         [ -  + ]:      20589 :   assert (mTypes.size() == mInternalNames.size());
     432         [ +  - ]:      73412 :   for (i=0; i<mInternalNames.size(); i++)
     433                 :            :   {
     434         [ +  + ]:      73412 :     if (!strcmp(name, mInternalNames.get_and_step()))
     435                 :            :     {
     436                 :      20589 :       mTypes.reset();
     437                 :      20589 :       mTypes.step(i);
     438                 :      20589 :       return mTypes.get();
     439                 :            :     }
     440                 :            :   }
     441                 :            : 
     442                 :          0 :   return CA_UNDEFINED;
     443                 :            : }
     444                 :            : 
     445                 :     104432 : CubitBoolean CubitAttribManager::auto_actuate_flag(int attrib_type)
     446                 :            : {
     447                 :     104432 :   int index = mTypes.where_is_item(attrib_type);
     448         [ +  + ]:     104432 :   if (-1 == index) {
     449 [ +  - ][ +  - ]:        209 :     if (!silentFlag) PRINT_ERROR("Attribute type %d not recognized.\n", attrib_type);
                 [ +  - ]
     450                 :        209 :     return false;
     451                 :            :   }
     452                 :            : 
     453                 :     104223 :   mAutoActuateFlags.reset();
     454                 :     104223 :   mAutoActuateFlags.step(index);
     455         [ +  - ]:     104432 :   return mAutoActuateFlags.get();
     456                 :            : }
     457                 :            : 
     458                 :     396675 : CubitBoolean CubitAttribManager::auto_update_flag(int attrib_type)
     459                 :            : {
     460                 :     396675 :   int index = mTypes.where_is_item(attrib_type);
     461         [ +  + ]:     396675 :   if (-1 == index) {
     462 [ +  - ][ +  - ]:        275 :     if (!silentFlag) PRINT_ERROR("Attribute type %d not recognized.\n", attrib_type);
                 [ +  - ]
     463                 :        275 :     return false;
     464                 :            :   }
     465                 :            : 
     466                 :     396400 :   mAutoUpdateFlags.reset();
     467                 :     396400 :   mAutoUpdateFlags.step(index);
     468         [ +  - ]:     396675 :   return mAutoUpdateFlags.get();
     469                 :            : }
     470                 :            : 
     471                 :      32290 : CubitBoolean CubitAttribManager::auto_write_flag(int attrib_type)
     472                 :            : {
     473                 :      32290 :   int index = mTypes.where_is_item(attrib_type);
     474         [ -  + ]:      32290 :   if (-1 == index) {
     475 [ #  # ][ #  # ]:          0 :     if (!silentFlag) PRINT_ERROR("Attribute type %d not recognized.\n", attrib_type);
                 [ #  # ]
     476                 :          0 :     return false;
     477                 :            :   }
     478                 :            : 
     479                 :      32290 :   mAutoWriteFlags.reset();
     480                 :      32290 :   mAutoWriteFlags.step(index);
     481         [ +  - ]:      32290 :   return mAutoWriteFlags.get();
     482                 :            : }
     483                 :            : 
     484                 :      12430 : CubitBoolean CubitAttribManager::auto_read_flag(int attrib_type)
     485                 :            : {
     486                 :      12430 :   int index = mTypes.where_is_item(attrib_type);
     487         [ -  + ]:      12430 :   if (-1 == index) {
     488 [ #  # ][ #  # ]:          0 :     if (!silentFlag) PRINT_ERROR("Attribute type %d not recognized.\n", attrib_type);
                 [ #  # ]
     489                 :          0 :     return false;
     490                 :            :   }
     491                 :            : 
     492                 :      12430 :   mAutoReadFlags.reset();
     493                 :      12430 :   mAutoReadFlags.step(index);
     494         [ +  - ]:      12430 :   return mAutoReadFlags.get();
     495                 :            : }
     496                 :            : 
     497                 :            : //- return the internal name of this CA given the enumerated attribute type
     498                 :     261951 : const char * CubitAttribManager::att_internal_name(int attrib_type)
     499                 :            : {
     500                 :     261951 :   int index = mTypes.where_is_item(attrib_type);
     501         [ -  + ]:     261951 :   if (-1 == index) {
     502 [ #  # ][ #  # ]:          0 :     if (!silentFlag) PRINT_ERROR("Attribute type %d not recognized.\n", attrib_type);
                 [ #  # ]
     503                 :          0 :     return NULL;
     504                 :            :   }
     505                 :            : 
     506                 :     261951 :   mInternalNames.reset();
     507                 :     261951 :   mInternalNames.step(index);
     508                 :     261951 :   return mInternalNames.get();
     509                 :            : } 
     510                 :            : 
     511                 :            : //- return the name of this CA given the enumerated attribute type
     512                 :          0 : const char * CubitAttribManager::att_name(int attrib_type)
     513                 :            : {
     514                 :          0 :   int index = mTypes.where_is_item(attrib_type);
     515         [ #  # ]:          0 :   if (-1 == index) {
     516 [ #  # ][ #  # ]:          0 :     if (!silentFlag) PRINT_ERROR("Attribute type %d not recognized.\n", attrib_type);
                 [ #  # ]
     517                 :          0 :     return NULL;
     518                 :            :   }
     519                 :            : 
     520                 :          0 :   mTypeNames.reset();
     521                 :          0 :   mTypeNames.step(index);
     522                 :          0 :   return mTypeNames.get();
     523                 :            : } 
     524                 :            : 
     525                 :       6317 : CubitBoolean CubitAttribManager::actuate_in_constructor(int attrib_type)
     526                 :            : {
     527                 :       6317 :   int index = mTypes.where_is_item(attrib_type);
     528         [ -  + ]:       6317 :   if (-1 == index) {
     529 [ #  # ][ #  # ]:          0 :     if (!silentFlag) PRINT_ERROR("Attribute type %d not recognized.\n", attrib_type);
                 [ #  # ]
     530                 :          0 :     return false;
     531                 :            :   }
     532                 :            : 
     533                 :       6317 :   mActuateInConstructor.reset();
     534                 :       6317 :   mActuateInConstructor.step(index);
     535         [ +  - ]:       6317 :   return mActuateInConstructor.get();
     536                 :            : }
     537                 :            : 
     538                 :       7621 : CubitBoolean CubitAttribManager::actuate_after_geom_changes(int attrib_type)
     539                 :            : {
     540                 :       7621 :   int index = mTypes.where_is_item(attrib_type);
     541         [ -  + ]:       7621 :   if (-1 == index) {
     542 [ #  # ][ #  # ]:          0 :     if (!silentFlag) PRINT_ERROR("Attribute type %d not recognized.\n", attrib_type);
                 [ #  # ]
     543                 :          0 :     return false;
     544                 :            :   }
     545                 :            : 
     546                 :       7621 :   mActuateAfterGeomChanges.reset();
     547                 :       7621 :   mActuateAfterGeomChanges.step(index);
     548         [ +  - ]:       7621 :   return mActuateAfterGeomChanges.get();
     549                 :            : }
     550                 :            : 
     551                 :       1112 : void CubitAttribManager::get_registered_types(DLIList<int> &types)
     552                 :            : {
     553                 :       1112 :   types = mTypes;
     554                 :       1112 :   types.reset();
     555 [ +  - ][ +  - ]:       6540 : }
     556                 :            : 
     557                 :            : 

Generated by: LCOV version 1.11