Пример #1
0
bool DataCenter::getCellNamePair(std::string name, laydata::refnamepair& striter) 
{
   laydata::tdtdesign* ATDB = lockDB();
   if (ATDB->checkcell(name))
   {
      striter = ATDB->getcellnamepair(name);
      unlockDB();
      return true;
   }
   unlockDB();
   // search the cell in the libraries because it's not in the DB
   return _TEDLIB.getLibCellRNP(name, striter);
}
Пример #2
0
LayerMapCif* DataCenter::secureCifLayMap(bool import)
{
   const USMap* savedMap = _properties.getCifLayMap();
   if (NULL != savedMap) return DEBUG_NEW LayerMapCif(*savedMap);
   USMap* theMap = DEBUG_NEW USMap();
   if (import)
   {// Generate the default CIF layer map for import
      lockCIF();
      nameList cifLayers;
      CIFgetLay(cifLayers);
      unlockCIF();
      word laynum = 1;
      for ( nameList::const_iterator CCL = cifLayers.begin(); CCL != cifLayers.end(); CCL++ )
         (*theMap)[laynum] = *CCL;
   }
   else
   {// Generate the default CIF layer map for export
      lockDB(false);
      nameList tdtLayers;
      all_layers(tdtLayers);
      for ( nameList::const_iterator CDL = tdtLayers.begin(); CDL != tdtLayers.end(); CDL++ )
      {
         std::ostringstream ciflayname;
         word layno = getLayerNo( *CDL );
         ciflayname << "L" << layno;
         (*theMap)[layno] = ciflayname.str();
      }
      unlockDB();
   }
   return DEBUG_NEW LayerMapCif(*theMap);
}
Пример #3
0
 Lock::DBRead::~DBRead() {
     unlockDB();
 }
Пример #4
0
 Lock::DBWrite::~DBWrite() {
     unlockDB();
 }
Пример #5
0
 void Lock::DBRead::_tempRelease() {
     unlockDB();
 }
Пример #6
0
 void Lock::DBWrite::_tempRelease() { 
     unlockDB();
 }
Пример #7
0
 Lock::DBLock::~DBLock() {
     unlockDB();
 }