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); }
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); }
Lock::DBRead::~DBRead() { unlockDB(); }
Lock::DBWrite::~DBWrite() { unlockDB(); }
void Lock::DBRead::_tempRelease() { unlockDB(); }
void Lock::DBWrite::_tempRelease() { unlockDB(); }
Lock::DBLock::~DBLock() { unlockDB(); }