diff --git a/crlcore/etc/common/display.conf b/crlcore/etc/common/display.conf index 729d415a..2fba8d12 100644 --- a/crlcore/etc/common/display.conf +++ b/crlcore/etc/common/display.conf @@ -84,6 +84,7 @@ stylesTable = \ , (Drawing, 'gmetalh' , { 'color':'128,255,200', 'pattern':'light_antihash0.8', 'border':1 }) , (Drawing, 'gmetalv' , { 'color':'200,200,255', 'pattern':'light_antihash1.8', 'border':1 }) , (Drawing, 'gcut' , { 'color':'255,255,190', 'border':1 }) + , (Drawing, 'gcell' , { 'color':'255,255,190', 'pattern':'0000000000000000', 'border':4 }) ) # ---------------------------------------------------------------------- @@ -189,6 +190,7 @@ stylesTable = \ , (Drawing, 'gmetalh' , { 'color':'128,255,200', 'pattern':'antislash2.32' , 'border':1 }) , (Drawing, 'gmetalv' , { 'color':'200,200,255', 'pattern':'light_antihash1.8', 'border':1 }) , (Drawing, 'gcut' , { 'color':'255,255,190', 'border':1 }) + , (Drawing, 'gcell' , { 'color':'255,255,190', 'pattern':'0000000000000000', 'border':4 }) ) # ---------------------------------------------------------------------- @@ -361,5 +363,6 @@ stylesTable = \ , (Drawing, 'gmetalh' , { 'color':'128,255,200', 'pattern':'light_antihash0.8' , 'border':1 }) , (Drawing, 'gmetalv' , { 'color':'200,200,255', 'pattern':'light_antihash1.8' , 'border':1 }) , (Drawing, 'gcut' , { 'color':'255,255,190', 'border':1 }) + , (Drawing, 'gcell' , { 'color':'255,255,190', 'pattern':'0000000000000000', 'border':4 }) ) ) diff --git a/crlcore/etc/common/misc.conf b/crlcore/etc/common/misc.conf index 921da0ba..cea63434 100644 --- a/crlcore/etc/common/misc.conf +++ b/crlcore/etc/common/misc.conf @@ -7,7 +7,8 @@ parametersTable = \ , ('misc.logMode' , TypeBool, False) , ('misc.verboseLevel1', TypeBool, True ) , ('misc.verboseLevel2', TypeBool, False) - , ('misc.traceLevel' , TypeInt , 1000, {'min':0} ) + , ('misc.minTraceLevel', TypeInt , 0, {'min':0} ) + , ('misc.maxTraceLevel', TypeInt , 0, {'min':0} ) , ("viewer.printer.mode", TypeEnumerate ,1 , { 'values':( ("Cell Mode" , 1) @@ -58,7 +59,8 @@ layoutTable = \ , (TypeOption, 'misc.verboseLevel2' , 'Very Verbose' , 0) , (TypeOption, 'misc.info' , 'Show Info' , 0) , (TypeOption, 'misc.logMode' , 'Output is a TTY' , 0) - , (TypeOption, 'misc.traceLevel' , 'Trace Level' , 1) + , (TypeOption, 'misc.minTraceLevel' , 'Min. Trace Level' , 1) + , (TypeOption, 'misc.maxTraceLevel' , 'Max. Trace Level' , 1) , (TypeTitle , 'Print/Snapshot Parameters') , (TypeOption, 'viewer.printer.mode' , 'Printer/Snapshot Mode', 1) , (TypeOption, 'viewer.printer.paper', 'Paper Size' , 0) diff --git a/crlcore/python/helpers/misc.py b/crlcore/python/helpers/misc.py index fb51b6b5..405b7d5c 100644 --- a/crlcore/python/helpers/misc.py +++ b/crlcore/python/helpers/misc.py @@ -11,9 +11,12 @@ Cfg.getParamBool("misc.bug" ).setBool(False) Cfg.getParamBool("misc.logMode" ).setBool(True ) Cfg.getParamBool("misc.verboseLevel1").setBool(True ) Cfg.getParamBool("misc.verboseLevel2").setBool(False) -Cfg.getParamInt ("misc.traceLevel" ).setInt (1000 ) -param = Cfg.getParamInt ("misc.traceLevel") +Cfg.getParamInt ("misc.minTraceLevel").setInt (0 ) +Cfg.getParamInt ("misc.maxTraceLevel").setInt (0 ) +param = Cfg.getParamInt ("misc.minTraceLevel") param.setMin(0) +param = Cfg.getParamInt ("misc.maxTraceLevel") +param.setMax(0) # Misc. tab layout. layout = Cfg.Configuration.get().getLayout() @@ -26,4 +29,5 @@ layout.addParameter ( "Misc.", "misc.info" , "Show Infos" , 0 ) layout.addParameter ( "Misc.", "misc.paranoid" , "Show Everything" , 0 ) layout.addParameter ( "Misc.", "misc.bug" , "Show Bugs" , 0 ) layout.addParameter ( "Misc.", "misc.logMode" , "Output is a TTY" , 0 ) -layout.addParameter ( "Misc.", "misc.traceLevel" , "Trace Level" , 1 ) +layout.addParameter ( "Misc.", "misc.minTraceLevel", "Min. Trace Level", 1 ) +layout.addParameter ( "Misc.", "misc.maxTraceLevel", "Max. Trace Level", 1 ) diff --git a/crlcore/src/ccore/AllianceLibrary.cpp b/crlcore/src/ccore/AllianceLibrary.cpp index 6347e9ac..fa9d8d15 100644 --- a/crlcore/src/ccore/AllianceLibrary.cpp +++ b/crlcore/src/ccore/AllianceLibrary.cpp @@ -27,7 +27,6 @@ namespace CRL { using namespace std; using Hurricane::tab; - using Hurricane::inltrace; using Hurricane::Initializer; using Hurricane::JsonTypes; using Hurricane::Warning; @@ -133,7 +132,7 @@ namespace CRL { , DataBase::CreateLib|DataBase::WarnCreateLib ); AllianceLibrary* aLibrary = NULL; - ltrace(51) << "| " << libDbPath << " : " << library << endl; + cdebug.log(19) << "| " << libDbPath << " : " << library << endl; if (library) { aLibrary = af->getAllianceLibrary( library ); @@ -152,7 +151,7 @@ namespace CRL { if (not library) library = aLibrary->getLibrary(); } - ltrace(51) << "| Associates to: " << aLibrary << endl; + cdebug.log(19) << "| Associates to: " << aLibrary << endl; if (aLibrary->getLibrary() != library) { cerr << Warning( "JsonAllianceLibrary::toData(): Underlying Hurricane Library discrepency for \"%s\".\n" diff --git a/crlcore/src/ccore/Catalog.cpp b/crlcore/src/ccore/Catalog.cpp index 65ccbe78..15acd735 100644 --- a/crlcore/src/ccore/Catalog.cpp +++ b/crlcore/src/ccore/Catalog.cpp @@ -30,7 +30,6 @@ using namespace std; namespace CRL { - using Hurricane::inltrace; using Hurricane::tab; using Hurricane::Initializer; using Hurricane::JsonTypes; @@ -437,7 +436,7 @@ namespace CRL { Catalog::State* state = get( stack, "_state" ); CatalogProperty* property = NULL; - ltrace(51) << "topDBo:" << dbo << endl; + cdebug.log(19) << "topDBo:" << dbo << endl; Cell* cell = dynamic_cast( dbo ); if (cell) { diff --git a/crlcore/src/ccore/RoutingLayerGauge.cpp b/crlcore/src/ccore/RoutingLayerGauge.cpp index 1fdcf6f4..db76413d 100644 --- a/crlcore/src/ccore/RoutingLayerGauge.cpp +++ b/crlcore/src/ccore/RoutingLayerGauge.cpp @@ -90,9 +90,6 @@ namespace CRL { using Hurricane::JsonTypes; using Hurricane::Tabulation; using Hurricane::BasicLayer; - using Hurricane::trace_in; - using Hurricane::trace_out; - using Hurricane::in_trace; using Hurricane::tab; using Hurricane::DataBase; using Hurricane::Technology; @@ -210,18 +207,17 @@ namespace CRL { unsigned RoutingLayerGauge::getTrackIndex ( DbU::Unit start, DbU::Unit stop, DbU::Unit position, unsigned mode ) const { - trace << "RoutingLayerGauge::getTrackIndex ( " << position << " )" << endl; - trace_in (); + cdebug.log(100,1) << "RoutingLayerGauge::getTrackIndex ( " << position << " )" << endl; long modulo; long depth; divide ( position-start, depth, modulo ); - trace << "depth := " << depth << endl; + cdebug.log(100) << "depth := " << depth << endl; if ( depth < 0 ) { - trace_out (); + cdebug.tabw(100,-1); return 0; // throw Error ( negativeIndex @@ -243,7 +239,7 @@ namespace CRL { unsigned int tracksNumber = getTrackNumber(start,stop); if ( (unsigned)depth >= tracksNumber ) { - trace_out (); + cdebug.tabw(100,-1); return (tracksNumber > 0) ? tracksNumber-1 : 0; // throw Error ( overflowIndex // , getString(this).c_str() @@ -253,7 +249,7 @@ namespace CRL { // ); } - trace_out (); + cdebug.tabw(100,-1); return depth; } diff --git a/crlcore/src/ccore/Utilities.cpp b/crlcore/src/ccore/Utilities.cpp index 0ddccf24..ebc76453 100644 --- a/crlcore/src/ccore/Utilities.cpp +++ b/crlcore/src/ccore/Utilities.cpp @@ -88,9 +88,17 @@ namespace { } - void traceLevelChanged ( Cfg::Parameter* p ) + void minTraceLevelChanged ( Cfg::Parameter* p ) { - ltracelevel ( p->asInt() ); + //cerr << "minTraceLevelChanged:" << p->asInt() << endl; + cdebug.setMinLevel( p->asInt() ); + } + + + void maxTraceLevelChanged ( Cfg::Parameter* p ) + { + //cerr << "maxTraceLevelChanged:" << p->asInt() << endl; + cdebug.setMaxLevel( p->asInt() ); } @@ -329,7 +337,8 @@ namespace CRL { Cfg::getParamBool ("misc.paranoid" ,false)->registerCb ( this, paranoidChanged ); Cfg::getParamBool ("misc.bug" ,false)->registerCb ( this, bugChanged ); Cfg::getParamBool ("misc.logMode" ,false)->registerCb ( this, logModeChanged ); - Cfg::getParamInt ("misc.traceLevel" ,1000 )->registerCb ( this, traceLevelChanged ); + Cfg::getParamInt ("misc.minTraceLevel" ,0 )->registerCb ( this, minTraceLevelChanged ); + Cfg::getParamInt ("misc.maxTraceLevel" ,0 )->registerCb ( this, maxTraceLevelChanged ); Cfg::getParamString("stratus1.mappingName","not_set")->registerCb ( this, stratus1MappingNameChanged ); // Immediate update from the configuration. diff --git a/crlcore/src/ccore/bookshelf/BookshelfParser.cpp b/crlcore/src/ccore/bookshelf/BookshelfParser.cpp index df022f9c..dbffbbe9 100644 --- a/crlcore/src/ccore/bookshelf/BookshelfParser.cpp +++ b/crlcore/src/ccore/bookshelf/BookshelfParser.cpp @@ -318,7 +318,7 @@ Name BKParser::getNewNetName() bool BKParser::isNumber ( char* token ) { - trace << "isNumber = " << token; + cdebug.log(100) << "isNumber = " << token; unsigned i = 0; char tok; @@ -330,7 +330,7 @@ bool BKParser::isNumber ( char* token ) { } bool BKParser::isFloat ( char* token ) { - trace << "isFloat = " << token; + cdebug.log(100) << "isFloat = " << token; unsigned i = 0; char tok; @@ -343,7 +343,7 @@ bool BKParser::isFloat ( char* token ) { } bool BKParser::isName ( char* token ) { - trace << "isName = " << token; + cdebug.log(100) << "isName = " << token; unsigned i = 0; char tok; @@ -358,7 +358,7 @@ bool BKParser::isName ( char* token ) { } bool BKParser::isSymetry ( char* token ) { - trace << "isSymetry = " << token; + cdebug.log(100) << "isSymetry = " << token; if ( ( ( token[0] == 'X' ) && ( token[1] == char(0) ) ) || ( ( token[0] == 'Y' ) && ( token[1] == char(0) ) ) || ( ( token[0] == 'R' ) && ( token[1] == '9' ) && ( token[2] == '0' ) && ( token[3] == char(0) ) ) ) @@ -366,7 +366,7 @@ bool BKParser::isSymetry ( char* token ) { return false; } bool BKParser::isDirection ( char* token ) { - trace << "isDirection = " << token; + cdebug.log(100) << "isDirection = " << token; if ( ( ( token[0] == 'I' ) || ( token[0] == 'O' ) || ( token[0] == 'B' ) ) && ( token[1] == char(0) ) ) return true; @@ -381,7 +381,7 @@ bool BKParser::ScanAux () // The Aux record looks like : // RowBasedPlacement : .nodes .nets .wts .pl .scl // ********************************************************************************************************** - trace << "ScanAux = " << _buffer; + cdebug.log(100) << "ScanAux = " << _buffer; // *********************** // Patterns initialization @@ -441,7 +441,7 @@ bool BKParser::ScanNum ( unsigned& num ) // The NodeNum record looks like : // NumNodes : // ******************************* - trace << "ScanNum = " << _buffer; + cdebug.log(100) << "ScanNum = " << _buffer; char *p_type, *p_num; if ( ( ( p_type = strtok ( _buffer, "\t \n:" ) ) != NULL ) && @@ -460,7 +460,7 @@ bool BKParser::ScanDegree ( unsigned& degree, Name& netName ) // The NetDregree record looks like : // NetDegree : [netName] // ********************************** - trace << "ScanDegree = " << _buffer; + cdebug.log(100) << "ScanDegree = " << _buffer; bool mDegree = false; bool mName = false; @@ -502,7 +502,7 @@ bool BKParser::ScanNodes ( Name& name, DbU::Unit& width, DbU::Unit& height, bool // The Node record looks like : // [terminal] // ************************************** - trace << "ScanNodes = " << _buffer; + cdebug.log(100) << "ScanNodes = " << _buffer; char *p_name, *p_width, *p_height, *p_term; if ( ( ( p_name = strtok ( _buffer, "\t \n" ) ) != NULL ) && @@ -528,7 +528,7 @@ bool BKParser::ScanNets ( Name& insName, Net::Direction& dir, DbU::Unit& dx, DbU // The Net record looks like : // NetDegree : // ********************************* - trace << "ScanNets = " << _buffer; + cdebug.log(100) << "ScanNets = " << _buffer; bool mName = false; bool mDirection = false; @@ -580,7 +580,7 @@ bool BKParser::ScanWts ( Name& name, unsigned& weight ) // The Weight record looks like : // // ****************************** - trace << "ScanWts = " << _buffer; + cdebug.log(100) << "ScanWts = " << _buffer; //char *p_x, *p_y, *p_model, *p_name, *p_transf; @@ -622,7 +622,7 @@ bool BKParser::ScanPl ( Name& name, DbU::Unit& x, DbU::Unit& y, Transformation:: // The Placement record looks like : // : [FIXED] // ************************************* - trace << "ScanPl = " << _buffer; + cdebug.log(100) << "ScanPl = " << _buffer; char *p_name, *p_x, *p_y, *p_orient, *p_fixed; if ( ( ( p_name = strtok ( _buffer, "\t \n" ) ) != NULL ) && diff --git a/crlcore/src/ccore/toolbox/RoutingPads.cpp b/crlcore/src/ccore/toolbox/RoutingPads.cpp index 4f307e07..42dde098 100644 --- a/crlcore/src/ccore/toolbox/RoutingPads.cpp +++ b/crlcore/src/ccore/toolbox/RoutingPads.cpp @@ -208,10 +208,10 @@ void createPlacedRoutingPadsAndPinsRing ( Cell* top_cell ) netOccurrence = Occurrence(net); for_each_occurrence ( plugOccurrence, HyperNet(netOccurrence).getLeafPlugOccurrences() ) { - ltrace(58) << "Creating Routing Pad " << plugOccurrence << endl;ltracein(58); - cerr << RoutingPad::create ( net, plugOccurrence, RoutingPad::BiggestArea ) << endl; - //ltraceout(58); - end_for; + cdebug.log(109,1) << "Creating Routing Pad " << plugOccurrence << endl; + cerr << RoutingPad::create ( net, plugOccurrence, RoutingPad::BiggestArea ) << endl; + //ltraceout(58); + end_for; } vector pins; for_each_pin ( pin, net->getPins() ) { diff --git a/crlcore/src/cyclop/CyclopMain.cpp b/crlcore/src/cyclop/CyclopMain.cpp index 940325ed..67740b97 100644 --- a/crlcore/src/cyclop/CyclopMain.cpp +++ b/crlcore/src/cyclop/CyclopMain.cpp @@ -93,11 +93,10 @@ int main ( int argc, char *argv[] ) int returnCode = 0; try { - unsigned int traceLevel; - bool verbose1; - bool verbose2; - bool coreDump; - bool textMode; + bool verbose1; + bool verbose2; + bool coreDump; + bool textMode; boptions::options_description options ("Command line arguments & options"); options.add_options() @@ -110,9 +109,6 @@ int main ( int argc, char *argv[] ) , "Enable core dumping.") ( "text,t" , boptions::bool_switch(&textMode)->default_value(false) , "Run in pure text mode.") - ( "trace-level,l" , boptions::value(&traceLevel)->default_value(1000) - , "Set the level of trace, trace messages with a level superior to " - " will be printed on ." ) ( "cell,c" , boptions::value() , "The name of the cell to load, whithout extension." ); diff --git a/crlcore/src/pyCRL/PyAcmSigda.cpp b/crlcore/src/pyCRL/PyAcmSigda.cpp index fb314fed..618a2e4f 100644 --- a/crlcore/src/pyCRL/PyAcmSigda.cpp +++ b/crlcore/src/pyCRL/PyAcmSigda.cpp @@ -28,7 +28,6 @@ namespace CRL { using std::string; using std::ostringstream; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::Exception; using Hurricane::Bug; using Hurricane::Error; @@ -56,7 +55,7 @@ extern "C" { static PyObject* PyAcmSigda_load ( PyObject*, PyObject* args ) { - trace << "PyAcmSigda_load()" << endl; + cdebug.log(30) << "PyAcmSigda_load()" << endl; Cell* cell = NULL; diff --git a/crlcore/src/pyCRL/PyAllianceFramework.cpp b/crlcore/src/pyCRL/PyAllianceFramework.cpp index 308ff06f..56c44fd4 100644 --- a/crlcore/src/pyCRL/PyAllianceFramework.cpp +++ b/crlcore/src/pyCRL/PyAllianceFramework.cpp @@ -34,7 +34,6 @@ namespace CRL { using std::hex; using std::ostringstream; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::Exception; using Hurricane::Bug; using Hurricane::Error; @@ -71,7 +70,7 @@ extern "C" { static PyObject* PyAllianceFramework_create ( PyObject*, PyObject* args ) { - trace << "PyAllianceFramework_create()" << endl; + cdebug.log(30) << "PyAllianceFramework_create()" << endl; AllianceFramework* af = NULL; PyAllianceFramework* pyAf = NULL; @@ -97,7 +96,7 @@ extern "C" { static PyObject* PyAllianceFramework_get ( PyObject* args ) { - trace << "PyAllianceFramework_get()" << endl; + cdebug.log(30) << "PyAllianceFramework_get()" << endl; AllianceFramework* af = NULL; PyAllianceFramework* pyAf = NULL; @@ -117,7 +116,7 @@ extern "C" { static PyObject* PyAllianceFramework_getEnvironment ( PyAllianceFramework* self ) { - trace << "PyAllianceFramework_getEnvironment ()" << endl; + cdebug.log(30) << "PyAllianceFramework_getEnvironment ()" << endl; Environment* env = NULL; @@ -135,7 +134,7 @@ extern "C" { static PyObject* PyAllianceFramework_getLibrary ( PyAllianceFramework* self, PyObject* args ) { - trace << "PyAllianceFramework_getLibrary()" << endl; + cdebug.log(30) << "PyAllianceFramework_getLibrary()" << endl; Library* lib = NULL; @@ -165,7 +164,7 @@ extern "C" { static PyObject* PyAllianceFramework_getAllianceLibrary ( PyAllianceFramework* self, PyObject* args ) { - trace << "PyAllianceFramework_getAllianceLibrary()" << endl; + cdebug.log(30) << "PyAllianceFramework_getAllianceLibrary()" << endl; AllianceLibrary* alib = NULL; @@ -200,7 +199,7 @@ extern "C" { static PyObject* PyAllianceFramework_getCell ( PyAllianceFramework* self, PyObject* args ) { - trace << "PyAllianceFramework_getCell ()" << endl; + cdebug.log(30) << "PyAllianceFramework_getCell ()" << endl; char* name = NULL; Cell* cell = NULL; @@ -223,7 +222,7 @@ extern "C" { static PyObject* PyAllianceFramework_saveCell ( PyAllianceFramework* self, PyObject* args ) { - trace << "PyAllianceFramework_saveCell ()" << endl; + cdebug.log(30) << "PyAllianceFramework_saveCell ()" << endl; HTRY @@ -244,7 +243,7 @@ extern "C" { static PyObject* PyAllianceFramework_createCell ( PyAllianceFramework* self, PyObject* args ) { - trace << "PyAllianceFramework_createCell ()" << endl; + cdebug.log(30) << "PyAllianceFramework_createCell ()" << endl; char* name = NULL; Cell* cell = NULL; @@ -266,7 +265,7 @@ extern "C" { static PyObject* PyAllianceFramework_createLibrary ( PyAllianceFramework* self, PyObject* args ) { - trace << "PyAllianceFramework_createLibrary()" << endl; + cdebug.log(30) << "PyAllianceFramework_createLibrary()" << endl; AllianceLibrary* alib = NULL; string libName = ""; @@ -305,7 +304,7 @@ extern "C" { static PyObject* PyAllianceFramework_isPad ( PyAllianceFramework* self, PyObject* args ) { - trace << "PyAllianceFramework_isPad ()" << endl; + cdebug.log(30) << "PyAllianceFramework_isPad ()" << endl; char* name = NULL; @@ -326,7 +325,7 @@ extern "C" { static PyObject* PyAllianceFramework_addRoutingGauge ( PyAllianceFramework* self, PyObject* args ) { - trace << "PyAllianceFramework_addRoutingGauge ()" << endl; + cdebug.log(30) << "PyAllianceFramework_addRoutingGauge ()" << endl; HTRY METHOD_HEAD("AllianceFramework.addRoutingGauge()") @@ -342,7 +341,7 @@ extern "C" { static PyObject* PyAllianceFramework_getRoutingGauge ( PyAllianceFramework* self, PyObject* args ) { - trace << "PyAllianceFramework_getRoutingGauge ()" << endl; + cdebug.log(30) << "PyAllianceFramework_getRoutingGauge ()" << endl; RoutingGauge* rg = NULL; @@ -366,7 +365,7 @@ extern "C" { static PyObject* PyAllianceFramework_addCellGauge ( PyAllianceFramework* self, PyObject* args ) { - trace << "PyAllianceFramework_addCellGauge ()" << endl; + cdebug.log(30) << "PyAllianceFramework_addCellGauge ()" << endl; HTRY METHOD_HEAD("AllianceFramework.addCellGauge()") @@ -382,7 +381,7 @@ extern "C" { static PyObject* PyAllianceFramework_getCellGauge ( PyAllianceFramework* self, PyObject* args ) { - trace << "PyAllianceFramework_getCellGauge ()" << endl; + cdebug.log(30) << "PyAllianceFramework_getCellGauge ()" << endl; CellGauge* rg = NULL; @@ -406,7 +405,7 @@ extern "C" { static PyObject* PyAllianceFramework_loadLibraryCells ( PyAllianceFramework* self, PyObject* args ) { - trace << "PyAllianceFramework_loadLibraryCells()" << endl; + cdebug.log(30) << "PyAllianceFramework_loadLibraryCells()" << endl; unsigned int count = 0; diff --git a/crlcore/src/pyCRL/PyAllianceLibrary.cpp b/crlcore/src/pyCRL/PyAllianceLibrary.cpp index 35a981b3..4bf7baec 100644 --- a/crlcore/src/pyCRL/PyAllianceLibrary.cpp +++ b/crlcore/src/pyCRL/PyAllianceLibrary.cpp @@ -28,7 +28,6 @@ namespace CRL { using std::string; using std::ostringstream; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::Exception; using Hurricane::Bug; using Hurricane::Error; @@ -60,7 +59,7 @@ extern "C" { static PyObject* PyAllianceLibrary_getLibrary ( PyAllianceLibrary* self, PyObject* args ) { - trace << "PyAllianceLibrary_getLibrary()" << endl; + cdebug.log(30) << "PyAllianceLibrary_getLibrary()" << endl; Library* lib = NULL; @@ -75,7 +74,7 @@ extern "C" { static PyObject* PyAllianceLibrary_getPath ( PyAllianceLibrary* self, PyObject* args ) { - trace << "PyAllianceLibrary_getPath()" << endl; + cdebug.log(30) << "PyAllianceLibrary_getPath()" << endl; HTRY METHOD_HEAD("AllianceLibrary.getPath()") @@ -115,7 +114,7 @@ extern "C" { DirectHashMethod(PyAllianceLibrary_Hash, PyAllianceLibrary) extern void PyAllianceLibrary_LinkPyType() { - trace << "PyAllianceLibrary_LinkType()" << endl; + cdebug.log(30) << "PyAllianceLibrary_LinkType()" << endl; PyTypeAllianceLibrary.tp_dealloc = (destructor) PyAllianceLibrary_DeAlloc; PyTypeAllianceLibrary.tp_repr = (reprfunc) PyAllianceLibrary_Repr; diff --git a/crlcore/src/pyCRL/PyBanner.cpp b/crlcore/src/pyCRL/PyBanner.cpp index 98e1bec1..386639fd 100644 --- a/crlcore/src/pyCRL/PyBanner.cpp +++ b/crlcore/src/pyCRL/PyBanner.cpp @@ -28,7 +28,6 @@ namespace CRL { using std::string; using std::ostringstream; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::Bug; using Hurricane::Error; using Hurricane::Warning; @@ -58,7 +57,7 @@ extern "C" { static PyObject* PyBanner_new ( PyTypeObject* type, PyObject* args, PyObject* kwArgs ) { - trace << "PyBanner_new()" << endl; + cdebug.log(30) << "PyBanner_new()" << endl; Banner* banner = NULL; PyBanner* pyBanner = (PyBanner*)type->tp_alloc(type,0); @@ -181,7 +180,7 @@ extern "C" { DirectHashMethod(PyBanner_Hash, PyBanner) extern void PyBanner_LinkPyType() { - trace << "PyBanner_LinkType()" << endl; + cdebug.log(30) << "PyBanner_LinkType()" << endl; PyTypeBanner.tp_new = PyBanner_new; PyTypeBanner.tp_dealloc = (destructor)PyBanner_DeAlloc; diff --git a/crlcore/src/pyCRL/PyBlif.cpp b/crlcore/src/pyCRL/PyBlif.cpp index 8182e3a1..201d5b8a 100644 --- a/crlcore/src/pyCRL/PyBlif.cpp +++ b/crlcore/src/pyCRL/PyBlif.cpp @@ -28,7 +28,6 @@ namespace CRL { using std::string; using std::ostringstream; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::Exception; using Hurricane::Bug; using Hurricane::Error; @@ -56,7 +55,7 @@ extern "C" { static PyObject* PyBlif_load ( PyObject*, PyObject* args ) { - trace << "PyBlif_load()" << endl; + cdebug.log(30) << "PyBlif_load()" << endl; Cell* cell = NULL; diff --git a/crlcore/src/pyCRL/PyCRL.cpp b/crlcore/src/pyCRL/PyCRL.cpp index 7ebc9cc2..55de9efc 100644 --- a/crlcore/src/pyCRL/PyCRL.cpp +++ b/crlcore/src/pyCRL/PyCRL.cpp @@ -40,7 +40,6 @@ namespace CRL { using std::cerr; using std::endl; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::Exception; using Hurricane::Bug; using Hurricane::Error; @@ -74,7 +73,7 @@ extern "C" { static PyObject* PyVhdl_destroyAllVHDL ( PyObject* module ) { - trace << "PyVhdl_destroyAllVHDL()" << endl; + cdebug.log(30) << "PyVhdl_destroyAllVHDL()" << endl; HTRY EntityExtension::destroyAll(); @@ -104,7 +103,7 @@ extern "C" { // Module Initialization : "initCRL ()" DL_EXPORT(void) initCRL () { - trace << "initCRL()" << endl; + cdebug.log(30) << "initCRL()" << endl; PyBanner_LinkPyType (); PyCatalogState_LinkPyType (); @@ -198,7 +197,7 @@ extern "C" { //PyObject* dictionnary = PyModule_GetDict ( module ); //DbULoadConstants ( dictionnary ); - trace << "CRL.so loaded " << (void*)&typeid(string) << endl; + cdebug.log(30) << "CRL.so loaded " << (void*)&typeid(string) << endl; } diff --git a/crlcore/src/pyCRL/PyCatalog.cpp b/crlcore/src/pyCRL/PyCatalog.cpp index 82fe53cb..051e6e9e 100644 --- a/crlcore/src/pyCRL/PyCatalog.cpp +++ b/crlcore/src/pyCRL/PyCatalog.cpp @@ -37,7 +37,6 @@ namespace CRL { using std::hex; using std::ostringstream; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::Error; using Hurricane::Warning; using Isobar::ProxyProperty; diff --git a/crlcore/src/pyCRL/PyCatalogState.cpp b/crlcore/src/pyCRL/PyCatalogState.cpp index 346e4153..31f5a993 100644 --- a/crlcore/src/pyCRL/PyCatalogState.cpp +++ b/crlcore/src/pyCRL/PyCatalogState.cpp @@ -27,7 +27,6 @@ namespace CRL { using std::hex; using std::ostringstream; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::Exception; using Hurricane::Bug; using Hurricane::Error; @@ -115,7 +114,7 @@ extern "C" { DirectHashMethod(PyCatalogState_Hash, PyCatalogState) extern void PyCatalogState_LinkPyType() { - trace << "PyCatalogState_LinkType()" << endl; + cdebug.log(30) << "PyCatalogState_LinkType()" << endl; PyTypeCatalogState.tp_dealloc = (destructor) PyCatalogState_DeAlloc; PyTypeCatalogState.tp_compare = (cmpfunc) PyCatalogState_Cmp; PyTypeCatalogState.tp_repr = (reprfunc) PyCatalogState_Repr; diff --git a/crlcore/src/pyCRL/PyCellGauge.cpp b/crlcore/src/pyCRL/PyCellGauge.cpp index 8fda554f..e50a4575 100644 --- a/crlcore/src/pyCRL/PyCellGauge.cpp +++ b/crlcore/src/pyCRL/PyCellGauge.cpp @@ -27,7 +27,6 @@ namespace CRL { using std::string; using std::ostringstream; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::Exception; using Hurricane::Bug; using Hurricane::Error; @@ -62,7 +61,7 @@ extern "C" { static PyObject* PyCellGauge_create ( PyObject*, PyObject* args ) { - trace << "PyCellGauge_create()" << endl; + cdebug.log(30) << "PyCellGauge_create()" << endl; CellGauge* cg = NULL; PyCellGauge* pyCg = NULL; diff --git a/crlcore/src/pyCRL/PyEnvironment.cpp b/crlcore/src/pyCRL/PyEnvironment.cpp index 91964b4c..55e013c2 100644 --- a/crlcore/src/pyCRL/PyEnvironment.cpp +++ b/crlcore/src/pyCRL/PyEnvironment.cpp @@ -27,7 +27,6 @@ namespace CRL { using std::string; using std::ostringstream; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::Exception; using Hurricane::Bug; using Hurricane::Error; @@ -68,7 +67,7 @@ extern "C" { PyObject* PyEnvironment_addSYSTEM_LIBRARY ( PyEnvironment* self, PyObject* args, PyObject* kwArgs ) { - trace << "PyEnvironment_addSYSTEM_LIBRARY()" << endl; + cdebug.log(30) << "PyEnvironment_addSYSTEM_LIBRARY()" << endl; HTRY METHOD_HEAD("Environment.addSYSTEM_LIBRARY()") @@ -114,7 +113,7 @@ extern "C" { PyObject* PyEnvironment_getLIBRARYPath ( PyEnvironment* self, PyObject* args ) { - trace << "PyEnvironment_getLIBRARYPath()" << endl; + cdebug.log(30) << "PyEnvironment_getLIBRARYPath()" << endl; HTRY METHOD_HEAD("Environment.getLIBRARYPath()") @@ -266,7 +265,7 @@ extern "C" { DirectHashMethod(PyEnvironment_Hash, PyEnvironment) extern void PyEnvironment_LinkPyType() { - trace << "PyEnvironment_LinkType()" << endl; + cdebug.log(30) << "PyEnvironment_LinkType()" << endl; PyTypeEnvironment.tp_dealloc = (destructor) PyEnvironment_DeAlloc; PyTypeEnvironment.tp_repr = (reprfunc) PyEnvironment_Repr; diff --git a/crlcore/src/pyCRL/PyIspd05.cpp b/crlcore/src/pyCRL/PyIspd05.cpp index c91feb5b..fdf0e30f 100644 --- a/crlcore/src/pyCRL/PyIspd05.cpp +++ b/crlcore/src/pyCRL/PyIspd05.cpp @@ -29,7 +29,6 @@ namespace CRL { using std::string; using std::ostringstream; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::Exception; using Hurricane::Bug; using Hurricane::Error; @@ -57,7 +56,7 @@ extern "C" { static PyObject* PyIspd05_load ( PyObject*, PyObject* args ) { - trace << "PyIspd05_load()" << endl; + cdebug.log(30) << "PyIspd05_load()" << endl; Cell* cell = NULL; diff --git a/crlcore/src/pyCRL/PyRoutingGauge.cpp b/crlcore/src/pyCRL/PyRoutingGauge.cpp index e7516107..f670284f 100644 --- a/crlcore/src/pyCRL/PyRoutingGauge.cpp +++ b/crlcore/src/pyCRL/PyRoutingGauge.cpp @@ -30,7 +30,6 @@ namespace CRL { using std::string; using std::ostringstream; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::Exception; using Hurricane::Bug; using Hurricane::Error; @@ -68,7 +67,7 @@ extern "C" { static PyObject* PyRoutingGauge_create ( PyObject*, PyObject* args ) { - trace << "PyRoutingGauge_create()" << endl; + cdebug.log(30) << "PyRoutingGauge_create()" << endl; RoutingGauge* rg = NULL; PyRoutingGauge* pyRg = NULL; @@ -97,7 +96,7 @@ extern "C" { static PyObject* PyRoutingGauge_getTechnology ( PyRoutingGauge* self ) { - trace << "PyRoutingGauge_getTechnology()" << endl; + cdebug.log(30) << "PyRoutingGauge_getTechnology()" << endl; Technology* technology = NULL; @@ -112,7 +111,7 @@ extern "C" { static PyObject* PyRoutingGauge_getDepth ( PyRoutingGauge* self ) { - trace << "PyRoutingGauge_getDepth()" << endl; + cdebug.log(30) << "PyRoutingGauge_getDepth()" << endl; size_t depth = 0; @@ -127,7 +126,7 @@ extern "C" { static PyObject* PyRoutingGauge_getLayerDepth ( PyRoutingGauge* self, PyObject* args ) { - trace << "PyRoutingGauge_getLayerDepth()" << endl; + cdebug.log(30) << "PyRoutingGauge_getLayerDepth()" << endl; size_t depth = 0; @@ -154,7 +153,7 @@ extern "C" { static PyObject* PyRoutingGauge_getLayerGauge ( PyRoutingGauge* self, PyObject* args ) { - trace << "PyRoutingGauge_getLayerGauge()" << endl; + cdebug.log(30) << "PyRoutingGauge_getLayerGauge()" << endl; RoutingLayerGauge* rlg = NULL; @@ -189,7 +188,7 @@ extern "C" { static PyObject* PyRoutingGauge_getLayerDirection ( PyRoutingGauge* self, PyObject* args ) { - trace << "PyRoutingGauge_getLayerDirection()" << endl; + cdebug.log(30) << "PyRoutingGauge_getLayerDirection()" << endl; unsigned int direction = 0; @@ -220,7 +219,7 @@ extern "C" { static PyObject* PyRoutingGauge_getLayerPitch ( PyRoutingGauge* self, PyObject* args ) { - trace << "PyRoutingGauge_getLayerPitch()" << endl; + cdebug.log(30) << "PyRoutingGauge_getLayerPitch()" << endl; DbU::Unit pitch = 0; @@ -251,7 +250,7 @@ extern "C" { static PyObject* PyRoutingGauge_getRoutingLayer ( PyRoutingGauge* self, PyObject* args ) { - trace << "PyRoutingGauge_getRoutingLayer()" << endl; + cdebug.log(30) << "PyRoutingGauge_getRoutingLayer()" << endl; Layer* layer = NULL; @@ -278,7 +277,7 @@ extern "C" { static PyObject* PyRoutingGauge_getContactLayer ( PyRoutingGauge* self, PyObject* args ) { - trace << "PyRoutingGauge_getContactLayer()" << endl; + cdebug.log(30) << "PyRoutingGauge_getContactLayer()" << endl; Layer* layer = NULL; @@ -305,7 +304,7 @@ extern "C" { PyObject* PyRoutingGauge_addLayerGauge ( PyRoutingGauge* self, PyObject* args ) { - trace << "PyRoutingGauge_addLayerGauge()" << endl; + cdebug.log(30) << "PyRoutingGauge_addLayerGauge()" << endl; HTRY METHOD_HEAD("RoutingGauge.addLayerGauge()") diff --git a/crlcore/src/pyCRL/PyRoutingLayerGauge.cpp b/crlcore/src/pyCRL/PyRoutingLayerGauge.cpp index a4576238..b7418878 100644 --- a/crlcore/src/pyCRL/PyRoutingLayerGauge.cpp +++ b/crlcore/src/pyCRL/PyRoutingLayerGauge.cpp @@ -28,7 +28,6 @@ namespace CRL { using std::string; using std::ostringstream; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::Exception; using Hurricane::Bug; using Hurricane::Error; @@ -61,7 +60,7 @@ extern "C" { static PyObject* PyRoutingLayerGauge_create ( PyObject*, PyObject* args ) { - trace << "PyRoutingLayerGauge_create()" << endl; + cdebug.log(30) << "PyRoutingLayerGauge_create()" << endl; RoutingLayerGauge* rlg = NULL; PyRoutingLayerGauge* pyRlg = NULL; @@ -141,7 +140,7 @@ extern "C" { static PyObject* PyRoutingLayerGauge_getLayer ( PyRoutingLayerGauge* self ) { - trace << "PyRoutingLayerGauge_getLayer()" << endl; + cdebug.log(30) << "PyRoutingLayerGauge_getLayer()" << endl; Layer* layer = NULL; @@ -156,7 +155,7 @@ extern "C" { static PyObject* PyRoutingLayerGauge_getBlockageLayer ( PyRoutingLayerGauge* self ) { - trace << "PyRoutingLayerGauge_getBlockageLayer()" << endl; + cdebug.log(30) << "PyRoutingLayerGauge_getBlockageLayer()" << endl; Layer* layer = NULL; @@ -171,7 +170,7 @@ extern "C" { static PyObject* PyRoutingLayerGauge_getTrackNumber ( PyRoutingLayerGauge* self, PyObject* args ) { - trace << "PyRoutingLayerGauge_getTrackNumber()" << endl; + cdebug.log(30) << "PyRoutingLayerGauge_getTrackNumber()" << endl; unsigned int trackNumber = 0; @@ -195,7 +194,7 @@ extern "C" { static PyObject* PyRoutingLayerGauge_getTrackIndex ( PyRoutingLayerGauge* self, PyObject* args ) { - trace << "PyRoutingLayerGauge_getTrackIndex()" << endl; + cdebug.log(30) << "PyRoutingLayerGauge_getTrackIndex()" << endl; unsigned int trackIndex = 0; @@ -233,7 +232,7 @@ extern "C" { static PyObject* PyRoutingLayerGauge_getTrackPosition ( PyRoutingLayerGauge* self, PyObject* args ) { - trace << "PyRoutingLayerGauge_getTrackPosition()" << endl; + cdebug.log(30) << "PyRoutingLayerGauge_getTrackPosition()" << endl; DbU::Unit trackPosition = 0; diff --git a/crlcore/src/pyCRL/PyToolBox.cpp b/crlcore/src/pyCRL/PyToolBox.cpp index f43ed29e..6c7b7aeb 100644 --- a/crlcore/src/pyCRL/PyToolBox.cpp +++ b/crlcore/src/pyCRL/PyToolBox.cpp @@ -35,7 +35,6 @@ namespace CRL { using std::hex; using std::ostringstream; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::Exception; using Hurricane::Bug; using Hurricane::Error; @@ -71,7 +70,7 @@ extern "C" { extern PyObject* PyToolBox_createPartRing ( PyObject* module, PyObject* args ) { - trace << "PyToolBox_createPartRing ()" << endl; + cdebug.log(30) << "PyToolBox_createPartRing ()" << endl; HTRY PyObject* arg0; diff --git a/crlcore/src/pyCRL/PyToolEngine.cpp b/crlcore/src/pyCRL/PyToolEngine.cpp index 05aa584d..51daba1f 100644 --- a/crlcore/src/pyCRL/PyToolEngine.cpp +++ b/crlcore/src/pyCRL/PyToolEngine.cpp @@ -46,7 +46,7 @@ extern "C" { static PyObject* PyToolEngine_get ( PyObject*, PyObject* args, PyObject* kwArgs ) { - trace << "PyToolEngine_get()" << endl; + cdebug.log(30) << "PyToolEngine_get()" << endl; HTRY PyObject* pyCell = NULL; @@ -98,7 +98,7 @@ extern "C" { static PyObject* PyToolEngine_destroyAll ( PyObject* ) { - trace << "PyToolEngine_destroyAll()" << endl; + cdebug.log(30) << "PyToolEngine_destroyAll()" << endl; HTRY ToolEngine::destroyAll(); @@ -110,7 +110,7 @@ extern "C" { static PyObject* PyToolEngine_getCell ( PyToolEngine* self ) { - trace << "PyToolEngine_getCell ()" << endl; + cdebug.log(30) << "PyToolEngine_getCell ()" << endl; Cell* cell = NULL; diff --git a/crlcore/src/x2y/x2y.cpp b/crlcore/src/x2y/x2y.cpp index 1868845a..878cc260 100644 --- a/crlcore/src/x2y/x2y.cpp +++ b/crlcore/src/x2y/x2y.cpp @@ -16,7 +16,6 @@ using namespace CRL; int main(int argc, char *argv[]) { try { - unsigned int traceLevel; bool verbose1; bool verbose2; bool coreDump; @@ -30,9 +29,6 @@ int main(int argc, char *argv[]) { , "Second level of verbosity.") ( "core-dump,D" , poptions::bool_switch(&coreDump)->default_value(false) , "Enable core dumping.") - ( "trace-level,l" , poptions::value(&traceLevel)->default_value(1000) - , "Set the level of trace, trace messages with a level superior to " - " will be printed on ." ) ( "cell,c" , poptions::value() , "The name of the cell to load, whithout extension." ); diff --git a/documentation/UsersGuide/UsersGuide.html b/documentation/UsersGuide/UsersGuide.html index 48fe8301..31b835e9 100644 --- a/documentation/UsersGuide/UsersGuide.html +++ b/documentation/UsersGuide/UsersGuide.html @@ -395,7 +395,7 @@ dummy@lepka:~$ git clone https://www-soc.lip6.fr/git/coriolis.git

Third and final step, build & install:

-dummy@lepka:src$ ./bootstrap/ccp.py --project=support  \
+dummy@lepka:src$ ./bootstrap/ccb.py --project=support  \
                                     --project=coriolis \
                                     --make="-j4 install"
 dummy@lepka:src$ ./bootstrap/ccb.py --project=support  \
@@ -407,7 +407,7 @@ do not support to be generated with a parallel build. So we compile & instal
 stage in -j4 (or whatever) then we generate the documentation in -j1

Under rhel6 or clones, you must build using the devtoolset2:

-dummy@lepka:src$ ./bootstrap/ccp.py --project=coriolis \
+dummy@lepka:src$ ./bootstrap/ccb.py --project=coriolis \
                                     --devtoolset-2 --make="-j4 install"
 

If you want to uses Qt 5 instead of Qt 4, you may add the --qt5 argument.

@@ -425,7 +425,7 @@ development team. To use it instead of the master one, d command just after the first step:

 dummy@lepka:~$ git checkout devel
-dummy@lepka:src$ ./bootstrap/ccp.py --project=coriolis \
+dummy@lepka:src$ ./bootstrap/ccb.py --project=coriolis \
                                     --make="-j4 install" --debug
 

Be aware that it may requires newer versions of the dependencies and may introduce diff --git a/documentation/UsersGuide/UsersGuide.pdf b/documentation/UsersGuide/UsersGuide.pdf index b11b3f2c..5159e71a 100644 --- a/documentation/UsersGuide/UsersGuide.pdf +++ b/documentation/UsersGuide/UsersGuide.pdf @@ -121,20 +121,16 @@ p\ endstream endobj 99 0 obj -<> +<> stream -xڵY[s۸~`C3;SJlniRx=ulIȑ"u}pKi26I\;`A Sg$1,!q<(?',4,(4,ʨLbnh_|C)Y옆Tv &N#ۄq5 ~lqi|3Ɠ^Rp8'aWFa|@ݎʎKBO.JqG,ӤPj@lALk2+Jm()ЄYdEj?MFres ]g-?< c+jsiHKV:YģmEի^x>:nx3qiWK\](mbG zi۞ -*}N|1XP j0orٮ?/_t.[Ƽ 2LVDAjž,wg}}]V\wEFwt\z ڳa u1z}Yof, - O -i<3ph_GD04Noa<"ƁIǡ[#l2EYTi>+qeYygmMIy"lڧib {EP?WSǪhv?;f%7%R.2:ͥֈ*Pbgq - ϠCyPA]"ܧ)> ZUL\n6eH@ё8s o &<o] vuW<5@gY\4XӶJNVb3呺LX{^;}m9TF?m/mE#E4dc Z[<}f-k. ~yG祺ac@ӗ̀CBro`#ۮG{ΚL4 5oCCNd+,KAaY;oKj]r;Wk2@1tX.EB4FqQHtVk C׶]6=7C|X(,Q(-TQ!`ʍڥCCPi2Bg8$=8]<)/,P#[߅hԘ^;T=SZr˚ٗIzP -vc=<>?#VyhآF"E?IO]%'ֽ -ֆɊf}P ڌ1A薒XNZc^_=۞T 7[}:H D w/<&X h4Lc|WWH|󐚛ʀ-4Gэq=^+HTVhHe+\rZڞ +xڵY[s۸~`C3;SJlniRx=ulIȑ"u}pK$q988|o5lO  4ư4jdPа|R\|8+2ɳc AgEcS58HnհKf3+Gǥ Oz}J {ᜄ^Uv;*;. =Ȼ*IIv$OB)ګ r1ɬ(a͢Bfɖ2ge4Ɨz<;f")ҦޱũmU3űc则gТLΙM7c89RiMO|@!b~w*)a=UmX1O?Eg܃Xbhť Z"%Fy`!9ϦO$M lB4>+y@YXE?Ƴ󸑚H8 ?Vy|լaBr-(-B 9BOİ?W͗lahYm-϶Mkn{a;<q#Ge>HV2ÅXt`M|g]0[e9`tisrQEw)G؏:? 6VBzmDN$!].quyʢ 0Rm{*_ 8i@`Ae"2^w;H|~M6ߕvy9s٢0\Qаf" +R|eYW_>;8jz#O>^Golc?vE]Di_bY,``2E@-g& ?"u89 'jS%p|iq`RqLrgtJ\AvYucyRi"^BT%ű*/]쎺Y!;MiKlNj)|s)5{ٹbw3huu8msTqiʸOVF+ 򵛍aY=7Pt$\$ nMGjC݆j{A;O y (ִUuLyG8Sk,ݭ׫uu>km_E[_Ջ?}`hmC4rzy.=4xX4A֖?rp(CKEǑynr3'~"P∧2ў&DbJ4KR}APXλZ^njM&U6h9&EHu(. +Ъ{mA}զq1|k%*J86hRIkkrۓacf+Oq #!% D@iIOqRsCP0#BZH=1'Qe$O>9edVI,:uka-|sZ \7׎Co8\cWEz!ԮӸ %1 3s0B|*0Z9A9>CO;g:@F| A ho;xA ^x#+&r t?,i  +gxm"[hW}{6JpbxnZD@l] ayYn7#}w:]}i ljFu_Ì*s?\̨6ȗ ȗ3=M=gTrv&ŁQv!a KDm2jh ;h{ KΠ)*P0Ոt-`A3.`cMVE!?d䰱MB6 SX]"_a(E6z0~@~=;S`( h|[>(j&Y!^]I;ffOah9E `9Wf}{(ޗ<z$P^ šp }hm;D> &dޫ%x>9^I᰷IQJ9=GVWy4sԄ||^蹛 ̡yԔ9?GiԟOGcK;?֫ h^2^Lx*E?0^z.Xrxn^ G9{Yi}p:fiGj\7CxD\=/0 0{d t ۪f l/|;'ׇa^8/|֨E_PF:nrZ:;W{ջ!<!շ.jֹ2G0y>iL~T ts3 zs\DvU=kzΟ=^ɓU~Ioe({,`ۮҿ9zUW9<[pJ>@TϢNK!\ui\)/iTP~SL9 Әit͞gVxl',¿4_%{tbv첫HÍ᧻flٳkU3eQJ:ɃAmT}|y9k@!˶DwYo[tjbz_'FwQo {S_]&?Iܝ1,z=H_כmZUۦ]`܃|A۝1/uU+v^o={-n-*Q䉵]ܑfJBI!t.ΥR+8b[}d?* vY/nx.[H$ƾh2:ugڊh.B_֫ۺ<3~Q̿DhwKe3a)0cnMSl)!]W9D^\¾ۛf]Dw]pSS(/n[HeϪR<k9 .b]ׁu͞WOը]U2,-GE~ 6#gƬbz|JG&(cvwC4r^娜n>Uv}mi#7EB^o+r\/6o7Eܢ7mpu򈗣ۡR2źܴZiҫQ|f7mD)v9jbyW0V[>&w} ,yK e$\@QfQuhN^MÏXwSYwPeۮFg/kL}ԋ*))Wea(QPy+SAql)i#^eU(n^%d7Gr%]*.ib]uKRck򎮣 |ÖmefU2ͪJGf倧|FkE2_I+ kC6]3Adb' uKhw?"Cŭ{7U@,v,6,6L$xS>fHbIhJ<!aH]=?|s%cƽ\X iϐ2=(nR5R3RSUuҩ*4}n7wGʏ;2I?l,eOE'f `*&̈́n$%&!|iW LJM "!C&ﺝ+K%J ʫ#Cr@)1|^dWFTO \*%K}kP=OSoL GKR1ulگWo1Z}HϺڶ٫lo VVԳ][Ksqj=E`Ҵն>{#WHn`0z?_y +La .\ G|e:ZG%a WN[cʠ )2}*)@w3Q|v%| dc,(P:.aLRn̖TD, CmV%LO?[KO5h|齧dh36.r*|6l"8*e|_p`Υ RJUSOgN3ctq-x41_ۤw'KS 'd@uZ"\j,&saA *Jɀ;$K]Y4] J>>fHbIhJ<!aH]=?|s%cƽ\X iϐ2=(nR5R3RSUuҩ*4}n7wGʏ;2I?l,eOE'f `*&̈́n$%&!|iW LJM "!C&ﺝ+K%J ʫ#Cr@)1|^dWFTO \*%K}kP=OSoL GKR1ulگWo1Z}HϺڶ٫lo VVԳ][Ksqj=E`Ҵն>{#7$İa@(y endstream endobj 487 0 obj <> stream -xڭXwXUW?= Eȕ4%hh!"R Ez/b[LLC ذ Ѩ+'%ƨ: sy} >络kG==="sr -gc3O, CMiPYтzAh}Q.0zL蝹a$Kwsze7cOv쓞^2yՒܼiEVvIV.Γ'VYVr r ss$t1zC8FG X23qLSMgf03 c #Ƙ`hƒˌc36ƖcGf"3qbcɌ 3qe2Ә7Ɲ`49`yMN]Oе'VNh"9d Qcf@mF1kZj-@?aY$p~ -E|ЎE}֐Z]+v LjNZoEg> nCj66˦# Wú~QI}E%sI9NM l#_ =JgX-dyh9: }!hϫk bƚfi9qJ 9Ylч(RTUT t{GI[yB[?:K`$H,8*|\{&\U*"\,xAHH!%nDrD8vr8Ł y^|9JaLgDžĺ`EQQSO`P>GvsqTN"8}uUǔpdÐEs?y HH LѲ7GM -Gk'tl00v66v81Ө-@8%0v qp:PLWb8hLțYƑ_olz'mPdW2`0AV^ޅ@ {X9 yUp0GKhSF>`Wy\*N$ -MM 'o~޻BɓgJҌ!ԿS=Q`pD+PF_uiII);Do][@aŹ J~LNXmb,؟ΪD$PYCM3JVt3`4'~d m4La`&xK^o嵩J `7rZNM,n,OLXo }6j> sJO OWJYu#t`ӡJJ˔T|JB Bw]Y=en /mTn`0!0 XhF+$?Za WUny\?pXeOh%;4< Q%AY4i~ YbU{ʘi.ܗ#VwNpXxj1;SS/n8fig_Dh*RM[I8ЃbRW(Yl9F'fA9댟hM3'Ռ?;tB!Rś-RV=5:L_bL!2K@1G?N,1']i9iJVe&ZHr@BNT,<0*\ @C"2Wi,tcڷ?t={E<4S/˔fbڏEN;H{Sb'FiWoa)) U u\;Rb'`픈xqƔ@ --5f=J.8Iߣ4 4N` $AM2"\0[xb;^35{Qk!=0kvw|~K*rko*AWmI`+/-2ek"eUHuVu5Z> "DkXD2IPxqRxaA~D=lE U^VVwGi$뫖]h{%EXrC.IL4iak*,7tf$$0 7yM$#q[clH Q\𜞕)4 -&&:`8R[\";DJ0+9e*w^gPS-/r^ƼEa"eWCCWfg%dEy@ͳ$ -mX߸̟ -Hs:T*ׯӯˮtA9A rwJٷw*fɽT Iǫ)]l]$KQ|‰'v߉}hi$+ߡ˺śo>l,BQQ꥙(TS3ֹ3fͽ1Vw4??1|+d[Iֆ@t*_H#9r6v )B!NYfxK"o3FS8J˕0DnK7Vdw[ -~GIB - ZFDxfGB-x6-8 tPr сy%t-L𜠣9-ݷhMF>.[$f~MrXhݺ?Ȼ'Wo7HͧWm0YC*<N{(,lUH5iw:v'?E0(N dOYC.f̨TBwWK<{2VFoԣY e$%,q%$t[Pipixy!XiC`4yWu❋G^fx IެU@Ͽ7)܄l\簞0ߊPicHgG4|~p6/89aS@*]-l^ | -r\gO lK=Z=-slMd@ʧ)C9( t5ߠ$mUA%1i-/a|*_)>P%LzXAZ MbWw/Ϊ@ -Z: ~kmDh"ֲ X 5{L3& |18c.rDGMܺZSr`gە ?#1S){,E^y[ R\}07YsCMF ^^^}y**^TrNթ'*9$5$-:3Q0\Os^i~`=vb +xڭXwXUW?= Eȕ4%hh!"R Ez/b[LLC ذ Ѩ+'%ƨ: sy} >络kG===ИpBY;KBP~@mST*DV`D8z8Z_F3"zgnI3ݜF g&;L^b$(*)7oEAzjZ]dI6yonnjVլ܂܂';+{Q0ּ ETyƀ a2Cƈ1f,%3d2 3e{ƑLbgf2La\4}ƍqg<Of:309/3\&1Lʄ1|fD2QL4,d357f FgL {wߒ~bSΌ{+*\?? >0y<0dʐ!6C;ezFo7oqj#n6<"{yW~^,,9onl]JI|R\){Q#(eަ șUG2$(2eLzBF|pЎĖ“'JN37pH>̩<u: +G+=RzpoOZ/s©D.M9<4G^=5=5Z߄y8VpOC˃—ώII:oW/W^%7ɫ{]V A%ɟJەe Q+ԹҮDN{nMaQV0jNI  +;{n44_:׾&I3W +1q?' 3F+:R:RC;qɟ2u9pNq`B_؟8Yq!.E8vQqԥo90vUEed1%0dsќ#:p8:<< =uQfG†m.o'v g ?Y*(ZsŁp5Q/ʞ?sf`zH@(DFN4$l B ]gfG0$+|jb>1Sv:o9)fjqoj%ۭ~*lj@;ٕL Lкձסw!8^aC`~T3A'B>u# + BSjDi0[쾿AP䙒4{TBo"x};}(*0V;?&o0 hP Dn~U7LG3͉(YCvM7S`GF ޒ[ym؍S%˓58֛pCœS§8l,FR|Hu79t3t2è6&@{& F4B [֗ m)74ZMq.n HB}A oSayUعsQ,@?ABZ¿'6o('>`QKmyTӾe!Zm _$(\ 0&oQq})2ĩ7va8yVCS11wVS +%3ԈBN^uvZpE:ËUeU/[^i%o=zF"%ڠE  ChChIP1o_{XU:^2eڭ漳yG3eH -ZL! > <F-:9byׄ*lTӖb8U;JV#[@Q$?hDPN:'zAD z5ώ/A|4yEUOivMӗXe!S/5sяuʼniWZN|U=PK, 2J#c44!+PL0U i&mϥ?(>]=i/2lvzcџ‰Aڕ[XǫGGJBixC+׎Tĉ,Xm;%.^\1e1BsMczR@8NRo(1Ee89#%IP~jFutz>W5OP#I1`ܕ!E rZ_Q|4!,L|y ߭(W5__  z7.p™)x%eJMj͊32[Ѡj|̷Vs;x!3L+|oԣgwcA4D% ߒʿڛwoyq"G[Xz +e( h)Kn}HiY`==zƇ)6RE]8vZt=V$QLnQ5`;.̙Xφ X0 +ԑc7m8^ҸͳK3=v1%8o`C.'W- T`6V/v- r$@G{z&Aڎ} 1@]N܎|u3foDJϘZݾ}%=ho;h. 疅Ο5jeoIm;ﺸv<1hP@EʈkݼkA2^~Bk_[ `ϧwG%(D2.^rv6YgqOv`D Z!NB={vJO2V඿ypRۥ?P/jB9ȱ&O^;|34 T +jVXNࡡRCNȵF\ȭa>YR 3;>!Lҥui$ڛ'˫\^{epF|L|Lq#>q7SqVe[-pu* & [ J ( ɥ77yS{VW_;rvS꣫W,`~@rrdɆ 7ƥ{HMOWL݉*)8M:'rIwqN&A["wuJIbt,wv(M +ʎM̈s[?;K. bA-::O}O,G\^izc_d)l-[QrC9D*QEI{-ڞGrIц+ܐK%MurX +,K e< -/)M^IHX*,c+6RC|02"'Q{(JoYTċ1/cQlFE0Fաq Yy8h1C,±{;]S+O:67..'B, ҅0:\ǹht벫0.oPNP„'~6<+Bt`7p" F <'hD v@?% vӼ!Ö-Cӱ8Z9ɕ ?zr|dd[_b$.L&'.65OiF((+,[U|RM9~]ɏu :fSP)˟93*ՇRk3O̹ћ.;hVCvY*'aE rEyk\I8 T\^qH@''bMUݹx*|7>~U+*MJ 7a#?9'L7Aژ*Rّ- ܺwK?8os~ǔ?Ы?JW:kW_g%׿rG.۹u`O{g )O\I`ESˮi.wfpLɨl8*&:sڅ5fA4h:ճ$z]O +鐵NJj|7(I[pUbePI̦desKd +@T 8s|BգeK*1Fb!N1.kCZQ%,sxB'E7C9C͞?ӌAs QđĿl0=V9vgHTK$3~"tCWgf_MjP3WgA޿ +墊׾"OձZRፇ7_R\|zɒOL^on &/Ɏ//^.d-2v$^\r fo [#H)#pdű#jDsJ~tNW`sДLH>bףuI 'g-GmU[c-gu/$\(~D(U>8:~D##rU仐`0L%L0jZi{kic'8t0{zIƂI:GTo)TzTTT@%u=/ʮZM9Ȅچ{yم +vHOyz4Au?M`(="87շSu:O]n1/ωJI IL ܯW?qu3XoX= endstream endobj 489 0 obj <> stream -xcd`aa`ddptvs/H N+q1thww<~/ùH#y +xcd`aa`ddp + uq /H N+q1thww<~/ùH#y L?200<AE)$9ŤBJ2ݜ !2634pL,ɬJMQHI,ITH/,L(QHT0204: 9 -EE%yz W+!cnvN6&FeO&FN&CeXy`[*k ˳2~[o18󱭻'k/1i-~6vۘ1PKnܺiݷVLْ%tkswHYjbZb_ ˞FE^}s+ܲs݇Om.)a}z`7\/c=_w_?%EZB)*U,jZ޽{єy͝{Cs+L).ijN3dD~[|'^*Gt(.jCqДukw/4tq1BCi`F +EE%yz W+!cnvN6&FeO&FN&CeXy`[*k ˳2~[o18󱭻'k/1i-~6vۘ1PKnܺiݷVLْ%tkswHYjbZb_ ˞FE^}s+ܲs݇Om.)a}z`7\/c=_w_?%EZB)*U,jZ޽{єy͝{Cs+L).ijN3dD~[|'^*Gt(.jCqДukw/4tq1Bi{`R endstream endobj 491 0 obj <> stream -xڥSSTw^$^d* -"2"%(VǮ>va%Rl1ql L-/עebH!1i4Y%3:9|D"5) I [ʴBq]F7Jt6;lwXdWelWP&tWhEJ/']H/S4zɃC*Ѡ47VT:R2it gt\s'jOhJJ+׭)Bu% -]V)(+6 *UD `,J'[rʭF0gsoiߣGO?ݨ`QRjȩk_i%cF۪E[N7I&'db'YfM^O蜽."%*ɉoWanN*8(a,_̾$@إll$Ttڿ'0nn(G*KlkϞΙ.'_s,?m}+%$:[LmfY|0u_&ʥ %%Yhn4"5߃iwqqp!ע1>ޡ:'w.ZaFnKPpdYCh}PTAqX8RDBԯTцCis(y=2T;T;ʞLûrrŒ(7*!-7w~|9/&CbWkR#'R=voIlh]ZYQ  3ÑzaMv X-i+4{noz]=))= O gsթn,qb&?qΥaX CWݰY@qc!?|2'tpTSkuIidcRlu@s s]GBah}5Nlgofk8LS̫FT#Q*H{o9#~ep_Zr3`0$ z9l/Yr^=M>aUR+H,)rlpac>SO+qf-sw寭/Ke +xڥSSTw^$^d* ;ŰH  +\VǮ>i 6D{86JJ@DkQ*ƊBHFNL˞]29ߜ3whJ"h^ܒZ/I/9KBIzqemv- +U'@QÁ/@5"R^"0˔Mkʠ$$sRoUqD/by//6!MN8㆟;PB_"Z\%PUhHPn|t>|/,>a!![E Iz7xc)o/7%*[tʥZ4gsoiߣGO?] Qrj(k_i5)c~UoKdoRB2N)&Na۳8+:қ +[|1 +9[0]@'U@@&+Rݿw&vr֟H3?@ H<' A۷&uQQ > + eHe3Ա mYeͺ/:apȉTiQR Z&WT~F3hAl5vj6LÿX6[#G1[&3KRX,3$J`FsvL7 5/Nc 䨯n ]Ny:d%̒KGdڥy8 +r> ÙlczU +lƜǧ) n ['?qSHp|o.mqQ0Ý_0j¥B\u) fJcHraaO99e+;/J9ʾB)q8f$sv~Q 3sFَ-d5ȰUj7g +`=W% 1<`dJW2B=.kȹ*Z{udfjc什޹4 0h{;!mHL=qbG~GIQ?սS؞Ҟ:M&q3h.~.H M\ƉV\=ml qyz:Ei-?`ngLt=7.lKV>IU&Pif~d][+z +uUIWx@w !/з3S'~]]E~:[0]hihpm~f endstream endobj 493 0 obj -<> +<> stream -xڝWiTǶn2h '  33ȠD@fd0QԤQc0 " 2(F&N1^wWyY֩}z׮W:B^$FƯ7+!ve>Ql ^W_YɌT:҇4T!w湱|>Hћ8Fúx/rw?':2:%+BSB-3#R,mXN0~9YOHo/;i){i){y sƊNP8<g@ƈ1f1f3fF2ь cˌaq=13q`'̧3bf3sʸ1'x3>/c&Y,b`f10`:t4uwL ^q֑ `s}3΂>V%Lno0`@6 7cxQ*=`L?KC,T): P֋*}{SUJ\mἑch3&8qi?a6Ka5){.޹rɫw]Zgٖ &:v4d4WhaUy?a<0pid{0/PVgўb@Љd-FE'(`{&Qc[=G 1*:oV6xIx@xt0p~-^۵֬EQ:۴8#>胵HBZH3+/+/ϫ%9.4ty^#˲B?]]9`ѨaoM}]Ai"yeeGKJ[ &U[}F7j\UxiT9Vki4sXϿʸW+yջV ֌tv9xI ~[7LɋVB;cu-'Z -o'ĥkoñeN8OյuO$fyD$':!OЂ -[) /*ey 4'ەhZ-Z21Д>hqtJI ~ prɳOd$^Tu6 47J]&4=9  < -عA;8's4x3e`x݂af ҖJةwR4m"uJav#QF{~QW"2l]s72vuƀ!Gv'ޝxzV%Z2P UtEOnnSa;$=}ў{(_|hbWڛ.&^@w/m&iڌWRFª,04Dȥ3 -3m TsJ6&d/d -ud^rZj'S9r/@֫u8;6rƚXpa.X"zPsbNۿD@/kJ(!Ao -mArq"7k`&6 }L(à+<_1:X1z0v:O\D ,2{u҈+g#c?]hVsiF{0e_?<'NjlٕZn%N3dtU3rmcZC&ƒ'5tQE~&`tawmp xzĜF9*}$:wFsLO8^Ss KKNHΑ9…b\KŬC5 W:Μ8s("ק$$2ԊS+? }ruUYp4(moI< X2)2iQ|ʩ^ϟTn{RZ |<FIEo]g()e-R3Q)j%+wKV*3@ņׂ}9lgBg&&#ƐƔXA3ro>z3F/_ 0?y_wy35ޗ^rFo%d<(6眔K˙ԧEzSN3c-pI `prT$=W K*qz:߻o=ѕ)5&(L62m8k7)mSBy\SrqpD)*厗/{?}G֞ō r1O\!-HSnђXA=a-m7wiM~|\]&ר ]k+a˟.oF6cpx4$VWL"KH=tw8Bԅ B]~WE hj$Mx\q~OÞϕ ^Vǩ #hQKrksjמ<SRC4^iRYh;HO~KEA -{8{"j8K$a=:hEp84}ԌhMЃ[ Z9MCx9$$%iCCS$h(pto@nn[ -W@c(B~''(8Tpzr({zSU-88ՙEgmC9sU8MέݖͲ;"!ȭ:5|dnO]L^6,H#9x - IJ|L팇``#)Vsto7uS %?cz47. -'-HS[`  Gu/h˙-1a)epMə-4&pwIˆxJņyy}:" +/N uiF`rf;gIbTbTh䒜lTRu ߲am 2QGv>6rnO67)xQVv1͠}2~bkYQkE`3x%%uyC`[sҬ5=#o;)Xz+nNV4ME[ƨ %_)C؁RJ&ré'K:'dkkƭ -Bs^,{T@7[YJOiw];}U%V΁7}gsa[Uz`mjZ?[p؈Icbe0u>Mβ+z #Q(HMi7[IyN/}z2si6Hӑڊ&ʺ_Om4\TqODkvY’%{zҰ>RfUQ{@)׋OՇ5Y(O! _37#Jn6o>u$e[m,Qd 4.XkN9WVVQ1rqϲ jΝ*~f@m8u.BzB\ahF8#pZ@tbKZ\46DU?G'MJ8-e\CV 1gHu ƾ#OT\E3ki P461'daZ}cՃj{1 n/ki:%B.U6m:|SŦeJ7naR/4Vd~l s40J{AܢGr>A -%S醨5`5!V;?8`H'Y|aJ,Mӣ|^fǘE/ $I7+w oXאHޑ?o8w%ax~wyˍkf4cZ_iPȲU=Ž-eڼ@]yBzi|p@T:? +xڝWyTGo`Q62aHDLW܇YԠȎ,51j DPDܑUШ[Ec A?o܁1/{xgtOUߺ{W:LKTsݖI_3~vBJb#bgIr%h_)}fEsFTz0ه hBsc~}t77aLGu^8antdtJ+VZ'$f$GGFXم8qxzsZa5'!91!94%:!ArJJ7:`u uG0|;Q30f9 b3F131g, 3͌al;f,cόg #Lb>a>e)Tf63c3 Ƹ30BƏg@f b%Rf.Pu:tuˬdg%W%h~:?\ A 0puFQFg_:ۤf|VCg)ed]>RR\mr#%fplwc+)y-. +lM(W^stk ?Wj+!MM ^+]ۯxq~X>aCώyULNЧ GVѷE&5-8^B63ݙǖK;Mx@u@²"ccbxފJ.{+*}Ԓ %i%{Hov gFFG[,[ `<,`_s L<  yW4B萄.IvEQ2 s%>W0 /PgсHЙd/Ay#KY(aw&ScG=W 0ʴ:oV6xIx`t05p~-Y ۵6EQ<۴8#>胍@C++ZI ϯ(ȯ#M%>,lE~#˳B?]])`ӨaoM}]Fi& GR[rMH緑,ծx5Ry+s֘UjA+s`5+y5V ւ ~tvxI9^뷮o]mmZ";[O&O~Ў18Z-=p?%Wկ9\NIs~%@x%Q[) /fJee-$hÑ- :)%A{y ,)|8y+1A8$iK4gђQ0'N>xdS4`.* +n$vD +0 0$cFX,L .%:uKݦK[&av#`gCjRnlSK̅\:8Уd՗ .W2ƀ!''ޝ-ꅭ +@*QBO nnSx`;$=}ў{_I|hdWڛn&^`o/mVqڜWJFʪ,a qVKUG!4gJY^.'ꓦPÉJYۈ%+\AV| + )r^/kM/"/WOȽ<.j۠d/x|O%'ӶЏ5?Z<ʁ#3.DSD/x8^0H P@C>: ()DjL l/R2!W\ykct7'#DcPa,g)9 u kcrQǣ,"ɜ5"֞KȢ :ty-Σ7V?|/e,/;Ygėd^JвVKx[.HAW7(LOj7oxpʹgf8i/1}8>\oͥd̎F<(s +sṆLWU*f)'fV$v O8i9JY垾pW pzoa?+QkL!ZQ,zm5WJHpd4 + Saҧ4rv?d-qQNCXg?3IST*.y_~ɭ=͇[JN5^bE]c9Q OKx% ?[:?&1DM=^#z:۞o.nݩ̳kz?D&%ۏ]4x0BZ;]_-?.Yȡ/#ߺO7:cՂGA3F6=բ]Q8wYKK#Z#>$K[ڶ!Tvq' ->cUHd_tΨ4b鵡|ZWn{WŚ5\#|Cl ҾK{4^푫"d鹥璮oy«#ƕr4 ՍAG;Ç{#Z؁u0#cBM99]eG6 må ER1~?67ցjE\XiЮ1;O) +ܺm,#b[,A[iiTS߻U?v1yYbTBr|rº('{bcVLY:4$4$͏*u3>Z mнC%OpR;~$eK+JNmRlʇ7uֿG.gƜ9}o%ªõgҬ%k2k2 I(YIЊ'$$)yu^ +-wĨĨ ?ʃ UUg%)f+ee8= n-e[ d||~b1nZrcAIJZnfVɮl[AςG!gQ,RAb{A`񭰙;Y_@ oK6} I``'J>+FJI" V?)e_9quSmSKii'G!S>k8X7nWUP[xqDtk,qA\ذ+UmUmmeYt]=$ }}EOD[%DSeaefQV8aUj|vaς<,.|YN<+||Wo9[ ;Ii\@O?gמX{"*"£rRqdQğ;U̢x.\օ5DМH%B7qfĎ,ܵ0`eYT]+H>Z^q(#?ܹ=bP"xz_)Ӛ3ֵmw1ǎ:NГj kp]rњuGI/VC'N˝p=N[/m5CGZZƂ KxHx[45#т&*֎X)$!Odwhnry美atq 4h|-0fУ0$qb-fy\51Vm]TݓЏ9_pvcnzfYyW_\覊Mm*\% +*B[iꮟ%Α() +Fqp]>+4Nx+X{:P& O1DYZW&HQǘE/ $+H7vI޸1#/~j~IqJ +>4,ܮuW3Z0R0dj(dBU=%}]-fʵ},F4EӮ'rA:Fbٰs endstream endobj 495 0 obj <> stream -xcd`aa`dd st/H N+uIIq1thww<2ye!Cy", A~yMDJ B Ǿ.'s/^\dǾ.'s/^\d> stream -x=S{PSρ$`(\SJ(oҢ(y(Ĩ@фG^Qx[K]mk-m@"0*b$hڂZZ-v|t_瞃3~R<>GQxb]\dF6>$s6|i zI|H#MrvMQQsa$y3XO(M̚jJ4B^b.h8o# -u{9Ԙ4z5"hn]DSSU }\tzpyx awFP`4tNS-T{xP! -C#<ś y,IOZ/Hs^]^C^wާ-,UI"KìAK5 Iuw}/"jm!5T/%K76*oC$6%x " t -U! C 00g?&#SU@"/>Ȁl`Dc$B=W26b[PL?%\ѽ{~E8 P(kC7W>A 8|&,GI]ے4`ǩ3x|J@IN^#327WhUSPg2JSԴlpFjmm]uJJbdwB'军ΨC_mplD G ˬ8)q(`ʄG ]We :VF'a.9 e^U܆u:6kOESڢNhX/ARU;1 -r/Z3!&--ܴ蔌(`s~>t4f4L֑tOo\x LGk}Vlj3^ֽ%K(]/ynf6qdY&'$-YmQ[t7 1/AGYXlW~N~ؖSp:m-MzXy{jǞ @Py+}Ed-. +x=S{Tg$34X5 +k +AU%,-CMx$Em=,ۥ P ZA$%AmvA]XϺG%<w{s)iZ.6*9.=4ɨѧEak y}(A ? _FRR%\si^yޮ邷(z?pH@04+. |{1*זj + E⽼]-nCI!O:1ikt{uѺ=b]flX%S (<|;0 e1Þmd ߕ +RaD: fD:! +oHOX*k Qͽ6{_ C--f9 (*]۔"!Eן(`%3$e8Wl YSpCr2}+Y$س߻H2+?!a N`"Bf?inhj5Wbsc!dy} wVGOp^GV;V;PЂs@+"<-<,t7S}v`Tmҗˌ%|C!v~W,/X21tRڒJ|`IЏi +*WX[DޮoȢtmR9Bژڍ )-,$& s;yv@qPⷉ|>_ǘ'_ݶ 6߆1V*$!b{2_ʄ0G#~񫶖5JTYQFeTÛ!g*׸$ U@{ȿN/'Di_\SUۧU:>Q6.MA w|}e3u%Y@Vp$d*/U^yg`L p3ً2,ruKυD U}2d|U͵&0~֪5=  g.YPd@EVZt'Cid{m'QL +m֌ؼe!ɟ~냫9 $y zNޒ\^5|XeIF*S4%pMM?cͱ7`yv]?ȩt& !Nn')Rni zdm߯׶ +H8>ƍwaHԈ܊39]B\t0u[?XY~1qQ`2>d%`%hc0ap"g]@P6SRj9:\2-TUY̭%qZ +`0wi0kړړKUONɌϊ/.BbbTY L)g@|aΌ]~ouBe_6܉B ʸUrXOnWe lW՜PA&lޗirSJ#J3-j.%& e,o5kP.-ݑۚZpR~Ar|u/'oods@Z}툯2-& endstream endobj 499 0 obj -<> +<> stream xڝyTٶv!tu)LhW먈:f8 -`1`l+I$Lq09;:88^{ \yj.[ZZPy{eaApv]:m`7mwdkH/DJ[)ۊD\H)O)zS+yv,=B<֔eF)̊n0mcz_l?xi!1aڀǏxhv4N~ڀ`K_`Hh_pP??Mj?6O3mҙn..n`0@{wG3Gg h|B}ڐp& 6hB‚w6\竉h}#}%d?$8BB! Nέ2Fkɶ&ğ 񉔴iߋk"#$>~_mxhW KHi"DkL܇h|t%ȴ - 1~b<_??JfF@)L܎lrM ʂRP4PN%eE}FT+eMT7S=(ʖI}NOR_PʎHS!ԗPj5AFQ1WXj5@M&SS(ʑJM3B͠fRʕrRZHyPj)ZN,bԑޱӸN;,5[(hhvgubY]w]uD6[L_ q?tC'mXlζ{=7|y|/Ei{_}5I󬯣 -oz\\OFHo(R6jUĞ r/j}IEyjI ?tCMDiq8f8RJ tLjzb>@bkHtS)u9*WoHt<M% ȶ+ `IzV8:bZkP1; -5#ƦuGӐ_u[v\NX9.b -bz~f9Tg$"&!=5)I(/W+[#rliZK[!:7pcH:ݴ -wCT2UP2gg#FdTgR)#J= SJvNu>QbV%JO3P7 pׯ9sig>e+|W;pM<"vSvS:xt& 8+/,*Fz4MBYY-&1+30)T:3*!q43(6<;sҘ3y1ielfT .bҙ!n)%əmШƊ6WZ:NQFrH![U[ȃ}-ZU]E 0Bvj}̠޽{]v}U f-v2՛wxœK8Μ;q¬ ^>j%+ -p􀹨xfǺ|aҊ)(ee礥&G;_AW|tR3 Ɓ -w4+L?j>(:PKm0yffet[Rm -2JEUX R<]ID}E~1-ydH/Ig`ñb1lOab>zOܟX^y+|n4DþhY7c)M|ZBd.F5!\;@W~8j0:R`E2<D/X:m1qXQOGo|Dؿ .\[{dU5 Jޅ3L4/k@G80NZ}Ar7xQ ڏ`BG1RG(1WoAXS/Rw[|h|NS:rL p%O!Z`vRG;%0qzTc`2׻>0`ý`%V`KP4/"BK!A|9vl8 ( xiG*H `ms`qA4hAp a#f٤gfet8 .f؉m) [#Ő]C- -q\QZ~a ( -e0ĶhBlx<_1gMQHO>!~<wԬ]C—<Ξ؞' $E9#6qXy ;i(2G7fҭuq s{lZq1T=9̾[pIMَ;Na#zv5NF M.w- ӭbmaU .E¹Rlwyj)eL`4 R0UO.(ըnYiS["ʠd)379E`8TTGS(-#]3=bQ#o~h1m)L? -Gb.qpm4gW+tDoadMT|/;4D}%b?h駸LGo |[BKJc^ PKڛnhG pmD[17$%^JarZ;FXYX0M8XCr tt"]z{Pl$cAW^8cAxW$NikM,Ug@P*^ͥWd1'E -@(I(*ELiT**aک/qF/%$P$Vvi9Y(u,ԡRWî%)E]+eHL0E/-h[|a[X]f9,/#sAAna.$`Mr *6LW&UxoGF'geެT - Z>^1wNY;)+V<:֋gvOŌ9Nq?u?#X6Ye*oD]ChvW\RAW^=٣G_ޑ -]*=]Āw?L~A<8p7o>1mS~/85nD`aЃ֞l^1dTJ!zvNZSY~A)U(?8]iŰh\K7kTS֩%n@h[dfx=,y6p&3R [̓_&=z+( "SX,PSvMž'O& ş_ьϔLS#]҉7~g_n{^Ísh%\Gd2"}z:-XB)xTQTع1#f/ʻ2s\Hpԕ`g]&!h{(!#E;%?(~̼ -s5j`NEm>U5۹|8Ymׁ -<){uqPC_u>c"]Kַ*#}h[Ă%)kH0k:3"IcXEn:HBbbʾl7W:Q>:s -O L7Tֽs-h[!N53E&{MKmvZAngȆ]kȴf}~yjo&wi䱵W!uB1L|WzKFHs wi*Ba;J&n0cie5߻f]Q@L+RJcN'00 ,XFO;p~_# oG/ gSsK5qKP:ž릙g'8//_.)hi"g]Χ7ߓ`?pه+to/xέpd] ǖ0L:@GR. {$OQ% Qv_{ Grb XV /]Yqu4;:i܈6予 PP؊u"h Z2t,R]{'oJ!N"ǭa>b.ţ1cM;-}kWfLQ_9kR(I{\kozc !W+OQCt}Ƶ n%*KB3SEq%emukS `]kI[:*M-D;\\߀޿dzLtBF?Lrkg#,Vʦf\A @'x8-f=?Ymj?u B,Ư?WDxB8 #%Ѹ7{BwEӧxTښaWtjGV5 c7: -~|Y4jEŧnSJӉJHD%/XJwMיPKEfsީ3RjL,o޶&U0eVd妥D˨ݛ]0dHKFEk "zGB5u{ I_]ɮhi#BfG %0I 7WKm[P+A qy[^UM SӒ($&gwP#oCԞ5QțX-40'\ -ʎ [Puk]Ҥ?<##g -դlYiƤhQ]/TʐNjժZڵ[ufE \1~xOmG  + ﯉\ kX2E3S jfk}C"5ᚠoh6R1TDjGѾaMx6"FhýC"4moPĞDjC~0!T_ ՟@Q){j5J S#(j45KSIdj +@9RSi5r\LʕEͦ(wjAͥQ'ZD-PKerʋZ,EpBفVw8dnf`l̂mfh9\e0%̥\GUuajEYE[,EET;;uvuQכֹ?\n1~zp.\$;=={amm;:{zY~ jc'ϳ* qqA>V#`K=ۜUZ0{Ƚ%%1H 6e(ZgH)M'1 j#M ?q8\LҧX_l^8<7-P2 rT˫$OL2L׀5'NZn\-jA!*`x2MCՁ;oۑr9Zbeĺ(f:SY~2$D_Tn ilai,o Ϣpޠ5ku*< ח1u uh+slPQ`~\qF9bo JvHu>AM,=ԫ9dgW%jU~p4gs  滸3Woyv-_orG.k7eGhc¢bgJ,l23P +OթQQ^Q>_Gq9l+tť5Ih.3)(==6 wX9@RC"g PBƐOV9L"SRyywi04A_8cUNfnb*E%%UnA[ XDOէ "nv=lS%)T]na zO9(:TT+}6.0[l zI⬒ dlm(*.Fu6J+mW\ `]<+sxlOh#f9`ڳe)Tfp /84 `g>s}xg\.X4ENAY fdS~E%*^4 +b)@asl>SxNG}`?{šw6m9Mڝ+],f͊q ^F{#on.3*D!+vI26HIR_6lZ1t- wۄ q`-NoY +g]:3@c٫Ѐe(Iu ws3C8aTf!7/PjkqMx.l +e~rN- ^ӚZR䗖?^{1ߟ_#P?u)qKE3-o?5X8<RNR+Spp\nMG~GT],-"Xj+W5| +٫ 0xN SW;!O_L'WwPrރ!̛ٙȻōaO(/c3ʭwqxtK)I mۆFEEE0Vq25k pD +=قTBkr:.2?O7xj{@}7Ud=Ӈ߷S0k_aʜSWo^8sg}O.͛8s ݽ|1/JV$sQ qyy(͊u fäSP4)H)J+$IKMwlg4hW -|Pxd4s$ǭ ]>|v]::mlA*-$ά{PJfbZ߱o_V좜d[ l ~" C_TXt *($BY9٤&#X?PÄ23 2mɶ&L@a>/䑚mI˶)(*&0*7ac-Kw>'A=ƴ!$)_\n NJgX%rvۻh#s]j(779e]OJ;{]``l.|qyh,tҼ|ERvBn2b6p^;;SLV&FWʶh? 5fS@!$T& !N]$y$ŻyOytm山;޺d;^өfZ83^sܿvx q`wGڴ +2n8UqB'au%A$%cX-oS7@k\:3s;C/etqueU1$qCQď0[б͕X\4- zUiz;Jt~#}UgOO %%LP.f^K9"'Ƒt@q,, b)+}ҶX!Fmu1Vx37zwKKm4SGXk+*plr[n(9oˌ̷btZѝWAGh7v'pXjS)cԩU@}z H=8_&u&דMڥp`+d=2${K`/*HDG0t9(Gw{Y{h<#bG~:Q:F?mɸzDDĚz%MKsbG֑sd +їs-y + J8h-1;x<'ЛJI},Ӹ=+_4yI~(aZ +8z@tq8e+Y@W8O7Wa@Zkl4#Յ@7;@Aj<]jVH3wa'ڂ*0lCv%b}L*97;h}l:# l, AP\Nps\|? @l1(ss%Aoᗻ+qI;Z@,|}sάyZL_#p@:nU큘f"sDߞȝQ{n&JژQǰ;VACÑ쫹ԤػCA:rg7_daPrp*^b^Vte)Xc;=^z~L2$6*B_Z{_\^( +}a\zEfa*sR):+/0 RĔK2igRBQ i oEag2ZB**();p;VRѵRĤ 3QtXނV7?N+e#22 N$ >bű{eRZ˩䚸 :9+#Hf|THA⽈sbRIQTtD]x)TD^<˰{-fpBWKA2(&P +GBMO]ھ9=:4@W25VaG4'`Ɓy?o&hk +{qhq'<nUtd ը!R +ֳs-sJΚM;t:O-…鲞o\M+Ej^\N-^zkBr&3`ɳЅ7r8 roLgM`o7[IEL`ª`k>xr0!n( w|6f|4d&ݕN;#XTrknH 0Ds,:b5+K W՛Ёm2GL^WƣҌ5%1kT})2D;$0aFd4Cq6-)A1K`PۨyWUsJ.jh a廐āJo$Iaܫ;:8 pկwjFnZjVW!C:P|y; lM難/R燪ݑwb6˿ Kҋ(bsC[vS>-FKCeZ{ZkP)k$qvym\yT=f{i3oM p,7+}Mey>}k[z ?p" +qə#?ʒP%sTHW~\IzY[]Az{.&%oXךAa@`l*J@770,eeE:'='y0`&eY'hhWl93 NˠlOvj*ts[Oahd&44WdAaRkInݟ5kOH)cnQ|5SB$e>PEɧ{c4]yxM>U&z.4z{SȇJfqF'_ُ>|J^VT|ZfO8x8%;4?D^RB|7ty +T^n6J8/DPm jKPS_r;*Q@Dx`v\nZ:JD ܽukQ C<8DjT^ rg|$$o\]ΰ%*E62lMv4POppyt|_ݖyTXH_ٴ >5-IJ2krvgoCZ91:"y!> stream -xڝZ XSg־rsk-kIUں:c;v\j.u"K@6 @B vP@p֥VZǮvש˴XmŹw@?<ͽwsO9DHp_b OZ&Iޖ|K&]F!Jk 8Z e,45U.l١ȄN0!iL^c1C6%MmԂ^2 @@ -2421,57 +2415,56 @@ J YzBh34UB[3/$ΖFO}?tfd 22͹ ̖v]s_Ɋ.!HGn?uTW,*3͝Ԙ茇 \CA+ 3e&pb6N-LƌmE܌U¬3H}\6˳@G֥/riaƕ²Vh \s94*([Q}o1)vzqˍo'8ͅYŚT1~ys/ gA]>}{d!>tς]L"K)8_v;ˡk,rd4lQE1Jͥ;UBu^VEJ:L,&ׯQ"Z.;*D;qiPU7aEֽɭCpZ]݇btNPDn1y7=[$E?1so{nlă7q}їEk6+{C>hL&h3@z-%K1a_]JƿLX(-2Wn9{0  wԁeY-[v]]ؔ]o)b8axfĒ^ ^_.s^~/e 6TB{ o.xGzJk;q(z+q%Dem}gf w2:>3Q2$R.vFYzg q1ihٛ [_lLOdWI!ٝٚט_b?Z4H2;sʖ7Fb- rAV ɵϞ$@FS޿t'nO)2KϾ,'l6gKU2s&l6{$?ǧt:MrENXQ;:f4Q^$[IckSj?i{`<ضƎMyHC -voik +vo endstream endobj 503 0 obj -<> +<> stream xڭx T׶v1Tu!8[@Vp@Aq DDdI桙ACy^y@PFAdTfD0q$j x=} -w%]o{E|go{V) z'E$ IwL ܧFK4_ Ѹ/aCi~*KTit5Sߡ:T&+vp \uEfB[{.4]hf+J3"CRCHS Ì-4O. M"W'$%JLRHEhRcU>$3/dSC(-j5JMSzLj52ReBͧLZL-R˨)sʂVSʎ(Gʉr\(Wʍr<(OʋZKyS>:j=(*ZJPTlTUTT ƩQ W+U_~sf+sy'B+{NcecTF;c;5c & M4zI'c)VSp ܰvmu6$Iԯ# }(ɍh8M$/c%38 AB7 `cf6yF&B,? Txc5=Z![01:8:8<-X.$҃{G,)έs-P*W2 @;xD#Jm$"Od[NaFL%ur7 HzƼX2ە"zD=YGpY1؅m\d|ͧ 3N9AБТ®}95NbM4! l0Y =zt!a-V9aǵ]}]}EgH_3;E1VF.:w=q~~Yhzb:e1N~1H E\uӦ EFBXjjdi?:tj4ϔ2A|112F#?`2J䥙AǃI݀lr2yHr%7^ Dvue\h|9:2ѵ+˵?fw -sCre1{l(ş7h?4~}ErT6%ê!C6JcΊAr[ZnYö||"#aa?d,DA:Mx\3{ 7cfل=N.cJ)aP֤T͉KyD`l:qF?WNc :F!g3s%؅`#$^ -#GO p&[2;-QiQss w$2<50 z'0!4W|%x9`Bp!0}gO,8]pf-cugl@F,^ -Cmz.fW#{,RRF3ь"ȞUVIgz&1<7O cp1p,^U:u."H\uWeGC>"ۜsҰx# -c]M-,Lcf7$>W4p((H^eb׀/Þ$S9A4rc.Tu?&F{/M Y0C0!.'Xh ;/;/D̡zLxLa[rкqKMƅRicQ SΦr.+/+ym w>.n־9.:r=cGu _beDvvSűv.\|` -&`1/v|u׭~uHH=ߪJ$͛1GlL\,Q<X-wvo$1CF=.~u~ p* -/{nbhWνkw1h> s@ڵ?˓>]V xH-S,@FsGm-,vC$oI֖>ub:##1$w2C{.؎Q hOH)}nB,(i/Eʹsg.jb00of#'2y;#sk*hd i#n|b3RssGI OXձN+@Gh>QdLʼAh,eÌ[89:9l6{/K?~e=Ӏ4"GzD/]_wݦt>8(7OWKv'QN?~&BAWMdn!+0Q$$#"C+1ٴzƌцVk}<}ܒa ˎIJP_~i}{PM}e,Q薐w -p;11o^VtՖyux(eь%e O2b.u[i2RHKbm۶CQd!q{́˝,7 o$ĭ..$K"ǠA 3 -lmAl'+MGh1;-h{B`)85\JϾy[ʠP@ʐMvg@Z gC:\0˝;;.ŌfS4+{ˆeKOHZjG^ԣ aÿj Ϯ^v&)f)vQ[W[W|4 mS /<4;?*i^wId\//o8M~0$Ї/|zaq\]@#gXy$B7mX<|3Dkw7:xx)Ĕc< B-Ϳ0#3nrKJC[XA7EULH5kk y]S%k{08۬l(W_$Wk[.s#yAw勵k=<o}jFBv:BJnbl4Dpqpq̢HKnsNc-ۋN7xeG''n_:9__"t~{6dn;M(5q'n~AF@%[ܣ]<\Y'{u:qhі×^>zZ` (yQwW\Ύ3i3ԃ=ws)2##hT&7]P9아bRHܱ)u,+"9Tµv~K[kKHZ >% xZ{sCQTl PO\X޿--؊R!*qjqVcb2F nkR>Ɓ4mdT~&).?{s~-~RsK\}|۠*3se璏DHi te|ɉW^ R;]ebvߓ] z3=+3ӒEA4w!`?nCg[MKM99ɇS>Q@E {Z0H .ut/)I ]BD]2ϑ>B iv5bxsws~X˄g2`ֿE)^?j&F9IN|, w6ܝ[E,XőڻmvAv~~.2;$$1iMpMɏjl6t.縂՟J>t6sY4_3AfXH䣈Q7!KޮA(i^F[0s3c[}'X#zPzh7" `cʡhgFEmR_46j +w%]o{E|go{V)ONI kCdSCa#c(zW6H4KPJ~*?]whN(J/\&W]rD MJҌpĤ-)ҨT}0#Ef B}ĨՉ)I)!ST#}'kk*X( 9 *qP"JGRӨ5Eͦ !eDP)SjeF-SK2sʜlՔ-)ʑr)ʕr)ʓRޔZOm|)?ʟ +R*,Uk $Bqj&jkJW_m8FbމʞqY1;9UQ+DqNr® CM'aI|rՔ87m}[s:IGB_$ +'cr#N(9 X L4Nl+ؘMޣ ˏqXMV-LpO 6 ޑgs {*jsE1#/WM`Du +0yCښQ&gR? 0RNӜgGvIh[ .l+L(? + K馸MqI.Ci;s X-9 X 3UE=UOQrJ7P4Y*L-ww) <>P4Pta?(A,4^h[2x2|^.l.h*-*ȩέ>-q:P' F(YTƩC ے37Z`89rzGĪx547c˝@䶤O(<E;#^D##шRFS4YS FyI$wƒ4"1oA!F"v'QO\2FV v!Dcff4<5A)ȌSNg4t++{fcX0MG~DC&{[>AV$5C]Fjf@zoHkXGU{X>qmW_W_Ex6R `DQkQ/]vyl!ް=XFY+~)9,(v:'Ix,6z13J}xНӊx±%1ϳFx` X\4-rP8l +w} h"HҊ& _[BOQp#&aK؅$OBIҾCon!1 ;r8OFv o7Wݴ)*gj+1qx*YZᏎh#3%h>c*_L}L1:,r1؄F6yil`Ra7`? % h^>\FcɸW/C4]]W27_NLtr9PkY"<JjƟ:1lMf_b_zG9i`*=lȐ ꟾbܖ2xְ@4E6~'.,Hfcl4lN׌^cXk6qAO˘RdJ+{T$%5)8rsRF"'-FG9ϕXdàQ\ vw2H~{< BH?NgKeڨgܜ6x OMF=2HIc?Lc-o(D:yH?`` ^.x إ#s@3LߙS. N<)YbuXЄ_ľh%Y$HTTn4geGYd^IMSX2\L-p6!WENwy,#-i]yU$鐏H64,ވXWS  Ә9 Jǃ4JdpR-hWh5 o@) 'Is{gP=K>}ݏƣy^lKG4C li: 0#0s%sb5r:SlRq!2TZ`ԽB)gs*AAo[c{ÝρmK۷okNK麜w<Q`XlD4jnzs=,"T gaqߥ)I{!:Xl%jL˶=_Au_~#R!RO0j G&Dmx&<KOFKI̐cg,y__*܇='n˞#[>"ڕsݵCL4v?iW^|0j7RD:˄9вh80t[(e#0Pc1I[&O%Ax/ŝ_ahОC4cF7S<2?{ +}_ 1DK%r\Ǚ˧ 7Y8 La{1Y3"|# a4k!S/luluФ&O&2/fv#Of5$D6yt#yAPv\U\Nʩweo4޿WtBszeheh)ˆas0nήqNe7M_{Y4 ͳ Qu])=-ՒIj(O ehxP"F[Ȋ>yT6I/I;2HHfJlL61#znaZO$GX#j6w>旪_Z^+&GS~_:7/skY4K%dkpfpml jL'?5tFwp2JF4cISfLŮKaR8ҮsPcHrs`Ar' ''3/McB曵88 q+˻{I҄1hPL+6[n[5[%& tk?eo+~k[7esExE鵰 +FY:8J纠@Ѧ#9E,#rN ڱqGX +yaM!oo2(Т2vh!&qX:W:f:ȇ#ViIM "` Q ((qJ؆OPK/c~!e⤱RiF8ºЖ$V?jE 27BEk|.c ieo$y-)cCL;,N6+ +UyW{+U}߅.֤ (HsНsbګEO[uQ!Pۇl" 2p:\\v.?9<Ғۜt*X C ^Y>iቁBNo,NJG܉vx(dn 8hh7lsc]ǻui9v壗mX2C||?J^~L7o i.\v +kLAe#IhCD5wWAyyGC%{%cwlJ$ˊHa]Xb/|'VR~.AyfNrN(r8O!f^V1 76:bdxĸK]=-uJ~qF QsO:*Hi']xM,iV2Ǚ Xboh +Wŏ> qi H'6wV e)gqn(~a,I) i nDD>|Sg7; 9`O( Bsd89@#뮭L4*zo7Uʀ)#q^r'~XkɄ5Q@|6ǻRqcXc=s&z.axh'ɤ\j/ (>%I'bF4->LaB筳trsrssD|7AۣlKK ww|#Yуhloi8sʡ/;+H,=?P} ]®m%Rc֗֬+(Jh8]Y^\^| lGJ6a +(at,Wx9l䣱7Ǹd|l ~son@!^S7 ~/U~'6 I7|"@."#C(p<oƮ+%|c_eG}x]صA8J,!q" ڻ 4g|nOśOHso=Je \eb̘`k_/0IȯhS(>㐷NϷ|Valߥ,T&*{h!zC܆,FޮĒHp8"& 6BЁ,*޸WA]$G'##!e}8:!Փl {nnXג3 vH+ Nҧ $> stream -xcd`aa`ddw - /H N+,ILIq1thww<&)yS# YrL?0200<A)$/ 122r'e9dgdV($$*$Teg(h$k* CTĒ<=@.VZh$_˰*úMTϻ@R_DeX-'ҫAq> +<> stream -x=kLSgi{N I,xkDS -q٨lPZJ{-P^eϖM !cRD(  *$貱IMY{ڷn_~|xDB$V{4e'f*VXj*򖴫}5!ObٌQ|(|S_A饯@D‡$వc 欜 fb}Lޜ_)Zl2lj^/**XbS)ZR ޠ㌥eg),6gV{m)z IjE':^d :$NtbŤ8@!GU]!]*W/ -ɼkIe - npaNNy! 6~)sȆW^ 8+n^Bc#ib$ -f< -; 7-=9 ,9q@U.Hޝ;7Ӛ բ ' L޻aX`d.+ -պpٌ3@~L 5[/6754kqz3(s[]}ڑ򼬧QS.Zu{w{߹;;wniDԤZR-62ލ&ynn#m\tNjL%fc^\If,dyoV$FΧ_b?L'xzV 91Qc؂RSXM^`_562OdA|F @w"Em?wKy癎/:`&,Μ4,5$g$gD)098n$:=ƹ+s'FHV`_X 9Mjxp@Ѵq9?hd8CSa26xBL;cl󀤰xq#~z>|Qh7 -k@ -@,a{]ʾ16dvp\b - -yBj2Vό`ѩѩٞE ?+h+n O᭴~xԂt)]_N +x=mLSgm{o&Q餠 ( x٨:!*b[2|I&;[fB4q,%d"B n0/jD l$,fSn/^>sIDIoޕ;ZS7}Tj22I& +x%$g}e . +uBN&D"x )I% H X*?rFofլ5yZm~=l?*dI5Vc^ԕZKeleh(*+bbcT1ަpb ++\ n[7IJ.J%leޯ#5Yy s!TR 5җKg;7LXlKN͎<Swar =Hp{M+S<fxz+ezw&:O 3gS` D&KRAb&4xs=9ޏ( C̍]N] ? & q(lw:'m$ŋw< tnaG +@2'C#I:ԛߛה@s:V{\{XTn`KKlE'?lW=?3?GgFgf{y' Ch4>R[W5pEdHg endstream endobj 509 0 obj <> stream -xcd`aa`dd tsv 44 l2 ?d1g!"Ћ?,AD~j@1W[mjbQQ~yQfzFs~A%`hii`d``ZXX('gT*hdX뗗%i(gd(((%*@s JKR|SR.dT L,9?:~|xk߫DC ܚ}8wO?wc={Rk_gO߼{StLhﮗc~m*+vϕ+^~!oir\,y8'ppo̽y6~( +xcd`aa`dd +u +v 44 l2 ?d1g!"Ћ?,AD~j@1W[mjbQQ~yQfzFs~A%`hii`d``ZXX('gT*hdX뗗%i(gd(((%*@s JKR|SR.dT L,9?:~|xk߫DC ܚ}8wO?wc={Rk_gO߼{StLhﮗc~m*+vϕ+^~!oir\,y8'ppo̽y6~(ۮ endstream endobj 513 0 obj @@ -2487,26 +2480,31 @@ x endstream endobj 485 0 obj -<> +<> stream -x͘RGsRz<[J`A  Y b+k%YJ6$ZaMOw )2a2s(<ޢ+BiAU=2!<\sRCET*X_^X)2_^(ItJXrg:N8&2 \hs&t ,&pZst@FpA++qkVk*,c}X=VXmp -x4I8NbJ8 -& -O rk0-B[t^u餎ofQQƚ766FK<:2ӟG_*Gmz[C a㙫~7TӬG CPЧyx+u:G%<rfAen?㲴M:ɇUNQ4uǧ4Jt#lln5]h VezW\+Hnb<1n^ê-M0?}v0R`N)];`d<ǻfcg'7pt+uʧ7lZFiNı˧,PR WO+;ˮ̦Y^'1}jfNn%ݿfw.gs|ᷞՏ|q,s빫Ii׵ZguMϧem?(*5v 6F6eh$_`ogpi9@Z`8sXcܳYc b -&GEŽ7"$qj]2L&"Nrd㶲:= ^clJj1XZxK $10oH[; {Z.P3trJGSnprz]I&t?t^():^o>}ƙQ&c=i5I%#)Z~X Bhudģс ]$W`hoމ;!Zu{|ёȃE*),>LR=hI5^ʳE\I@_D^q ̗ `JLEv[fw}=CloaK _e#lnjt,̔Nw8B(dȗepTِ6w]w/w_>3<2ul=ww{ M!muleBJz;W{q8[%6%hWdpk9Љ?)HVk8v;xwxz 8ٵdRŽjK8u]&kUؐ\;؅S^FUnB6j_Zta3859v+IWeC~+Q%a "mlQ'X֫!ԕТ~k఻slwt.UL' fw3B<~dsD>[@r]&~{̧ADod|^\]I,47RzMmIQIѬAusӧ/XEuI__#WQURo6uM?$ݢmڡ^ 5F{ԣ}zCtHo鈎)9.g%$TJ}@HW4k*FtC%U444O}/7; ŴH`T/Ƣa?MUj>*FbhfeFjJ?A/6u{UaVYw='UMUZILj6Ie)s*Xr%WʢY*E -iJRr +xXmS7_w.L3B [|pa5wK}Np2JZ>ZQB +Pң3)8"j +Z2'^8)Ua +ǃ0D<|T``&8-s*#^mq˜hCʄ 'Ka2h@[2፰d`@GQXǒ5f<ͅL͊I5q4`z&`l,RxNiqlL;4Nş7z5`ZT·[LS?Nl:*ʼ뼆5.aڐF_9mQ5_΃יK9(cCy=b4Vpp%xʤpBiqe΢1zei^&7X 4mhz_:4'iܢN7iS^x %D4{ +7."V\7=Ja5ό.=ϱ9"Y`0K,4eZX7`xdǝ4S]U:pWaF +ݪÔQ^թlʡI=ݾO9|堺(a*xVΓg/=_鐝L񴚤Q-jqUx//WSԭy *tb-\H:ק"F?Iڪw`a@b +bߧb7Lk-MWle"\)/,ur}@̖llt\p91t+e {/>8z*L. [d +R<9DA.@3ɼJ[ƧATot)./I^8ԿU i(6Ԅ'O/f5 >]}_%( G +&GUIu~]4(k?#N>0]ڢmڡKО9zIG鐎N[zGgxV^@A5ɑCOh@% +]SI#M)}/ cQ#hxe̦U,}UFZ a(rhWk Ґf.}nY3O_2n9W]/Size -529/W[1 3 2]/Filter/FlateDecode/Length 1261>> +<]/Size +529/W[1 3 2]/Filter/FlateDecode/Length 1263>> stream -x5WpUEI% @:z Rz HKAzMB D@383>3x^>ٻ9{1;kc昧& -acl# m:C?0!tz6SlnU3i1-a<L$LL4L lmfb{YQiPs']v$hKLvat}N]Jb9譹o4w{ao>bF\}bM?bk>Nr32ZJ'8`"fY>5p1EoY#XBLI6#iv)ۤ(=|J~4>+~A815yk^ɏq"NΙ,r5WkS41TSF| c!8 gg?&?$:Ny.|?"/̏y@R??-Osm>EX -D{8f)Ϟhm|E.WGW0zAm>L^Ÿ -W\p=^ Q&L[WoSb n_"U|ڧ*m]|V!SgS7]X*9uU&X;Vp$r 6_]܃{%0i'YᧂOk\P5EN$T\clhJ U9U&|)w?)nij=UGSlwrψ[g'}o9h x/{8jY5B@ܛ˴JP#&/-IA6GvF{@?0c%a<0[cIhod0S00b;zhon0 `G'†6Ί\p(ñ8 eo%{{g ڛ50'Ddq p6A{y8oa{~!.Ÿ^+q9ڳڞquhX{f`n O=}1?|-r.%9wiz,Fx5;޼>=_xI<zig7!,?fj9+۝<#xTf9$x_ );}'V6$Uоg$g%x> 9Vox+Ϯ +q*4J n]/{0*+۝\+▹:zQ{r>^*=xS=>VjVmcqզ扸&hS'-텂 cþh01c+10]LD7Tz Sv[`o LL5hfcCp(aj8m5 +c$vq7xSq"J&7k-3pYho98}1J,\.Xqړߞ'j\k^p=ڳڞ9=cY4Q<'VY,x/b3^:GxS"5;s5 kKsxٚ%/fW}4{k?-+ꮹxj0EMǴo60#a v,^I1ˡWI endstream endobj startxref -624048 +624046 %%EOF diff --git a/documentation/UsersGuide/UsersGuide.rst b/documentation/UsersGuide/UsersGuide.rst index 5335d0c1..ea07a22a 100644 --- a/documentation/UsersGuide/UsersGuide.rst +++ b/documentation/UsersGuide/UsersGuide.rst @@ -464,7 +464,7 @@ The second step is to create the source directory and pull the |git| repository: Third and final step, build & install: :: - dummy@lepka:src$ ./bootstrap/ccp.py --project=support \ + dummy@lepka:src$ ./bootstrap/ccb.py --project=support \ --project=coriolis \ --make="-j4 install" dummy@lepka:src$ ./bootstrap/ccb.py --project=support \ @@ -477,7 +477,7 @@ stage in ``-j4`` (or whatever) then we generate the documentation in ``-j1`` Under |RHEL6| or clones, you must build using the |devtoolset2|: :: - dummy@lepka:src$ ./bootstrap/ccp.py --project=coriolis \ + dummy@lepka:src$ ./bootstrap/ccb.py --project=coriolis \ --devtoolset-2 --make="-j4 install" If you want to uses Qt 5 instead of Qt 4, you may add the ``--qt5`` argument. @@ -499,7 +499,7 @@ In the |Coriolis| |git| repository, two branches are present: command just after the first step: :: dummy@lepka:~$ git checkout devel - dummy@lepka:src$ ./bootstrap/ccp.py --project=coriolis \ + dummy@lepka:src$ ./bootstrap/ccb.py --project=coriolis \ --make="-j4 install" --debug Be aware that it may requires newer versions of the dependencies and may introduce diff --git a/etesian/src/AddFeeds.cpp b/etesian/src/AddFeeds.cpp index e6d778cd..423130ab 100644 --- a/etesian/src/AddFeeds.cpp +++ b/etesian/src/AddFeeds.cpp @@ -34,9 +34,6 @@ namespace { using namespace std; using Hurricane::tab; - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::ForEachIterator; using Hurricane::Warning; using Hurricane::Error; @@ -118,8 +115,8 @@ namespace { void Slice::merge ( DbU::Unit source, DbU::Unit target ) { Interval chunkToMerge = _xspan.getIntersection( Interval(source,target) ); - ltrace(300) << " Slice::merge() " << " " << chunkToMerge << endl; - ltrace(300) << " | " << _getString() << endl; + cdebug.log(129) << " Slice::merge() " << " " << chunkToMerge << endl; + cdebug.log(129) << " | " << _getString() << endl; if (chunkToMerge.isEmpty()) return; @@ -129,20 +126,20 @@ namespace { while ( ichunk != _chunks.end() ) { if (imerge == _chunks.end()) { if (chunkToMerge.getVMax() < (*ichunk).getVMin()) { - ltrace(300) << " | Insert before " << *ichunk << endl; + cdebug.log(129) << " | Insert before " << *ichunk << endl; imerge = _chunks.insert( ichunk, chunkToMerge ); break; } if (chunkToMerge.intersect(*ichunk)) { - ltrace(300) << " | Merge with " << *ichunk << endl; + cdebug.log(129) << " | Merge with " << *ichunk << endl; imerge = ichunk; (*imerge).merge( chunkToMerge ); } } else { if (chunkToMerge.getVMax() >= (*ichunk).getVMin()) { (*imerge).merge( *ichunk ); - ltrace(300) << " | Absorb (erase) " << *ichunk << endl; + cdebug.log(129) << " | Absorb (erase) " << *ichunk << endl; ichunk = _chunks.erase( ichunk ); continue; } else @@ -154,8 +151,8 @@ namespace { if (imerge == _chunks.end()) { _chunks.insert( ichunk, chunkToMerge ); - ltrace(300) << " | Insert at end " << DbU::getValueString(_ybottom) << " " << chunkToMerge << endl; - ltrace(300) << " | " << _getString() << endl; + cdebug.log(129) << " | Insert at end " << DbU::getValueString(_ybottom) << " " << chunkToMerge << endl; + cdebug.log(129) << " | " << _getString() << endl; } } diff --git a/etesian/src/Configuration.cpp b/etesian/src/Configuration.cpp index 9f0aae78..25f1a0a0 100644 --- a/etesian/src/Configuration.cpp +++ b/etesian/src/Configuration.cpp @@ -41,7 +41,6 @@ namespace Etesian { using std::ostringstream; using std::vector; using Hurricane::tab; - using Hurricane::inltrace; using Hurricane::Warning; using Hurricane::Technology; using Hurricane::DataBase; @@ -81,7 +80,7 @@ namespace Etesian { Configuration::~Configuration () { - ltrace(89) << "About to delete attribute _cg (CellGauge)." << endl; + cdebug.log(129) << "About to delete attribute _cg (CellGauge)." << endl; _cg->destroy (); } diff --git a/etesian/src/EtesianEngine.cpp b/etesian/src/EtesianEngine.cpp index 86675e36..b2856bdf 100644 --- a/etesian/src/EtesianEngine.cpp +++ b/etesian/src/EtesianEngine.cpp @@ -191,9 +191,6 @@ namespace Etesian { using Utilities::Dots; using Hurricane::DebugSession; using Hurricane::tab; - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::ForEachIterator; using Hurricane::Bug; using Hurricane::Error; @@ -290,13 +287,12 @@ namespace Etesian { void EtesianEngine::_preDestroy () { - ltrace(90) << "EtesianEngine::_preDestroy()" << endl; - ltracein(90); + cdebug.log(129,1) << "EtesianEngine::_preDestroy()" << endl; cmess1 << " o Deleting ToolEngine<" << getName() << "> from Cell <" << getCell()->getName() << ">" << endl; - ltraceout(90); + cdebug.log(129,-1); } diff --git a/etesian/src/PyEtesian.cpp b/etesian/src/PyEtesian.cpp index 25836491..39826b90 100644 --- a/etesian/src/PyEtesian.cpp +++ b/etesian/src/PyEtesian.cpp @@ -26,7 +26,6 @@ namespace Etesian { using std::cerr; using std::endl; using Hurricane::tab; - using Hurricane::in_trace; using Isobar::__cs; using CRL::PyTypeToolEngine; using CRL::PyTypeGraphicTool; @@ -66,7 +65,7 @@ extern "C" { // Module Initialization : "initEtesian ()" DL_EXPORT(void) initEtesian () { - trace << "initEtesian()" << endl; + cdebug.log(34) << "initEtesian()" << endl; PyEtesianEngine_LinkPyType(); PyGraphicEtesianEngine_LinkPyType(); diff --git a/etesian/src/PyEtesianEngine.cpp b/etesian/src/PyEtesianEngine.cpp index 35435d9b..67ed7663 100644 --- a/etesian/src/PyEtesianEngine.cpp +++ b/etesian/src/PyEtesianEngine.cpp @@ -34,8 +34,6 @@ namespace Etesian { using std::hex; using std::ostringstream; using Hurricane::tab; - using Hurricane::trace_on; - using Hurricane::in_trace; using Hurricane::Exception; using Hurricane::Bug; using Hurricane::Error; @@ -67,7 +65,7 @@ extern "C" { static PyObject* PyEtesianEngine_get ( PyObject*, PyObject* args ) { - trace << "PyEtesianEngine_get()" << endl; + cdebug.log(34) << "PyEtesianEngine_get()" << endl; EtesianEngine* etesian = NULL; @@ -84,7 +82,7 @@ extern "C" { static PyObject* PyEtesianEngine_create ( PyObject*, PyObject* args ) { - trace << "PyEtesianEngine_create()" << endl; + cdebug.log(34) << "PyEtesianEngine_create()" << endl; EtesianEngine* etesian = NULL; @@ -110,7 +108,7 @@ extern "C" { static PyObject* PyEtesianEngine_setViewer ( PyEtesianEngine* self, PyObject* args ) { - trace << "PyEtesianEngine_setViewer ()" << endl; + cdebug.log(34) << "PyEtesianEngine_setViewer ()" << endl; HTRY METHOD_HEAD( "EtesianEngine.setViewer()" ) @@ -131,7 +129,7 @@ extern "C" { static PyObject* PyEtesianEngine_place ( PyEtesianEngine* self ) { - trace << "PyEtesianEngine_place()" << endl; + cdebug.log(34) << "PyEtesianEngine_place()" << endl; HTRY METHOD_HEAD("EtesianEngine.place()") if (etesian->getViewer()) { diff --git a/etesian/src/PyGraphicEtesianEngine.cpp b/etesian/src/PyGraphicEtesianEngine.cpp index 54c1ccde..64d18e41 100644 --- a/etesian/src/PyGraphicEtesianEngine.cpp +++ b/etesian/src/PyGraphicEtesianEngine.cpp @@ -49,7 +49,7 @@ extern "C" { static PyObject* PyGraphicEtesianEngine_grab ( PyObject* ) { - trace << "PyGraphicEtesianEngine_grab()" << endl; + cdebug.log(34) << "PyGraphicEtesianEngine_grab()" << endl; PyGraphicEtesianEngine* pyGraphicEtesianEngine = NULL; HTRY @@ -65,7 +65,7 @@ extern "C" { static PyObject* PyGraphicEtesianEngine_getCell ( PyGraphicEtesianEngine* self ) { - trace << "PyGraphicEtesianEngine_getCell ()" << endl; + cdebug.log(34) << "PyGraphicEtesianEngine_getCell ()" << endl; Cell* cell = NULL; diff --git a/hurricane/doc/hurricane/Commons.dox b/hurricane/doc/hurricane/Commons.dox index 0254fc39..8cf2cf8b 100644 --- a/hurricane/doc/hurricane/Commons.dox +++ b/hurricane/doc/hurricane/Commons.dox @@ -1,7 +1,74 @@ - // -*- C++ -*- + /*! \class tstream + * \brief Trace & indentation enabled stream. + * + * Traced \e stream are a derived class of std::ostream that provides + * integrated indentation and selective printing according to a + * verbosity level. Only messages comprised between \c minLevel and + * \c maxLevel are to be printed: + \f[ + minLevel \leq level < maxLevel + \f] + * + * The cdebug instance of this class, in conjunction with Hurricane::DebugSession + * is provided to create tailored program traces. cdebug is a global + * variable which is put in the root namespace (not the Hurricane namespace). + */ + +//! \function int tstream::getMinLevel () const; +//! \Return The current mimimum level for the messages to be printeds +//! (equal or superior). + +//! \function int tstream::getMaxLevel () const; +//! \Return The current maximum level for the messages to be printeds +//! (strictly inferior). + +//! \function int tstream::setMinLevel ( int level ); +//! Sets the minimum level, returns the \e previous value of the level. + +//! \function int tstream::setMaxLevel ( int level ); +//! Sets the maximum level, returns the \e previous value of the level. + +//! \function int tstream::getLevel () const; +//! \Return The level of the latest message that was submitted to the stream. +//! It is automatically set up after any call to tstream::log() or +//! tstream::tabw(). + +//! \function int tstream::setLevel ( int level ); +//! Sets the current level, returns the \e previous value of the level. +//! This is the level of the latest message that was submitted to the +//! stream. + +//! \function bool tstream::enabled () const; +//! \Return \true if the currently memorised level is inside the current valid range. + +//! \function bool tstream::enabled ( int level ) const; +//! \Return \true if this level is inside the current valid range. + +//! \function tstream& tstream::log ( int level, int count=0 ) const; +//! \param level The level into which to print. +//! \param count Increment/decrement the number of tabulations to print +//! at the beginning of a line. +//! \return A reference to the stream so the operator \c << can be used. +//! +//! Send a message into the stream, that will be displayed if \c level +//! is enabled. The number of tabulations printed at the beginning of +//! the line will be changed \e after this message has been printed +//! (or discarted). + +//! \function tstream& tstream::tabw ( int level, int count=0 ) const; +//! \param level The level into which to print. +//! \param count Increment/decrement the number of tabulations to print +//! at the beginning of a line. +//! \return A reference to the stream. +//! +//! This function is dedicated to change the indentation level, but +//! not print something on the stream (event if it returns a reference +//! to it). + + namespace Hurricane { /*! \namespace Hurricane diff --git a/hurricane/doc/hurricane/DebugSession.dox b/hurricane/doc/hurricane/DebugSession.dox new file mode 100644 index 00000000..f6a2e1ee --- /dev/null +++ b/hurricane/doc/hurricane/DebugSession.dox @@ -0,0 +1,117 @@ +// -*- C++ -*- + + + namespace Hurricane { + + /*! \class DebugSession + * \brief Enable/Disable trace information (\c API). + * + * DebugSession provide a way to control what and when text send through the + * cdebug stream is printed. cdebug display selectively the trace/debug messages + * between a \c minLevel and a \c maxLevel : + \f[ + minLevel \leq level < maxLevel + \f] + * + * DebugSession manage a stack of \c (min,max) pairs so multiple session + * can be opened. On opening a new session the \c (min,max) pair is + * pushed on the top of the stack and define the active range of trace + * levels. On closing, the pair is removed from the top and the previous + * range became active again. Do not forget to match any opening with a + * closing. + * + * In addition to the levels, a DebugSession also can be triggered by a + * \e symbol (i.e. a \c (void*) pointer). The DebugSession has contains + * a user managed table of symbols. When, in opening a session, you give + * a symbol, the session will actually changes the trace levels only if + * the symbol is in the internal table. Otherwise a session is still + * opened \e but it will keep the current trace levels. So, in any case + * the session must be closed. + * + * + * \section secTraceLevels Trace Levels + * + * + * To avoid mixing messages between different parts of the software, + * the following allotments have been done: + * + *

+ * + * + *
Trace/Debug level allotments (provisional)
\b C++ / Coriolis + *
\b Tool/Library \b Minimum \b Maximum + *
Hurricane \c 0 \c 19 + *
CRL Core \c 100 \c 110 + *
Anabatic \c 110 \c 120 + *
Etesian \c 120 \c 130 + *
Knik \c 130 \c 140 + *
Katabatic \c 140 \c 150 + *
Kite \c 150 \c 160 + *
Solstice \c 160 \c 170 + *
Equinox \c 170 \c 180 + *
Unicorn \c 180 \c 190 + *
\b C++ / CHAMS + *
\b Tool/Library \b Minimum \b Maximum + *
HurricaneAMS \c 500 \c 510 + *
amsCore \c 510 \c 520 + *
Pharos \c 520 \c 530 + *
Isis \c 530 \c 540 + *
Horus \c 530 \c 540 + *
\b Python Wrappers / Coriolis + *
\b Tool/Library \b Minimum \b Maximum + *
Isobar \c 20 \c 30 + *
CRL Core/Python \c 30 \c 32 + *
Anabatic/Python \c 32 \c 34 + *
Etesian/Python \c 34 \c 36 + *
Knik/Python \c 36 \c 38 + *
Katabatic/Python \c 38 \c 40 + *
Kite/Python \c 40 \c 42 + *
Solstice/Python \c 42 \c 44 + *
Equinox/Python \c 44 \c 46 + *
Unicorn/Python \c 46 \c 48 + *
\b Python Wrappers / CHAMS + *
\b Tool/Library \b Minimum \b Maximum + *
isobarAMS \c 48 \c 50 + *
amsCore \c 50 \c 51 + *
Pharos/Python \c 52 \c 60 + *
Isis/Python \c 60 \c 61 + *
Horus/Python \c 61 \c 62 + *
\b Special levels + *
Determinim check \c 9000 \c 9001 + *
JSON parsers/drivers\c 19 \c 20 + *
+ *
+ */ + + //! \function void DebugSession::open ( int minLevel, int maxLevel ); + //! \param minLevel minimum debug/tracelevel (>=). + //! \param maxLevel maximum debug/tracelevel (<). + //! + //! Change the current debug level to (minLevel,maxLevel). + //! The previous range is stacked and will be restored when this + //! session will be closed. + + //! \function void DebugSession::open ( const void* symbol, int minLevel, int maxLevel ); + //! \param symbol symbol to match. + //! \param minLevel minimum debug/tracelevel (>=). + //! \param maxLevel maximum debug/tracelevel (<). + //! + //! Change the current debug level to (minLevel,maxLevel) only if + //! \c symbol is traced. If the \c symbol is traced, then the new levels pair + //! is stacked, otherwise the current level are stacked (we duplicate the + //! top of the stack). This session, successful or not, must be closed as + //! any other. + + //! \function void DebugSession::close (); + //! Close a DebugSession and restore the previous trace levels. + + //! \function bool DebugSession::isTraced ( const void* symbol ); + //! \Returns \true if the \c symbol is in the DebugSession symbol table. + + //! \function void DebugSession::addToTrace ( const void* symbol ); + //! Adds the \c symbol to the table of traced symbols. + + //! \function void DebugSession::addToTrace ( const Cell* cell, const Name& name ); + //! Adds the Net \c name from \c Cell to the table of traced symbols. + + } // Hurricane namespace. diff --git a/hurricane/doc/hurricane/SoC.css b/hurricane/doc/hurricane/SoC.css index 9f833e18..cbb67dce 100644 --- a/hurricane/doc/hurricane/SoC.css +++ b/hurricane/doc/hurricane/SoC.css @@ -220,6 +220,18 @@ font-size: 110%; } + table.UserDefined { + border: 1px solid; + } + + table.UserDefined th { + border: 1px solid; + } + + table.UserDefined td { + padding: 0px 5px; + } + table.DoxUser td, table.DoxUser th { padding: 0px 5px; border: 0px; diff --git a/hurricane/doc/hurricane/Transformation.dox b/hurricane/doc/hurricane/Transformation.dox index 0e944a9b..3ff9697b 100644 --- a/hurricane/doc/hurricane/Transformation.dox +++ b/hurricane/doc/hurricane/Transformation.dox @@ -42,50 +42,52 @@ * This enumeration defines the orientation associated to a * transformation object. * - * - * - * - * - * - * - * - * - * - * - * - *
Orientation codes and associated transformation matrix
Name
- *
Aspect
- *
Code
- *
Signification
- *
a
- *
b
- *
c
- *
d
- *
ID
\image html transf-ID.png "" - *
0
Identity - *
1
0
0
1
- *
R1
\image html transf-R1.png "" - *
1
Simple rotation (90) - *
0
-1
1
0
- *
R2
\image html transf-R2.png "" - *
2
Double rotation (180) - *
-1
0
0
-1
- *
R3
\image html transf-R3.png "" - *
3
Triple rotation (270) - *
0
1
-1
0
- *
MX
\image html transf-MX.png "" - *
4
Horizontal symetry (Mirror X) - *
-1
0
0
1
- *
XR
\image html transf-XR.png "" - *
5
Horizontal symetry followed by a 90 rotation - *
0
-1
-1
0
- *
MY
\image html transf-MY.png "" - *
6
Vertical symetry (Mirror Y) - *
1
0
0
-1
- *
YR
\image html transf-YR.png "" - *
7
Vertical symetry followed by a 90 rotation - *
0
1
1
0
- *
+ *
+ * + * + * + * + * + * + * + * + * + * + * + *
Orientation codes and associated transformation matrix
Name
+ *
Aspect
+ *
Code
+ *
Signification
+ *
a
+ *
b
+ *
c
+ *
d
+ *
ID
\image html transf-ID.png "" + *
0
Identity + *
1
0
0
1
+ *
R1
\image html transf-R1.png "" + *
1
Simple rotation (90) + *
0
-1
1
0
+ *
R2
\image html transf-R2.png "" + *
2
Double rotation (180) + *
-1
0
0
-1
+ *
R3
\image html transf-R3.png "" + *
3
Triple rotation (270) + *
0
1
-1
0
+ *
MX
\image html transf-MX.png "" + *
4
Horizontal symetry (Mirror X) + *
-1
0
0
1
+ *
XR
\image html transf-XR.png "" + *
5
Horizontal symetry followed by a 90 rotation + *
0
-1
-1
0
+ *
MY
\image html transf-MY.png "" + *
6
Vertical symetry (Mirror Y) + *
1
0
0
-1
+ *
YR
\image html transf-YR.png "" + *
7
Vertical symetry followed by a 90 rotation + *
0
1
1
0
+ *
+ *
* * The transformation formula is given by: \f[ diff --git a/hurricane/doc/hurricane/UpdateSession.dox b/hurricane/doc/hurricane/UpdateSession.dox index d0352579..6cad7e5f 100644 --- a/hurricane/doc/hurricane/UpdateSession.dox +++ b/hurricane/doc/hurricane/UpdateSession.dox @@ -7,6 +7,43 @@ /*! \class UpdateSession * \brief UpdateSession description (\b API) * + * \section secUpdateSessionMechanism Update Session Mechanism + * + * Here is only an outline of the UpdateSession mechanism. The classes + * involved are: + * - Go (Graphical Objects and their sub-classes). + * - Cell and it's QuadTree(s). Note that the Cell is \e not a Go. + * - UpdateSession. + * + * When a Go is to be displayed, it has to be inserted inside one + * of the QuadTree of it's owner Cell. QuadTree allows fast geometric + * queries which are used extensively to perform the display. + * If a Go is \b not inserted in a QuadTree it will \b not be displayed + * at all or be included in any geometric query. When we insert a Go + * in a QuadTree, we talk about \b materialization. So a Go can be in + * two states: \b materialized or \b unmaterialized. The default behavior + * is to materialize a Go as soon as it is created. + * + * Now comes the UpdateSession mechanism. When the characteristics + * of a Go are changed, it may be needed to update it's position inside + * the QuadTree, or even to change of QuadTree (in case of a Layer change). + * Basically, the mechanism proceed in three stages: + * + * - Start a new UpdateSession (it's a SharedProperty). + * + * - When a Go is changed, the \c invalidate() method is called, that + * \e unmaterialize() it, then adds it to the current UpdateSession. + * This is done by adding the UpdateSession, as a property, to the Go. + * The Go owner (it's Cell) is also notified a \c Cell::Flags::CellAboutToChange. + * + * - On closing the UpdateSession, all the stored Gos are \b materialized + * again. The owner Cell and their instances are then send a + * notification \c Cell::Flags::CellChanged. + * + * It is very important to notice that the Cells gets change notifications + * only when a Go is \e changed, not when it is \e created. If we want the + * Cell to be notified, we must invalidate it manually. This is particularly + * critical when working with ExtensionGo. */ } diff --git a/hurricane/doc/hurricane/doxyfile b/hurricane/doc/hurricane/doxyfile index 35da700c..4e4bfcab 100644 --- a/hurricane/doc/hurricane/doxyfile +++ b/hurricane/doc/hurricane/doxyfile @@ -586,6 +586,8 @@ WARN_LOGFILE = doxygen.warn.log # with spaces. INPUT = Generalities.dox \ + ../../src/hurricane/hurricane/DebugSession.h \ + DebugSession.dox \ JsonSupport.dox \ Initializer.dox \ ../../src/hurricane/hurricane/Initializer.h \ diff --git a/hurricane/src/hurricane/BasicLayer.cpp b/hurricane/src/hurricane/BasicLayer.cpp index 0534eb72..1bda8e6a 100644 --- a/hurricane/src/hurricane/BasicLayer.cpp +++ b/hurricane/src/hurricane/BasicLayer.cpp @@ -352,7 +352,7 @@ namespace Hurricane { { if (flags & JsonWriter::RegisterMode) return; - ltrace(51) << "JsonBasicLayer::JsonBasicLayer()" << endl; + cdebug.log(19) << "JsonBasicLayer::JsonBasicLayer()" << endl; add( "_material" , typeid(string) ); add( "_extractNumber", typeid(string) ); @@ -375,7 +375,7 @@ namespace Hurricane { void JsonBasicLayer::toData(JsonStack& stack) { - ltracein(51); + cdebug.tabw(19,1); check( stack, "JsonBasicLayer::toData" ); @@ -449,7 +449,7 @@ namespace Hurricane { update( stack, basicLayer ); - ltraceout(51); + cdebug.tabw(19,-1); } diff --git a/hurricane/src/hurricane/Box.cpp b/hurricane/src/hurricane/Box.cpp index 8013d82a..4968efec 100644 --- a/hurricane/src/hurricane/Box.cpp +++ b/hurricane/src/hurricane/Box.cpp @@ -405,10 +405,10 @@ void JsonBox::toData(JsonStack& stack) if ( (xMin <= xMax) and (yMin <= yMax) ) box.merge( xMin, yMin, xMax, yMax ); - ltrace(51) << "Box(" << xMin << ", " - << yMin << ", " - << xMax << ", " - << yMax << ")" << endl; + cdebug.log(19) << "Box(" << xMin << ", " + << yMin << ", " + << xMax << ", " + << yMax << ")" << endl; update( stack, box ); } diff --git a/hurricane/src/hurricane/Cell.cpp b/hurricane/src/hurricane/Cell.cpp index 8ec645f5..8b1bb527 100644 --- a/hurricane/src/hurricane/Cell.cpp +++ b/hurricane/src/hurricane/Cell.cpp @@ -194,7 +194,7 @@ namespace Hurricane { UniquifyRelation* relation = NULL; Cell* cell = dynamic_cast( dbo ); - ltrace(51) << "topDBo:" << dbo << endl; + cdebug.log(19) << "topDBo:" << dbo << endl; if (cell) { relation = UniquifyRelation::get( cell ); @@ -394,7 +394,7 @@ namespace Hurricane { SlavedsRelation* relation = NULL; Cell* cell = dynamic_cast( dbo ); - ltrace(51) << "topDBo:" << dbo << endl; + cdebug.log(19) << "topDBo:" << dbo << endl; if (cell) { relation = SlavedsRelation::get( cell ); @@ -667,12 +667,12 @@ Entity* Cell::getEntity(const Signature& signature) const return NULL; } - ltrace(51) << "Cell::getEntity(): <" << getName() << ">, Net:<" << net->getName() << ">" << endl; + cdebug.log(18) << "Cell::getEntity(): <" << getName() << ">, Net:<" << net->getName() << ">" << endl; if (signature.getType() == Signature::TypeContact) { - ltrace(51) << "Looking in Contacts..." << endl; + cdebug.log(18) << "Looking in Contacts..." << endl; for ( Contact* component : getComponents().getSubSet() ) { - ltrace(51) << "| " << component << endl; + cdebug.log(18) << "| " << component << endl; if ( (component->getLayer () == signature.getLayer()) and (component->getDx () == signature.getDim(Signature::ContactDx)) and (component->getDy () == signature.getDim(Signature::ContactDy)) @@ -683,9 +683,9 @@ Entity* Cell::getEntity(const Signature& signature) const } if (signature.getType() == Signature::TypeVertical) { - ltrace(51) << "Looking in Verticals..." << endl; + cdebug.log(18) << "Looking in Verticals..." << endl; for ( Vertical* component : getComponents().getSubSet() ) { - ltrace(51) << "| " << component << endl; + cdebug.log(18) << "| " << component << endl; if ( (component->getLayer () == signature.getLayer()) and (component->getWidth () == signature.getDim(Signature::VerticalWidth)) and (component->getX () == signature.getDim(Signature::VerticalX)) @@ -696,9 +696,9 @@ Entity* Cell::getEntity(const Signature& signature) const } if (signature.getType() == Signature::TypeHorizontal) { - ltrace(51) << "Looking in Horizontals..." << endl; + cdebug.log(18) << "Looking in Horizontals..." << endl; for ( Horizontal* component : getComponents().getSubSet() ) { - ltrace(51) << "| " << component << endl; + cdebug.log(18) << "| " << component << endl; if ( (component->getLayer () == signature.getLayer()) and (component->getWidth () == signature.getDim(Signature::HorizontalWidth)) and (component->getY () == signature.getDim(Signature::HorizontalY)) @@ -709,9 +709,9 @@ Entity* Cell::getEntity(const Signature& signature) const } if (signature.getType() == Signature::TypePad) { - ltrace(51) << "Looking in Pads..." << endl; + cdebug.log(18) << "Looking in Pads..." << endl; for ( Pad* component : getComponents().getSubSet() ) { - ltrace(51) << "| " << component << endl; + cdebug.log(18) << "| " << component << endl; if ( (component->getLayer() == signature.getLayer()) and (component->getBoundingBox().getXMin() == signature.getDim(Signature::PadXMin)) and (component->getBoundingBox().getYMin() == signature.getDim(Signature::PadYMin)) @@ -817,7 +817,7 @@ DeepNet* Cell::getDeepNet ( Path path, const Net* leafNet ) const void Cell::flattenNets(unsigned int flags) // *************************************** { - trace << "Cell::flattenNets() flags:0x" << hex << flags << endl; + cdebug.log(18) << "Cell::flattenNets() flags:0x" << hex << flags << endl; UpdateSession::open(); @@ -1003,8 +1003,7 @@ Cell* Cell::getClone() void Cell::uniquify(unsigned int depth) // ************************************ { - ltrace(10) << "Cell::uniquify() " << this << endl; - ltracein(10); + cdebug.log(18,1) << "Cell::uniquify() " << this << endl; vector deepNets; for ( DeepNet* deepNet : getNets().getSubSet() ) { @@ -1020,7 +1019,7 @@ void Cell::uniquify(unsigned int depth) for ( Instance* instance : getInstances() ) { Cell* masterCell = instance->getMasterCell(); - ltrace(10) << "| " << instance << endl; + cdebug.log(18) << "| " << instance << endl; if (masterCell->isTerminal()) continue; if (masterCells.find(masterCell) == masterCells.end()) { @@ -1043,8 +1042,8 @@ void Cell::uniquify(unsigned int depth) cell->uniquify( depth-1 ); } - ltraceout(10); - ltrace(10) << "Cell::uniquify() END " << this << endl; + cdebug.tabw(18,-1); + cdebug.log(18) << "Cell::uniquify() END " << this << endl; } void Cell::materialize() diff --git a/hurricane/src/hurricane/Commons.cpp b/hurricane/src/hurricane/Commons.cpp index 5ef89f72..54620a16 100644 --- a/hurricane/src/hurricane/Commons.cpp +++ b/hurricane/src/hurricane/Commons.cpp @@ -22,80 +22,11 @@ #include "hurricane/Commons.h" +tstream cdebug ( std::cerr ); + + namespace Hurricane { - - -// **************************************************************************************************** -// Tracing tools -// **************************************************************************************************** - -static long TRACE_LEVEL = 0; -static unsigned int TRACE_SHOW_LEVEL = (unsigned int)-1; - -bool in_trace() -// ************ -{ - return (0 < TRACE_LEVEL); -} - -void trace_on() -// ************ -{ - TRACE_LEVEL++; -} - -void trace_off() -// ************* -{ - if (0 < TRACE_LEVEL) TRACE_LEVEL--; -} - -void trace_in() -// ************ -{ - if (0 < TRACE_LEVEL) tab++; -} - -void trace_out() -// ************* -{ - if (0 < TRACE_LEVEL) tab--; -} - -bool inltrace ( unsigned int level ) -//*********************************** -{ - return TRACE_SHOW_LEVEL <= level; -} - -unsigned int ltracelevel () -//************************** -{ - return TRACE_SHOW_LEVEL; -} - -unsigned int ltracelevel ( unsigned int level ) -//********************************************** -{ - unsigned int previousLevel = TRACE_SHOW_LEVEL; - TRACE_SHOW_LEVEL = level; - - return previousLevel; -} - -void ltracein (unsigned int level, unsigned int count ) -//****************************************************** -{ - if ( inltrace(level) ) while ( count-- ) tab++; -} - -void ltraceout (unsigned int level, unsigned int count ) -//******************************************************* -{ - if ( inltrace(level) ) while ( count-- ) tab--; -} - // ------------------------------------------------------------------- // Function : "demangle ()". diff --git a/hurricane/src/hurricane/Component.cpp b/hurricane/src/hurricane/Component.cpp index 4c7923eb..d5e1f3c8 100644 --- a/hurricane/src/hurricane/Component.cpp +++ b/hurricane/src/hurricane/Component.cpp @@ -330,37 +330,37 @@ ComponentFilter Component::getIsUnderFilter(const Box& area) void Component::materialize() // ************************** { -// trace << "materialize() - " << this << endl; + cdebug.log(18) << "Component::materialize() - " << this << endl; - if (!isMaterialized()) { - Cell* cell = getCell(); - const Layer* layer = getLayer(); - if (cell && layer) { - Slice* slice = cell->getSlice(layer); - if (!slice) slice = Slice::_create(cell, layer); - QuadTree* quadTree = slice->_getQuadTree(); - quadTree->insert(this); - cell->_fit(quadTree->getBoundingBox()); - } else { - //cerr << "[WARNING] " << this << " not inserted into QuadTree." << endl; - } + if (!isMaterialized()) { + Cell* cell = getCell(); + const Layer* layer = getLayer(); + if (cell && layer) { + Slice* slice = cell->getSlice(layer); + if (!slice) slice = Slice::_create(cell, layer); + QuadTree* quadTree = slice->_getQuadTree(); + quadTree->insert(this); + cell->_fit(quadTree->getBoundingBox()); + } else { + //cerr << "[WARNING] " << this << " not inserted into QuadTree." << endl; } + } } void Component::unmaterialize() // **************************** { -// trace << "Unmaterializing " << this << endl; + cdebug.log(18) << "Component::unmaterialize() " << this << endl; - if (isMaterialized()) { - Cell* cell = getCell(); - Slice* slice = cell->getSlice(getLayer()); - if (slice) { - cell->_unfit(getBoundingBox()); - slice->_getQuadTree()->remove(this); - if (slice->isEmpty()) slice->_destroy(); - } + if (isMaterialized()) { + Cell* cell = getCell(); + Slice* slice = cell->getSlice(getLayer()); + if (slice) { + cell->_unfit(getBoundingBox()); + slice->_getQuadTree()->remove(this); + if (slice->isEmpty()) slice->_destroy(); } + } } void Component::invalidate(bool propagateFlag) @@ -408,8 +408,7 @@ void Component::_postCreate() void Component::_preDestroy() // ************************* { -// trace << "entering Component::_Predestroy: " << this << endl; -// trace_in(); + cdebug.log(18,1) << "entering Component::_Predestroy: " << this << endl; clearProperties(); @@ -469,8 +468,8 @@ void Component::_preDestroy() if (_net) _net->_getComponentSet()._remove(this); - // trace << "exiting Component::_Predestroy:" << endl; - // trace_out(); + cdebug.log(18) << "exiting Component::_Predestroy:" << endl; + cdebug.tabw(18,-1); } void Component::_toJson( JsonWriter* writer ) const diff --git a/hurricane/src/hurricane/Contact.cpp b/hurricane/src/hurricane/Contact.cpp index 70277350..7db49e72 100644 --- a/hurricane/src/hurricane/Contact.cpp +++ b/hurricane/src/hurricane/Contact.cpp @@ -325,15 +325,14 @@ void Contact::setOffset(const DbU::Unit& dx, const DbU::Unit& dy) void Contact::_preDestroy() // *********************** { -// trace << "entering Contact::PreDestroy " << this << endl; -// trace_in(); + cdebug.log(18,1) << "entering Contact::PreDestroy " << this << endl; - Inherit::_preDestroy(); + Inherit::_preDestroy(); - _anchorHook.detach(); + _anchorHook.detach(); -// trace << "exiting Contact::PreDestroy" << endl; -// trace_out(); + cdebug.log(19) << "exiting Contact::PreDestroy" << endl; + cdebug.tabw(18,-1); } void Contact::_toJson(JsonWriter* writer) const diff --git a/hurricane/src/hurricane/ContactLayer.cpp b/hurricane/src/hurricane/ContactLayer.cpp index dc4ae255..c5badb40 100644 --- a/hurricane/src/hurricane/ContactLayer.cpp +++ b/hurricane/src/hurricane/ContactLayer.cpp @@ -225,7 +225,7 @@ namespace Hurricane { { if (flags & JsonWriter::RegisterMode) return; - ltrace(51) << "JsonContactLayer::JsonContactLayer()" << endl; + cdebug.log(19) << "JsonContactLayer::JsonContactLayer()" << endl; add( "_metal" , typeid(string) ); add( "_cut" , typeid(string) ); @@ -254,7 +254,7 @@ namespace Hurricane { void JsonContactLayer::toData(JsonStack& stack) { - ltracein(51); + cdebug.tabw(19,1); check( stack, "JsonContactLayer::toData" ); @@ -333,7 +333,7 @@ namespace Hurricane { update( stack, layer ); - ltraceout(51); + cdebug.tabw(19,-1); } diff --git a/hurricane/src/hurricane/DeepNet.cpp b/hurricane/src/hurricane/DeepNet.cpp index 4af595ae..25a210e5 100644 --- a/hurricane/src/hurricane/DeepNet.cpp +++ b/hurricane/src/hurricane/DeepNet.cpp @@ -56,7 +56,7 @@ namespace Hurricane { ) , _netOccurrence(netOccurrence) { - trace << "DeepNet::DeepNet() " << getCell() << " " << this << endl; + cdebug.log(18) << "DeepNet::DeepNet() " << getCell() << " " << this << endl; } @@ -154,7 +154,7 @@ namespace Hurricane { JsonDeepNet::JsonDeepNet ( unsigned long flags ) : JsonNet(flags) { - ltrace(51) << "JsonDeepNet::JsonDeepNet()" << endl; + cdebug.log(19) << "JsonDeepNet::JsonDeepNet()" << endl; add( "_netOccurrence", typeid(Occurrence) ); } @@ -174,7 +174,7 @@ namespace Hurricane { void JsonDeepNet::toData(JsonStack& stack) { - ltracein(51); + cdebug.tabw(19,1); check( stack, "JsonDeepNet::toData" ); presetId( stack ); @@ -191,7 +191,7 @@ namespace Hurricane { setName( ".Net" ); update( stack, _net ); - ltraceout(51); + cdebug.tabw(19,-1); } diff --git a/hurricane/src/hurricane/DiffusionLayer.cpp b/hurricane/src/hurricane/DiffusionLayer.cpp index f7fa165e..c68f5229 100644 --- a/hurricane/src/hurricane/DiffusionLayer.cpp +++ b/hurricane/src/hurricane/DiffusionLayer.cpp @@ -253,7 +253,7 @@ namespace Hurricane { { if (flags & JsonWriter::RegisterMode) return; - ltrace(51) << "JsonDiffusionLayer::JsonDiffusionLayer()" << endl; + cdebug.log(19) << "JsonDiffusionLayer::JsonDiffusionLayer()" << endl; add( "_active" , typeid(string) ); add( "_diffusion" , typeid(string) ); @@ -281,7 +281,7 @@ namespace Hurricane { void JsonDiffusionLayer::toData(JsonStack& stack) { - ltracein(51); + cdebug.tabw(19,1); check( stack, "JsonDiffusionLayer::toData" ); @@ -360,7 +360,7 @@ namespace Hurricane { update( stack, layer ); - ltraceout(51); + cdebug.tabw(19,-1); } diff --git a/hurricane/src/hurricane/Entity.cpp b/hurricane/src/hurricane/Entity.cpp index 9accc0db..dadaf30c 100644 --- a/hurricane/src/hurricane/Entity.cpp +++ b/hurricane/src/hurricane/Entity.cpp @@ -80,7 +80,7 @@ namespace Hurricane { if (_flags & ForcedIdMode) { if (_flags & NextIdSet) { _flags &= ~NextIdSet; - ltrace(51) << demangle(typeid(*this).name()) + cdebug.log(18) << demangle(typeid(*this).name()) << "::getNextId(): Consuming the preset id:" << _nextId << endl; return _nextId; } else { @@ -223,14 +223,14 @@ namespace Hurricane { void JsonEntityRef::toData ( JsonStack& stack ) { - ltracein(51); + cdebug.tabw(19,1); check( stack, "JsonEntityRef::toData" ); unsigned int jsonId = get( stack, "_id" ); Entity* entity = stack.getEntity( jsonId ); - ltrace(51) << "jsonId:" << jsonId << " entity:" << entity << endl; + cdebug.log(19) << "jsonId:" << jsonId << " entity:" << entity << endl; if (entity) { JsonBaseArray* array = jget< JsonBaseArray >( stack ); @@ -243,7 +243,7 @@ namespace Hurricane { update( stack, NULL ); - ltraceout(51); + cdebug.tabw(19,-1); } } // End of Hurricane namespace. diff --git a/hurricane/src/hurricane/ExtensionGo.cpp b/hurricane/src/hurricane/ExtensionGo.cpp index f5cbf9a8..d6f8125e 100644 --- a/hurricane/src/hurricane/ExtensionGo.cpp +++ b/hurricane/src/hurricane/ExtensionGo.cpp @@ -1,4 +1,3 @@ - // -*- C++ -*- // // Copyright (c) BULL S.A. 2000-2016, All Rights Reserved @@ -19,12 +18,7 @@ // License along with Hurricane. If not, see // . // -// =================================================================== -// -// $Id$ -// -// x-----------------------------------------------------------------x -// | | +// +-----------------------------------------------------------------+ // | H U R R I C A N E | // | V L S I B a c k e n d D a t a - B a s e | // | | @@ -32,10 +26,7 @@ // | E-mail : Jean-Paul.Chaput@lip6.fr | // | =============================================================== | // | C++ Module : "./ExtensionGo.cpp" | -// | *************************************************************** | -// | U p d a t e s | -// | | -// x-----------------------------------------------------------------x +// +-----------------------------------------------------------------+ #include "hurricane/Error.h" @@ -59,7 +50,7 @@ namespace Hurricane { void ExtensionGo::_preDestroy () { - ltrace(10) << "ExtensionGo::_preDestroy() - " << (void*)this << endl; + cdebug.log(18) << "ExtensionGo::_preDestroy() - " << (void*)this << endl; Go::_preDestroy (); } diff --git a/hurricane/src/hurricane/ExtensionSlice.cpp b/hurricane/src/hurricane/ExtensionSlice.cpp index f6ecf1c4..39fc9809 100644 --- a/hurricane/src/hurricane/ExtensionSlice.cpp +++ b/hurricane/src/hurricane/ExtensionSlice.cpp @@ -66,7 +66,7 @@ namespace Hurricane { ExtensionSlice::~ExtensionSlice () { - ltrace(10) << "ExtensionSlice::~ExtensionSlice() - " << (void*)this << endl; + cdebug.log(18) << "ExtensionSlice::~ExtensionSlice() - " << (void*)this << endl; _cell->_removeSlice ( this ); } diff --git a/hurricane/src/hurricane/Instance.cpp b/hurricane/src/hurricane/Instance.cpp index ca422683..90060f79 100644 --- a/hurricane/src/hurricane/Instance.cpp +++ b/hurricane/src/hurricane/Instance.cpp @@ -428,9 +428,8 @@ void Instance::setPlacementStatus(const PlacementStatus& placementStatus) void Instance::setMasterCell(Cell* masterCell, bool secureFlag) // ************************************************************ { - ltrace(10) << "Instance::setMasterCell() on " << this << endl; - ltracein(10); - ltrace(10) << "NEW masterCell:" << masterCell << endl; + cdebug.log(18,1) << "Instance::setMasterCell() on " << this << endl; + cdebug.log(18) << "NEW masterCell:" << masterCell << endl; if (masterCell != _masterCell) { UpdateSession::open(); @@ -476,14 +475,14 @@ void Instance::setMasterCell(Cell* masterCell, bool secureFlag) masterNetList.pop_front(); } - ltrace(10) << "Remove " << this << " from " << _masterCell << endl; + cdebug.log(18) << "Remove " << this << " from " << _masterCell << endl; _masterCell->_getSlaveInstanceSet()._remove(this); _masterCell = masterCell; - ltrace(10) << "Add (before) " << this << " to " << _masterCell << endl; + cdebug.log(18) << "Add (before) " << this << " to " << _masterCell << endl; _masterCell->isUnique(); _masterCell->_getSlaveInstanceSet()._insert(this); - ltrace(10) << "Add (after) " << this << " to " << _masterCell << endl; + cdebug.log(18) << "Add (after) " << this << " to " << _masterCell << endl; _masterCell->isUnique(); for_each_net(externalNet, _masterCell->getExternalNets()) { @@ -494,7 +493,7 @@ void Instance::setMasterCell(Cell* masterCell, bool secureFlag) UpdateSession::close(); } - ltraceout(10); + cdebug.tabw(19,-1); } void Instance::uniquify() diff --git a/hurricane/src/hurricane/JsonReader.cpp b/hurricane/src/hurricane/JsonReader.cpp index b6b0f260..d09c399e 100644 --- a/hurricane/src/hurricane/JsonReader.cpp +++ b/hurricane/src/hurricane/JsonReader.cpp @@ -212,7 +212,7 @@ namespace Hurricane { } } - ltrace(51) << "HurricaneHandler::String() [key/typename] \"" << value << "\"." << endl; + cdebug.log(19) << "HurricaneHandler::String() [key/typename] \"" << value << "\"." << endl; _key.clear(); return true; } @@ -230,14 +230,14 @@ namespace Hurricane { _key = key; if (_state & TypenameKey) return true; - //ltrace(51) << "HurricaneHandler::Key() key:" << _key << " objects().size():" << objects().size() << endl; + //cdebug.log(19) << "HurricaneHandler::Key() key:" << _key << " objects().size():" << objects().size() << endl; if (objects().back()) { if ( doCallToData() and not _key.empty() and (_key[0] != '_') ) { // The key is no longer a simple attribute of the object. // Triggers it's creation in the Json stack. - ltrace(51) << "HurricaneHandler::key() Calling " - << objects().back()->getTypeName() << "::toData(JsonStack&)." << endl; + cdebug.log(19) << "HurricaneHandler::key() Calling " + << objects().back()->getTypeName() << "::toData(JsonStack&)." << endl; objects().back()->toData( stack() ); } } @@ -248,30 +248,28 @@ namespace Hurricane { bool HurricaneHandler::StartObject () { - ltrace(50) << "Hurricane::StartObject()" << endl; - ltracein(50); + cdebug.log(19,1) << "Hurricane::StartObject()" << endl; _state |= TypenameKey; _objectName = _key; objects().push_back( new JsonDummy() ); _key.clear(); - ltrace(51) << "objects().push_back(NULL), size():" << objects().size() << "." << endl; - - ltracein(50); + cdebug.log(19) << "objects().push_back(NULL), size():" << objects().size() << "." << endl; + cdebug.tabw(19,1); return true; } bool HurricaneHandler::EndObject ( SizeType ) { - ltraceout(50,2); - ltrace(50) << "HurricaneHandler::EndObject()" << endl; - ltracein(50); + cdebug.tabw(19,-2); + cdebug.log(19) << "HurricaneHandler::EndObject()" << endl; + cdebug.tabw(19,1); _objectName.clear(); if (not isDummy()) { if (doCallToData()) { - ltrace(51) << "Calling " << objects().back()->getTypeName() << "::toData(JsonStack&)." << endl; + cdebug.log(19) << "Calling " << objects().back()->getTypeName() << "::toData(JsonStack&)." << endl; objects().back()->toData( stack() ); } if (stack().size() > 1) { @@ -279,22 +277,21 @@ namespace Hurricane { } } - ltrace(51) << "objects().pop_back(), size():" << objects().size() << "." << endl; + cdebug.log(19) << "objects().pop_back(), size():" << objects().size() << "." << endl; if (objects().back()->issetFlags(JsonWriter::DBoObject)) stack().pop_back_dbo(); delete objects().back(); objects().pop_back(); - ltraceout(50); + cdebug.tabw(19,-1); return true; } bool HurricaneHandler::StartArray() { - ltrace(50) << "HurricaneHandler::StartArray() key:\"" << _key << "\"." << endl; - ltracein(50); + cdebug.log(19,1) << "HurricaneHandler::StartArray() key:\"" << _key << "\"." << endl; _objectName.clear(); if (_key[0] != '+') { @@ -309,8 +306,8 @@ namespace Hurricane { bool HurricaneHandler::EndArray ( SizeType ) { - ltraceout(50); - ltrace(50) << "HurricaneHandler::EndArray()" << endl; + cdebug.tabw(19,-1); + cdebug.log(19) << "HurricaneHandler::EndArray()" << endl; return true; } @@ -350,11 +347,11 @@ namespace Hurricane { { close(); - //DebugSession::open( 50 ); + //DebugSession::open( 19, 20 ); fileName += ".json.bz2"; _file = fopen( fileName.c_str(), "r" ); - ltrace(50) << "_file:" << _file << ", _buffer:" << (void*)_buffer << endl; + cdebug.log(19) << "_file:" << _file << ", _buffer:" << (void*)_buffer << endl; if (not _file) { throw Error( "JsonReader::parse(): Cannot open file \"%s\"." diff --git a/hurricane/src/hurricane/Net.cpp b/hurricane/src/hurricane/Net.cpp index 71cbf180..6cea668f 100644 --- a/hurricane/src/hurricane/Net.cpp +++ b/hurricane/src/hurricane/Net.cpp @@ -1113,7 +1113,7 @@ string Net_SlavePlugs::Locator::_getString() const { if (flags & JsonWriter::RegisterMode) return; - ltrace(51) << "JsonNet::JsonNet()" << endl; + cdebug.log(19) << "JsonNet::JsonNet()" << endl; add( "_name" , typeid(string) ); add( "_isGlobal" , typeid(bool) ); @@ -1125,7 +1125,7 @@ string Net_SlavePlugs::Locator::_getString() const add( "+componentSet" , typeid(JsonArray) ); add( "+externalComponents", typeid(JsonArray) ); - ltrace(51) << "Disabling auto-materialization (" << _autoMaterialize << ")." << endl; + cdebug.log(19) << "Disabling auto-materialization (" << _autoMaterialize << ")." << endl; Go::disableAutoMaterialization(); } @@ -1140,7 +1140,7 @@ string Net_SlavePlugs::Locator::_getString() const if (_autoMaterialize) { Go::enableAutoMaterialization(); - ltrace(51) << "Enabling auto-materialization." << endl; + cdebug.log(18) << "Enabling auto-materialization." << endl; } } @@ -1155,7 +1155,7 @@ string Net_SlavePlugs::Locator::_getString() const void JsonNet::toData ( JsonStack& stack ) { - ltracein(51); + cdebug.tabw(19,1); check( stack, "JsonNet::toData" ); presetId( stack ); @@ -1169,7 +1169,7 @@ string Net_SlavePlugs::Locator::_getString() const update( stack, _net ); - ltraceout(51); + cdebug.tabw(19,-1); } diff --git a/hurricane/src/hurricane/NetExternalComponents.cpp b/hurricane/src/hurricane/NetExternalComponents.cpp index 28d84668..ed5f8b40 100644 --- a/hurricane/src/hurricane/NetExternalComponents.cpp +++ b/hurricane/src/hurricane/NetExternalComponents.cpp @@ -149,12 +149,12 @@ namespace Hurricane { void JsonNetExternalComponents::toData ( JsonStack& stack ) { - ltracein(51); + cdebug.tabw(19,1); check ( stack, "JsonNetExternalComponents::toData" ); update( stack, NULL ); - ltraceout(51); + cdebug.tabw(19,-1); } diff --git a/hurricane/src/hurricane/Plug.cpp b/hurricane/src/hurricane/Plug.cpp index 1324e9f1..4c84cf51 100644 --- a/hurricane/src/hurricane/Plug.cpp +++ b/hurricane/src/hurricane/Plug.cpp @@ -180,15 +180,14 @@ void Plug::_destroy() void Plug::_preDestroy() // ******************** { -// trace << "entering Plug::_preDestroy: " << this << endl; -// trace_in(); + cdebug.log(18,1) << "entering Plug::_preDestroy: " << this << endl; - Inherit::_preDestroy(); + Inherit::_preDestroy(); - _instance->_getPlugMap()._remove(this); + _instance->_getPlugMap()._remove(this); -// trace << "exiting Plug::_preDestroy:" << endl; -// trace_out(); + cdebug.log(18) << "exiting Plug::_preDestroy:" << endl; + cdebug.tabw(18,-1); } void Plug::_toJson(JsonWriter* writer) const @@ -290,7 +289,7 @@ void JsonPlug::toData(JsonStack& stack) } else { cerr << Error( "JsonPlug::toData(): Cannot find \".Instance\" in stack, skipping." ) << endl; } - ltrace(51) << "Instance Plug contents ignored for now." << endl; + cdebug.log(19) << "Instance Plug contents ignored for now." << endl; update( stack, plug ); } diff --git a/hurricane/src/hurricane/Quark.cpp b/hurricane/src/hurricane/Quark.cpp index be741525..0795ded6 100644 --- a/hurricane/src/hurricane/Quark.cpp +++ b/hurricane/src/hurricane/Quark.cpp @@ -81,20 +81,19 @@ void Quark::_postCreate() void Quark::_preDestroy() // ********************* { -// trace << "entering Quark::_preDestroy: " << this << endl; -// trace_in(); + cdebug.log(18,1) << "entering Quark::_preDestroy: " << this << endl; - Inherit::_preDestroy(); + Inherit::_preDestroy(); - SharedPath* sharedPath = _occurrence._getSharedPath(); + SharedPath* sharedPath = _occurrence._getSharedPath(); - if (sharedPath) - sharedPath->_getQuarkMap()._remove(this); - else - if (NULL_SHARED_PATH_QUARK_MAP) NULL_SHARED_PATH_QUARK_MAP->_remove(this); + if (sharedPath) + sharedPath->_getQuarkMap()._remove(this); + else + if (NULL_SHARED_PATH_QUARK_MAP) NULL_SHARED_PATH_QUARK_MAP->_remove(this); -// trace << "exiting Quark::_preDestroy:" << endl; -// trace_out(); + cdebug.log(18) << "exiting Quark::_preDestroy:" << endl; + cdebug.tabw(18,-1); } string Quark::_getString() const diff --git a/hurricane/src/hurricane/RegularLayer.cpp b/hurricane/src/hurricane/RegularLayer.cpp index 454b1f8e..ada523ed 100644 --- a/hurricane/src/hurricane/RegularLayer.cpp +++ b/hurricane/src/hurricane/RegularLayer.cpp @@ -350,7 +350,7 @@ namespace Hurricane { { if (flags & JsonWriter::RegisterMode) return; - ltrace(51) << "JsonRegularLayer::JsonRegularLayer()" << endl; + cdebug.log(19) << "JsonRegularLayer::JsonRegularLayer()" << endl; add( "_basicLayer" , typeid(string) ); add( "_enclosure" , typeid(int64_t) ); @@ -373,7 +373,7 @@ namespace Hurricane { void JsonRegularLayer::toData( JsonStack& stack ) { - ltracein(51); + cdebug.tabw(19,1); check( stack, "JsonRegularLayer::toData" ); @@ -440,7 +440,7 @@ namespace Hurricane { update( stack, layer ); - ltraceout(51); + cdebug.tabw(19,-1); } } // Hurricane namespace. diff --git a/hurricane/src/hurricane/RoutingPad.cpp b/hurricane/src/hurricane/RoutingPad.cpp index f609ce53..726ba860 100644 --- a/hurricane/src/hurricane/RoutingPad.cpp +++ b/hurricane/src/hurricane/RoutingPad.cpp @@ -236,15 +236,14 @@ namespace Hurricane { void RoutingPad::_preDestroy () { - // trace << "entering RoutingPad::preDestroy: " << this << endl; - // trace_in(); + cdebug.log(18,1) << "entering RoutingPad::preDestroy: " << this << endl; if ( not _occurrence.getPath().isEmpty() ) _occurrence.getMasterCell()->_removeSlaveEntity(_occurrence.getEntity(),this); Inherit::_preDestroy(); - // trace << "exiting RoutingPad::preDestroy:" << endl; - // trace_out(); + cdebug.log(18) << "exiting RoutingPad::preDestroy:" << endl; + cdebug.tabw(18,-1); } diff --git a/hurricane/src/hurricane/Rubber.cpp b/hurricane/src/hurricane/Rubber.cpp index 0772531c..a676eaf8 100644 --- a/hurricane/src/hurricane/Rubber.cpp +++ b/hurricane/src/hurricane/Rubber.cpp @@ -179,22 +179,21 @@ void Rubber::_destroy() void Rubber::_preDestroy() // ********************** { -// trace << "entering Rubber::_preDestroy: " << this << endl; -// trace_in(); + cdebug.log(18,1) << "entering Rubber::_preDestroy: " << this << endl; - Inherit::_preDestroy(); + Inherit::_preDestroy(); - _count = (unsigned)-1; // to avoid a new destruction + _count = (unsigned)-1; // to avoid a new destruction - for_each_hook(hook, getHooks()) { - hook->getComponent()->_setRubber(NULL); - end_for; - } + for_each_hook(hook, getHooks()) { + hook->getComponent()->_setRubber(NULL); + end_for; + } - _net->_getRubberSet()._remove(this); + _net->_getRubberSet()._remove(this); -// trace << "exiting Rubber::_preDestroy:" << endl; -// trace_out(); + cdebug.log(18) << "exiting Rubber::_preDestroy:" << endl; + cdebug.tabw(18,-1); } string Rubber::_getString() const diff --git a/hurricane/src/hurricane/Segment.cpp b/hurricane/src/hurricane/Segment.cpp index 0792a883..aa0ecc21 100644 --- a/hurricane/src/hurricane/Segment.cpp +++ b/hurricane/src/hurricane/Segment.cpp @@ -294,16 +294,15 @@ void Segment::invert() void Segment::_preDestroy() // *********************** { -// trace << "entering Segment::_preDestroy: " << this << endl; -// trace_in(); + cdebug.log(18,1) << "entering Segment::_preDestroy: " << this << endl; - Inherit::_preDestroy(); + Inherit::_preDestroy(); - _sourceHook.detach(); - _targetHook.detach(); + _sourceHook.detach(); + _targetHook.detach(); -// trace << "exiting Segment::_preDestroy:" << endl; -// trace_out(); + cdebug.log(18) << "exiting Segment::_preDestroy:" << endl; + cdebug.tabw(18,-1); } void Segment::_toJson(JsonWriter* writer) const diff --git a/hurricane/src/hurricane/Signature.cpp b/hurricane/src/hurricane/Signature.cpp index f642214d..c300bf9e 100644 --- a/hurricane/src/hurricane/Signature.cpp +++ b/hurricane/src/hurricane/Signature.cpp @@ -107,7 +107,7 @@ namespace Hurricane { void JsonSignature::toData ( JsonStack& stack ) { - ltrace(51) << (void*)this << " _subTypeName:" << _subTypeName << endl; + cdebug.log(19) << (void*)this << " _subTypeName:" << _subTypeName << endl; check( stack, "JsonSignature::toData" ); diff --git a/hurricane/src/hurricane/Slot.cpp b/hurricane/src/hurricane/Slot.cpp index d558362a..107b56a1 100644 --- a/hurricane/src/hurricane/Slot.cpp +++ b/hurricane/src/hurricane/Slot.cpp @@ -41,8 +41,6 @@ #include "hurricane/Commons.h" - - namespace Hurricane { diff --git a/hurricane/src/hurricane/Technology.cpp b/hurricane/src/hurricane/Technology.cpp index 2068b4f2..5b5ce23a 100644 --- a/hurricane/src/hurricane/Technology.cpp +++ b/hurricane/src/hurricane/Technology.cpp @@ -640,7 +640,7 @@ JsonTechnology::JsonTechnology(unsigned long flags) { if (flags & JsonWriter::RegisterMode) return; - ltrace(51) << "JsonTechnology::JsonTechnology()" << endl; + cdebug.log(19) << "JsonTechnology::JsonTechnology()" << endl; add( "_name" , typeid(string) ); add( "+layers", typeid(JsonArray) ); @@ -683,7 +683,7 @@ void JsonTechnology::addBlockageRef(const string& blockageLayer, BasicLayer* lay void JsonTechnology::toData(JsonStack& stack) // ****************************************** { - ltracein(51); + cdebug.tabw(19,1); check( stack, "JsonTechnology::toData" ); @@ -708,7 +708,7 @@ void JsonTechnology::toData(JsonStack& stack) update( stack, techno ); - ltraceout(51); + cdebug.tabw(19,-1); } } // End of Hurricane namespace. diff --git a/hurricane/src/hurricane/TransistorLayer.cpp b/hurricane/src/hurricane/TransistorLayer.cpp index 812a041d..41ecde68 100644 --- a/hurricane/src/hurricane/TransistorLayer.cpp +++ b/hurricane/src/hurricane/TransistorLayer.cpp @@ -258,7 +258,7 @@ namespace Hurricane { { if (flags & JsonWriter::RegisterMode) return; - ltrace(51) << "JsonTransistorLayer::JsonTransistorLayer()" << endl; + cdebug.log(19) << "JsonTransistorLayer::JsonTransistorLayer()" << endl; add( "_gate" , typeid(string) ); add( "_active" , typeid(string) ); @@ -289,7 +289,7 @@ namespace Hurricane { void JsonTransistorLayer::toData ( JsonStack& stack ) { - ltracein(51); + cdebug.tabw(19,1); check( stack, "JsonTransistorLayer::toData" ); @@ -374,7 +374,7 @@ namespace Hurricane { update( stack, layer ); - ltraceout(51); + cdebug.tabw(19,-1); } diff --git a/hurricane/src/hurricane/UpdateSession.cpp b/hurricane/src/hurricane/UpdateSession.cpp index 13cb8c7b..1f02e2a6 100644 --- a/hurricane/src/hurricane/UpdateSession.cpp +++ b/hurricane/src/hurricane/UpdateSession.cpp @@ -147,15 +147,15 @@ void UpdateSession::onNotOwned() void Go::invalidate(bool propagateFlag) // ************************************ { - // trace << "invalidate(" << this << ")" << endl; - // trace_in(); + cdebug.log(18,1) << "Go::invalidate(" << this << ")" << endl; - if (not UPDATOR_STACK or UPDATOR_STACK->empty()) - throw Error( "Can't invalidate go: empty update session stack" ); + if (not UPDATOR_STACK or UPDATOR_STACK->empty()) + throw Error( "Can't invalidate go: empty update session stack" ); - Property* property = getProperty( UpdateSession::getPropertyName() ); + Property* property = getProperty( UpdateSession::getPropertyName() ); + + if (property) { - if (property) { if (not dynamic_cast(property)) throw Error( "Can't invalidate go : bad update session type" ); } else { @@ -183,29 +183,31 @@ void Go::invalidate(bool propagateFlag) } } } -// trace << "done" << endl; -// trace_out(); + + cdebug.log(18) << "Go::invalidate(" << this << ") - Completed." << endl; + cdebug.tabw(18,-1); } -void UpdateSession::open() { -// trace << "OpenUpdateSession()" << endl; -// trace_in(); - UpdateSession::_create(); +void UpdateSession::open() +// *********************** +{ + cdebug.log(18,1) << "UpdateSession::open()" << endl; + UpdateSession::_create(); } -void UpdateSession::close() { -// trace << "CloseUpdateSession()" << endl; -// trace_in(); +void UpdateSession::close() +// ************************ +{ + cdebug.tabw(18,-1); + cdebug.log(18,1) << "UpdateSession::close() - Start materialization." << endl; - if (!UPDATOR_STACK || UPDATOR_STACK->empty()) - throw Error("Can't end update : empty update session stack"); + if (!UPDATOR_STACK || UPDATOR_STACK->empty()) + throw Error("Can't end update : empty update session stack"); - UPDATOR_STACK->top()->_destroy(); + UPDATOR_STACK->top()->_destroy(); -// trace << "done" << endl; -// trace_out(); -// trace << "done" << endl; -// trace_out(); + cdebug.tabw(18,-1); + cdebug.log(18) << "UpdateSession::close() - Materialization completed." << endl; } diff --git a/hurricane/src/hurricane/ViaLayer.cpp b/hurricane/src/hurricane/ViaLayer.cpp index 9b038650..6be52d52 100644 --- a/hurricane/src/hurricane/ViaLayer.cpp +++ b/hurricane/src/hurricane/ViaLayer.cpp @@ -230,7 +230,7 @@ namespace Hurricane { { if (flags & JsonWriter::RegisterMode) return; - ltrace(51) << "JsonViaLayer::JsonViaLayer()" << endl; + cdebug.log(19) << "JsonViaLayer::JsonViaLayer()" << endl; add( "_bottom" , typeid(string) ); add( "_cut" , typeid(string) ); @@ -255,7 +255,7 @@ namespace Hurricane { void JsonViaLayer::toData(JsonStack& stack) { - ltracein(51); + cdebug.tabw(19,1); check( stack, "JsonViaLayer::toData" ); @@ -326,7 +326,7 @@ namespace Hurricane { update( stack, layer ); - ltraceout(51); + cdebug.tabw(19,-1); } diff --git a/hurricane/src/hurricane/grenier/json/JsonReader.cpp b/hurricane/src/hurricane/grenier/json/JsonReader.cpp index eda6f450..e75e0026 100644 --- a/hurricane/src/hurricane/grenier/json/JsonReader.cpp +++ b/hurricane/src/hurricane/grenier/json/JsonReader.cpp @@ -176,7 +176,7 @@ namespace { _objects[_objects.size()-1]->setName( _objectName ); } - ltrace(51) << "HurricaneHandler::String() [key/typename] " << value << endl; + cdebug.log(19) << "HurricaneHandler::String() [key/typename] " << value << endl; return true; } @@ -201,13 +201,13 @@ namespace { return true; } - //ltrace(51) << "HurricaneHandler::Key() key:" << _key << " _objects.size():" << _objects.size() << endl; + //cdebug.log(19) << "HurricaneHandler::Key() key:" << _key << " _objects.size():" << _objects.size() << endl; if (_objects.back()) { if ( doCallToData() and not _key.empty() and (_key[0] != '_') ) { // The key is no longer a simple attribute of the object. // Triggers it's creation in the Json stack. - ltrace(51) << "HurricaneHandler::key() Calling " + cdebug.log(19) << "HurricaneHandler::key() Calling " << _objects.back()->getTypeName() << "::toData(JsonStack&)." << endl; _objects.back()->toData( _stack ); } @@ -219,17 +219,17 @@ namespace { bool HurricaneHandler::StartObject () { - ltrace(50) << "Hurricane::StartObject()" << endl; + cdebug.log(19) << "Hurricane::StartObject()" << endl; ltracein(50); _state |= TypenameKey; // if (doCallToData()) { - // ltrace(51) << "Calling " << _objects.back()->getTypeName() << "::toData(JsonStack&)." << endl; + // cdebug.log(19) << "Calling " << _objects.back()->getTypeName() << "::toData(JsonStack&)." << endl; // _objects.back()->toData( _stack ); // } _objectName = (_key == ".Array") ? "" : _key; _objects.push_back( NULL ); - ltrace(51) << "_objects.push_back(NULL), size():" << _objects.size() << "." << endl; + cdebug.log(19) << "_objects.push_back(NULL), size():" << _objects.size() << "." << endl; ltracein(50); return true; @@ -239,7 +239,7 @@ namespace { bool HurricaneHandler::EndObject ( SizeType ) { ltraceout(50,2); - ltrace(50) << "HurricaneHandler::EndObject()" << endl; + cdebug.log(19) << "HurricaneHandler::EndObject()" << endl; ltracein(50); _objectName.clear(); @@ -247,11 +247,11 @@ namespace { _state &= ~SkipObject; } else { if (doCallToData()) { - ltrace(51) << "Calling " << _objects.back()->getTypeName() << "::toData(JsonStack&)." << endl; + cdebug.log(19) << "Calling " << _objects.back()->getTypeName() << "::toData(JsonStack&)." << endl; _objects.back()->toData( _stack ); } if (_objects.size() > 1) { - ltrace(51) << "_objects.pop_back(), size():" << _objects.size() << "." << endl; + cdebug.log(19) << "_objects.pop_back(), size():" << _objects.size() << "." << endl; delete _objects.back(); _objects.pop_back(); } @@ -259,14 +259,14 @@ namespace { if (_stack[-1].first[0] != '_') _stack.pop_back(); } } - ltraceout(50); + cdebug.tabw(19,-1); return true; } bool HurricaneHandler::StartArray() { - ltrace(50) << "HurricaneHandler::StartArray() key:\"" << _key << "\"." << endl; + cdebug.log(19) << "HurricaneHandler::StartArray() key:\"" << _key << "\"." << endl; ltracein(50); _objectName.clear(); @@ -285,14 +285,14 @@ namespace { bool HurricaneHandler::EndArray ( SizeType ) { - ltraceout(50); - ltrace(50) << "HurricaneHandler::EndArray()" << endl; + cdebug.tabw(19,-1); + cdebug.log(19) << "HurricaneHandler::EndArray()" << endl; ltracein(50); _state &= ~(ArrayMode | SkipArray); _key.clear(); - ltraceout(50); + cdebug.tabw(19,-1); return true; } diff --git a/hurricane/src/hurricane/grenier/json/JsonReader.h b/hurricane/src/hurricane/grenier/json/JsonReader.h index af2dae5b..e23e6374 100644 --- a/hurricane/src/hurricane/grenier/json/JsonReader.h +++ b/hurricane/src/hurricane/grenier/json/JsonReader.h @@ -655,7 +655,7 @@ namespace Hurricane { { } template inline void JsonStack::push_back ( const std::string& key, T t ) { - ltrace(51) << "JsonStack::push_back() key:" << key << " t:" << t + cdebug.log(19) << "JsonStack::push_back() key:" << key << " t:" << t << " (" << demangle(typeid(T)) << ")." << endl; _stack.push_back(std::make_pair(key,boost::any(t))); } @@ -667,7 +667,7 @@ namespace Hurricane { << (count+1) << " elements remains to pop." << std::endl; break; } - ltrace(51) << "| _stack.pop_back() " << _stack.back().first << endl; + cdebug.log(19) << "| _stack.pop_back() " << _stack.back().first << endl; _stack.pop_back(); } } @@ -685,7 +685,7 @@ namespace Hurricane { int i = _stack.size()-1; do { if (_stack[i].first == key) { - ltrace(51) << "JsonStack::rhas(): key \"" << key << "\" found at index:" + cdebug.log(19) << "JsonStack::rhas(): key \"" << key << "\" found at index:" << (i-(int)_stack.size()) << " (i:" << i << ")." << endl; return i-(int)_stack.size(); } @@ -693,7 +693,7 @@ namespace Hurricane { --i; } while ( true ); - ltrace(51) << "JsonStack::rhas(): key \"" << key << "\" not found (returning index: 0)." << endl; + cdebug.log(19) << "JsonStack::rhas(): key \"" << key << "\" not found (returning index: 0)." << endl; return 0; } @@ -703,7 +703,7 @@ namespace Hurricane { int i = _stack.size()-1; do { if (_stack[i].first == key) { - ltrace(51) << "JsonStack::as() k:" << key + cdebug.log(19) << "JsonStack::as() k:" << key << " t:" << _stack[i].second.type().name() << std::endl; return boost::any_cast( _stack[i].second ); } diff --git a/hurricane/src/hurricane/grenier/json/Net.cpp b/hurricane/src/hurricane/grenier/json/Net.cpp index 88a54e09..5654ba5e 100644 --- a/hurricane/src/hurricane/grenier/json/Net.cpp +++ b/hurricane/src/hurricane/grenier/json/Net.cpp @@ -1095,7 +1095,7 @@ void JsonNet::toData(JsonStack& stack) update( stack, net ); - ltraceout(51); + cdebug.tabw(19,-1); } } // End of Hurricane namespace. diff --git a/hurricane/src/hurricane/hurricane/Collection.h b/hurricane/src/hurricane/hurricane/Collection.h index 28cce3a0..a84bc090 100644 --- a/hurricane/src/hurricane/hurricane/Collection.h +++ b/hurricane/src/hurricane/hurricane/Collection.h @@ -1106,18 +1106,17 @@ template inline Hurricane::Record* getRecord ( const Hurricane::C template inline void jsonWrite ( JsonWriter* w, const std::string& key, Hurricane::GenericCollection collection ) { - if (Hurricane::inltrace(50)) - std::cerr << Hurricane::tab - << "jsonWrite< GenericCollection<" << Hurricane::demangle(typeid(Type).name()) - << "> >(w,key,coll)" << " key:\"" << key << "\"" << std::endl; - Hurricane::ltracein(50); + if (cdebug.enabled(19)) + cdebug.log(19) << "jsonWrite< GenericCollection<" << Hurricane::demangle(typeid(Type).name()) + << "> >(w,key,coll)" << " key:\"" << key << "\"" << std::endl; + cdebug.tabw(19,1); w->key( key ); w->startArray(); for ( Type element : collection ) jsonWrite( w, element ); w->endArray(); - Hurricane::ltraceout(50); + cdebug.tabw(19,-1); } diff --git a/hurricane/src/hurricane/hurricane/Commons.h b/hurricane/src/hurricane/hurricane/Commons.h index 15f26bea..0e777b16 100644 --- a/hurricane/src/hurricane/hurricane/Commons.h +++ b/hurricane/src/hurricane/hurricane/Commons.h @@ -1,4 +1,3 @@ - // -*- C++ -*- // // Copyright (c) BULL S.A. 2000-2016, All Rights Reserved @@ -19,10 +18,6 @@ // License along with Hurricane. If not, see // . // -// =================================================================== -// -// $Id$ -// // +-----------------------------------------------------------------+ // | H U R R I C A N E | // | V L S I B a c k e n d D a t a - B a s e | @@ -64,28 +59,6 @@ namespace Hurricane { class Slot; - // +-------------------------------------------------------------+ - // | Tracing/Debugging Utilites | - // +-------------------------------------------------------------+ - - - bool in_trace (); - void trace_on (); - void trace_off (); - void trace_in (); - void trace_out (); - bool inltrace ( unsigned int level ); - unsigned int ltracelevel (); - unsigned int ltracelevel ( unsigned int level ); - void ltracein ( unsigned int level, unsigned int count=1 ); - void ltraceout ( unsigned int level, unsigned int count=1 ); - -#define trace if (in_trace() ) cerr << tab -#define ltrace(level) if (inltrace(level)) cerr << tab - - - - // +-------------------------------------------------------------+ // | shared_ptr<> support for DBo | // +-------------------------------------------------------------+ @@ -121,6 +94,13 @@ namespace Hurricane { string demangle ( const char* symbol ); inline string demangle ( const type_info& info ) { return demangle(info.name()); } + template + inline void erase_element ( vector& v, const Element* e ) + { + for ( auto ielement = v.begin() ; ielement != v.end() ; ++ielement ) + if (*ielement == e) { v.erase( ielement ); return; } + } + #if DEPRECATED // For a complete explanation of this function, please look at : @@ -733,6 +713,107 @@ inline Hurricane::Record* getRecord ( const std::multiset* s ) IOSTREAM_VALUE_SUPPORT(Data) +#include "hurricane/Tabulation.h" + + +// ------------------------------------------------------------------- +// Class : "::cdebug()". +// +// Wrapper around the STL ostream which to print debugging messages. + +class tstream : public std::ostream { + public: + inline int getMinLevel () const; + inline int getMaxLevel () const; + inline int setMinLevel ( int ); + inline int setMaxLevel ( int ); + inline int getLevel () const; + inline int setLevel ( int ); + inline bool enabled () const; + inline bool enabled ( int ) const; + inline tstream& log ( int level, int count=0 ); + inline tstream& tabw ( int level, int count ); + inline tstream ( std::ostream & ); + private: + inline tstream& _tab (); + inline tstream& _tabw ( int count ); + public: + // Overload for formatted outputs. + //template inline tstream& operator<< ( T t ); + template inline tstream& operator<< ( T* t ); + template inline tstream& operator<< ( const T t ); + template inline tstream& operator<< ( const T* t ); + inline tstream& put ( char c ); + inline tstream& flush (); + // Overload for manipulators. + inline tstream &operator<< ( std::ostream &(*pf)(std::ostream &) ); + private: + int _minLevel; + int _maxLevel; + int _level; + Hurricane::Tabulation _tabulation; +}; + + +inline tstream::tstream ( std::ostream& s ) + : std::ostream(s.rdbuf()) + , _minLevel(0) + , _maxLevel(0) + , _level(0) + , _tabulation(" ") +{ } + +inline int tstream::getMinLevel () const { return _minLevel; } +inline int tstream::getMaxLevel () const { return _maxLevel; } +inline int tstream::setMinLevel ( int l ) { int pl=_minLevel; _minLevel=l; return pl; } +inline int tstream::setMaxLevel ( int l ) { int pl=_maxLevel; _maxLevel=l; return pl; } +inline int tstream::getLevel () const { return _level; } +inline int tstream::setLevel ( int l ) { int pl=_level; _level=l; return pl; } +inline bool tstream::enabled () const { return (_level >= _minLevel) and (_level < _maxLevel); } +inline bool tstream::enabled ( int l ) const { return (l >= _minLevel) and (l < _maxLevel); } +inline tstream& tstream::tabw ( int level, int count ) { setLevel(level); return _tabw(count); } +inline tstream& tstream::put ( char c ) { if (enabled()) static_cast(this)->put(c); return *this; } +inline tstream& tstream::flush () { if (enabled()) static_cast(this)->flush(); return *this; } +inline tstream& tstream::operator<< ( std::ostream& (*pf)(std::ostream&) ) { if (enabled()) (*pf)(*this); return *this; } + + +inline tstream& tstream::_tab () { if (enabled()) (*this) << _tabulation; return *this; } +inline tstream& tstream::_tabw ( int count ) +{ + if (enabled()) { + if (count > 0) while(count--) _tabulation++; + else if (count < 0) while(count++) _tabulation--; + } + return *this; +} + +inline tstream& tstream::log ( int level, int count ) +{ setLevel(level); _tab(); return _tabw(count); } + +// For POD Types. +// template +// inline tstream& tstream::operator<< ( T& t ) +// { if (enabled()) { *(static_cast(this)) << t; } return *this; }; + +template +inline tstream& tstream::operator<< ( T* t ) +{ if (enabled()) { *(static_cast(this)) << t; } return *this; }; + +template +inline tstream& tstream::operator<< ( const T t ) +{ if (enabled()) { *(static_cast(this)) << t; } return *this; }; + +template +inline tstream& tstream::operator<< ( const T* t ) +{ if (enabled()) { *(static_cast(this)) << t; } return *this; }; + +// For STL Types. +inline tstream& operator<< ( tstream& o, const std::string& s ) +{ if (o.enabled()) { static_cast(o) << s; } return o; }; + + +extern tstream cdebug; + // x-----------------------------------------------------------------x // | Classes Neededs in All Hurricane Modules | @@ -740,7 +821,6 @@ inline Hurricane::Record* getRecord ( const std::multiset* s ) #include "hurricane/Slot.h" #include "hurricane/Initializer.h" -#include "hurricane/Tabulation.h" #include "hurricane/JsonWriter.h" #include "hurricane/JsonObject.h" diff --git a/hurricane/src/hurricane/hurricane/DebugSession.h b/hurricane/src/hurricane/hurricane/DebugSession.h index c111a667..2b87579e 100644 --- a/hurricane/src/hurricane/hurricane/DebugSession.h +++ b/hurricane/src/hurricane/hurricane/DebugSession.h @@ -43,6 +43,8 @@ namespace Hurricane { class Net; class Cell; + using std::pair; + using std::make_pair; using std::set; using std::stack; @@ -61,8 +63,8 @@ namespace Hurricane { static inline void addToTrace ( const void* symbol ); static inline void addToTrace ( const Cell*, const Name& ); static inline void addToTrace ( const Net* ); - static inline void open ( unsigned int traceLevel ); - static inline void open ( const void* symbol, unsigned int traceLevel=80 ); + static inline void open ( int minLevel, int maxLevel ); + static inline void open ( const void* symbol, int minLevel, int maxLevel ); static inline void close (); // Singleton Access. inline bool _isTraced ( const void* symbol ) const; @@ -76,9 +78,9 @@ namespace Hurricane { protected: // Internal: Attributes. - static DebugSession* _singleton; - set _symbols; - stack _levels; + static DebugSession* _singleton; + set _symbols; + stack< pair > _levels; protected: // Internal: Constructor & Destructor. @@ -92,18 +94,21 @@ namespace Hurricane { // Inline Functions. - void DebugSession::open ( unsigned int traceLevel ) + void DebugSession::open ( int minLevel, int maxLevel ) { - _singleton->_levels.push ( ltracelevel(traceLevel) ); + _singleton->_levels.push( make_pair( cdebug.setMinLevel(minLevel) + , cdebug.setMaxLevel(maxLevel) ) ); } - void DebugSession::open ( const void* symbol, unsigned int traceLevel ) + void DebugSession::open ( const void* symbol, int minLevel, int maxLevel ) { if ( _singleton->_isTraced(symbol) ) - _singleton->_levels.push ( ltracelevel(traceLevel) ); + _singleton->_levels.push( make_pair( cdebug.setMinLevel(minLevel) + , cdebug.setMaxLevel(maxLevel) ) ); else { - _singleton->_levels.push ( ltracelevel() ); + _singleton->_levels.push ( make_pair( cdebug.getMinLevel() + , cdebug.getMaxLevel() ) ); } } @@ -111,7 +116,8 @@ namespace Hurricane { void DebugSession::close () { if ( not _singleton->_levels.empty() ) { - ltracelevel ( _singleton->_levels.top() ); + cdebug.setMinLevel( _singleton->_levels.top().first ); + cdebug.setMaxLevel( _singleton->_levels.top().second ); _singleton->_levels.pop (); } } diff --git a/hurricane/src/hurricane/hurricane/Entity.h b/hurricane/src/hurricane/hurricane/Entity.h index 8840cebf..979bd430 100644 --- a/hurricane/src/hurricane/hurricane/Entity.h +++ b/hurricane/src/hurricane/hurricane/Entity.h @@ -40,9 +40,9 @@ namespace Hurricane { public: typedef DBo Inherit; public: - enum Flags { ForcedIdMode = (1<<0) - , NextIdSet = (1<<1) - }; + enum EntityFlags { ForcedIdMode = (1<<0) + , NextIdSet = (1<<1) + }; public: static unsigned int getIdCounter (); unsigned int getNextId (); diff --git a/hurricane/src/hurricane/hurricane/ExtensionGo.h b/hurricane/src/hurricane/hurricane/ExtensionGo.h index 85560b8a..74b1012e 100644 --- a/hurricane/src/hurricane/hurricane/ExtensionGo.h +++ b/hurricane/src/hurricane/hurricane/ExtensionGo.h @@ -1,4 +1,3 @@ - // -*- C++ -*- // // Copyright (c) BULL S.A. 2000-2016, All Rights Reserved @@ -19,12 +18,7 @@ // License along with Hurricane. If not, see // . // -// =================================================================== -// -// $Id$ -// -// x-----------------------------------------------------------------x -// | | +// +-----------------------------------------------------------------+ // | H U R R I C A N E | // | V L S I B a c k e n d D a t a - B a s e | // | | @@ -32,10 +26,7 @@ // | E-mail : Jean-Paul.Chaput@lip6.fr | // | =============================================================== | // | C++ Header : "./hurricane/ExtensionGo.h" | -// | *************************************************************** | -// | U p d a t e s | -// | | -// x-----------------------------------------------------------------x +// +-----------------------------------------------------------------+ #ifndef __HURRICANE_EXTENSION_GO__ diff --git a/hurricane/src/hurricane/hurricane/Flags.h b/hurricane/src/hurricane/hurricane/Flags.h index de4932d8..eeebb3d4 100644 --- a/hurricane/src/hurricane/hurricane/Flags.h +++ b/hurricane/src/hurricane/hurricane/Flags.h @@ -55,6 +55,11 @@ namespace Hurricane { inline BaseFlags operator bitand ( BaseFlags ) const; inline BaseFlags operator bitor ( BaseFlags ) const; inline BaseFlags operator xor ( BaseFlags ) const; + inline BaseFlags operator bitand ( int ) const; + inline BaseFlags operator bitor ( int ) const; + inline BaseFlags operator xor ( int ) const; + inline BaseFlags lshift ( int ) const; + inline BaseFlags rshift ( int ) const; inline BaseFlags operator bitand ( unsigned int ) const; inline BaseFlags operator bitor ( unsigned int ) const; inline BaseFlags operator xor ( unsigned int ) const; @@ -66,13 +71,20 @@ namespace Hurricane { inline bool operator != ( BaseFlags ) const; inline bool operator < ( BaseFlags ) const; inline bool operator > ( BaseFlags ) const; + inline BaseFlags& operator |= ( int ); + inline BaseFlags& operator &= ( int ); + inline bool operator == ( int ) const; + inline bool operator != ( int ) const; + inline bool operator < ( int ) const; + inline bool operator > ( int ) const; inline BaseFlags& operator |= ( unsigned int ); inline BaseFlags& operator &= ( unsigned int ); inline bool operator == ( unsigned int ) const; inline bool operator != ( unsigned int ) const; inline bool operator < ( unsigned int ) const; inline bool operator > ( unsigned int ) const; - inline operator unsigned int () const; + inline operator bool () const; + //inline operator unsigned int () const; // Hurricane Managment. virtual std::string _getTypeName () const; virtual std::string _getString () const; @@ -88,12 +100,18 @@ namespace Hurricane { inline bool BaseFlags::zero () const { return _flags == 0; } inline BaseFlags& BaseFlags::reset ( BaseFlags flags ) { _flags &= ~flags._flags; return *this; } inline bool BaseFlags::isset ( BaseFlags flags ) const { return _flags & flags._flags; } - inline bool BaseFlags::contains ( BaseFlags flags ) const { return (_flags & flags._flags) && !(~_flags & flags._flags); } +//inline bool BaseFlags::contains ( BaseFlags flags ) const { return (_flags & flags._flags) && !(~_flags & flags._flags); } + inline bool BaseFlags::contains ( BaseFlags flags ) const { return (_flags & flags._flags) == flags._flags; } inline bool BaseFlags::intersect ( BaseFlags flags ) const { return _flags & flags._flags; } inline BaseFlags BaseFlags::operator compl () const { return ~_flags; } inline BaseFlags BaseFlags::operator bitand ( BaseFlags flags ) const { return _flags & flags._flags; } inline BaseFlags BaseFlags::operator bitor ( BaseFlags flags ) const { return _flags | flags._flags; } inline BaseFlags BaseFlags::operator xor ( BaseFlags flags ) const { return _flags ^ flags._flags; } + inline BaseFlags BaseFlags::operator bitand ( int flags ) const { return _flags & (unsigned int)flags; } + inline BaseFlags BaseFlags::operator bitor ( int flags ) const { return _flags | (unsigned int)flags; } + inline BaseFlags BaseFlags::operator xor ( int flags ) const { return _flags ^ (unsigned int)flags; } + inline BaseFlags BaseFlags::lshift ( int s ) const { return _flags << (unsigned int)s; } + inline BaseFlags BaseFlags::rshift ( int s ) const { return _flags >> (unsigned int)s; } inline BaseFlags BaseFlags::operator bitand ( unsigned int flags ) const { return _flags & flags; } inline BaseFlags BaseFlags::operator bitor ( unsigned int flags ) const { return _flags | flags; } inline BaseFlags BaseFlags::operator xor ( unsigned int flags ) const { return _flags ^ flags; } @@ -105,13 +123,21 @@ namespace Hurricane { inline bool BaseFlags::operator != ( BaseFlags flags ) const { return _flags != flags._flags; } inline bool BaseFlags::operator < ( BaseFlags flags ) const { return _flags < flags._flags; } inline bool BaseFlags::operator > ( BaseFlags flags ) const { return _flags > flags._flags; } + inline BaseFlags& BaseFlags::operator |= ( int flags ) { _flags |= (unsigned int)flags; return *this; } + inline BaseFlags& BaseFlags::operator &= ( int flags ) { _flags &= (unsigned int)flags; return *this; } + inline bool BaseFlags::operator == ( int flags ) const { return _flags == (unsigned int)flags; } + inline bool BaseFlags::operator != ( int flags ) const { return _flags != (unsigned int)flags; } + inline bool BaseFlags::operator < ( int flags ) const { return _flags < (unsigned int)flags; } + inline bool BaseFlags::operator > ( int flags ) const { return _flags > (unsigned int)flags; } inline BaseFlags& BaseFlags::operator |= ( unsigned int flags ) { _flags |= flags; return *this; } inline BaseFlags& BaseFlags::operator &= ( unsigned int flags ) { _flags &= flags; return *this; } inline bool BaseFlags::operator == ( unsigned int flags ) const { return _flags == flags; } inline bool BaseFlags::operator != ( unsigned int flags ) const { return _flags != flags; } inline bool BaseFlags::operator < ( unsigned int flags ) const { return _flags < flags; } inline bool BaseFlags::operator > ( unsigned int flags ) const { return _flags > flags; } - inline BaseFlags::operator unsigned int () const { return _flags; } + inline BaseFlags::operator bool () const { return _flags != 0; } +//inline BaseFlags::operator unsigned int () const { return _flags; } +//inline BaseFlags::operator unsigned int () const { return _flags; } inline BaseFlags& BaseFlags::set ( BaseFlags flags, bool state ) { diff --git a/hurricane/src/hurricane/hurricane/JsonObject.h b/hurricane/src/hurricane/hurricane/JsonObject.h index bf35ab86..cf1068b8 100644 --- a/hurricane/src/hurricane/hurricane/JsonObject.h +++ b/hurricane/src/hurricane/hurricane/JsonObject.h @@ -284,8 +284,8 @@ namespace Hurricane { template inline void JsonStack::push_back ( const std::string& key, T t ) { - ltrace(51) << "JsonStack::push_back(T) key:" << key << " value:" << t - << " (" << demangle(typeid(T)) << ")." << endl; + cdebug.log(19) << "JsonStack::push_back(T) key:" << key << " value:" << t + << " (" << demangle(typeid(T)) << ")." << endl; _stack.push_back(std::make_pair(key,boost::any(t))); } @@ -297,8 +297,8 @@ namespace Hurricane { << (count+1) << " elements remains to pop." << std::endl; break; } - ltrace(51) << "| _stack.pop_back() \"" << _stack.back().first - << "\", size:" << _stack.size() << ", dbos:" << _dbos.size() << endl; + cdebug.log(19) << "| _stack.pop_back() \"" << _stack.back().first + << "\", size:" << _stack.size() << ", dbos:" << _dbos.size() << endl; _stack.pop_back(); } } @@ -316,17 +316,17 @@ namespace Hurricane { int i = _stack.size()-1; do { if (_stack[i].first == key) { - ltrace(51) << "JsonStack::rhas(): key \"" << key << "\" found at index:" - << (i-(int)_stack.size()) << " (i:" << i << ") " - << "(" << demangle(_stack[i].second.type().name()) << ")." - << endl; + cdebug.log(19) << "JsonStack::rhas(): key \"" << key << "\" found at index:" + << (i-(int)_stack.size()) << " (i:" << i << ") " + << "(" << demangle(_stack[i].second.type().name()) << ")." + << endl; return i-(int)_stack.size(); } if (i == 0) break; --i; } while ( true ); - ltrace(51) << "JsonStack::rhas(): key \"" << key << "\" not found (returning index: 0)." << endl; + cdebug.log(19) << "JsonStack::rhas(): key \"" << key << "\" not found (returning index: 0)." << endl; return 0; } @@ -336,8 +336,8 @@ namespace Hurricane { int i = _stack.size()-1; do { if (_stack[i].first == key) { - ltrace(51) << "JsonStack::as() k:" << key - << " value:" << demangle(_stack[i].second.type().name()) << std::endl; + cdebug.log(19) << "JsonStack::as() k:" << key + << " value:" << demangle(_stack[i].second.type().name()) << std::endl; return boost::any_cast( _stack[i].second ); } if (i == 0) break; @@ -405,7 +405,7 @@ namespace Hurricane { template inline void JsonObject::update ( JsonStack& stack, T hobject ) { - ltrace(51) << "JsonObject::update()" << endl; + cdebug.log(19) << "JsonObject::update()" << endl; stack.pop_back( _attributes.size() ); stack.push_back( getStackName(), hobject ); setObject( hobject ); diff --git a/hurricane/src/hurricane/hurricane/JsonWriter.h b/hurricane/src/hurricane/hurricane/JsonWriter.h index 453d2a69..1160b7a6 100644 --- a/hurricane/src/hurricane/hurricane/JsonWriter.h +++ b/hurricane/src/hurricane/hurricane/JsonWriter.h @@ -221,15 +221,12 @@ inline void jsonWrite ( JsonWriter* w, const std::string& key, const C& ) template inline void jsonWrite ( JsonWriter* w, const C* object ) { - if (Hurricane::inltrace(50)) - std::cerr << Hurricane::tab - << "jsonWrite<" << Hurricane::demangle(typeid(C).name()) << "*>(w,object)" << std::endl; - Hurricane::ltracein(50); + cdebug.log(19,1) << "jsonWrite<" << Hurricane::demangle(typeid(C).name()) << "*>(w,object)" << std::endl; if (object) object->toJson( w ); else jsonWrite(w); - Hurricane::ltraceout(50); + cdebug.tabw(19,-1); } @@ -243,35 +240,29 @@ inline void jsonWrite ( JsonWriter* w, const std::string& key, C* object ) template inline void jsonWrite ( JsonWriter* w, const std::string& key, const C* object ) { - if (Hurricane::inltrace(50)) - std::cerr << Hurricane::tab - << "jsonWrite<" << Hurricane::demangle(typeid(C).name()) << "*>(w,key,object)" - << " key:\"" << key << "\"" << std::endl; - Hurricane::ltracein(50); + cdebug.log(19,1) << "jsonWrite<" << Hurricane::demangle(typeid(C).name()) << "*>(w,key,object)" + << " key:\"" << key << "\"" << std::endl; w->key( key ); if (object) jsonWrite( w, object ); else jsonWrite(w); - Hurricane::ltraceout(50); + cdebug.tabw(19,-1); } template inline void jsonWrite ( JsonWriter* w, const std::string& key, const std::vector& v ) { - if (Hurricane::inltrace(50)) - std::cerr << Hurricane::tab - << "jsonWrite< vector<" << Hurricane::demangle(typeid(Element).name()) - << "> >(w,key,v)" << " key:\"" << key << "\"" << std::endl; - Hurricane::ltracein(50); + cdebug.log(19,1) << "jsonWrite< vector<" << Hurricane::demangle(typeid(Element).name()) + << "> >(w,key,v)" << " key:\"" << key << "\"" << std::endl; w->key( key ); w->startArray(); for ( Element element : v ) jsonWrite( w, element ); w->endArray(); - Hurricane::ltraceout(50); + cdebug.tabw(19,-1); } @@ -280,21 +271,18 @@ inline void jsonWrite ( JsonWriter* w , const std::string& key , const std::map& m ) { - if (Hurricane::inltrace(50)) - std::cerr << Hurricane::tab - << "jsonWrite< map<" - << Hurricane::demangle(typeid(Key ).name()) << "," - << Hurricane::demangle(typeid(Element).name()) << "," - << Hurricane::demangle(typeid(Compare).name()) - << "> >(w,key,m)" << " key:\"" << key << "\"" << std::endl; - Hurricane::ltracein(50); + cdebug.log(19,1) << "jsonWrite< map<" + << Hurricane::demangle(typeid(Key ).name()) << "," + << Hurricane::demangle(typeid(Element).name()) << "," + << Hurricane::demangle(typeid(Compare).name()) + << "> >(w,key,m)" << " key:\"" << key << "\"" << std::endl; w->key( key ); w->startArray(); for ( auto mapElement : m ) jsonWrite( w, mapElement.second ); w->endArray(); - Hurricane::ltraceout(50); + cdebug.tabw(19,-1); } diff --git a/hurricane/src/hurricane/hurricane/Tabulation.h b/hurricane/src/hurricane/hurricane/Tabulation.h index b76760d9..f9df076e 100644 --- a/hurricane/src/hurricane/hurricane/Tabulation.h +++ b/hurricane/src/hurricane/hurricane/Tabulation.h @@ -20,9 +20,7 @@ #ifndef HURRICANE_TABULATION_H #define HURRICANE_TABULATION_H -#include "hurricane/Commons.h" - -#ifndef HURRICANE_SLOT_H +#ifndef HURRICANE_COMMONS_H #error "Tabulation.h must be included through Commons.h" #endif diff --git a/hurricane/src/isobar/ProxyProperty.cpp b/hurricane/src/isobar/ProxyProperty.cpp index d89594ce..e525118a 100644 --- a/hurricane/src/isobar/ProxyProperty.cpp +++ b/hurricane/src/isobar/ProxyProperty.cpp @@ -80,12 +80,12 @@ ProxyProperty* ProxyProperty::create ( void* shadow ) { void ProxyProperty::_preDestroy () { if ( _owner ) _owner->_onDestroyed ( this ); - trace << "ProxyProperty::_owner := " << hex << (void*)_owner << endl; + cdebug.log(20) << "ProxyProperty::_owner := " << hex << (void*)_owner << endl; if ( _offset > 0 ) { void** shadowMember = ( (void**)( (unsigned long)_shadow + _offset ) ); - trace << "ProxyProperty::_shadowMember := " << hex << *shadowMember << endl; + cdebug.log(20) << "ProxyProperty::_shadowMember := " << hex << *shadowMember << endl; *shadowMember = NULL; } diff --git a/hurricane/src/isobar/PyBasicLayer.cpp b/hurricane/src/isobar/PyBasicLayer.cpp index 76315cf1..87011753 100644 --- a/hurricane/src/isobar/PyBasicLayer.cpp +++ b/hurricane/src/isobar/PyBasicLayer.cpp @@ -47,7 +47,7 @@ extern "C" { static PyObject* PyBasicLayer_create ( PyObject*, PyObject* args ) { - trace << "PyBasicLayer_create()" << endl; + cdebug.log(20) << "PyBasicLayer_create()" << endl; BasicLayer* basicLayer = NULL; @@ -96,7 +96,7 @@ extern "C" { static PyObject* PyBasicLayer_getMaterial ( PyBasicLayer *self ) { - trace << "PyBasicLayer_getMaterial ()" << endl; + cdebug.log(20) << "PyBasicLayer_getMaterial ()" << endl; METHOD_HEAD ( "BasicLayer.getMaterial()" ) BasicLayer::Material* material = NULL; diff --git a/hurricane/src/isobar/PyBox.cpp b/hurricane/src/isobar/PyBox.cpp index a9dd188c..bb7bcf08 100644 --- a/hurricane/src/isobar/PyBox.cpp +++ b/hurricane/src/isobar/PyBox.cpp @@ -62,7 +62,7 @@ extern "C" { // Class Method : "PyBox_NEW ()" static PyObject* PyBox_NEW (PyObject *module, PyObject *args) { - trace << "PyBox_NEW()" << endl; + cdebug.log(20) << "PyBox_NEW()" << endl; Box* box = NULL; PyBox* pyBox = NULL; @@ -106,13 +106,13 @@ extern "C" { static int PyBox_Init ( PyBox* self, PyObject* args, PyObject* kwargs ) { - trace << "PyBox_Init(): " << (void*)self << endl; + cdebug.log(20) << "PyBox_Init(): " << (void*)self << endl; return 0; } static PyObject* PyBox_getCenter ( PyBox *self ) { - trace << "PyBox_getCenter()" << endl; + cdebug.log(20) << "PyBox_getCenter()" << endl; METHOD_HEAD ( "Box.Center()" ) @@ -128,7 +128,7 @@ extern "C" { static PyObject* PyBox_getUnion ( PyBox *self, PyObject* args ) { - trace << "PyBox_getUnion()" << endl; + cdebug.log(20) << "PyBox_getUnion()" << endl; METHOD_HEAD ( "Box.getUnion()" ) @@ -154,7 +154,7 @@ extern "C" { // Attribute Method : "PyBox_getIntersection ()" static PyObject* PyBox_getIntersection ( PyBox *self, PyObject* args ) { - trace << "PyBox_getIntersection()" << endl; + cdebug.log(20) << "PyBox_getIntersection()" << endl; METHOD_HEAD ( "Box.getIntersection()" ) @@ -179,7 +179,7 @@ extern "C" { // Attribute Method : "PyBox_contains ()" static PyObject* PyBox_contains ( PyBox *self, PyObject* args ) { - trace << "PyBox_contains ()" << endl; + cdebug.log(20) << "PyBox_contains ()" << endl; METHOD_HEAD ( "Box.contains()" ) @@ -214,7 +214,7 @@ extern "C" { // Attribute Method : "PyBox_intersect ()" static PyObject* PyBox_intersect ( PyBox *self, PyObject* args ) { - trace << "PyBox_intersect ()" << endl; + cdebug.log(20) << "PyBox_intersect ()" << endl; bool result = false; HTRY @@ -244,7 +244,7 @@ extern "C" { // Attribute Method : "PyBox_isConstrainedBy ()" static PyObject* PyBox_isConstrainedBy ( PyBox *self, PyObject* args ) { - trace << "PyBox_isConstrainedBy ()" << endl; + cdebug.log(20) << "PyBox_isConstrainedBy ()" << endl; bool result = false; HTRY @@ -273,7 +273,7 @@ extern "C" { // Attribute Method : "PyBox_makeEmpty ()" static PyObject* PyBox_makeEmpty ( PyBox *self, PyObject* args ) { - trace << "PyBox_makeEmpty ()" << endl; + cdebug.log(20) << "PyBox_makeEmpty ()" << endl; HTRY METHOD_HEAD ( "Box.makeEmpty()" ) @@ -289,7 +289,7 @@ extern "C" { // Attribute Method : "PyBox_inflate ()" static PyObject* PyBox_inflate ( PyBox *self, PyObject* args ) { - trace << "PyBox_inflate ()" << endl; + cdebug.log(20) << "PyBox_inflate ()" << endl; METHOD_HEAD ( "Box.inflate()" ) @@ -326,7 +326,7 @@ extern "C" { // Attribute Method : "PyBox_merge ()" static PyObject* PyBox_merge ( PyBox *self, PyObject* args ) { - trace << "Box_merge()" << endl; + cdebug.log(20) << "Box_merge()" << endl; METHOD_HEAD ( "Box.merge()" ) @@ -364,7 +364,7 @@ extern "C" { // Attribute Method : "PyBox_translate ()" static PyObject* PyBox_translate ( PyBox *self, PyObject* args ) { - trace << "PyBox_translate ()" << endl; + cdebug.log(20) << "PyBox_translate ()" << endl; HTRY METHOD_HEAD ( "Box.translate()" ) diff --git a/hurricane/src/isobar/PyBreakpoint.cpp b/hurricane/src/isobar/PyBreakpoint.cpp index 47e5f94a..6bc70edb 100644 --- a/hurricane/src/isobar/PyBreakpoint.cpp +++ b/hurricane/src/isobar/PyBreakpoint.cpp @@ -44,13 +44,13 @@ extern "C" { static void PyBreakpoint_DeAlloc ( PyBreakpoint* self ) { - trace << "PySingletonObject_DeAlloc(" << hex << self << ")" << endl; + cdebug.log(20) << "PySingletonObject_DeAlloc(" << hex << self << ")" << endl; } static PyObject* PyBreakpoint_stop ( PyObject*, PyObject *args ) { - trace << "PyBreakpoint_stop()" << endl; + cdebug.log(20) << "PyBreakpoint_stop()" << endl; bool result = false; @@ -71,7 +71,7 @@ extern "C" { static PyObject* PyBreakpoint_setStopLevel ( PyObject*, PyObject* args ) { - trace << "PyBreakpoint_setStopLevel()" << endl; + cdebug.log(20) << "PyBreakpoint_setStopLevel()" << endl; HTRY @@ -89,7 +89,7 @@ extern "C" { static PyObject* PyBreakpoint_getStopLevel ( PyObject* ) { - trace << "PyBreakpoint_getStopLevel()" << endl; + cdebug.log(20) << "PyBreakpoint_getStopLevel()" << endl; return Py_BuildValue ( "i", Breakpoint::getStopLevel() ); @@ -112,7 +112,7 @@ extern "C" { // extern void PyBreakpoint_LinkPyType() // { - // trace << "PyBreakpoint_LinkType()" << endl; + // cdebug.log(20) << "PyBreakpoint_LinkType()" << endl; // PyTypeBreakpoint.tp_new = (newfunc) PyType_GenericNew; // PyTypeBreakpoint.tp_dealloc = (destructor)PyBreakpoint_DeAlloc; diff --git a/hurricane/src/isobar/PyCell.cpp b/hurricane/src/isobar/PyCell.cpp index ae485ad4..801dadf6 100644 --- a/hurricane/src/isobar/PyCell.cpp +++ b/hurricane/src/isobar/PyCell.cpp @@ -65,7 +65,7 @@ extern "C" { // Attribute Method : "PyCell_create ()" PyObject* PyCell_create ( PyObject*, PyObject *args ) { - trace << "PyCell_create()" << endl; + cdebug.log(20) << "PyCell_create()" << endl; char* name = NULL; PyLibrary* pyLibrary = NULL; @@ -88,7 +88,7 @@ extern "C" { // Attribute Method : "PyCell_getLibrary ()" static PyObject* PyCell_getLibrary ( PyCell *self ) { - trace << "PyCell_getLibrary ()" << endl; + cdebug.log(20) << "PyCell_getLibrary ()" << endl; Library* library = NULL; @@ -110,7 +110,7 @@ extern "C" { // Attribute Method : "PyCell_getInstance ()" static PyObject* PyCell_getInstance ( PyCell *self, PyObject* args ) { - trace << "PyCell_getInstance ()" << endl; + cdebug.log(20) << "PyCell_getInstance ()" << endl; METHOD_HEAD("Cell.getInstance()") Instance* instance = NULL; @@ -133,7 +133,7 @@ extern "C" { // Attribute Method : "PyCell_getInstances()" static PyObject* PyCell_getInstances( PyCell *self ) { - trace << "PyCell_getInstances()" << endl; + cdebug.log(20) << "PyCell_getInstances()" << endl; METHOD_HEAD ( "Cell.getInstances()" ) @@ -158,7 +158,7 @@ extern "C" { // Attribute Method : "PyCell_getInstancesUnder()" static PyObject* PyCell_getInstancesUnder(PyCell *self, PyObject* args) { - trace << "PyCell_getInstancesUnder()" << endl; + cdebug.log(20) << "PyCell_getInstancesUnder()" << endl; METHOD_HEAD("Cell.getInstancesUnder()") @@ -188,7 +188,7 @@ extern "C" { // Attribute Method : "PyCell_getSlaveInstances()" static PyObject* PyCell_getSlaveInstances(PyCell *self) { - trace << "PyCell_getSlaveInstances()" << endl; + cdebug.log(20) << "PyCell_getSlaveInstances()" << endl; METHOD_HEAD("Cell.getSlaveInstances()") @@ -213,7 +213,7 @@ extern "C" { // Attribute Method : "PyCell_getComponents()" static PyObject* PyCell_getComponents(PyCell *self) { - trace << "PyCell_getComponents()" << endl; + cdebug.log(20) << "PyCell_getComponents()" << endl; METHOD_HEAD("Cell.getComponents()") @@ -239,7 +239,7 @@ extern "C" { // Attribute Method : "PyCell_getComponentsUnder()" static PyObject* PyCell_getComponentsUnder(PyCell *self, PyObject* args) { - trace << "PyCell_getComponentsUnder()" << endl; + cdebug.log(20) << "PyCell_getComponentsUnder()" << endl; METHOD_HEAD("Cell.getComponentsUnder()") @@ -268,7 +268,7 @@ extern "C" { // Attribute Method : "PyCell_getOccurrences()" static PyObject* PyCell_getOccurrences(PyCell *self) { - trace << "PyCell_getOccurrences()" << endl; + cdebug.log(20) << "PyCell_getOccurrences()" << endl; METHOD_HEAD("Cell.getOccurrences()") @@ -294,7 +294,7 @@ extern "C" { // Attribute Method : "PyCell_getOccurrencesUnder()" static PyObject* PyCell_getOccurrencesUnder(PyCell *self, PyObject* args) { - trace << "PyCell_getOccurrencesUnder()" << endl; + cdebug.log(20) << "PyCell_getOccurrencesUnder()" << endl; METHOD_HEAD("Cell.getOccurrencesUnder()") @@ -323,7 +323,7 @@ extern "C" { // Attribute Method : "PyCell_getLeafInstanceOccurrences()" static PyObject* PyCell_getLeafInstanceOccurrences(PyCell *self) { - trace << "PyCell_getLeafInstanceOccurrences()" << endl; + cdebug.log(20) << "PyCell_getLeafInstanceOccurrences()" << endl; METHOD_HEAD ( "Cell.getLeafInstanceOccurrences()" ) @@ -348,7 +348,7 @@ extern "C" { // Attribute Method : "PyCell_getLeafInstanceOccurrencesUnder()" static PyObject* PyCell_getLeafInstanceOccurrencesUnder(PyCell *self, PyObject* args) { - trace << "PyCell_getLeafInstanceOccurrencesUnder()" << endl; + cdebug.log(20) << "PyCell_getLeafInstanceOccurrencesUnder()" << endl; METHOD_HEAD ( "Cell.getLeafInstanceOccurrencesUnder()" ) @@ -378,7 +378,7 @@ extern "C" { // Attribute Method : "PyCell_getReferences()" static PyObject* PyCell_getReferences(PyCell *self) { - trace << "PyCell_getReferences()" << endl; + cdebug.log(20) << "PyCell_getReferences()" << endl; METHOD_HEAD("Cell.getReferences()") @@ -403,7 +403,7 @@ extern "C" { // Attribute Method : "PyCell_getHyperNets()" static PyObject* PyCell_getHyperNets(PyCell *self) { - trace << "PyCell_getHyperNets()" << endl; + cdebug.log(20) << "PyCell_getHyperNets()" << endl; METHOD_HEAD ( "Cell.getHyperNets()" ) @@ -428,7 +428,7 @@ extern "C" { // Attribute Method : "PyCell_getNet ()" static PyObject* PyCell_getNet(PyCell *self, PyObject* args) { - trace << "PyCell_getNet ()" << endl; + cdebug.log(20) << "PyCell_getNet ()" << endl; METHOD_HEAD ( "Cell.getNet()" ) Net* net = NULL; @@ -449,7 +449,7 @@ extern "C" { // Attribute Method : "PyCell_getNets ()" static PyObject* PyCell_getNets ( PyCell *self ) { - trace << "PyCell_getNets()" << endl; + cdebug.log(20) << "PyCell_getNets()" << endl; METHOD_HEAD("Cell.getNets()") @@ -474,7 +474,7 @@ extern "C" { // Attribute Method : "PyCell_getExternalNets()" static PyObject* PyCell_getExternalNets(PyCell *self) { - trace << "PyCell_getExternalNets()" << endl; + cdebug.log(20) << "PyCell_getExternalNets()" << endl; METHOD_HEAD("Cell.getExternalNets()") @@ -498,7 +498,7 @@ extern "C" { // Attribute Method : "PyCell_getClockNets()" static PyObject* PyCell_getClockNets(PyCell *self) { - trace << "PyCell_getClockNets()" << endl; + cdebug.log(20) << "PyCell_getClockNets()" << endl; METHOD_HEAD("Cell.getClockNets") @@ -522,7 +522,7 @@ extern "C" { // Attribute Method : "PyCell_getSupplyNets()" static PyObject* PyCell_getSupplyNets(PyCell *self) { - trace << "PyCell_getSupplyNets()" << endl; + cdebug.log(20) << "PyCell_getSupplyNets()" << endl; METHOD_HEAD ( "Cell.getSupplyNets()" ) @@ -547,7 +547,7 @@ extern "C" { // Attribute Method : "PyCell_getPowerNets()" static PyObject* PyCell_getPowerNets(PyCell *self) { - trace << "PyCell_getPowerNets()" << endl; + cdebug.log(20) << "PyCell_getPowerNets()" << endl; METHOD_HEAD ( "Cell.getPowerNets()" ) @@ -572,7 +572,7 @@ extern "C" { // Attribute Method : "PyCell_getGroundNets()" static PyObject* PyCell_getGroundNets(PyCell *self) { - trace << "PyCell_getGroundNets()" << endl; + cdebug.log(20) << "PyCell_getGroundNets()" << endl; METHOD_HEAD ( "Cell.getGroundNets()" ) @@ -596,7 +596,7 @@ extern "C" { // Attribute Method : "PyCell_getAbutmentBox ()" static PyObject* PyCell_getAbutmentBox ( PyCell *self ) { - trace << "PyCell_getAbutmentBox()" << endl; + cdebug.log(20) << "PyCell_getAbutmentBox()" << endl; METHOD_HEAD ( "Cell.getAbutmentBox()" ) @@ -620,7 +620,7 @@ extern "C" { // Attribute Method : "PyCell_setAbutmentBox ()" static PyObject* PyCell_setAbutmentBox ( PyCell *self, PyObject* args ) { - trace << "Cell.setAbutmentBox()" << endl; + cdebug.log(20) << "Cell.setAbutmentBox()" << endl; HTRY METHOD_HEAD ( "Cell.setAbutmentBox()" ) @@ -640,7 +640,7 @@ extern "C" { // Attribute Method : "PyCell_setTerminal ()" static PyObject* PyCell_setTerminal ( PyCell *self, PyObject* args ) { - trace << "PyCell_setTerminal ()" << endl; + cdebug.log(20) << "PyCell_setTerminal ()" << endl; HTRY METHOD_HEAD ( "Cell.setTerminal()" ) @@ -658,7 +658,7 @@ extern "C" { // Attribute Method : "PyCell_uniquify ()" static PyObject* PyCell_uniquify ( PyCell *self, PyObject* args ) { - trace << "PyCell_uniquify ()" << endl; + cdebug.log(20) << "PyCell_uniquify ()" << endl; HTRY METHOD_HEAD ( "Cell.uniquify()" ) @@ -677,7 +677,7 @@ extern "C" { // Attribute Method : "PyCell_getClone ()" static PyObject* PyCell_getClone ( PyCell *self ) { - trace << "PyCell_getClone ()" << endl; + cdebug.log(20) << "PyCell_getClone ()" << endl; Cell* cloneCell = NULL; HTRY diff --git a/hurricane/src/isobar/PyComponent.cpp b/hurricane/src/isobar/PyComponent.cpp index 5cff8c12..366bc790 100644 --- a/hurricane/src/isobar/PyComponent.cpp +++ b/hurricane/src/isobar/PyComponent.cpp @@ -61,7 +61,7 @@ extern "C" { static PyObject* PyComponent_getPosition ( PyComponent *self ) { - trace << "PyComponent_getPosition ()" << endl; + cdebug.log(20) << "PyComponent_getPosition ()" << endl; METHOD_HEAD ( "Component.getPosition()" ) PyPoint* pyPoint = PyObject_NEW ( PyPoint, &PyTypePoint ); @@ -77,7 +77,7 @@ extern "C" { static PyObject* PyComponent_getNet ( PyComponent *self ) { - trace << "PyComponent_getNet ()" << endl; + cdebug.log(20) << "PyComponent_getNet ()" << endl; Net* net = NULL; @@ -93,7 +93,7 @@ extern "C" { static PyObject* PyComponent_getLayer ( PyComponent *self ) { - trace << "PyComponent_getLayer ()" << endl; + cdebug.log(20) << "PyComponent_getLayer ()" << endl; METHOD_HEAD ( "Component.getLayer()" ) Layer* layer = NULL; @@ -108,7 +108,7 @@ extern "C" { static PyObject* PyComponent_getCenter ( PyComponent *self ) { - trace << "PyComponent_getCenter ()" << endl; + cdebug.log(20) << "PyComponent_getCenter ()" << endl; METHOD_HEAD( "Component.getCenter()" ) PyPoint* pyPoint = PyObject_NEW( PyPoint, &PyTypePoint ); @@ -124,7 +124,7 @@ extern "C" { static PyObject* PyComponent_getBoundingBox ( PyComponent *self, PyObject* args ) { - trace << "PyComponent_getBoundingBox ()" << endl; + cdebug.log(20) << "PyComponent_getBoundingBox ()" << endl; METHOD_HEAD ( "Component.getBoundingBox()" ) PyBox* pyBox = PyObject_NEW ( PyBox, &PyTypeBox ); @@ -154,7 +154,7 @@ extern "C" { static PyObject* PyComponent_getConnexComponents ( PyComponent *self ) { - trace << "PyComponent_getConnexComponents()" << endl; + cdebug.log(20) << "PyComponent_getConnexComponents()" << endl; METHOD_HEAD( "PyComponent.getConnexComponents()" ) PyComponentCollection* pyComponentCollection = NULL; @@ -176,7 +176,7 @@ extern "C" { static PyObject* PyComponent_getSlaveComponents ( PyComponent *self ) { - trace << "PyComponent_getSlaveComponents()" << endl; + cdebug.log(20) << "PyComponent_getSlaveComponents()" << endl; METHOD_HEAD( "PyComponent.getSlaveComponents()" ) PyComponentCollection* pyComponentCollection = NULL; diff --git a/hurricane/src/isobar/PyContact.cpp b/hurricane/src/isobar/PyContact.cpp index bbe2849d..22b53f51 100644 --- a/hurricane/src/isobar/PyContact.cpp +++ b/hurricane/src/isobar/PyContact.cpp @@ -66,7 +66,7 @@ extern "C" { static PyObject* PyContact_create ( PyObject*, PyObject *args ) { - trace << "PyContact_create()" << endl; + cdebug.log(20) << "PyContact_create()" << endl; Contact* contact = NULL; @@ -99,7 +99,7 @@ extern "C" { static PyObject* PyContact_translate ( PyContact *self, PyObject* args ) { - trace << "PyContact_translate ()" << endl; + cdebug.log(20) << "PyContact_translate ()" << endl; HTRY METHOD_HEAD ( "Contact.translate()" ) diff --git a/hurricane/src/isobar/PyContactLayer.cpp b/hurricane/src/isobar/PyContactLayer.cpp index 312bde71..030ec2b0 100644 --- a/hurricane/src/isobar/PyContactLayer.cpp +++ b/hurricane/src/isobar/PyContactLayer.cpp @@ -76,7 +76,7 @@ extern "C" { static PyObject* PyContactLayer_create ( PyObject*, PyObject* args ) { - trace << "PyContactLayer_create()" << endl; + cdebug.log(20) << "PyContactLayer_create()" << endl; ContactLayer* contactLayer = NULL; diff --git a/hurricane/src/isobar/PyDataBase.cpp b/hurricane/src/isobar/PyDataBase.cpp index 773e7567..491da1ba 100644 --- a/hurricane/src/isobar/PyDataBase.cpp +++ b/hurricane/src/isobar/PyDataBase.cpp @@ -38,7 +38,7 @@ extern "C" { static PyObject* PyDataBase_create ( PyObject* ) { - trace << "PyDataBase_create()" << endl; + cdebug.log(20) << "PyDataBase_create()" << endl; DataBase* db = NULL; @@ -51,7 +51,7 @@ extern "C" { static PyObject* PyDataBase_getDB ( PyObject* ) { - trace << "PyDataBase_getDB()" << endl; + cdebug.log(20) << "PyDataBase_getDB()" << endl; DataBase* db = NULL; @@ -66,7 +66,7 @@ extern "C" { PyObject* PyDataBase_getTechnology ( PyDataBase* self ) { - trace << "PyDataBase_getTechnology()" << endl; + cdebug.log(20) << "PyDataBase_getTechnology()" << endl; Technology* techno = NULL; @@ -84,7 +84,7 @@ extern "C" { static PyObject* PyDataBase_getRootLibrary ( PyDataBase *self ) { - trace << "PyDataBase_getRootLibrary ()" << endl; + cdebug.log(20) << "PyDataBase_getRootLibrary ()" << endl; Library* library = NULL; diff --git a/hurricane/src/isobar/PyDbU.cpp b/hurricane/src/isobar/PyDbU.cpp index fede5724..b4bf5e83 100644 --- a/hurricane/src/isobar/PyDbU.cpp +++ b/hurricane/src/isobar/PyDbU.cpp @@ -531,7 +531,7 @@ extern "C" { extern void PyDbU_LinkPyType() { - trace << "PyDbU_LinkType()" << endl; + cdebug.log(20) << "PyDbU_LinkType()" << endl; PyTypeDbU.tp_methods = PyDbU_Methods; } diff --git a/hurricane/src/isobar/PyDebugSession.cpp b/hurricane/src/isobar/PyDebugSession.cpp index 45954805..92735105 100644 --- a/hurricane/src/isobar/PyDebugSession.cpp +++ b/hurricane/src/isobar/PyDebugSession.cpp @@ -44,32 +44,35 @@ extern "C" { static void PyDebugSession_DeAlloc ( PyDebugSession* self ) { - trace << "PyDebugSession_DeAlloc(" << hex << self << ")" << endl; + cdebug.log(20) << "PyDebugSession_DeAlloc(" << hex << self << ")" << endl; } static PyObject* PyDebugSession_open ( PyObject*, PyObject* args ) { - trace << "PyDebugSession_open()" << endl; + cdebug.log(20) << "PyDebugSession_open()" << endl; HTRY PyObject* arg0; PyObject* arg1; + PyObject* arg2; __cs.init ("DebugSession.open"); - if (not PyArg_ParseTuple(args,"|O&O&:DebugSession.open", + if (not PyArg_ParseTuple(args,"|O&O&O&:DebugSession.open", Converter, &arg0, - Converter, &arg1)) { + Converter, &arg1, + Converter, &arg2)) { return NULL; } - if (__cs.getObjectIds() == INT_ARG ) { DebugSession::open( PyAny_AsLong(arg0) ); } - else if (__cs.getObjectIds() == ":ent:int") { + if (__cs.getObjectIds() == ":int:int" ) { + DebugSession::open( PyAny_AsLong(arg0), PyAny_AsLong(arg1) ); + } else if (__cs.getObjectIds() == ":ent:int:int") { void* symbol = PyObject_AsHurricaneSymbol( arg0 ); if (not symbol) { Py_RETURN_NONE; } - DebugSession::open( symbol, PyAny_AsLong(arg1) ); + DebugSession::open( symbol, PyAny_AsLong(arg1), PyAny_AsLong(arg2) ); } else { PyErr_SetString(ConstructorError, "invalid number of parameters for DebugSession::open()." ); return NULL; @@ -82,7 +85,7 @@ extern "C" { static PyObject* PyDebugSession_close ( PyObject* ) { - trace << "PyDebugSession_close()" << endl; + cdebug.log(20) << "PyDebugSession_close()" << endl; HTRY DebugSession::close (); @@ -94,7 +97,7 @@ extern "C" { static PyObject* PyDebugSession_addToTrace ( PyObject*, PyObject* args ) { - trace << "PyDebugSession_addToTrace()" << endl; + cdebug.log(20) << "PyDebugSession_addToTrace()" << endl; HTRY PyObject* pySymbol = NULL; diff --git a/hurricane/src/isobar/PyDiffusionLayer.cpp b/hurricane/src/isobar/PyDiffusionLayer.cpp index fab985fd..007b6d27 100644 --- a/hurricane/src/isobar/PyDiffusionLayer.cpp +++ b/hurricane/src/isobar/PyDiffusionLayer.cpp @@ -76,7 +76,7 @@ extern "C" { static PyObject* PyDiffusionLayer_create ( PyObject*, PyObject* args ) { - trace << "PyDiffusionLayer_create()" << endl; + cdebug.log(20) << "PyDiffusionLayer_create()" << endl; DiffusionLayer* diffusionLayer = NULL; diff --git a/hurricane/src/isobar/PyEntity.cpp b/hurricane/src/isobar/PyEntity.cpp index 418cf628..14c85bbc 100644 --- a/hurricane/src/isobar/PyEntity.cpp +++ b/hurricane/src/isobar/PyEntity.cpp @@ -59,7 +59,7 @@ extern "C" { // Attribute Method : "PyEntity_getCell ()" static PyObject* PyEntity_getCell ( PyEntity *self ) { - trace << "PyEntity_getCell ()" << endl; + cdebug.log(20) << "PyEntity_getCell ()" << endl; Cell* cell = NULL; diff --git a/hurricane/src/isobar/PyHook.cpp b/hurricane/src/isobar/PyHook.cpp index f172bac2..2f429fe5 100644 --- a/hurricane/src/isobar/PyHook.cpp +++ b/hurricane/src/isobar/PyHook.cpp @@ -48,7 +48,7 @@ extern "C" { static PyObject* PyHook_getComponent ( PyHook *self ) { - trace << "PyHook_getComponent()" << endl; + cdebug.log(20) << "PyHook_getComponent()" << endl; METHOD_HEAD ( "Hook.getComponent()" ) Component* component = NULL; @@ -62,7 +62,7 @@ extern "C" { static PyObject* PyHook_getHooks ( PyHook *self ) { - trace << "PyHook_getHooks()" << endl; + cdebug.log(20) << "PyHook_getHooks()" << endl; METHOD_HEAD( "Hook.getHooks()" ) @@ -83,7 +83,7 @@ extern "C" { static PyObject* PyHook_getSlaveHooks ( PyHook *self ) { - trace << "PyHook_getSlaveHooks()" << endl; + cdebug.log(20) << "PyHook_getSlaveHooks()" << endl; METHOD_HEAD( "Hook.getSlaveHooks()" ) @@ -104,7 +104,7 @@ extern "C" { static PyObject* PyHook_detach ( PyHook *self ) { - trace << "PyHook_detach()" << endl; + cdebug.log(20) << "PyHook_detach()" << endl; METHOD_HEAD ( "Hook.detach()" ) PyHook* pyReturnHook = PyObject_NEW ( PyHook, &PyTypeHook ); @@ -120,7 +120,7 @@ extern "C" { static PyObject* PyHook_attach ( PyHook *self, PyObject* args ) { - trace << "PyHook_attach()" << endl; + cdebug.log(20) << "PyHook_attach()" << endl; METHOD_HEAD ( "Hook.attach()" ) PyHook* pyReturnHook = PyObject_NEW ( PyHook, &PyTypeHook ); @@ -147,7 +147,7 @@ extern "C" { static PyObject* PyHook_merge ( PyHook *self, PyObject* args ) { - trace << "PyHook_merge()" << endl; + cdebug.log(20) << "PyHook_merge()" << endl; METHOD_HEAD ( "Hook.merge()" ) PyHook* pyReturnHook = PyObject_NEW ( PyHook, &PyTypeHook ); diff --git a/hurricane/src/isobar/PyHorizontal.cpp b/hurricane/src/isobar/PyHorizontal.cpp index 608e88e5..0fb44240 100644 --- a/hurricane/src/isobar/PyHorizontal.cpp +++ b/hurricane/src/isobar/PyHorizontal.cpp @@ -61,7 +61,7 @@ extern "C" { // Attribute Method : "PyHorizontal_create ()" static PyObject* PyHorizontal_create ( PyObject*, PyObject *args ) { - trace << "PyHorizontal_create()" << endl; + cdebug.log(20) << "PyHorizontal_create()" << endl; PyObject* arg0; PyObject* arg1; @@ -152,7 +152,7 @@ extern "C" { // Attribute Method : "PyHorizontal_translate ()" static PyObject* PyHorizontal_translate ( PyHorizontal *self, PyObject* args ) { - trace << "PyHorizontal_translate ()" << endl; + cdebug.log(20) << "PyHorizontal_translate ()" << endl; HTRY METHOD_HEAD ( "Horizontal.translate()" ) diff --git a/hurricane/src/isobar/PyHurricane.cpp b/hurricane/src/isobar/PyHurricane.cpp index 8d8acef9..f7b8a31f 100644 --- a/hurricane/src/isobar/PyHurricane.cpp +++ b/hurricane/src/isobar/PyHurricane.cpp @@ -209,7 +209,7 @@ using namespace Hurricane; for ( unsigned i=0 ; i < _types.size() ; i++ ) { if ( ! strcmp ( _types[i]->_id, id ) ) { //throw Error ( objectTypeRedefinition ); // 04.09.2009 d2 modification so Pharos can run several scripts during one execution - trace << objectTypeRedefinition << endl; + cdebug.log(20) << objectTypeRedefinition << endl; return; } } @@ -496,8 +496,8 @@ extern "C" { HTRY PyObject* state = NULL; if (PyArg_ParseTuple(args , "O:Hurricane.trace()", &state)) { - if (PyObject_IsTrue(state)) trace_on (); - else trace_off(); + if (PyObject_IsTrue(state)) { } /*trace_on ();*/ + else { } /*trace_off();*/ } else { PyErr_SetString ( ConstructorError, "Bad parameters given to BasicLayer.create()." ); return NULL; @@ -526,7 +526,7 @@ extern "C" { DL_EXPORT(void) initHurricane () { //trace_on(); - trace << "initHurricane()" << endl; + cdebug.log(20) << "initHurricane()" << endl; PyDebugSession_LinkPyType (); PyUpdateSession_LinkPyType (); @@ -836,7 +836,7 @@ extern "C" { PyInstance_postModuleInit(); PyQuery_postModuleInit(); - trace << "Hurricane.so loaded " << (void*)&typeid(string) << endl; + cdebug.log(20) << "Hurricane.so loaded " << (void*)&typeid(string) << endl; } diff --git a/hurricane/src/isobar/PyHyperNet.cpp b/hurricane/src/isobar/PyHyperNet.cpp index a89681b2..9f6cf7ee 100644 --- a/hurricane/src/isobar/PyHyperNet.cpp +++ b/hurricane/src/isobar/PyHyperNet.cpp @@ -43,7 +43,7 @@ extern "C" { static PyObject* PyHyperNet_create ( PyObject*, PyObject *args ) { - trace << "PyHyperNet_create()" << endl; + cdebug.log(20) << "PyHyperNet_create()" << endl; HyperNet* hyperNet = NULL; PyObject* arg0; @@ -69,7 +69,7 @@ extern "C" { static PyObject* PyHyperNet_getNetOccurrences(PyHyperNet *self) { - trace << "PyHyperNet_getNetOccurrences()" << endl; + cdebug.log(20) << "PyHyperNet_getNetOccurrences()" << endl; METHOD_HEAD ( "HyperNet.getNetOccurrences()" ) @@ -92,7 +92,7 @@ extern "C" { static PyObject* PyHyperNet_getLeafPlugOccurrences(PyHyperNet *self) { - trace << "PyHyperNet_getLeafPlugOccurrences()" << endl; + cdebug.log(20) << "PyHyperNet_getLeafPlugOccurrences()" << endl; METHOD_HEAD ( "HyperNet.getLeafPlugOccurrences()" ) @@ -115,7 +115,7 @@ extern "C" { static PyObject* PyHyperNet_getCell ( PyHyperNet *self ) { - trace << "PyHyperNet_getCell ()" << endl; + cdebug.log(20) << "PyHyperNet_getCell ()" << endl; Cell* cell = NULL; diff --git a/hurricane/src/isobar/PyInstance.cpp b/hurricane/src/isobar/PyInstance.cpp index 548f9325..734859e7 100644 --- a/hurricane/src/isobar/PyInstance.cpp +++ b/hurricane/src/isobar/PyInstance.cpp @@ -73,7 +73,7 @@ extern "C" { static PyObject* PyInstance_create ( PyObject*, PyObject *args ) { - trace << "PyInstance_create()" << endl; + cdebug.log(20) << "PyInstance_create()" << endl; Instance* instance = NULL; PyObject* arg0 = NULL; @@ -117,7 +117,7 @@ extern "C" { static PyObject* PyInstance_getMasterCell ( PyInstance *self ) { - trace << "PyInstance_getMasterCell ()" << endl; + cdebug.log(20) << "PyInstance_getMasterCell ()" << endl; Cell* cell = NULL; @@ -132,7 +132,7 @@ extern "C" { static PyObject* PyInstance_getPlacementStatus ( PyInstance *self ) { - trace << "PyInstance_getPlacementStatus ()" << endl; + cdebug.log(20) << "PyInstance_getPlacementStatus ()" << endl; METHOD_HEAD ( "Instance.getPlacementStatus()" ); @@ -147,7 +147,7 @@ extern "C" { static PyObject* PyInstance_setPlacementStatus ( PyInstance *self, PyObject* args ) { - trace << "PyInstance_setPlacementStatus()" << endl; + cdebug.log(20) << "PyInstance_setPlacementStatus()" << endl; METHOD_HEAD ( "Instance.setPlacementStatus()" ) HTRY @@ -163,7 +163,7 @@ extern "C" { static PyObject* PyInstance_getTransformation ( PyInstance *self ) { - trace << "PyInstance_getTransformation ()" << endl; + cdebug.log(20) << "PyInstance_getTransformation ()" << endl; METHOD_HEAD ( "Instance.getTransformation()" ); PyTransformation* resultPyTransf = PyObject_NEW ( PyTransformation, &PyTypeTransformation ); @@ -179,7 +179,7 @@ extern "C" { static PyObject* PyInstance_getPlug ( PyInstance *self, PyObject* args ) { - trace << "PyInstance_getPlug ()" << endl; + cdebug.log(20) << "PyInstance_getPlug ()" << endl; Plug* plug = NULL; @@ -198,7 +198,7 @@ extern "C" { static PyObject* PyInstance_getPlugs(PyInstance *self ) { - trace << "PyInstance_getPlugs()" << endl; + cdebug.log(20) << "PyInstance_getPlugs()" << endl; METHOD_HEAD ( "Instance.getPlugs()" ) @@ -221,7 +221,7 @@ extern "C" { static PyObject* PyInstance_getConnectedPlugs(PyInstance *self) { - trace << "PyInstance_getConnectedPlugs ()" << endl; + cdebug.log(20) << "PyInstance_getConnectedPlugs ()" << endl; METHOD_HEAD ( "Instance.getConnectedPlugs()") @@ -244,7 +244,7 @@ extern "C" { static PyObject* PyInstance_getUnconnectedPlugs(PyInstance *self) { - trace << "PyInstance_getUnconnectedPlugs ()" << endl; + cdebug.log(20) << "PyInstance_getUnconnectedPlugs ()" << endl; METHOD_HEAD ( "Instance.getUnconnectedPlugs()") @@ -267,7 +267,7 @@ extern "C" { static PyObject* PyInstance_getAbutmentBox ( PyInstance *self ) { - trace << "PyInstance_getAbutmentBox ()" << endl; + cdebug.log(20) << "PyInstance_getAbutmentBox ()" << endl; METHOD_HEAD ( "Instance.getAbutmentBox()" ) PyBox* pyBox = PyObject_NEW ( PyBox, &PyTypeBox ); @@ -283,7 +283,7 @@ extern "C" { static PyObject* PyInstance_uniquify ( PyInstance *self ) { - trace << "PyInstance_uniquify ()" << endl; + cdebug.log(20) << "PyInstance_uniquify ()" << endl; HTRY METHOD_HEAD ( "Instance.uniquify()" ) @@ -295,7 +295,7 @@ extern "C" { static PyObject* PyInstance_slaveAbutmentBox ( PyInstance *self ) { - trace << "PyInstance_slaveAbutmentBox ()" << endl; + cdebug.log(20) << "PyInstance_slaveAbutmentBox ()" << endl; METHOD_HEAD ( "Instance.slaveAbutmentBox()" ) HTRY @@ -309,7 +309,7 @@ extern "C" { static PyObject* PyInstance_getClone ( PyInstance *self, PyObject* args ) { - trace << "PyInstance_getClone ()" << endl; + cdebug.log(20) << "PyInstance_getClone ()" << endl; Instance* cloneInstance = NULL; HTRY @@ -332,7 +332,7 @@ extern "C" { static PyObject* PyInstance_setTransformation ( PyInstance *self, PyObject* args ) { - trace << "PyInstance_setTransformation()" << endl; + cdebug.log(20) << "PyInstance_setTransformation()" << endl; METHOD_HEAD ( "Instance.setTransformation()" ) HTRY @@ -348,7 +348,7 @@ extern "C" { static PyObject* PyInstance_setMasterCell ( PyInstance *self, PyObject* args ) { - trace << "Instance.setMasterCell()" << endl; + cdebug.log(20) << "Instance.setMasterCell()" << endl; METHOD_HEAD ( "Instance.setMasterCell()" ) HTRY diff --git a/hurricane/src/isobar/PyInterval.cpp b/hurricane/src/isobar/PyInterval.cpp index 5f99e972..cb9edc56 100644 --- a/hurricane/src/isobar/PyInterval.cpp +++ b/hurricane/src/isobar/PyInterval.cpp @@ -54,7 +54,7 @@ extern "C" { // Class Method : "PyInterval_NEW ()" static PyObject* PyInterval_NEW (PyObject *module, PyObject *args) { - trace << "PyInterval_NEW()" << endl; + cdebug.log(20) << "PyInterval_NEW()" << endl; Interval* interval = NULL; @@ -85,13 +85,13 @@ extern "C" { static int PyInterval_Init ( PyInterval* self, PyObject* args, PyObject* kwargs ) { - trace << "PyInterval_Init(): " << (void*)self << endl; + cdebug.log(20) << "PyInterval_Init(): " << (void*)self << endl; return 0; } static PyObject* PyInterval_getUnion ( PyInterval *self, PyObject* args ) { - trace << "PyInterval_getUnion()" << endl; + cdebug.log(20) << "PyInterval_getUnion()" << endl; METHOD_HEAD ( "Interval.getUnion()" ) @@ -110,7 +110,7 @@ extern "C" { static PyObject* PyInterval_getIntersection ( PyInterval *self, PyObject* args ) { - trace << "PyInterval_getIntersection()" << endl; + cdebug.log(20) << "PyInterval_getIntersection()" << endl; METHOD_HEAD ( "Interval.getIntersection()" ) @@ -129,7 +129,7 @@ extern "C" { static PyObject* PyInterval_contains ( PyInterval *self, PyObject* args ) { - trace << "PyInterval_contains ()" << endl; + cdebug.log(20) << "PyInterval_contains ()" << endl; METHOD_HEAD( "Interval.contains()" ) @@ -155,7 +155,7 @@ extern "C" { static PyObject* PyInterval_intersect ( PyInterval *self, PyObject* args ) { - trace << "PyInterval_intersect ()" << endl; + cdebug.log(20) << "PyInterval_intersect ()" << endl; bool result = false; HTRY @@ -176,7 +176,7 @@ extern "C" { static PyObject* PyInterval_makeEmpty ( PyInterval *self, PyObject* args ) { - trace << "PyInterval_makeEmpty ()" << endl; + cdebug.log(20) << "PyInterval_makeEmpty ()" << endl; METHOD_HEAD( "Interval.makeEmpty()" ) interval->makeEmpty(); @@ -187,7 +187,7 @@ extern "C" { static PyObject* PyInterval_inflate ( PyInterval *self, PyObject* args ) { - trace << "PyInterval_inflate ()" << endl; + cdebug.log(20) << "PyInterval_inflate ()" << endl; METHOD_HEAD( "Interval.inflate()" ) @@ -213,7 +213,7 @@ extern "C" { static PyObject* PyInterval_merge ( PyInterval *self, PyObject* args ) { - trace << "PyInterval_merge ()" << endl; + cdebug.log(20) << "PyInterval_merge ()" << endl; METHOD_HEAD( "Interval.merge()" ) @@ -239,7 +239,7 @@ extern "C" { static PyObject* PyInterval_intersection ( PyInterval *self, PyObject* args ) { - trace << "PyInterval_intersection ()" << endl; + cdebug.log(20) << "PyInterval_intersection ()" << endl; METHOD_HEAD( "Interval.intersection()" ) @@ -265,7 +265,7 @@ extern "C" { static PyObject* PyInterval_translate ( PyInterval *self, PyObject* args ) { - trace << "PyInterval_translate ()" << endl; + cdebug.log(20) << "PyInterval_translate ()" << endl; HTRY METHOD_HEAD( "Interval.translate()" ) diff --git a/hurricane/src/isobar/PyLayer.cpp b/hurricane/src/isobar/PyLayer.cpp index b7930134..eeb06238 100644 --- a/hurricane/src/isobar/PyLayer.cpp +++ b/hurricane/src/isobar/PyLayer.cpp @@ -51,7 +51,7 @@ extern "C" { # define accessorDbuFromOptBasicLayer(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - trace << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ DbU::Unit rvalue = 0; \ \ @@ -85,7 +85,7 @@ extern "C" { # define accessorLayerFromLayer(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - trace << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ Layer* rlayer = 0; \ \ @@ -116,7 +116,7 @@ extern "C" { # define accessorMaskFromVoid(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self ) \ { \ - trace << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ Layer::Mask mask = 0; \ \ @@ -132,7 +132,7 @@ extern "C" { # define accessorLayerFromOptBool(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - trace << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ Layer* rlayer = NULL; \ \ @@ -162,7 +162,7 @@ extern "C" { # define predicateFromVoid(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self ) \ { \ - trace << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ HTRY \ GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#SELF_TYPE"."#FUNC_NAME"()") \ @@ -176,7 +176,7 @@ extern "C" { # define updatorFromDbu(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - trace << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ HTRY \ GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#SELF_TYPE"."#FUNC_NAME"()") \ @@ -199,7 +199,7 @@ extern "C" { # define updatorFromBasicLayerDbu(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - trace << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ HTRY \ GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#SELF_TYPE"."#FUNC_NAME"()") \ @@ -227,7 +227,7 @@ extern "C" { static PyObject* PyLayer_getTechnology ( PyLayer *self ) { - trace << "PyLayer_getTechnology ()" << endl; + cdebug.log(20) << "PyLayer_getTechnology ()" << endl; Technology* techno = NULL; diff --git a/hurricane/src/isobar/PyLayerMask.cpp b/hurricane/src/isobar/PyLayerMask.cpp index 1de221f0..f0006768 100644 --- a/hurricane/src/isobar/PyLayerMask.cpp +++ b/hurricane/src/isobar/PyLayerMask.cpp @@ -106,7 +106,7 @@ extern "C" { static PyObject* PyLayerMask_new ( PyTypeObject* type, PyObject* args, PyObject* kwds ) { - trace << "PyLayerMask_new()" << endl; + cdebug.log(20) << "PyLayerMask_new()" << endl; PyLayerMask* pyMask = (PyLayerMask*)type->tp_alloc(type,0); @@ -287,7 +287,7 @@ extern "C" { static void PyLayerMask_DeAlloc ( PyLayerMask *self ) { - trace << "PyLayerMask_DeAlloc(" << hex << self << ") " << self->_object << endl; + cdebug.log(20) << "PyLayerMask_DeAlloc(" << hex << self << ") " << self->_object << endl; PyObject_DEL ( self ); } @@ -312,7 +312,7 @@ extern "C" { extern void PyLayerMask_LinkPyType() { - trace << "PyLayerMask_LinkType()" << endl; + cdebug.log(20) << "PyLayerMask_LinkType()" << endl; PyTypeLayerMask.tp_new = PyLayerMask_new; PyTypeLayerMask.tp_dealloc = (destructor) PyLayerMask_DeAlloc; diff --git a/hurricane/src/isobar/PyLibrary.cpp b/hurricane/src/isobar/PyLibrary.cpp index e45ae5a0..f172767b 100644 --- a/hurricane/src/isobar/PyLibrary.cpp +++ b/hurricane/src/isobar/PyLibrary.cpp @@ -40,7 +40,7 @@ extern "C" { static PyObject* PyLibrary_create ( PyObject *, PyObject *args ) { - trace << "PyLibrary_create()" << endl; + cdebug.log(20) << "PyLibrary_create()" << endl; PyObject* arg0; PyObject* arg1; @@ -69,7 +69,7 @@ extern "C" { static PyObject* PyLibrary_getSubLibrary ( PyLibrary *self, PyObject* args ) { - trace << "PyLibrary_getLibrary ()" << endl; + cdebug.log(20) << "PyLibrary_getLibrary ()" << endl; Library* subLibrary = NULL; @@ -89,7 +89,7 @@ extern "C" { static PyObject* PyLibrary_getCell ( PyLibrary* self, PyObject* args ) { - trace << "PyLibrary_getCell ()" << endl; + cdebug.log(20) << "PyLibrary_getCell ()" << endl; Cell* cell = NULL; @@ -109,7 +109,7 @@ extern "C" { static PyObject* PyLibrary_getCells(PyLibrary *self) { - trace << "PyLibrary_getCells()" << endl; + cdebug.log(20) << "PyLibrary_getCells()" << endl; METHOD_HEAD ( "Library.getCells()" ) diff --git a/hurricane/src/isobar/PyMaterial.cpp b/hurricane/src/isobar/PyMaterial.cpp index d938341a..98f0e563 100644 --- a/hurricane/src/isobar/PyMaterial.cpp +++ b/hurricane/src/isobar/PyMaterial.cpp @@ -71,7 +71,7 @@ extern "C" { static PyObject* PyMaterial_new ( PyTypeObject* type, PyObject* args, PyObject* kwds ) { - trace << "PyMaterial_new()" << endl; + cdebug.log(20) << "PyMaterial_new()" << endl; BasicLayer::Material* material = NULL; PyMaterial* pyMaterial = (PyMaterial*)type->tp_alloc(type,0); @@ -101,7 +101,7 @@ extern "C" { PyObject* PyMaterial_getCode ( PyMaterial* self ) { - trace << "PyMaterial_getCode()" << endl; + cdebug.log(20) << "PyMaterial_getCode()" << endl; int code = 0; @@ -146,7 +146,7 @@ extern "C" { DirectDeleteMethod(PyMaterial_DeAlloc, PyMaterial) extern void PyMaterial_LinkPyType() { - trace << "PyMaterial_LinkType()" << endl; + cdebug.log(20) << "PyMaterial_LinkType()" << endl; PyTypeMaterial.tp_new = PyMaterial_new; PyTypeMaterial.tp_dealloc = (destructor) PyMaterial_DeAlloc; diff --git a/hurricane/src/isobar/PyNet.cpp b/hurricane/src/isobar/PyNet.cpp index 010b2108..b1b08d5a 100644 --- a/hurricane/src/isobar/PyNet.cpp +++ b/hurricane/src/isobar/PyNet.cpp @@ -127,7 +127,7 @@ extern "C" { // Attribute Method : "PyNet_create ()" static PyObject* PyNet_create ( PyObject*, PyObject *args ) { - trace << "PyNet_create()" << endl; + cdebug.log(20) << "PyNet_create()" << endl; char* name = NULL; PyCell* pyCell = NULL; @@ -151,7 +151,7 @@ extern "C" { static PyObject* PyNet_getType ( PyNet *self ) { - trace << "PyNet_getType ()" << endl; + cdebug.log(20) << "PyNet_getType ()" << endl; METHOD_HEAD ( "Net.getType()" ) @@ -165,7 +165,7 @@ extern "C" { static PyObject* PyNet_getDirection ( PyNet *self ) { - trace << "PyNet_getDirection ()" << endl; + cdebug.log(20) << "PyNet_getDirection ()" << endl; METHOD_HEAD ( "Net.getDirection()" ) @@ -177,7 +177,7 @@ extern "C" { // Attribute Method : "PyNet_getPlugs()" static PyObject* PyNet_getPlugs(PyNet *self) { - trace << "PyNet_getPlugs()" << endl; + cdebug.log(20) << "PyNet_getPlugs()" << endl; METHOD_HEAD("Net.getPlugs()") @@ -202,7 +202,7 @@ extern "C" { // Attribute Method : "PyNet_getSegments()" static PyObject* PyNet_getSegments(PyNet *self) { - trace << "PyNet_getSegments()" << endl; + cdebug.log(20) << "PyNet_getSegments()" << endl; METHOD_HEAD ("Net.getSegments()") @@ -227,7 +227,7 @@ extern "C" { // Attribute Method : "PyNet_getPins()" static PyObject* PyNet_getPins(PyNet *self) { - trace << "PyNet_getPins()" << endl; + cdebug.log(20) << "PyNet_getPins()" << endl; METHOD_HEAD ("Net.getPins()") @@ -252,7 +252,7 @@ extern "C" { // Attribute Method : "PyNet_getComponents()" static PyObject* PyNet_getComponents(PyNet *self) { - trace << "PyNet_getComponents()" << endl; + cdebug.log(20) << "PyNet_getComponents()" << endl; METHOD_HEAD ( "Net.getComponents()" ) @@ -275,7 +275,7 @@ extern "C" { // Attribute Method : "PyNet_getExternalComponents()" static PyObject* PyNet_getExternalComponents(PyNet *self) { - trace << "PyNet_getExternalComponents()" << endl; + cdebug.log(20) << "PyNet_getExternalComponents()" << endl; METHOD_HEAD ( "Net.getExternalcomponents()" ) @@ -304,7 +304,7 @@ extern "C" { // Attribute Method : "PyNet_setGlobal ()" static PyObject* PyNet_setGlobal ( PyNet *self, PyObject* args ) { - trace << "PyNet_setGlobal()" << endl; + cdebug.log(20) << "PyNet_setGlobal()" << endl; HTRY METHOD_HEAD ( "Net.setGlobal()" ) @@ -326,7 +326,7 @@ extern "C" { // Attribute Method : "PyNet_setExternal ()" static PyObject* PyNet_setExternal ( PyNet *self, PyObject* args ) { - trace << "PyNet_setExternal()" << endl; + cdebug.log(20) << "PyNet_setExternal()" << endl; HTRY METHOD_HEAD ( "Net.setExternal()" ) @@ -349,7 +349,7 @@ extern "C" { static PyObject* PyNet_setType ( PyNet *self, PyObject* args ) { - trace << "PyNet_setType()" << endl; + cdebug.log(20) << "PyNet_setType()" << endl; HTRY @@ -375,7 +375,7 @@ extern "C" { static PyObject* PyNet_setDirection ( PyNet *self, PyObject* args ) { - trace << "PyNet_setDirection()" << endl; + cdebug.log(20) << "PyNet_setDirection()" << endl; HTRY @@ -397,7 +397,7 @@ extern "C" { static PyObject* PyNet_addAlias ( PyNet *self, PyObject* args ) { - trace << "PyNet_addAlias()" << endl; + cdebug.log(20) << "PyNet_addAlias()" << endl; HTRY METHOD_HEAD ( "Net.addAlias()" ) @@ -421,7 +421,7 @@ extern "C" { static PyObject* PyNet_removeAlias ( PyNet *self, PyObject* args ) { - trace << "PyNet_removeAlias()" << endl; + cdebug.log(20) << "PyNet_removeAlias()" << endl; HTRY METHOD_HEAD ( "Net.removeAlias()" ) @@ -445,7 +445,7 @@ extern "C" { static PyObject* PyNet_setPosition ( PyNet *self, PyObject* args ) { - trace << "PyNet_setPosition()" << endl; + cdebug.log(20) << "PyNet_setPosition()" << endl; HTRY @@ -466,7 +466,7 @@ extern "C" { // Attribute Method : "PyNet_merge ()" static PyObject* PyNet_merge ( PyNet *self, PyObject* args ) { - trace << "PyNet_merge()" << endl; + cdebug.log(20) << "PyNet_merge()" << endl; HTRY PyNet* pyNetToMerge; @@ -486,7 +486,7 @@ extern "C" { // Attribute Method : "PyNet_merge ()" static PyObject* PyNet_getClone ( PyNet *self, PyObject* args ) { - trace << "PyNet_getClone()" << endl; + cdebug.log(20) << "PyNet_getClone()" << endl; Net* cloneNet = NULL; HTRY diff --git a/hurricane/src/isobar/PyNetDirection.cpp b/hurricane/src/isobar/PyNetDirection.cpp index 34348e8a..062eef15 100644 --- a/hurricane/src/isobar/PyNetDirection.cpp +++ b/hurricane/src/isobar/PyNetDirection.cpp @@ -24,7 +24,6 @@ namespace Isobar { using std::hex; using std::ostringstream; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::Error; using Hurricane::Warning; using Isobar::ProxyProperty; @@ -69,7 +68,7 @@ extern "C" { DirectHashMethod(PyNetDirection_Hash, PyNetDirection) extern void PyNetDirection_LinkPyType() { - trace << "PyNetDirection_LinkType()" << endl; + cdebug.log(20) << "PyNetDirection_LinkType()" << endl; PyTypeNetDirection.tp_dealloc = (destructor) PyNetDirection_DeAlloc; PyTypeNetDirection.tp_compare = (cmpfunc) PyNetDirection_Cmp; PyTypeNetDirection.tp_repr = (reprfunc) PyNetDirection_Repr; diff --git a/hurricane/src/isobar/PyNetExternalComponents.cpp b/hurricane/src/isobar/PyNetExternalComponents.cpp index 7363b42e..6ef26487 100644 --- a/hurricane/src/isobar/PyNetExternalComponents.cpp +++ b/hurricane/src/isobar/PyNetExternalComponents.cpp @@ -39,13 +39,13 @@ extern "C" { static void PyNetExternalComponents_DeAlloc ( PyNetExternalComponents* self ) { - trace << "PySingletonObject_DeAlloc(" << hex << self << ")" << endl; + cdebug.log(20) << "PySingletonObject_DeAlloc(" << hex << self << ")" << endl; } static PyObject* PyNetExternalComponents_isExternal ( PyObject*, PyObject *args ) { - trace << "PyNetExternalComponents_isExternal()" << endl; + cdebug.log(20) << "PyNetExternalComponents_isExternal()" << endl; bool isExternal = false; @@ -63,7 +63,7 @@ extern "C" { static PyObject* PyNetExternalComponents_setExternal ( PyObject*, PyObject *args ) { - trace << "PyNetExternalComponents_setExternal()" << endl; + cdebug.log(20) << "PyNetExternalComponents_setExternal()" << endl; HTRY PyObject* pyComponent; @@ -85,7 +85,7 @@ extern "C" { static PyObject* PyNetExternalComponents_get ( PyObject*, PyObject* args ) { - trace << "PyNetExternalComponents_getExternalComponents()" << endl; + cdebug.log(20) << "PyNetExternalComponents_getExternalComponents()" << endl; PyObject* arg0; @@ -123,7 +123,7 @@ extern "C" { // extern void PyNetExternalComponents_LinkPyType() // { - // trace << "PyNetExternalComponents_LinkType()" << endl; + // cdebug.log(20) << "PyNetExternalComponents_LinkType()" << endl; // PyTypeNetExternalComponents.tp_new = (newfunc) PyType_GenericNew; // PyTypeNetExternalComponents.tp_dealloc = (destructor)PyNetExternalComponents_DeAlloc; diff --git a/hurricane/src/isobar/PyNetType.cpp b/hurricane/src/isobar/PyNetType.cpp index 1bf5ebe0..6d181d5d 100644 --- a/hurricane/src/isobar/PyNetType.cpp +++ b/hurricane/src/isobar/PyNetType.cpp @@ -24,7 +24,6 @@ namespace Isobar { using std::hex; using std::ostringstream; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::Error; using Hurricane::Warning; using Isobar::ProxyProperty; @@ -68,7 +67,7 @@ extern "C" { DirectHashMethod(PyNetType_Hash, PyNetType) extern void PyNetType_LinkPyType() { - trace << "PyNetType_LinkType()" << endl; + cdebug.log(20) << "PyNetType_LinkType()" << endl; PyTypeNetType.tp_dealloc = (destructor) PyNetType_DeAlloc; PyTypeNetType.tp_compare = (cmpfunc) PyNetType_Cmp; PyTypeNetType.tp_repr = (reprfunc) PyNetType_Repr; diff --git a/hurricane/src/isobar/PyOccurrence.cpp b/hurricane/src/isobar/PyOccurrence.cpp index 247df72e..df0393f5 100644 --- a/hurricane/src/isobar/PyOccurrence.cpp +++ b/hurricane/src/isobar/PyOccurrence.cpp @@ -62,7 +62,7 @@ extern "C" { // Attribute Method : "PyOccurrence_NEW ()" PyObject* PyOccurrence_NEW ( PyObject *module, PyObject *args ) { - trace << "PyOccurrence_NEW()" << endl; + cdebug.log(20) << "PyOccurrence_NEW()" << endl; Occurrence* occurrence; PyObject* arg0; @@ -102,7 +102,7 @@ extern "C" { static int PyOccurrence_Init ( PyOccurrence* self, PyObject* args, PyObject* kwargs ) { - trace << "PyOccurrence_Init(): " << (void*)self << endl; + cdebug.log(20) << "PyOccurrence_Init(): " << (void*)self << endl; return 0; } @@ -111,7 +111,7 @@ extern "C" { // Attribute Method : "PyOccurrence_getEntity ()" static PyObject* PyOccurrence_getEntity ( PyOccurrence *self ) { - trace << "PyOccurrence_getEntity()" << endl; + cdebug.log(20) << "PyOccurrence_getEntity()" << endl; METHOD_HEAD ( "Occurrence.getEntity()" ) @@ -133,7 +133,7 @@ extern "C" { // Attribute Method : "PyOccurrence_getOwnerCell ()" static PyObject* PyOccurrence_getOwnerCell ( PyOccurrence *self ) { - trace << "PyOccurrence_getOwnerCell()" << endl; + cdebug.log(20) << "PyOccurrence_getOwnerCell()" << endl; METHOD_HEAD ( "Occurernce.getOwnerCell()" ) @@ -152,7 +152,7 @@ extern "C" { static PyObject* PyOccurrence_getMasterCell ( PyOccurrence *self ) { - trace << "PyOccurrence_getMasterCell()" << endl; + cdebug.log(20) << "PyOccurrence_getMasterCell()" << endl; METHOD_HEAD ( "Occurrence.getMasterCell()" ) @@ -171,7 +171,7 @@ extern "C" { static PyObject* PyOccurrence_getPath ( PyOccurrence *self ) { - trace << "PyOccurrence_getPath ()" << endl; + cdebug.log(20) << "PyOccurrence_getPath ()" << endl; METHOD_HEAD ( "Occurrence.getPath()" ) @@ -197,7 +197,7 @@ extern "C" { static PyObject* PyOccurrence_getBoundingBox ( PyOccurrence *self ) { - trace << "PyOccurrence_getBoundingBox ()" << endl; + cdebug.log(20) << "PyOccurrence_getBoundingBox ()" << endl; METHOD_HEAD ( "Occurrence.getBoundingBox()" ) diff --git a/hurricane/src/isobar/PyOrientation.cpp b/hurricane/src/isobar/PyOrientation.cpp index a028ff95..b9f05dc0 100644 --- a/hurricane/src/isobar/PyOrientation.cpp +++ b/hurricane/src/isobar/PyOrientation.cpp @@ -24,7 +24,6 @@ namespace Isobar { using std::hex; using std::ostringstream; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::Error; using Hurricane::Warning; using Isobar::ProxyProperty; @@ -73,7 +72,7 @@ extern "C" { DirectHashMethod(PyOrientation_Hash, PyOrientation) extern void PyOrientation_LinkPyType() { - trace << "PyOrientation_LinkType()" << endl; + cdebug.log(20) << "PyOrientation_LinkType()" << endl; PyTypeOrientation.tp_dealloc = (destructor) PyOrientation_DeAlloc; PyTypeOrientation.tp_compare = (cmpfunc) PyOrientation_Cmp; PyTypeOrientation.tp_repr = (reprfunc) PyOrientation_Repr; diff --git a/hurricane/src/isobar/PyPad.cpp b/hurricane/src/isobar/PyPad.cpp index f7e9ef68..8306686e 100644 --- a/hurricane/src/isobar/PyPad.cpp +++ b/hurricane/src/isobar/PyPad.cpp @@ -57,7 +57,7 @@ extern "C" { // Attribute Method : "PyPad_create ()" static PyObject* PyPad_create ( PyObject*, PyObject *args ) { - trace << "PyPad_create()" << endl; + cdebug.log(20) << "PyPad_create()" << endl; PyObject* arg0; PyObject* arg1; @@ -91,7 +91,7 @@ extern "C" { // Attribute Method : "PyPad_getBoundingBox ()" static PyObject* PyPad_getBoundingBox( PyPad *self ) { - trace << "PyPad_getBoundingBox()" << endl; + cdebug.log(20) << "PyPad_getBoundingBox()" << endl; METHOD_HEAD ( "Pad.BoundingBox()" ) @@ -109,7 +109,7 @@ extern "C" { // Attribute Method : "PyPad_setBoudingBox()" static PyObject* PyPad_setBoundingBox(PyPad *self, PyObject* args) { - trace << "Pad.setBoudingBox()" << endl; + cdebug.log(20) << "Pad.setBoudingBox()" << endl; HTRY METHOD_HEAD ( "Pad.setBoudingBox()" ) @@ -129,7 +129,7 @@ extern "C" { // Attribute Method : "PyPad_translate ()" static PyObject* PyPad_translate ( PyPad *self, PyObject* args ) { - trace << "PyPad_translate ()" << endl; + cdebug.log(20) << "PyPad_translate ()" << endl; HTRY METHOD_HEAD ( "Pad.translate()" ) diff --git a/hurricane/src/isobar/PyPath.cpp b/hurricane/src/isobar/PyPath.cpp index 859bd028..f7ba620b 100644 --- a/hurricane/src/isobar/PyPath.cpp +++ b/hurricane/src/isobar/PyPath.cpp @@ -58,7 +58,7 @@ extern "C" { // Attribute Method : "PyPath_NEW ()" static PyObject* PyPath_NEW ( PyObject *module, PyObject *args ) { - trace << "PyPath_NEW()" << endl; + cdebug.log(20) << "PyPath_NEW()" << endl; Path* path = NULL; PyObject* arg0 = NULL; @@ -102,7 +102,7 @@ extern "C" { static int PyPath_Init ( PyPath* self, PyObject* args, PyObject* kwargs ) { - trace << "PyPath_Init(): " << (void*)self << endl; + cdebug.log(20) << "PyPath_Init(): " << (void*)self << endl; return 0; } @@ -111,7 +111,7 @@ extern "C" { // Attribute Method : "PyPath_getHeadInstance ()" static PyObject* PyPath_getHeadInstance ( PyPath *self ) { - trace << "PyPath_getHeadInstance()" << endl; + cdebug.log(20) << "PyPath_getHeadInstance()" << endl; METHOD_HEAD ( "Path.getHeadInstance()" ) @@ -129,7 +129,7 @@ extern "C" { // Attribute Method : "PyPath_getTailInstance ()" static PyObject* PyPath_getTailInstance ( PyPath *self ) { - trace << "PyPath_getTailInstance()" << endl; + cdebug.log(20) << "PyPath_getTailInstance()" << endl; METHOD_HEAD ( "Path.getTailInstance()" ) @@ -147,7 +147,7 @@ extern "C" { // Attribute Method : "PyPath_getOwnerCell ()" static PyObject* PyPath_getOwnerCell ( PyPath *self ) { - trace << "PyPath_getOwnerCell()" << endl; + cdebug.log(20) << "PyPath_getOwnerCell()" << endl; METHOD_HEAD ( "Path.getOwnerCell()" ) @@ -165,7 +165,7 @@ extern "C" { // Attribute Method : "PyPath_getMasterCell ()" static PyObject* PyPath_getMasterCell ( PyPath *self ) { - trace << "PyPath_getMasterCell()" << endl; + cdebug.log(20) << "PyPath_getMasterCell()" << endl; METHOD_HEAD ( "Path.getMasterCell()" ) @@ -190,7 +190,7 @@ extern "C" { static PyObject* PyPath_getHeadPath ( PyPath *self ) { - trace << "PyPath_getHeadPath ()" << endl; + cdebug.log(20) << "PyPath_getHeadPath ()" << endl; METHOD_HEAD ( "Path.getHeadPath()" ) @@ -211,7 +211,7 @@ extern "C" { static PyObject* PyPath_getTailPath ( PyPath *self ) { - trace << "PyPath_getTailPath ()" << endl; + cdebug.log(20) << "PyPath_getTailPath ()" << endl; METHOD_HEAD ( "Path.getTailPath()" ) @@ -231,7 +231,7 @@ extern "C" { static PyObject* PyPath_getTransformation ( PyPath *self, PyObject* args ) { - trace << "PyPath_getTransformation ()" << endl; + cdebug.log(20) << "PyPath_getTransformation ()" << endl; METHOD_HEAD ( "Instance.getTransformation()" ); @@ -263,7 +263,7 @@ extern "C" { static PyObject* PyPath_getInstances(PyPath *self) { - trace << "PyPath_getInstances()" << endl; + cdebug.log(20) << "PyPath_getInstances()" << endl; METHOD_HEAD ( "Path.getInstances()" ) diff --git a/hurricane/src/isobar/PyPin.cpp b/hurricane/src/isobar/PyPin.cpp index f713d392..6cfe21b6 100644 --- a/hurricane/src/isobar/PyPin.cpp +++ b/hurricane/src/isobar/PyPin.cpp @@ -79,7 +79,7 @@ extern "C" { HTRY - trace << "PyPin_create()" << endl; + cdebug.log(20) << "PyPin_create()" << endl; PyObject* arg0; PyObject* arg1; PyObject* arg2; @@ -152,7 +152,7 @@ extern "C" { // Standart Accessors (Attributes). PyObject* PyPin_getAccessDirection( PyPin* self ) { - trace << "PyNet_getAccessDirection ()" << endl; + cdebug.log(20) << "PyNet_getAccessDirection ()" << endl; METHOD_HEAD ( "Net.getAccessDirection()" ) diff --git a/hurricane/src/isobar/PyPinDirection.cpp b/hurricane/src/isobar/PyPinDirection.cpp index ead2a96e..dbc59023 100644 --- a/hurricane/src/isobar/PyPinDirection.cpp +++ b/hurricane/src/isobar/PyPinDirection.cpp @@ -24,7 +24,6 @@ namespace Isobar { using std::hex; using std::ostringstream; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::Error; using Hurricane::Warning; using Isobar::ProxyProperty; @@ -69,7 +68,7 @@ extern "C" { DirectHashMethod(PyPinDirection_Hash, PyPinDirection) extern void PyPinDirection_LinkPyType() { - trace << "PyPinDirection_LinkType()" << endl; + cdebug.log(20) << "PyPinDirection_LinkType()" << endl; PyTypePinDirection.tp_dealloc = (destructor) PyPinDirection_DeAlloc; PyTypePinDirection.tp_compare = (cmpfunc) PyPinDirection_Cmp; PyTypePinDirection.tp_repr = (reprfunc) PyPinDirection_Repr; diff --git a/hurricane/src/isobar/PyPinPlacementStatus.cpp b/hurricane/src/isobar/PyPinPlacementStatus.cpp index 39c57756..a4e10380 100644 --- a/hurricane/src/isobar/PyPinPlacementStatus.cpp +++ b/hurricane/src/isobar/PyPinPlacementStatus.cpp @@ -24,7 +24,6 @@ namespace Isobar { using std::hex; using std::ostringstream; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::Error; using Hurricane::Warning; using Isobar::ProxyProperty; @@ -69,7 +68,7 @@ extern "C" { DirectHashMethod(PyPinPlacementStatus_Hash, PyPinPlacementStatus) extern void PyPinPlacementStatus_LinkPyType() { - trace << "PyPinPlacementStatus_LinkType()" << endl; + cdebug.log(20) << "PyPinPlacementStatus_LinkType()" << endl; PyTypePinPlacementStatus.tp_dealloc = (destructor) PyPinPlacementStatus_DeAlloc; PyTypePinPlacementStatus.tp_compare = (cmpfunc) PyPinPlacementStatus_Cmp; PyTypePinPlacementStatus.tp_repr = (reprfunc) PyPinPlacementStatus_Repr; diff --git a/hurricane/src/isobar/PyPlacementStatus.cpp b/hurricane/src/isobar/PyPlacementStatus.cpp index 73a6c9f7..ced50c59 100644 --- a/hurricane/src/isobar/PyPlacementStatus.cpp +++ b/hurricane/src/isobar/PyPlacementStatus.cpp @@ -24,7 +24,6 @@ namespace Isobar { using std::hex; using std::ostringstream; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::Error; using Hurricane::Warning; using Isobar::ProxyProperty; @@ -73,7 +72,7 @@ extern "C" { DirectHashMethod(PyPlacementStatus_Hash, PyPlacementStatus) extern void PyPlacementStatus_LinkPyType() { - trace << "PyPlacementStatus_LinkType()" << endl; + cdebug.log(20) << "PyPlacementStatus_LinkType()" << endl; PyTypePlacementStatus.tp_dealloc = (destructor) PyPlacementStatus_DeAlloc; PyTypePlacementStatus.tp_compare = (cmpfunc) PyPlacementStatus_Cmp; PyTypePlacementStatus.tp_repr = (reprfunc) PyPlacementStatus_Repr; diff --git a/hurricane/src/isobar/PyPlug.cpp b/hurricane/src/isobar/PyPlug.cpp index 9b1f0bbb..9644571c 100644 --- a/hurricane/src/isobar/PyPlug.cpp +++ b/hurricane/src/isobar/PyPlug.cpp @@ -94,7 +94,7 @@ extern "C" { static PyObject* PyPlug_getInstance ( PyPlug *self ) { - trace << "PyPlug_getInstance ()" << endl; + cdebug.log(20) << "PyPlug_getInstance ()" << endl; Instance* instance = NULL; @@ -112,7 +112,7 @@ extern "C" { static PyObject* PyPlug_getMasterNet ( PyPlug *self ) { - trace << "PyPlug_getMasterNet ()" << endl; + cdebug.log(20) << "PyPlug_getMasterNet ()" << endl; Net* net = NULL; @@ -130,7 +130,7 @@ extern "C" { // Attribute Method : "PyPlug_getNet ()" static PyObject* PyPlug_getNet ( PyPlug *self ) { - trace << "PyPlug_getNet ()" << endl; + cdebug.log(20) << "PyPlug_getNet ()" << endl; Net* net = NULL; @@ -149,7 +149,7 @@ extern "C" { // Attribute Method : "PyPlug_setNet ()" static PyObject* PyPlug_setNet ( PyPlug *self, PyObject* args ) { - trace << "PyPlug_setNet()" << endl; + cdebug.log(20) << "PyPlug_setNet()" << endl; HTRY diff --git a/hurricane/src/isobar/PyPoint.cpp b/hurricane/src/isobar/PyPoint.cpp index ec9247d5..9cb8cf62 100644 --- a/hurricane/src/isobar/PyPoint.cpp +++ b/hurricane/src/isobar/PyPoint.cpp @@ -44,7 +44,7 @@ extern "C" { static PyObject* PyPoint_NEW ( PyObject* module, PyObject *args ) { - trace << "PyPoint_NEW()" << endl; + cdebug.log(20) << "PyPoint_NEW()" << endl; Point* point; PyObject* arg0; @@ -81,7 +81,7 @@ extern "C" { static int PyPoint_Init ( PyPoint* self, PyObject* args, PyObject* kwargs ) { - trace << "PyPoint_Init(): " << (void*)self << endl; + cdebug.log(20) << "PyPoint_Init(): " << (void*)self << endl; return 0; } @@ -91,7 +91,7 @@ extern "C" { static PyObject* PyPoint_Translate ( PyPoint *self, PyObject* args ) { - trace << "PyPoint_Translate()" << endl; + cdebug.log(20) << "PyPoint_Translate()" << endl; HTRY diff --git a/hurricane/src/isobar/PyQuery.cpp b/hurricane/src/isobar/PyQuery.cpp index 9faf4c0b..5ccd5dbd 100644 --- a/hurricane/src/isobar/PyQuery.cpp +++ b/hurricane/src/isobar/PyQuery.cpp @@ -131,7 +131,7 @@ extern "C" { static PyObject* PyQuery_getMasterCell ( PyQuery *self ) { - trace << "PyQuery.getMasterCell()" << endl; + cdebug.log(20) << "PyQuery.getMasterCell()" << endl; Cell* cell = NULL; @@ -145,7 +145,7 @@ extern "C" { static PyObject* PyQuery_getInstance ( PyQuery *self ) { - trace << "PyQuery.getInstance()" << endl; + cdebug.log(20) << "PyQuery.getInstance()" << endl; Instance* instance = NULL; @@ -160,7 +160,7 @@ extern "C" { static PyObject* PyQuery_getPath ( PyQuery *self ) { - trace << "PyQuery_getPath ()" << endl; + cdebug.log(20) << "PyQuery_getPath ()" << endl; METHOD_HEAD( "PyQuery.getPath()" ) @@ -177,7 +177,7 @@ extern "C" { static PyObject* PyQuery_getTransformation ( PyQuery *self ) { - trace << "PyQuery_getTransformation ()" << endl; + cdebug.log(20) << "PyQuery_getTransformation ()" << endl; METHOD_HEAD( "PyQuery.getTransformation()" ) @@ -194,7 +194,7 @@ extern "C" { static PyObject* PyQuery_setCell ( PyQuery* self, PyObject* args ) { - trace << "PyQuery.setCell()" << endl; + cdebug.log(20) << "PyQuery.setCell()" << endl; METHOD_HEAD("PyQuery.setCell()") HTRY @@ -217,7 +217,7 @@ extern "C" { static PyObject* PyQuery_setFilter ( PyQuery* self, PyObject* args ) { - trace << "PyQuery.setFilter()" << endl; + cdebug.log(20) << "PyQuery.setFilter()" << endl; METHOD_HEAD("PyQuery.setFilter()") HTRY @@ -235,7 +235,7 @@ extern "C" { static PyObject* PyQuery_setArea ( PyQuery* self, PyObject* args ) { - trace << "PyQuery.setArea()" << endl; + cdebug.log(20) << "PyQuery.setArea()" << endl; METHOD_HEAD("PyQuery.setArea()") HTRY @@ -258,7 +258,7 @@ extern "C" { static PyObject* PyQuery_setTransformation ( PyQuery* self, PyObject* args ) { - trace << "PyQuery.setTransformation()" << endl; + cdebug.log(20) << "PyQuery.setTransformation()" << endl; METHOD_HEAD("PyQuery.setTransformation()") HTRY @@ -281,7 +281,7 @@ extern "C" { static PyObject* PyQuery_setBasicLayer ( PyQuery* self, PyObject* args ) { - trace << "PyQuery.setBasicLayer()" << endl; + cdebug.log(20) << "PyQuery.setBasicLayer()" << endl; METHOD_HEAD("PyQuery.setBasicLayer()") HTRY @@ -304,7 +304,7 @@ extern "C" { static PyObject* PyQuery_setMasterCellCallback ( PyQuery* self, PyObject* args ) { - trace << "PyQuery.setMasterCellCallback()" << endl; + cdebug.log(20) << "PyQuery.setMasterCellCallback()" << endl; METHOD_HEAD("PyQuery.setMasterCellCallback()") HTRY @@ -327,7 +327,7 @@ extern "C" { static PyObject* PyQuery_setGoCallback ( PyQuery* self, PyObject* args ) { - trace << "PyQuery.setGoCallback()" << endl; + cdebug.log(20) << "PyQuery.setGoCallback()" << endl; METHOD_HEAD("PyQuery.setGoCallback()") HTRY @@ -350,7 +350,7 @@ extern "C" { static PyObject* PyQuery_setMarkerCallback ( PyQuery* self, PyObject* args ) { - trace << "PyQuery.setMarkerCallback()" << endl; + cdebug.log(20) << "PyQuery.setMarkerCallback()" << endl; METHOD_HEAD("PyQuery.setMarkerCallback()") HTRY @@ -373,7 +373,7 @@ extern "C" { static PyObject* PyQuery_setRubberCallback ( PyQuery* self, PyObject* args ) { - trace << "PyQuery.setRubberCallback()" << endl; + cdebug.log(20) << "PyQuery.setRubberCallback()" << endl; METHOD_HEAD("PyQuery.setRubberCallback()") HTRY @@ -396,7 +396,7 @@ extern "C" { static PyObject* PyQuery_setExtensionGoCallback ( PyQuery* self, PyObject* args ) { - trace << "PyQuery.setExtensionGoCallback()" << endl; + cdebug.log(20) << "PyQuery.setExtensionGoCallback()" << endl; METHOD_HEAD("PyQuery.setExtensionGoCallback()") HTRY @@ -419,7 +419,7 @@ extern "C" { PyObject* PyQuery_NEW ( PyObject* module, PyObject* args ) { - trace << "PyQuery.new()" << endl; + cdebug.log(20) << "PyQuery.new()" << endl; BaseQuery* query = NULL; PyQuery* pyQuery = NULL; diff --git a/hurricane/src/isobar/PyQueryMask.cpp b/hurricane/src/isobar/PyQueryMask.cpp index a8c6eb5a..cca05c8e 100644 --- a/hurricane/src/isobar/PyQueryMask.cpp +++ b/hurricane/src/isobar/PyQueryMask.cpp @@ -106,7 +106,7 @@ extern "C" { static PyObject* PyQueryMask_new ( PyTypeObject* type, PyObject* args, PyObject* kwds ) { - trace << "PyQueryMask_new()" << endl; + cdebug.log(20) << "PyQueryMask_new()" << endl; PyQueryMask* pyMask = (PyQueryMask*)type->tp_alloc(type,0); @@ -287,7 +287,7 @@ extern "C" { static void PyQueryMask_DeAlloc ( PyQueryMask *self ) { - trace << "PyQueryMask_DeAlloc(" << hex << self << ") " << self->_object << endl; + cdebug.log(20) << "PyQueryMask_DeAlloc(" << hex << self << ") " << self->_object << endl; PyObject_DEL ( self ); } @@ -312,7 +312,7 @@ extern "C" { extern void PyQueryMask_LinkPyType() { - trace << "PyQueryMask_LinkType()" << endl; + cdebug.log(20) << "PyQueryMask_LinkType()" << endl; PyTypeQueryMask.tp_new = PyQueryMask_new; PyTypeQueryMask.tp_dealloc = (destructor) PyQueryMask_DeAlloc; diff --git a/hurricane/src/isobar/PyReference.cpp b/hurricane/src/isobar/PyReference.cpp index cf7d7afc..6f0bc833 100644 --- a/hurricane/src/isobar/PyReference.cpp +++ b/hurricane/src/isobar/PyReference.cpp @@ -55,7 +55,7 @@ extern "C" { // Attribute Method : "PyReference_create ()" PyObject* PyReference_create ( PyObject*, PyObject *args ) { - trace << "PyReference_create()" << endl; + cdebug.log(20) << "PyReference_create()" << endl; Reference* reference = NULL; PyObject* arg0; @@ -99,7 +99,7 @@ extern "C" { static PyObject* PyReference_getPoint ( PyReference *self ) { - trace << "PyReference_getPoint()" << endl; + cdebug.log(20) << "PyReference_getPoint()" << endl; METHOD_HEAD ( "Reference.getPoint()" ) @@ -118,7 +118,7 @@ extern "C" { // Attribute Method : "PyReference_getBoundingBox ()" static PyObject* PyReference_getBoundingBox( PyReference *self ) { - trace << "PyReference_getBoundingBox()" << endl; + cdebug.log(20) << "PyReference_getBoundingBox()" << endl; METHOD_HEAD ( "Reference.BoundingBox()" ) @@ -138,7 +138,7 @@ extern "C" { // Attribute Method : "PyReference_translate ()" static PyObject* PyReference_translate ( PyReference *self, PyObject* args ) { - trace << "PyReference_translate ()" << endl; + cdebug.log(20) << "PyReference_translate ()" << endl; METHOD_HEAD ( "Reference.translate()" ) diff --git a/hurricane/src/isobar/PyRegularLayer.cpp b/hurricane/src/isobar/PyRegularLayer.cpp index f4de6424..da658866 100644 --- a/hurricane/src/isobar/PyRegularLayer.cpp +++ b/hurricane/src/isobar/PyRegularLayer.cpp @@ -77,7 +77,7 @@ extern "C" { static PyObject* PyRegularLayer_create ( PyObject*, PyObject* args ) { - trace << "PyRegularLayer_create()" << endl; + cdebug.log(20) << "PyRegularLayer_create()" << endl; RegularLayer* regularLayer = NULL; diff --git a/hurricane/src/isobar/PyRoutingPad.cpp b/hurricane/src/isobar/PyRoutingPad.cpp index 149deba9..10be82a4 100644 --- a/hurricane/src/isobar/PyRoutingPad.cpp +++ b/hurricane/src/isobar/PyRoutingPad.cpp @@ -62,7 +62,7 @@ extern "C" { static PyObject* PyRoutingPad_create ( PyObject*, PyObject* args ) { - trace << "PyRoutingPad_create()" << endl; + cdebug.log(20) << "PyRoutingPad_create()" << endl; PyObject* arg0 = NULL; PyObject* arg1 = NULL; @@ -96,7 +96,7 @@ extern "C" { static PyObject* PyRoutingPad_getOccurrence ( PyRoutingPad *self ) { - trace << "PyRoutingPad_getOccurrence ()" << endl; + cdebug.log(20) << "PyRoutingPad_getOccurrence ()" << endl; METHOD_HEAD( "Component.getOccurrence()" ) PyOccurrence* pyOccurrence = PyObject_NEW(PyOccurrence, &PyTypeOccurrence); @@ -112,7 +112,7 @@ extern "C" { static PyObject* PyRoutingPad_getPlugOccurrence ( PyRoutingPad *self ) { - trace << "PyRoutingPad_getPlugOccurrence ()" << endl; + cdebug.log(20) << "PyRoutingPad_getPlugOccurrence ()" << endl; METHOD_HEAD( "Component.getPlugOccurrence()" ) PyOccurrence* pyOccurrence = PyObject_NEW(PyOccurrence, &PyTypeOccurrence); @@ -128,7 +128,7 @@ extern "C" { static PyObject* PyRoutingPad_getSourcePosition ( PyRoutingPad *self ) { - trace << "PyRoutingPad_getSourcePosition ()" << endl; + cdebug.log(20) << "PyRoutingPad_getSourcePosition ()" << endl; METHOD_HEAD( "Component.getSourcePosition()" ) PyPoint* pyPoint = PyObject_NEW( PyPoint, &PyTypePoint ); @@ -144,7 +144,7 @@ extern "C" { static PyObject* PyRoutingPad_getTargetPosition ( PyRoutingPad *self ) { - trace << "PyRoutingPad_getTargetPosition ()" << endl; + cdebug.log(20) << "PyRoutingPad_getTargetPosition ()" << endl; METHOD_HEAD( "Component.getTargetPosition()" ) PyPoint* pyPoint = PyObject_NEW( PyPoint, &PyTypePoint ); @@ -160,7 +160,7 @@ extern "C" { static PyObject* PyRoutingPad_translate ( PyRoutingPad *self, PyObject* args ) { - trace << "PyRoutingPad_translate ()" << endl; + cdebug.log(20) << "PyRoutingPad_translate ()" << endl; HTRY METHOD_HEAD ( "RoutingPad.translate()" ) @@ -181,7 +181,7 @@ extern "C" { #if THIS_IS_DEPRECATED static PyObject* PyRoutingPad_setPosition ( PyRoutingPad *self, PyObject* args ) { - trace << "PyRoutingPad_setPosition ()" << endl; + cdebug.log(20) << "PyRoutingPad_setPosition ()" << endl; HTRY METHOD_HEAD ( "RoutingPad.setPosition()" ) @@ -213,7 +213,7 @@ extern "C" { static PyObject* PyRoutingPad_setOffset ( PyRoutingPad *self, PyObject* args ) { - trace << "PyRoutingPad_setOffset ()" << endl; + cdebug.log(20) << "PyRoutingPad_setOffset ()" << endl; HTRY METHOD_HEAD ( "RoutingPad.setOffset()" ) @@ -234,7 +234,7 @@ extern "C" { static PyObject* PyRoutingPad_setExternalComponent ( PyRoutingPad *self, PyObject* args ) { - trace << "PyRoutingPad_setExternalComponent ()" << endl; + cdebug.log(20) << "PyRoutingPad_setExternalComponent ()" << endl; HTRY METHOD_HEAD ( "RoutingPad.setExternalComponent()" ) @@ -257,7 +257,7 @@ extern "C" { static PyObject* PyRoutingPad_setOnBestComponent ( PyRoutingPad *self, PyObject* args ) { - trace << "PyRoutingPad_setOnBestComponent ()" << endl; + cdebug.log(20) << "PyRoutingPad_setOnBestComponent ()" << endl; Component* selected = NULL; @@ -278,7 +278,7 @@ extern "C" { static PyObject* PyRoutingPad_restorePlugOccurrence ( PyRoutingPad *self, PyObject* args ) { - trace << "PyRoutingPad_restorePlugOccurrence ()" << endl; + cdebug.log(20) << "PyRoutingPad_restorePlugOccurrence ()" << endl; HTRY METHOD_HEAD ( "RoutingPad.restorePlugOccurrence()" ) diff --git a/hurricane/src/isobar/PySegment.cpp b/hurricane/src/isobar/PySegment.cpp index 35640742..eee727c3 100644 --- a/hurricane/src/isobar/PySegment.cpp +++ b/hurricane/src/isobar/PySegment.cpp @@ -66,7 +66,7 @@ extern "C" { static PyObject* PySegment_getOppositeHook ( PySegment *self, PyObject* args ) { - trace << "PySegment_getOppositeHook()" << endl; + cdebug.log(20) << "PySegment_getOppositeHook()" << endl; METHOD_HEAD ( "Segment.getOppositeHook()" ) PyHook* pyReturnHook = PyObject_NEW( PyHook, &PyTypeHook ); @@ -87,7 +87,7 @@ extern "C" { static PyObject* PySegment_getSource ( PySegment *self ) { - trace << "PySegment_getSource()" << endl; + cdebug.log(20) << "PySegment_getSource()" << endl; METHOD_HEAD( "Segment.Source()" ) @@ -106,7 +106,7 @@ extern "C" { static PyObject* PySegment_getTarget ( PySegment *self ) { - trace << "PySegment_getTarget()" << endl; + cdebug.log(20) << "PySegment_getTarget()" << endl; METHOD_HEAD( "Segment.Target()" ) @@ -125,7 +125,7 @@ extern "C" { static PyObject* PySegment_getSourcePosition ( PySegment *self ) { - trace << "PySegment_getSourcePosition()" << endl; + cdebug.log(20) << "PySegment_getSourcePosition()" << endl; METHOD_HEAD ( "Segment.SourcePosition()" ) @@ -142,7 +142,7 @@ extern "C" { static PyObject* PySegment_getTargetPosition ( PySegment *self ) { - trace << "PySegment_getTargetPosition()" << endl; + cdebug.log(20) << "PySegment_getTargetPosition()" << endl; METHOD_HEAD ( "Segment.TargetPosition()" ) diff --git a/hurricane/src/isobar/PyTechnology.cpp b/hurricane/src/isobar/PyTechnology.cpp index 774da9ea..c617acae 100644 --- a/hurricane/src/isobar/PyTechnology.cpp +++ b/hurricane/src/isobar/PyTechnology.cpp @@ -80,7 +80,7 @@ extern "C" { static PyObject* PyTechnology_create ( PyTechnology*, PyObject* args ) { - trace << "Technology.create()" << endl; + cdebug.log(20) << "Technology.create()" << endl; Technology* technology = NULL; @@ -105,7 +105,7 @@ extern "C" { static PyObject* PyTechnology_getDataBase ( PyTechnology* self ) { - trace << "PyTechnology_getDataBase()" << endl; + cdebug.log(20) << "PyTechnology_getDataBase()" << endl; DataBase* db = NULL; @@ -121,7 +121,7 @@ extern "C" { static PyObject* PyTechnology_getLayer ( PyTechnology *self, PyObject* args ) { - trace << "Technology.getLayer()" << endl; + cdebug.log(20) << "Technology.getLayer()" << endl; METHOD_HEAD("Technology.getLayer()") @@ -152,7 +152,7 @@ extern "C" { static PyObject* PyTechnology_getBasicLayers ( PyTechnology* self, PyObject* args ) { - trace << "PyTechnology_getBasicLayers()" << endl; + cdebug.log(20) << "PyTechnology_getBasicLayers()" << endl; PyBasicLayerCollection* pyObjects = NULL; @@ -189,7 +189,7 @@ extern "C" { static PyObject* PyTechnology_setWorkingLayer ( PyTechnology *self, PyObject* args ) { - trace << "Technology.setWorkingLayer()" << endl; + cdebug.log(20) << "Technology.setWorkingLayer()" << endl; METHOD_HEAD("Technology.setWorkingLayer()") diff --git a/hurricane/src/isobar/PyTransformation.cpp b/hurricane/src/isobar/PyTransformation.cpp index c958e65f..0c5465e1 100644 --- a/hurricane/src/isobar/PyTransformation.cpp +++ b/hurricane/src/isobar/PyTransformation.cpp @@ -71,7 +71,7 @@ extern "C" { // Attribute Method : "PyTransformation_NEW ()" static PyObject* PyTransformation_NEW (PyObject *module, PyObject *args) { - trace << "PyTransformation_NEW()" << endl; + cdebug.log(20) << "PyTransformation_NEW()" << endl; Transformation* transf; PyObject* arg0; @@ -106,9 +106,7 @@ extern "C" { PyTransformation* pyTransformation = PyObject_NEW(PyTransformation, &PyTypeTransformation); if (pyTransformation == NULL) { return NULL; } - trace_in (); - trace << "new PyTransformation [" << hex << pyTransformation << "]" << endl; - trace_out (); + cdebug.log(20) << "new PyTransformation [" << hex << pyTransformation << "]" << endl; HTRY @@ -122,7 +120,7 @@ extern "C" { static int PyTransformation_Init ( PyTransformation* self, PyObject* args, PyObject* kwargs ) { - trace << "PyTransformation_Init(): " << (void*)self << endl; + cdebug.log(20) << "PyTransformation_Init(): " << (void*)self << endl; return 0; } @@ -131,16 +129,14 @@ extern "C" { // Attribute Method : "PyBox_getTranslation ()" static PyObject* PyTransformation_getTranslation ( PyTransformation *self ) { - trace << "PyBox_getTranslation ()" << endl; + cdebug.log(20) << "PyBox_getTranslation ()" << endl; METHOD_HEAD ( "Translation.getTranslation()" ) PyPoint* pyPoint = PyObject_NEW ( PyPoint, &PyTypePoint ); if (pyPoint == NULL) { return NULL; } - trace_in (); - trace << "new PyPoint [" << hex << pyPoint << "]" << endl; - trace_out (); + cdebug.log(20) << "new PyPoint [" << hex << pyPoint << "]" << endl; HTRY @@ -158,7 +154,7 @@ extern "C" { // Attribute Method : "PyTransformation_getOrientation ()" static PyObject* PyTransformation_getOrientation ( PyTransformation *self ) { - trace << "PyTransformation_getOrientation ()" << endl; + cdebug.log(20) << "PyTransformation_getOrientation ()" << endl; METHOD_HEAD ( "Translation.getOrientation()" ) @@ -173,7 +169,7 @@ extern "C" { static PyObject* PyTransformation_getX ( PyTransformation *self, PyObject* args ) { - trace << "PyTransformation_getX ()" << endl; + cdebug.log(20) << "PyTransformation_getX ()" << endl; METHOD_HEAD ( "Transformation.getX()" ) @@ -208,7 +204,7 @@ extern "C" { static PyObject* PyTransformation_getY ( PyTransformation *self, PyObject* args ) { - trace << "PyTransformation_getY ()" << endl; + cdebug.log(20) << "PyTransformation_getY ()" << endl; METHOD_HEAD ( "Transformation.getY()" ) @@ -243,7 +239,7 @@ extern "C" { static PyObject* PyTransformation_getDx ( PyTransformation *self, PyObject* args ) { - trace << "PyTransformation_getDx ()" << endl; + cdebug.log(20) << "PyTransformation_getDx ()" << endl; METHOD_HEAD ( "Transformation.getDx()" ) @@ -269,7 +265,7 @@ extern "C" { static PyObject* PyTransformation_getDy ( PyTransformation *self, PyObject* args ) { - trace << "PyTransformation_getDy ()" << endl; + cdebug.log(20) << "PyTransformation_getDy ()" << endl; METHOD_HEAD ( "Transformation.getDy()" ) @@ -295,7 +291,7 @@ extern "C" { static PyObject* PyTransformation_getTransformation ( PyTransformation *self, PyObject* args ) { - trace << "PyTransformation_getTransformation ()" << endl; + cdebug.log(20) << "PyTransformation_getTransformation ()" << endl; METHOD_HEAD ( "Transformation.getTransformation()" ) @@ -308,9 +304,7 @@ extern "C" { PyTransformation* resultPyTransf = PyObject_NEW ( PyTransformation, &PyTypeTransformation ); if ( resultPyTransf == NULL ) { return NULL; } - trace_in (); - trace << "new PyTransformation [" << hex << resultPyTransf << "]" << endl; - trace_out (); + cdebug.log(20) << "new PyTransformation [" << hex << resultPyTransf << "]" << endl; HTRY @@ -329,7 +323,7 @@ extern "C" { static PyObject* PyTransformation_getPoint ( PyTransformation *self, PyObject* args ) { - trace << "PyTransformation_getPoint ()" << endl; + cdebug.log(20) << "PyTransformation_getPoint ()" << endl; METHOD_HEAD ( "Transformation.getPoint()" ) @@ -352,9 +346,7 @@ extern "C" { PyPoint* resultPyPoint = PyObject_NEW ( PyPoint, &PyTypePoint ); if ( resultPyPoint == NULL ) { return NULL; } - trace_in (); - trace << "new PyPoint [" << hex << resultPyPoint << "]" << endl; - trace_out (); + cdebug.log(20) << "new PyPoint [" << hex << resultPyPoint << "]" << endl; HTRY @@ -373,7 +365,7 @@ extern "C" { static PyObject* PyTransformation_getBox ( PyTransformation *self, PyObject* args ) { - trace << "PyTransformation_getBox ()" << endl; + cdebug.log(20) << "PyTransformation_getBox ()" << endl; METHOD_HEAD ( "Transformation.getBox()" ) @@ -406,9 +398,7 @@ extern "C" { PyBox* resultPyBox = PyObject_NEW ( PyBox, &PyTypeBox ); if ( resultPyBox == NULL ) { return NULL; } - trace_in (); - trace << "new PyBox [" << hex << resultPyBox << "]" << endl; - trace_out (); + cdebug.log(20) << "new PyBox [" << hex << resultPyBox << "]" << endl; HTRY @@ -427,7 +417,7 @@ extern "C" { static PyObject* PyTransformation_getInvert ( PyTransformation *self ) { - trace << "PyTransformation_getInvert ()" << endl; + cdebug.log(20) << "PyTransformation_getInvert ()" << endl; METHOD_HEAD ( "Transformation.getInvert()" ) @@ -436,9 +426,7 @@ extern "C" { PyTransformation* resultPyTransf = PyObject_NEW ( PyTransformation, &PyTypeTransformation ); if ( resultPyTransf == NULL ) { return NULL; } - trace_in (); - trace << "new PyTransformation [" << hex << resultPyTransf << "]" << endl; - trace_out (); + cdebug.log(20) << "new PyTransformation [" << hex << resultPyTransf << "]" << endl; HTRY @@ -457,7 +445,7 @@ extern "C" { static PyObject* PyTransformation_Invert ( PyTransformation *self ) { - trace << "PyTransformation_Invert ()" << endl; + cdebug.log(20) << "PyTransformation_Invert ()" << endl; METHOD_HEAD ( "Transformation.Invert()" ) @@ -479,7 +467,7 @@ extern "C" { static PyObject* PyTransformation_ApplyOn ( PyTransformation *self, PyObject* args ) { - trace << "PyTransformation_ApplyOn ()" << endl; + cdebug.log(20) << "PyTransformation_ApplyOn ()" << endl; METHOD_HEAD ( "Transformation.ApplyOn()" ) diff --git a/hurricane/src/isobar/PyTransistorLayer.cpp b/hurricane/src/isobar/PyTransistorLayer.cpp index 89f56a28..19f80f2d 100644 --- a/hurricane/src/isobar/PyTransistorLayer.cpp +++ b/hurricane/src/isobar/PyTransistorLayer.cpp @@ -76,7 +76,7 @@ extern "C" { static PyObject* PyTransistorLayer_create ( PyObject*, PyObject* args ) { - trace << "PyTransistorLayer_create()" << endl; + cdebug.log(20) << "PyTransistorLayer_create()" << endl; TransistorLayer* transistorLayer = NULL; diff --git a/hurricane/src/isobar/PyUpdateSession.cpp b/hurricane/src/isobar/PyUpdateSession.cpp index db5e0da4..987514cc 100644 --- a/hurricane/src/isobar/PyUpdateSession.cpp +++ b/hurricane/src/isobar/PyUpdateSession.cpp @@ -41,13 +41,13 @@ extern "C" { static void PyUpdateSession_DeAlloc ( PyUpdateSession* self ) { - trace << "PyUpdateSession_DeAlloc(" << hex << self << ")" << endl; + cdebug.log(20) << "PyUpdateSession_DeAlloc(" << hex << self << ")" << endl; } static PyObject* PyUpdateSession_open ( PyObject* ) { - trace << "PyUpdateSession_open()" << endl; + cdebug.log(20) << "PyUpdateSession_open()" << endl; HTRY UpdateSession::open (); @@ -59,7 +59,7 @@ extern "C" { static PyObject* PyUpdateSession_close ( PyObject* ) { - trace << "PyUpdateSession_close()" << endl; + cdebug.log(20) << "PyUpdateSession_close()" << endl; HTRY UpdateSession::close (); diff --git a/hurricane/src/isobar/PyVertical.cpp b/hurricane/src/isobar/PyVertical.cpp index 08e6207b..13530a3c 100644 --- a/hurricane/src/isobar/PyVertical.cpp +++ b/hurricane/src/isobar/PyVertical.cpp @@ -59,7 +59,7 @@ extern "C" { // Attribute Method : "PyVertical_create ()" static PyObject* PyVertical_create ( PyObject*, PyObject *args ) { - trace << "PyVertical_create()" << endl; + cdebug.log(20) << "PyVertical_create()" << endl; PyObject* arg0; PyObject* arg1; @@ -149,7 +149,7 @@ extern "C" { // Attribute Method : "PyVertical_translate ()" static PyObject* PyVertical_translate ( PyVertical *self, PyObject* args ) { - trace << "PyVertical_translate ()" << endl; + cdebug.log(20) << "PyVertical_translate ()" << endl; HTRY METHOD_HEAD ( "Vertical.translate()" ) diff --git a/hurricane/src/isobar/PyViaLayer.cpp b/hurricane/src/isobar/PyViaLayer.cpp index 02c2f14d..b55ea7f0 100644 --- a/hurricane/src/isobar/PyViaLayer.cpp +++ b/hurricane/src/isobar/PyViaLayer.cpp @@ -76,7 +76,7 @@ extern "C" { static PyObject* PyViaLayer_create ( PyObject*, PyObject* args ) { - trace << "PyViaLayer_create()" << endl; + cdebug.log(20) << "PyViaLayer_create()" << endl; ViaLayer* viaLayer = NULL; diff --git a/hurricane/src/isobar/hurricane/isobar/PyHurricane.h b/hurricane/src/isobar/hurricane/isobar/PyHurricane.h index 852ef463..5ff9a836 100644 --- a/hurricane/src/isobar/hurricane/isobar/PyHurricane.h +++ b/hurricane/src/isobar/hurricane/isobar/PyHurricane.h @@ -223,7 +223,7 @@ extern "C" { # define predicateFromLayer(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - trace << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ HTRY \ GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#SELF_TYPE"."#FUNC_NAME"()") \ @@ -356,7 +356,7 @@ extern "C" { # define accessorLayerFromVoid(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self ) \ { \ - trace << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ Layer* rlayer = NULL; \ \ @@ -373,7 +373,7 @@ extern "C" { # define accessorAnyLayerFromName(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE,LAYER_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - trace << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ LAYER_TYPE * rlayer = NULL; \ \ @@ -399,7 +399,7 @@ extern "C" { # define accessorLayerFromLayerOptBool(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - trace << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ Layer* rlayer = NULL; \ \ @@ -435,7 +435,7 @@ extern "C" { # define accessorLayerFromLayerLayer(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - trace << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ Layer* rlayer = NULL; \ \ @@ -467,7 +467,7 @@ extern "C" { # define accessorLayerFromInt(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - trace << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ Layer* rlayer = NULL; \ int value = 0; \ @@ -492,7 +492,7 @@ extern "C" { # define updatorFromBasicLayer(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self, PyObject* args ) \ { \ - trace << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ HTRY \ GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#SELF_TYPE"."#FUNC_NAME"()") \ @@ -521,7 +521,7 @@ extern "C" { #define accessorHook(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME( PY_SELF_TYPE *self ) \ { \ - trace << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ PyHook* pyHook = PyObject_NEW( PyHook, &PyTypeHook ); \ if (pyHook == NULL) return NULL; \ @@ -638,7 +638,7 @@ extern "C" { #define GetNameMethod(SELF_TYPE, SELF) \ static PyObject* Py##SELF_TYPE##_getName(Py##SELF_TYPE* self) { \ - trace << "Py"#SELF_TYPE"_getName()" << endl; \ + cdebug.log(20) << "Py"#SELF_TYPE"_getName()" << endl; \ HTRY \ METHOD_HEAD (#SELF_TYPE".getName()") \ return PyString_FromString(getString(SELF->getName()).c_str()); \ @@ -648,7 +648,7 @@ extern "C" { #define SetNameMethod(SELF_TYPE, SELF) \ static PyObject* Py##SELF_TYPE##_setName(Py##SELF_TYPE* self, PyObject* args) { \ - trace << "Py"#SELF_TYPE"_setName()" << endl; \ + cdebug.log(20) << "Py"#SELF_TYPE"_setName()" << endl; \ HTRY \ METHOD_HEAD (#SELF_TYPE".setName()") \ char* name = NULL; \ @@ -685,12 +685,12 @@ extern "C" { #define DirectDeleteMethod(PY_FUNC_NAME, PY_SELF_TYPE) \ static void PY_FUNC_NAME ( PY_SELF_TYPE *self ) \ { \ - trace << #PY_SELF_TYPE"_DeAlloc(" << hex << self << ") " \ + cdebug.log(20) << #PY_SELF_TYPE"_DeAlloc(" << hex << self << ") " \ << hex << (void*)(self->ACCESS_OBJECT) \ << ":" << self->ACCESS_OBJECT << endl; \ \ if ( self->ACCESS_OBJECT ) { \ - trace << "C++ object := " << hex \ + cdebug.log(20) << "C++ object := " << hex \ << &(self->ACCESS_OBJECT) << endl; \ delete self->ACCESS_OBJECT; \ } \ @@ -702,13 +702,13 @@ extern "C" { // ------------------------------------------------------------------- // Attribute Method For Deletion. -#define PlugDeleteMethod(PY_FUNC_NAME,PY_SELF_TYPE) \ - static void PY_FUNC_NAME ( PY_SELF_TYPE *self ) \ - { \ - trace << "PyHObject_DeAlloc(" << hex << self << ") " \ - << self->ACCESS_OBJECT << endl; \ - \ - PyObject_DEL ( self ); \ +#define PlugDeleteMethod(PY_FUNC_NAME,PY_SELF_TYPE) \ + static void PY_FUNC_NAME ( PY_SELF_TYPE *self ) \ + { \ + cdebug.log(20) << "PyHObject_DeAlloc(" << hex << self << ") " \ + << self->ACCESS_OBJECT << endl; \ + \ + PyObject_DEL ( self ); \ } @@ -730,12 +730,12 @@ extern "C" { #define DirectVoidMethod(SELF_TYPE, SELF_OBJECT, FUNC_NAME) \ static PyObject* Py##SELF_TYPE##_##FUNC_NAME(Py##SELF_TYPE* self) \ { \ - trace << "Py" #SELF_TYPE "_" #FUNC_NAME "()" << endl; \ - HTRY \ + cdebug.log(20) << "Py" #SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + HTRY \ METHOD_HEAD(#SELF_TYPE "." #FUNC_NAME "()") \ SELF_OBJECT->FUNC_NAME(); \ - HCATCH \ - Py_RETURN_NONE; \ + HCATCH \ + Py_RETURN_NONE; \ } @@ -764,7 +764,7 @@ extern "C" { \ extern void Py##TYPE##Collection_LinkPyType () \ { \ - trace << "Py"#TYPE"Collection_LinkType()" << endl; \ + cdebug.log(20) << "Py"#TYPE"Collection_LinkType()" << endl; \ PyType##TYPE##Collection.tp_iter = (getiterfunc)GetLocator; \ PyType##TYPE##Collection.tp_dealloc = (destructor)Py##TYPE##Collection_DeAlloc; \ PyType##TYPE##CollectionLocator.tp_dealloc = (destructor)Py##TYPE##CollectionLocatorDeAlloc; \ @@ -820,7 +820,7 @@ extern "C" { # define accessorCollectionFromVoid(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE,COLL_TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self ) \ { \ - trace << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ Py##COLL_TYPE##Collection* pyObjects = NULL; \ \ @@ -883,7 +883,7 @@ extern "C" { \ extern void Py##TYPE##Vector_LinkPyType () \ { \ - trace << "Py"#TYPE"Vector_LinkType()" << endl; \ + cdebug.log(20) << "Py"#TYPE"Vector_LinkType()" << endl; \ \ PyType##TYPE##Vector.tp_iter = (getiterfunc)Py##TYPE##Vector_GetIterator; \ PyType##TYPE##Vector.tp_dealloc = (destructor)Py##TYPE##Vector_DeAlloc; \ @@ -909,7 +909,7 @@ extern "C" { # define accessorVectorFromVoid(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE,TYPE) \ static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self ) \ { \ - trace << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug.log(20) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \ \ Py##TYPE##Vector* pyVector = NULL; \ \ @@ -1040,8 +1040,8 @@ extern "C" { if (pyObject == NULL) { return NULL; } \ \ pyObject->ACCESS_OBJECT = object; \ - trace << "Py" #SELF_TYPE "_Link(" << hex << pyObject << ") " \ - << hex << (void*)object << ":" << object << endl; \ + cdebug.log(20) << "Py" #SELF_TYPE "_Link(" << hex << pyObject << ") " \ + << hex << (void*)object << ":" << object << endl; \ HCATCH \ \ return ( (PyObject*)pyObject ); \ @@ -1102,8 +1102,8 @@ extern "C" { pyObject = (Py##SELF_TYPE*)proxy->getShadow (); \ Py_INCREF ( ACCESS_CLASS(pyObject) ); \ } \ - trace << "PyDbo" #SELF_TYPE "_Link(" << hex << pyObject << ") " \ - << hex << (void*)object << ":" << object << endl; \ + cdebug.log(20) << "PyDbo" #SELF_TYPE "_Link(" << hex << pyObject << ") " \ + << hex << (void*)object << ":" << object << endl; \ HCATCH \ \ return ( (PyObject*)pyObject ); \ @@ -1115,8 +1115,8 @@ extern "C" { # define DBoDeleteMethod(SELF_TYPE) \ static void Py##SELF_TYPE##_DeAlloc ( Py##SELF_TYPE *self ) \ { \ - trace << "PyDbObject_DeAlloc(" << hex << self << ") " \ - << hex << (void*)(self->ACCESS_OBJECT) << ":" << self->ACCESS_OBJECT << endl; \ + cdebug.log(20) << "PyDbObject_DeAlloc(" << hex << self << ") " \ + << hex << (void*)(self->ACCESS_OBJECT) << ":" << self->ACCESS_OBJECT << endl; \ \ if ( self->ACCESS_OBJECT != NULL ) { \ ProxyProperty* proxy = static_cast \ @@ -1140,8 +1140,8 @@ extern "C" { # define PythonOnlyDeleteMethod(SELF_TYPE) \ static void Py##SELF_TYPE##_DeAlloc ( Py##SELF_TYPE *self ) \ { \ - trace << "PythonOnlyObject_DeAlloc(" << hex << self << ") " \ - << hex << (void*)(self->ACCESS_OBJECT) \ + cdebug.log(20) << "PythonOnlyObject_DeAlloc(" << hex << self << ") " \ + << hex << (void*)(self->ACCESS_OBJECT) \ << ":" << self->ACCESS_OBJECT << endl; \ PyObject_DEL ( self ); \ } @@ -1155,8 +1155,8 @@ extern "C" { # define NoObjectDeleteMethod(SELF_TYPE) \ static void Py##SELF_TYPE##_DeAlloc ( Py##SELF_TYPE *self ) \ { \ - trace << "PythonOnlyObject_DeAlloc(" << hex << self << ") " \ - << "[no object]" << endl; \ + cdebug.log(20) << "PythonOnlyObject_DeAlloc(" << hex << self << ") " \ + << "[no object]" << endl; \ PyObject_DEL ( self ); \ } @@ -1168,7 +1168,7 @@ extern "C" { #define PyTypeObjectLinkPyTypeWithoutObject(PY_SELF_TYPE,SELF_TYPE) \ extern void Py##PY_SELF_TYPE##_LinkPyType() { \ - trace << "Py" #PY_SELF_TYPE "_LinkType()" << endl; \ + cdebug.log(20) << "Py" #PY_SELF_TYPE "_LinkType()" << endl; \ \ PyType##PY_SELF_TYPE.tp_dealloc = (destructor) Py##PY_SELF_TYPE##_DeAlloc; \ PyType##PY_SELF_TYPE.tp_methods = Py##PY_SELF_TYPE##_Methods; \ @@ -1186,7 +1186,7 @@ extern "C" { DirectCmpMethod (Py##PY_SELF_TYPE##_Cmp, IsPy##PY_SELF_TYPE, Py##PY_SELF_TYPE) \ DirectHashMethod(Py##PY_SELF_TYPE##_Hash, Py##SELF_TYPE) \ extern void Py##PY_SELF_TYPE##_LinkPyType() { \ - trace << "Py" #PY_SELF_TYPE "_LinkType()" << endl; \ + cdebug.log(20) << "Py" #PY_SELF_TYPE "_LinkType()" << endl; \ \ PyType##PY_SELF_TYPE.tp_dealloc = (destructor) Py##PY_SELF_TYPE##_DeAlloc; \ PyType##PY_SELF_TYPE.tp_compare = (cmpfunc) Py##PY_SELF_TYPE##_Cmp; \ @@ -1203,7 +1203,7 @@ extern "C" { DirectCmpMethod (Py##PY_SELF_TYPE##_Cmp, IsPy##PY_SELF_TYPE, Py##PY_SELF_TYPE) \ DirectHashMethod(Py##PY_SELF_TYPE##_Hash, Py##SELF_TYPE) \ extern void Py##PY_SELF_TYPE##_LinkPyType() { \ - trace << "Py" #PY_SELF_TYPE "_LinkType()" << endl; \ + cdebug.log(20) << "Py" #PY_SELF_TYPE "_LinkType()" << endl; \ \ PyType##PY_SELF_TYPE.tp_dealloc = (destructor) Py##PY_SELF_TYPE##_DeAlloc; \ PyType##PY_SELF_TYPE.tp_compare = (cmpfunc) Py##PY_SELF_TYPE##_Cmp; \ @@ -1230,7 +1230,7 @@ extern "C" { DirectCmpMethod (Py##PY_SELF_TYPE##Locator_Cmp, IsPy##PY_SELF_TYPE##Locator, Py##PY_SELF_TYPE##Locator) \ extern void Py##PY_SELF_TYPE##Locator_LinkPyType () \ { \ - trace << "Py" #PY_SELF_TYPE "Locator_LinkType()" << endl; \ + cdebug.log(20) << "Py" #PY_SELF_TYPE "Locator_LinkType()" << endl; \ \ PyType##PY_SELF_TYPE##Locator.tp_dealloc = (destructor)Py##PY_SELF_TYPE##Locator_DeAlloc; \ PyType##PY_SELF_TYPE##Locator.tp_compare = (cmpfunc) Py##PY_SELF_TYPE##Locator_Cmp; \ diff --git a/hurricane/src/viewer/CellViewer.cpp b/hurricane/src/viewer/CellViewer.cpp index 28403cac..1934e3c9 100644 --- a/hurricane/src/viewer/CellViewer.cpp +++ b/hurricane/src/viewer/CellViewer.cpp @@ -758,7 +758,7 @@ namespace Hurricane { QString blobName; if (OpenBlobDialog::runDialog(this,blobName)) { string fileName = blobName.toStdString() + ".blob"; - //DebugSession::open( 50 ); + //DebugSession::open( 0, 500 ); Cell* topCell = NULL; DesignBlob* blob = DesignBlob::fromJson( fileName ); @@ -782,7 +782,7 @@ namespace Hurricane { string blobName = getString(cell->getName()) + ".blob.json.bz2"; DesignBlob blob ( cell ); - //DebugSession::open( 50 ); + //DebugSession::open( 0, 500 ); JsonWriter writer ( blobName ); writer.setFlags( JsonWriter::DesignBlobMode ); jsonWrite( &writer, &blob ); diff --git a/hurricane/src/viewer/DesignBlob.cpp b/hurricane/src/viewer/DesignBlob.cpp index d6e4e2ce..7adc51e8 100644 --- a/hurricane/src/viewer/DesignBlob.cpp +++ b/hurricane/src/viewer/DesignBlob.cpp @@ -73,8 +73,6 @@ namespace Hurricane { JsonDesignBlob::JsonDesignBlob ( unsigned long flags ) : JsonObject(flags) { - ltrace(51) << "JsonDesignblob::JsonDesignblob()" << endl; - add( "_topCell" , typeid(string) ); add( "_database" , typeid(DataBase*) ); add( "_graphics" , typeid(Graphics*) ); diff --git a/hurricane/src/viewer/DisplayStyle.cpp b/hurricane/src/viewer/DisplayStyle.cpp index 2fe5be8a..f829a69e 100644 --- a/hurricane/src/viewer/DisplayStyle.cpp +++ b/hurricane/src/viewer/DisplayStyle.cpp @@ -216,7 +216,7 @@ namespace Hurricane { void JsonDrawingStyle::toData(JsonStack& stack) { - ltracein(51); + cdebug.log(19,1); check( stack, "JsonDrawingStyle::toData" ); @@ -260,7 +260,7 @@ namespace Hurricane { update( stack, NULL ); - ltraceout(51); + cdebug.tabw(19,-1); } @@ -399,7 +399,7 @@ namespace Hurricane { void JsonDrawingGroup::toData(JsonStack& stack) { - ltracein(51); + cdebug.log(19,1); check( stack, "JsonDrawingGroup::toData" ); @@ -427,7 +427,7 @@ namespace Hurricane { update( stack, dg ); - ltraceout(51); + cdebug.tabw(19,-1); } @@ -695,7 +695,7 @@ namespace Hurricane { void JsonDisplayStyle::toData(JsonStack& stack) { - ltracein(51); + cdebug.log(19,1); check( stack, "JsonDisplayStyle::toData" ); @@ -726,7 +726,7 @@ namespace Hurricane { update( stack, ds ); - ltraceout(51); + cdebug.tabw(19,-1); } @@ -765,7 +765,7 @@ namespace Hurricane { void JsonHSVr::toData(JsonStack& stack) { - ltracein(51); + cdebug.log(19,1); check( stack, "JsonHSVr::toData" ); @@ -777,7 +777,7 @@ namespace Hurricane { update( stack, hsvr ); - ltraceout(51); + cdebug.tabw(19,-1); } diff --git a/hurricane/src/viewer/Graphics.cpp b/hurricane/src/viewer/Graphics.cpp index 7ff0f59a..4b2b63e3 100644 --- a/hurricane/src/viewer/Graphics.cpp +++ b/hurricane/src/viewer/Graphics.cpp @@ -418,7 +418,7 @@ namespace Hurricane { void JsonGraphics::toData(JsonStack& stack) { - ltracein(51); + cdebug.tabw(19,1); check( stack, "JsonGraphics::toData" ); @@ -426,7 +426,7 @@ namespace Hurricane { update( stack, Graphics::getGraphics() ); - ltraceout(51); + cdebug.tabw(19,-1); } diff --git a/hurricane/src/viewer/PyCellViewer.cpp b/hurricane/src/viewer/PyCellViewer.cpp index e4fd1417..407e929b 100644 --- a/hurricane/src/viewer/PyCellViewer.cpp +++ b/hurricane/src/viewer/PyCellViewer.cpp @@ -42,7 +42,7 @@ extern "C" { static PyObject* PyCellViewer_hasMenu ( PyCellViewer* self, PyObject* args ) { - trace << "PyCellViewer_hasMenu()" << endl; + cdebug.log(20) << "PyCellViewer_hasMenu()" << endl; HTRY METHOD_HEAD("CellViewer.hasMenu()") @@ -62,7 +62,7 @@ extern "C" { static PyObject* PyCellViewer_hasMenuAction ( PyCellViewer* self, PyObject* args ) { - trace << "PyCellViewer_hasMenuAction()" << endl; + cdebug.log(20) << "PyCellViewer_hasMenuAction()" << endl; HTRY METHOD_HEAD("CellViewer.hasMenuAction()") @@ -82,7 +82,7 @@ extern "C" { static PyObject* PyCellViewer_addMenu ( PyCellViewer* self, PyObject* args ) { - trace << "PyCellViewer_addMenu()" << endl; + cdebug.log(20) << "PyCellViewer_addMenu()" << endl; HTRY METHOD_HEAD("CellViewer.addMenu()") @@ -104,7 +104,7 @@ extern "C" { static PyObject* PyCellViewer_addToMenu ( PyCellViewer* self, PyObject* args ) { - trace << "PyCellViewer_addToMenu()" << endl; + cdebug.log(20) << "PyCellViewer_addToMenu()" << endl; HTRY METHOD_HEAD("CellViewer.addToMenu()") @@ -131,7 +131,7 @@ extern "C" { static PyObject* PyCellViewer_getCell ( PyCellViewer* self ) { - trace << "PyCellViewer_getCell ()" << endl; + cdebug.log(20) << "PyCellViewer_getCell ()" << endl; Cell* cell = NULL; @@ -149,7 +149,7 @@ extern "C" { static PyObject* PyCellViewer_setCell ( PyCellViewer* self, PyObject* args ) { - trace << "PyCellViewer_setCell ()" << endl; + cdebug.log(20) << "PyCellViewer_setCell ()" << endl; HTRY METHOD_HEAD("CellViewer.setCell()") @@ -168,7 +168,7 @@ extern "C" { static PyObject* PyCellViewer_setApplicationName ( PyCellViewer* self, PyObject* args ) { - trace << "PyCellViewer_setApplicationName ()" << endl; + cdebug.log(20) << "PyCellViewer_setApplicationName ()" << endl; HTRY METHOD_HEAD("CellViewer.setApplicationName()") @@ -188,7 +188,7 @@ extern "C" { static PyObject* PyCellViewer_setLayerVisible ( PyCellViewer* self, PyObject* args ) { - trace << "PyCellViewer_setLayerVisible ()" << endl; + cdebug.log(20) << "PyCellViewer_setLayerVisible ()" << endl; HTRY METHOD_HEAD("CellViewer.setLayerVisible()") @@ -209,7 +209,7 @@ extern "C" { static PyObject* PyCellViewer_setAnonNetSelectable ( PyCellViewer* self, PyObject* args ) { - trace << "PyCellViewer_setAnonNetSelectable ()" << endl; + cdebug.log(20) << "PyCellViewer_setAnonNetSelectable ()" << endl; HTRY METHOD_HEAD("CellViewer.setAnonNetSelectable()") @@ -230,7 +230,7 @@ extern "C" { static PyObject* PyCellViewer_fit ( PyCellViewer* self ) { - trace << "PyCellViewer_fit()" << endl; + cdebug.log(20) << "PyCellViewer_fit()" << endl; HTRY METHOD_HEAD("CellViewer.fit()") @@ -243,7 +243,7 @@ extern "C" { static PyObject* PyCellViewer_refresh ( PyCellViewer* self ) { - trace << "PyCellViewer_refresh()" << endl; + cdebug.log(20) << "PyCellViewer_refresh()" << endl; HTRY METHOD_HEAD("CellViewer.refresh()") diff --git a/hurricane/src/viewer/PyDisplayStyle.cpp b/hurricane/src/viewer/PyDisplayStyle.cpp index 1fdcfdd6..d854c3ee 100644 --- a/hurricane/src/viewer/PyDisplayStyle.cpp +++ b/hurricane/src/viewer/PyDisplayStyle.cpp @@ -79,7 +79,7 @@ extern "C" { static PyObject* PyDisplayStyle_new ( PyTypeObject* type, PyObject* args, PyObject* kwds ) { - trace << "PyDisplayStyle_new()" << endl; + cdebug.log(20) << "PyDisplayStyle_new()" << endl; DisplayStyle* ds = NULL; PyDisplayStyle* pyDs = (PyDisplayStyle*)type->tp_alloc(type,0); @@ -103,7 +103,7 @@ extern "C" { PyObject* PyDisplayStyle_getDarkening ( PyDisplayStyle* self, PyObject* args ) { - trace << "PyDisplayStyle_getDarkening()" << endl; + cdebug.log(20) << "PyDisplayStyle_getDarkening()" << endl; DisplayStyle::HSVr* darkening = new DisplayStyle::HSVr(); @@ -118,7 +118,7 @@ extern "C" { PyObject* PyDisplayStyle_getGroup ( PyDisplayStyle* self, PyObject* args ) { - trace << "PyDisplayStyle_getGroup()" << endl; + cdebug.log(20) << "PyDisplayStyle_getGroup()" << endl; const char* group = NULL; @@ -139,7 +139,7 @@ extern "C" { PyObject* PyDisplayStyle_getPattern ( PyDisplayStyle* self, PyObject* args ) { - trace << "PyDisplayStyle_getPattern()" << endl; + cdebug.log(20) << "PyDisplayStyle_getPattern()" << endl; const char* pattern = NULL; @@ -160,7 +160,7 @@ extern "C" { PyObject* PyDisplayStyle_getThreshold ( PyDisplayStyle* self, PyObject* args ) { - trace << "PyDisplayStyle_getThreshold()" << endl; + cdebug.log(20) << "PyDisplayStyle_getThreshold()" << endl; float threshold = 0.0; @@ -181,7 +181,7 @@ extern "C" { PyObject* PyDisplayStyle_find ( PyDisplayStyle* self, PyObject* args ) { - trace << "PyDisplayStyle_find()" << endl; + cdebug.log(20) << "PyDisplayStyle_find()" << endl; DrawingStyle drawingStyle; @@ -202,7 +202,7 @@ extern "C" { PyObject* PyDisplayStyle_setDescription ( PyDisplayStyle* self, PyObject* args ) { - trace << "PyDisplayStyle_setDescription()" << endl; + cdebug.log(20) << "PyDisplayStyle_setDescription()" << endl; HTRY METHOD_HEAD("DisplayStyle.setDescription()") @@ -221,7 +221,7 @@ extern "C" { PyObject* PyDisplayStyle_setDarkening ( PyDisplayStyle* self, PyObject* args ) { - trace << "PyDisplayStyle_setDarkening()" << endl; + cdebug.log(20) << "PyDisplayStyle_setDarkening()" << endl; HTRY METHOD_HEAD("DisplayStyle.setDarkening()") @@ -240,7 +240,7 @@ extern "C" { PyObject* PyDisplayStyle_inheritFrom ( PyDisplayStyle* self, PyObject* args ) { - trace << "PyDisplayStyle_inheritFrom()" << endl; + cdebug.log(20) << "PyDisplayStyle_inheritFrom()" << endl; HTRY METHOD_HEAD("DisplayStyle.inheritFrom()") @@ -266,7 +266,7 @@ extern "C" { PyObject* PyDisplayStyle_addDrawingStyle ( PyDisplayStyle* self, PyObject* args, PyObject* kwArgs ) { - trace << "PyDisplayStyle_addDrawingStyle()" << endl; + cdebug.log(20) << "PyDisplayStyle_addDrawingStyle()" << endl; HTRY METHOD_HEAD("DisplayStyle.addDrawingStyle()") @@ -381,7 +381,7 @@ extern "C" { DirectHashMethod(PyDisplayStyle_Hash, PyDisplayStyle) extern void PyDisplayStyle_LinkPyType() { - trace << "PyDisplayStyle_LinkType()" << endl; + cdebug.log(20) << "PyDisplayStyle_LinkType()" << endl; PyTypeDisplayStyle.tp_new = PyDisplayStyle_new; PyTypeDisplayStyle.tp_dealloc = (destructor) PyDisplayStyle_DeAlloc; diff --git a/hurricane/src/viewer/PyDrawingGroup.cpp b/hurricane/src/viewer/PyDrawingGroup.cpp index d1c76779..fb999eea 100644 --- a/hurricane/src/viewer/PyDrawingGroup.cpp +++ b/hurricane/src/viewer/PyDrawingGroup.cpp @@ -77,7 +77,7 @@ extern "C" { PyObject* PyDrawingGroup_find ( PyDrawingGroup* self, PyObject* args ) { - trace << "PyDrawingGroup_find()" << endl; + cdebug.log(20) << "PyDrawingGroup_find()" << endl; DrawingStyle drawingStyle; @@ -98,7 +98,7 @@ extern "C" { PyObject* PyDrawingGroup_addDrawingStyle ( PyDrawingGroup* self, PyObject* args, PyObject* kwArgs ) { - trace << "PyDrawingGroup_addDrawingStyle()" << endl; + cdebug.log(20) << "PyDrawingGroup_addDrawingStyle()" << endl; HTRY METHOD_HEAD("DrawingGroup.addDrawingStyle()") @@ -192,7 +192,7 @@ extern "C" { DirectHashMethod(PyDrawingGroup_Hash, PyDrawingGroup) extern void PyDrawingGroup_LinkPyType() { - trace << "PyDrawingGroup_LinkType()" << endl; + cdebug.log(20) << "PyDrawingGroup_LinkType()" << endl; PyTypeDrawingGroup.tp_dealloc = (destructor) PyDrawingGroup_DeAlloc; PyTypeDrawingGroup.tp_repr = (reprfunc) PyDrawingGroup_Repr; diff --git a/hurricane/src/viewer/PyDrawingStyle.cpp b/hurricane/src/viewer/PyDrawingStyle.cpp index 568905a9..a2cd7ad5 100644 --- a/hurricane/src/viewer/PyDrawingStyle.cpp +++ b/hurricane/src/viewer/PyDrawingStyle.cpp @@ -57,7 +57,7 @@ extern "C" { PyObject* PyRawDrawingStyle_getPattern ( PyRawDrawingStyle* self, PyObject* args ) { - trace << "PyDrawingStyle_getPattern()" << endl; + cdebug.log(20) << "PyDrawingStyle_getPattern()" << endl; const char* pattern = NULL; @@ -72,7 +72,7 @@ extern "C" { PyObject* PyRawDrawingStyle_getThreshold ( PyRawDrawingStyle* self, PyObject* args ) { - trace << "PyRawDrawingStyle_getThreshold()" << endl; + cdebug.log(20) << "PyRawDrawingStyle_getThreshold()" << endl; float threshold = 0.0; diff --git a/hurricane/src/viewer/PyGraphics.cpp b/hurricane/src/viewer/PyGraphics.cpp index 02583bbd..091e379a 100644 --- a/hurricane/src/viewer/PyGraphics.cpp +++ b/hurricane/src/viewer/PyGraphics.cpp @@ -50,7 +50,7 @@ extern "C" { static PyObject* PyGraphics_get ( PyObject* ) { - trace << "PyGraphics_get()" << endl; + cdebug.log(20) << "PyGraphics_get()" << endl; Graphics* graphics = NULL; PyGraphics* pyGraphics = NULL; @@ -70,7 +70,7 @@ extern "C" { static PyObject* PyGraphics_setStyle ( PyObject*, PyObject* args ) { - trace << "PyGraphics_setStyle()" << endl; + cdebug.log(20) << "PyGraphics_setStyle()" << endl; HTRY Graphics* graphics = Graphics::getGraphics (); @@ -90,7 +90,7 @@ extern "C" { PyObject* PyGraphics_getPattern ( PyGraphics* , PyObject* args ) { - trace << "PyGraphics_getPattern()" << endl; + cdebug.log(20) << "PyGraphics_getPattern()" << endl; const char* pattern = NULL; @@ -111,7 +111,7 @@ extern "C" { PyObject* PyGraphics_getStyle ( PyGraphics* , PyObject* args ) { - trace << "PyGraphics_getStyle()" << endl; + cdebug.log(20) << "PyGraphics_getStyle()" << endl; DisplayStyle* style = NULL; @@ -133,7 +133,7 @@ extern "C" { PyObject* PyGraphics_getGroup ( PyGraphics* , PyObject* args ) { - trace << "PyGraphics_getGroup()" << endl; + cdebug.log(20) << "PyGraphics_getGroup()" << endl; const char* group = "NoGroup"; @@ -154,7 +154,7 @@ extern "C" { PyObject* PyGraphics_getThreshold ( PyGraphics* , PyObject* args ) { - trace << "PyGraphics_getThreshold()" << endl; + cdebug.log(20) << "PyGraphics_getThreshold()" << endl; float threshold = 0.0; @@ -175,7 +175,7 @@ extern "C" { PyObject* PyGraphics_getDarkening ( PyGraphics* , PyObject* args ) { - trace << "PyGraphics_getDarkening()" << endl; + cdebug.log(20) << "PyGraphics_getDarkening()" << endl; DisplayStyle::HSVr* darkening = new DisplayStyle::HSVr(); @@ -190,7 +190,7 @@ extern "C" { PyObject* PyGraphics_toHtml ( PyGraphics* , PyObject* args ) { - trace << "PyGraphics_toHtml()" << endl; + cdebug.log(20) << "PyGraphics_toHtml()" << endl; string htmlText = ""; @@ -211,7 +211,7 @@ extern "C" { PyObject* PyGraphics_breakpointStopCb ( PyGraphics* , PyObject* args ) { - trace << "PyGraphics_breakpointStopCb()" << endl; + cdebug.log(20) << "PyGraphics_breakpointStopCb()" << endl; bool rvalue = false; @@ -233,7 +233,7 @@ extern "C" { static PyObject* PyGraphics_addStyle ( PyObject*, PyObject* args ) { - trace << "PyGraphics_addStyle()" << endl; + cdebug.log(20) << "PyGraphics_addStyle()" << endl; HTRY Graphics* graphics = Graphics::getGraphics (); @@ -252,7 +252,7 @@ extern "C" { static PyObject* PyGraphics_enable ( PyObject*, PyObject* args ) { - trace << "PyGraphics_enable()" << endl; + cdebug.log(20) << "PyGraphics_enable()" << endl; HTRY Graphics::getGraphics()->enable(); @@ -268,7 +268,7 @@ extern "C" { static PyObject* PyGraphics_getStyles ( PyObject* ) { - trace << "PyGraphics_getStyles()" << endl; + cdebug.log(20) << "PyGraphics_getStyles()" << endl; PyDisplayStyleVector* pyVector = NULL; diff --git a/hurricane/src/viewer/PyHApplication.cpp b/hurricane/src/viewer/PyHApplication.cpp index 67e78a13..99c47dda 100644 --- a/hurricane/src/viewer/PyHApplication.cpp +++ b/hurricane/src/viewer/PyHApplication.cpp @@ -57,7 +57,7 @@ extern "C" { static char** argv = NULL; vector vargv; - trace << "PyHApplication_create()" << endl; + cdebug.log(20) << "PyHApplication_create()" << endl; HApplication* ha = NULL; PyHApplication* pyHApplication = NULL; @@ -116,7 +116,7 @@ extern "C" { static PyObject* PyHApplication_qtExec ( PyHApplication* self, PyObject* args ) { - trace << "PyHApplication_qtExec()" << endl; + cdebug.log(20) << "PyHApplication_qtExec()" << endl; int returnCode = 0; diff --git a/hurricane/src/viewer/PyHSVr.cpp b/hurricane/src/viewer/PyHSVr.cpp index f0a10393..8e3036b3 100644 --- a/hurricane/src/viewer/PyHSVr.cpp +++ b/hurricane/src/viewer/PyHSVr.cpp @@ -51,7 +51,7 @@ extern "C" { static PyObject* PyHSVr_new ( PyTypeObject* type, PyObject* args, PyObject* kwds ) { - trace << "PyHSVr_new()" << endl; + cdebug.log(20) << "PyHSVr_new()" << endl; DisplayStyle::HSVr* hsvr = NULL; PyHSVr* pyHSVr = (PyHSVr*)type->tp_alloc(type,0); @@ -119,7 +119,7 @@ extern "C" { DirectHashMethod(PyHSVr_Hash, PyHSVr) extern void PyHSVr_LinkPyType() { - trace << "PyHSVr_LinkType()" << endl; + cdebug.log(20) << "PyHSVr_LinkType()" << endl; PyTypeHSVr.tp_new = PyHSVr_new; PyTypeHSVr.tp_dealloc = (destructor) PyHSVr_DeAlloc; diff --git a/hurricane/src/viewer/PyViewer.cpp b/hurricane/src/viewer/PyViewer.cpp index 4d9bc663..6c8ff810 100644 --- a/hurricane/src/viewer/PyViewer.cpp +++ b/hurricane/src/viewer/PyViewer.cpp @@ -62,7 +62,7 @@ extern "C" { // Module Initialization : "initViewer ()" DL_EXPORT(void) initViewer () { - trace << "initViewer()" << endl; + cdebug.log(20) << "initViewer()" << endl; PyHSVr_LinkPyType (); PyRawDrawingStyle_LinkPyType (); @@ -114,7 +114,7 @@ extern "C" { PyDisplayStyle_postModuleInit(); PyCellViewer_postModuleInit(); - trace << "Viewer.so loaded " << (void*)&typeid(string) << endl; + cdebug.log(20) << "Viewer.so loaded " << (void*)&typeid(string) << endl; } diff --git a/hurricane/src/viewer/SelectCommand.cpp b/hurricane/src/viewer/SelectCommand.cpp index 3106585f..e8c28d9e 100644 --- a/hurricane/src/viewer/SelectCommand.cpp +++ b/hurricane/src/viewer/SelectCommand.cpp @@ -130,7 +130,7 @@ namespace Hurricane { void Occurrences_GetNets::Locator::progress () { - ltrace(80) << "Occurrences_GetNets::Locator::progress()" << endl; + cdebug.log(18) << "Occurrences_GetNets::Locator::progress()" << endl; //boost::regex pattern ( "onymous" ); //boost::smatch match; diff --git a/katabatic/src/AutoContact.cpp b/katabatic/src/AutoContact.cpp index c8178213..b7542078 100644 --- a/katabatic/src/AutoContact.cpp +++ b/katabatic/src/AutoContact.cpp @@ -89,7 +89,7 @@ namespace Katabatic { { restoreNativeConstraintBox(); - ltrace(90) << "Native CBox: " << this + cdebug.log(145) << "Native CBox: " << this << " <" << DbU::toLambda(getCBXMin()) << " " << DbU::toLambda(getCBYMin()) << " " << DbU::toLambda(getCBXMax()) @@ -98,7 +98,7 @@ namespace Katabatic { Session::link( this ); invalidate( KbTopology ); - ltrace(90) << "AutoContact::_postCreate() - " << this << " in " << _gcell << endl; + cdebug.log(145) << "AutoContact::_postCreate() - " << this << " in " << _gcell << endl; } @@ -111,9 +111,9 @@ namespace Katabatic { void AutoContact::_preDestroy () { - DebugSession::open( _contact->getNet() ); + DebugSession::open( _contact->getNet(), 140, 150 ); - ltrace(90) << "AutoContact::_preDestroy() - " << endl; + cdebug.log(145) << "AutoContact::_preDestroy() - " << endl; #if 0 bool canDestroyBase = true; @@ -190,12 +190,12 @@ namespace Katabatic { Component* anchor = getAnchor (); if (anchor) { minDepth = std::min( minDepth, Session::getRoutingGauge()->getLayerDepth(anchor->getLayer()) ); - //ltrace(200) << "Anchor:" << anchor << endl; + //cdebug.log(149) << "Anchor:" << anchor << endl; } forEach ( AutoSegment*, isegment, const_cast(this)->getAutoSegments() ) { minDepth = std::min( minDepth, Session::getRoutingGauge()->getLayerDepth(isegment->getLayer()) ); - //ltrace(200) << "Slave:" << *icomponent << endl; + //cdebug.log(149) << "Slave:" << *icomponent << endl; } return (unsigned int)minDepth; @@ -208,12 +208,12 @@ namespace Katabatic { Component* anchor = getAnchor (); if ( anchor ) { maxDepth = std::max ( maxDepth, Session::getRoutingGauge()->getLayerDepth(anchor->getLayer()) ); - //ltrace(200) << "Anchor:" << anchor << endl; + //cdebug.log(149) << "Anchor:" << anchor << endl; } forEach ( AutoSegment*, isegment, const_cast(this)->getAutoSegments() ) { maxDepth = std::max ( maxDepth, Session::getRoutingGauge()->getLayerDepth(isegment->getLayer()) ); - //ltrace(200) << "Slave:" << *icomponent << endl; + //cdebug.log(149) << "Slave:" << *icomponent << endl; } return (unsigned int)maxDepth; @@ -296,8 +296,7 @@ namespace Katabatic { void AutoContact::invalidate ( unsigned int flags ) { if (not isInvalidated()) { - ltrace(110) << "AutoContact::invalidate() - " << this << endl; - ltracein(110); + cdebug.log(145,1) << "AutoContact::invalidate() - " << this << endl; setFlags( CntInvalidated ); if (flags & KbTopology ) setFlags( CntInvalidatedCache ); Session::invalidate( this ); @@ -307,7 +306,7 @@ namespace Katabatic { // isegment->invalidate(); getGCell()->invalidate(); - ltraceout(110); + cdebug.tabw(145,-1); } } @@ -319,14 +318,14 @@ namespace Katabatic { _gcell = gcell; if (_gcell) { - ltrace(110) << "AutoContact::setGCell() " << gcell << endl; + cdebug.log(145) << "AutoContact::setGCell() " << gcell << endl; _gcell->addContact( this ); _contact->setPosition( _gcell->getCenter() ); _dxMin = 0; _dyMin = 0; _dxMax = (int)DbU::toLambda( _gcell->getXMax()-_gcell->getX() ); _dyMax = (int)DbU::toLambda( _gcell->getYMax()-_gcell->getY() ); - ltrace(110) << "* deltas: [" << _dxMin << " " << _dyMin << " " << _dxMax << " " << _dyMax << "]" << endl; + cdebug.log(145) << "* deltas: [" << _dxMin << " " << _dyMin << " " << _dxMax << " " << _dyMax << "]" << endl; } else { cerr << Bug( "NULL GCell for %s.", _getString().c_str() ) << endl; } @@ -396,7 +395,7 @@ namespace Katabatic { void AutoContact::checkTopology () { - //ltrace(110) << "checkTopology() NOT RE-IMPLEMENTED YET " << this << endl; + //cdebug.log(145) << "checkTopology() NOT RE-IMPLEMENTED YET " << this << endl; } @@ -409,7 +408,7 @@ namespace Katabatic { bool AutoContact::canMoveUp ( const AutoSegment* moved ) const { - ltrace(200) << "AutoContact::canMoveUp() " << this << endl; + cdebug.log(149) << "AutoContact::canMoveUp() " << this << endl; size_t viaDepth = 100; RoutingGauge* rg = Session::getRoutingGauge(); @@ -418,7 +417,7 @@ namespace Katabatic { Component* anchor = getAnchor(); if (anchor) { viaDepth = rg->getLayerDepth( anchor->getLayer() ); - ltrace(200) << "| Anchor depth: " << viaDepth << endl; + cdebug.log(149) << "| Anchor depth: " << viaDepth << endl; } forEach ( AutoSegment*, isegment, const_cast(this)->getAutoSegments() ) { @@ -429,7 +428,7 @@ namespace Katabatic { else if (viaDepth != depth) return false; - ltrace(200) << "| Segment depth: " << depth << endl; + cdebug.log(149) << "| Segment depth: " << depth << endl; } return (movedDepth+1 == viaDepth); @@ -442,8 +441,8 @@ namespace Katabatic { setCBXMax ( box.getXMax() ); setCBYMin ( box.getYMin() ); setCBYMax ( box.getYMax() ); - ltrace(200) << "setConstraintBox() - " << this << " " << getConstraintBox() << endl; - ltrace(200) << "* " << _gcell << endl; + cdebug.log(149) << "setConstraintBox() - " << this << " " << getConstraintBox() << endl; + cdebug.log(149) << "* " << _gcell << endl; } @@ -452,7 +451,7 @@ namespace Katabatic { , unsigned int flags ) { - ltrace(200) << "restrictConstraintBox() - " << this << " " << getConstraintBox() << endl; + cdebug.log(149) << "restrictConstraintBox() - " << this << " " << getConstraintBox() << endl; if (flags & KbHorizontal) { if ( (constraintMin > getCBYMax()) or (constraintMax < getCBYMin()) ) { if ( Session::isInDemoMode() or not (flags & KbWarnOnError) ) return false; @@ -492,7 +491,7 @@ namespace Katabatic { setCBXMin ( std::max(getCBXMin(),constraintMin) ); setCBXMax ( std::min(getCBXMax(),constraintMax) ); } - ltrace(200) << "restrictConstraintBox() - " << this << " " << getConstraintBox() << endl; + cdebug.log(149) << "restrictConstraintBox() - " << this << " " << getConstraintBox() << endl; return true; } diff --git a/katabatic/src/AutoContactHTee.cpp b/katabatic/src/AutoContactHTee.cpp index 6cc011bb..8c73d090 100644 --- a/katabatic/src/AutoContactHTee.cpp +++ b/katabatic/src/AutoContactHTee.cpp @@ -41,8 +41,6 @@ namespace Katabatic { using Hurricane::Bug; using Hurricane::Error; using Hurricane::DebugSession; - using Hurricane::ltracein; - using Hurricane::ltraceout; // ------------------------------------------------------------------- @@ -64,7 +62,7 @@ namespace Katabatic { autoContact->_postCreate(); autoContact->unsetFlags( CntInCreationStage ); - ltrace(90) << "create(net*) " << autoContact << endl; + cdebug.log(145) << "create(net*) " << autoContact << endl; return autoContact; } @@ -126,10 +124,10 @@ namespace Katabatic { void AutoContactHTee::cacheDetach ( AutoSegment* segment ) { - ltrace(110) << _getTypeName() << "::cacheDetach() " << this << endl; - ltrace(110) << "| h1:" << _horizontal1 << endl; - ltrace(110) << "| h2:" << _horizontal2 << endl; - ltrace(110) << "| v1:" << _vertical1 << endl; + cdebug.log(145) << _getTypeName() << "::cacheDetach() " << this << endl; + cdebug.log(145) << "| h1:" << _horizontal1 << endl; + cdebug.log(145) << "| h2:" << _horizontal2 << endl; + cdebug.log(145) << "| v1:" << _vertical1 << endl; if (segment == _horizontal1) _horizontal1 = NULL; else if (segment == _horizontal2) _horizontal2 = NULL; @@ -152,9 +150,8 @@ namespace Katabatic { void AutoContactHTee::cacheAttach ( AutoSegment* segment ) { - ltrace(110) << _getTypeName() << "::cacheAttach() " << this << endl; - ltracein(110); - ltrace(110) << "Attaching: " << segment << endl; + cdebug.log(145,1) << _getTypeName() << "::cacheAttach() " << this << endl; + cdebug.log(145) << "Attaching: " << segment << endl; if (segment->getDirection() == KbHorizontal) { if (not _horizontal1) _horizontal1 = static_cast(segment); @@ -164,7 +161,7 @@ namespace Katabatic { " h1 & h2 cache have not been cleared first, cancelled." , _getTypeName().c_str(), getString(this).c_str() ) << endl; - ltraceout(110); + cdebug.tabw(145,-1); return; } } else if (segment->getDirection() == KbVertical) { @@ -173,7 +170,7 @@ namespace Katabatic { " v1 cache has not been cleared first, cancelled." , _getTypeName().c_str(), getString(this).c_str() ) << endl; - ltraceout(110); + cdebug.tabw(145,-1); return; } _vertical1 = static_cast(segment); @@ -182,20 +179,19 @@ namespace Katabatic { if (_horizontal1 and _horizontal2 and _vertical1) unsetFlags( CntInvalidatedCache ); - ltrace(110) << "| h1:" << _horizontal1 << endl; - ltrace(110) << "| h2:" << _horizontal2 << endl; - ltrace(110) << "| v1:" << _vertical1 << endl; + cdebug.log(145) << "| h1:" << _horizontal1 << endl; + cdebug.log(145) << "| h2:" << _horizontal2 << endl; + cdebug.log(145) << "| v1:" << _vertical1 << endl; - ltraceout(110); + cdebug.tabw(145,-1); } void AutoContactHTee::updateCache () { - DebugSession::open( getNet(), 80 ); + DebugSession::open( getNet(), 140, 150 ); - ltrace(110) << _getTypeName() << "::updateCache() " << this << endl; - ltracein(110); + cdebug.log(145,1) << _getTypeName() << "::updateCache() " << this << endl; Component* anchor; Horizontal** horizontals = new Horizontal* [3]; @@ -228,30 +224,29 @@ namespace Katabatic { } unsetFlags( CntInvalidatedCache ); - ltrace(110) << "h1:" << _horizontal1 << endl; - ltrace(110) << "h2:" << _horizontal2 << endl; - ltrace(110) << "v1:" << _vertical1 << endl; + cdebug.log(145) << "h1:" << _horizontal1 << endl; + cdebug.log(145) << "h2:" << _horizontal2 << endl; + cdebug.log(145) << "v1:" << _vertical1 << endl; delete [] horizontals; delete [] verticals; - ltraceout(110); + cdebug.tabw(145,-1); DebugSession::close(); } void AutoContactHTee::updateGeometry () { - DebugSession::open( getNet(), 80 ); + DebugSession::open( getNet(), 140, 150 ); - ltrace(110) << _getTypeName() << "::updateGeometry() " << this << endl; - ltracein(110); + cdebug.log(145,1) << _getTypeName() << "::updateGeometry() " << this << endl; if (isInvalidatedCache()) updateCache(); if (isInvalidatedCache()) { cerr << Error( "%s::updateGeometry() %s: Unable to restore cache." , _getTypeName().c_str(), getString(this).c_str() ) << endl; - ltraceout(110); + cdebug.tabw(145,-1); return; } @@ -263,23 +258,22 @@ namespace Katabatic { setY( getHorizontal1()->getY() ); } - ltraceout(110); + cdebug.tabw(145,-1); DebugSession::close(); } void AutoContactHTee::updateTopology () { - DebugSession::open( getNet(), 80 ); + DebugSession::open( getNet(), 140, 150 ); - ltrace(110) << _getTypeName() << "::updateTopology() " << this << endl; - ltracein(110); + cdebug.log(145,1) << _getTypeName() << "::updateTopology() " << this << endl; if (isInvalidatedCache()) updateCache(); if (isInvalidatedCache()) { cerr << Error( "%s::updateGeometry() %s: Unable to restore cache." , _getTypeName().c_str(), getString(this).c_str() ) << endl; - ltraceout(110); + cdebug.tabw(145,-1); return; } @@ -292,7 +286,7 @@ namespace Katabatic { size_t maxDepth = std::max( depthV1, std::max(depthH1,depthH2) ); size_t delta = maxDepth - minDepth; - ltrace(110) << "delta:" << delta << endl; + cdebug.log(145) << "delta:" << delta << endl; unsetFlags( CntWeakTerminal ); @@ -319,12 +313,12 @@ namespace Katabatic { setLayer( rg->getContactLayer( depthH2 + ((depthH2( _horizontal1->makeDogleg(this) ); _horizontal1->makeDogleg(this); - ltrace(110) << "New h1:" << _horizontal1 << endl; + cdebug.log(145) << "New h1:" << _horizontal1 << endl; } else { setLayer( rg->getContactLayer( depthH1 + ((depthH1( _horizontal2->makeDogleg(this) ); _horizontal2->makeDogleg(this); - ltrace(110) << "New h2:" << _horizontal2 << endl; + cdebug.log(145) << "New h2:" << _horizontal2 << endl; } } } @@ -334,7 +328,7 @@ namespace Katabatic { _vertical1 ->invalidate( this ); } - ltraceout(110); + cdebug.tabw(145,-1); DebugSession::close(); } diff --git a/katabatic/src/AutoContactTerminal.cpp b/katabatic/src/AutoContactTerminal.cpp index aea372e0..c79d8e83 100644 --- a/katabatic/src/AutoContactTerminal.cpp +++ b/katabatic/src/AutoContactTerminal.cpp @@ -46,8 +46,6 @@ namespace Katabatic { using Hurricane::DebugSession; using Hurricane::Transformation; using Hurricane::Entity; - using Hurricane::ltracein; - using Hurricane::ltraceout; // ------------------------------------------------------------------- @@ -62,9 +60,8 @@ namespace Katabatic { , DbU::Unit height ) { - ltrace(90) << "AutoContactTerminal::create(... Point, ...)" << endl; - ltracein(90); - ltrace(90) << "@" << point << endl; + cdebug.log(145,1) << "AutoContactTerminal::create(... Point, ...)" << endl; + cdebug.log(145) << "@" << point << endl; anchor->getBodyHook()->detach(); @@ -74,7 +71,7 @@ namespace Katabatic { , point.getX(), point.getY() , width, height ); - ltraceout(90); + cdebug.tabw(145,-1); return autoContact; } @@ -88,8 +85,8 @@ namespace Katabatic { , const DbU::Unit height ) { - ltrace(90) << "AutoContactTerminal::create(... x, y, ...)" << endl; - ltrace(90) << "@ x:" << DbU::getValueString(x) << " y:" << DbU::getValueString(y) << endl; + cdebug.log(145) << "AutoContactTerminal::create(... x, y, ...)" << endl; + cdebug.log(145) << "@ x:" << DbU::getValueString(x) << " y:" << DbU::getValueString(y) << endl; Point anchorPosition = anchor->getPosition(); @@ -105,7 +102,7 @@ namespace Katabatic { autoContact->_postCreate(); autoContact->unsetFlags( CntInCreationStage ); - ltrace(90) << "create(Component*) " << autoContact << endl; + cdebug.log(145) << "create(Component*) " << autoContact << endl; return autoContact; } @@ -144,13 +141,12 @@ namespace Katabatic { Box AutoContactTerminal::getNativeConstraintBox () const { - ltrace(110) << "AutoContactTerminal::getNativeConstraintBox()" << endl; - ltracein(110); + cdebug.log(145,1) << "AutoContactTerminal::getNativeConstraintBox()" << endl; Component* component = getAnchor(); if (component == NULL) { cerr << Error( "%s is not anchored.", getString(this).c_str() ) << endl; - ltraceout(110); + cdebug.tabw(145,-1); return _gcell->getBoundingBox (); } @@ -163,13 +159,13 @@ namespace Katabatic { RoutingPad* routingPad; if ( (horizontal = dynamic_cast(component)) ) { - ltrace(110) << "Anchor: " << horizontal << "@" << horizontal->getSourcePosition() << endl; + cdebug.log(145) << "Anchor: " << horizontal << "@" << horizontal->getSourcePosition() << endl; xMin = horizontal->getSourcePosition().getX(); xMax = horizontal->getTargetPosition().getX(); yMin = yMax = horizontal->getTargetPosition().getY(); } else if ( (vertical = dynamic_cast(component)) ) { - ltrace(110) << "Anchor: " << vertical << "@" << vertical->getSourcePosition() << endl; + cdebug.log(145) << "Anchor: " << vertical << "@" << vertical->getSourcePosition() << endl; yMin = vertical->getSourcePosition().getY(); yMax = vertical->getTargetPosition().getY(); xMin = xMax @@ -177,7 +173,7 @@ namespace Katabatic { } else if ( (routingPad = dynamic_cast(component)) ) { Entity* entity = routingPad->getOccurrence().getEntity(); Transformation transf = routingPad->getOccurrence().getPath().getTransformation(); - ltrace(110) << "Anchor: " << routingPad << endl; + cdebug.log(145) << "Anchor: " << routingPad << endl; int rpOrient = 1; switch ( transf.getOrientation() ) { @@ -226,10 +222,10 @@ namespace Katabatic { order( xMin, xMax ); order( yMin, yMax ); - ltrace(110) << "| Using (y): " << DbU::getValueString(yMin) << " " + cdebug.log(145) << "| Using (y): " << DbU::getValueString(yMin) << " " << DbU::getValueString(yMax) << endl; - ltraceout(110); + cdebug.tabw(145,-1); return Box( xMin, yMin, xMax, yMax ); } @@ -265,10 +261,9 @@ namespace Katabatic { void AutoContactTerminal::updateCache () { - DebugSession::open( getNet(), 80 ); + DebugSession::open( getNet(), 140, 150 ); - ltrace(110) << _getTypeName() << "::updateCache() " << this << endl; - ltracein(110); + cdebug.log(145,1) << _getTypeName() << "::updateCache() " << this << endl; Component* anchor; Horizontal** horizontals = new Horizontal* [2]; @@ -305,28 +300,27 @@ namespace Katabatic { throw Error( os.str() ); } unsetFlags( CntInvalidatedCache ); - ltrace(110) << "seg:" << _segment << endl; + cdebug.log(145) << "seg:" << _segment << endl; delete [] horizontals; delete [] verticals; - ltraceout(110); + cdebug.tabw(145,-1); DebugSession::close(); } void AutoContactTerminal::updateGeometry () { - DebugSession::open( getNet(), 80 ); + DebugSession::open( getNet(), 140, 150 ); - ltrace(110) << _getTypeName() << "::updateGeometry() " << this << endl; - ltracein(110); + cdebug.log(145,1) << _getTypeName() << "::updateGeometry() " << this << endl; if (isInvalidatedCache()) updateCache(); if (isInvalidatedCache()) { cerr << Error( "%s::updateGeometry() %s: Unable to restore cache." , _getTypeName().c_str(), getString(this).c_str() ) << endl; - ltraceout(110); + cdebug.tabw(145,-1); return; } @@ -337,7 +331,7 @@ namespace Katabatic { if (not hasBadTopology()) { if (_segment->isHorizontal()) { if (not getUConstraints(KbVertical).contains(_segment->getY())) { - ltrace(110) << "Cached: " << _segment << endl; + cdebug.log(145) << "Cached: " << _segment << endl; message << "Terminal horizontal segment Y " << DbU::getValueString(_segment->getY()) << " axis is outside RoutingPad " << getUConstraints(KbVertical) << "."; @@ -348,7 +342,7 @@ namespace Katabatic { setY( _segment->getY() ); } else { if (not getUConstraints(KbHorizontal).contains(_segment->getX())) { - ltrace(110) << "Cached: " << _segment << endl; + cdebug.log(145) << "Cached: " << _segment << endl; message << "Terminal vertical segment X" << DbU::getValueString(_segment->getX()) << " axis is outside RoutingPad " << getUConstraints(KbHorizontal) << "."; @@ -360,23 +354,22 @@ namespace Katabatic { } } - ltraceout(110); + cdebug.tabw(145,-1); DebugSession::close(); } void AutoContactTerminal::updateTopology () { - DebugSession::open( getNet(), 80 ); + DebugSession::open( getNet(), 140, 150 ); - ltrace(110) << _getTypeName() << "::updateTopology() " << this << endl; - ltracein(110); + cdebug.log(145,1) << _getTypeName() << "::updateTopology() " << this << endl; if (isInvalidatedCache()) updateCache(); if (isInvalidatedCache()) { cerr << Error( "%s::updateGeometry() %s: Unable to restore cache." , _getTypeName().c_str(), getString(this).c_str() ) << endl; - ltraceout(110); + cdebug.tabw(145,-1); return; } @@ -393,7 +386,7 @@ namespace Katabatic { if (delta > 1) { //_segment = _segment->makeDogleg( this ); _segment->makeDogleg( this ); - ltrace(110) << "Update seg: " << _segment << endl; + cdebug.log(145) << "Update seg: " << _segment << endl; delta = abssub( anchorDepth, rg->getLayerDepth( _segment->getLayer() ) ); } else if (delta == 0) setLayer( rg->getRoutingLayer(anchorDepth) ); @@ -401,7 +394,7 @@ namespace Katabatic { } _segment->invalidate( this ); - ltraceout(110); + cdebug.tabw(145,-1); DebugSession::close(); } diff --git a/katabatic/src/AutoContactTurn.cpp b/katabatic/src/AutoContactTurn.cpp index 3507bc9c..1c5d7b06 100644 --- a/katabatic/src/AutoContactTurn.cpp +++ b/katabatic/src/AutoContactTurn.cpp @@ -41,8 +41,6 @@ namespace Katabatic { using Hurricane::Bug; using Hurricane::Error; using Hurricane::DebugSession; - using Hurricane::ltracein; - using Hurricane::ltraceout; // ------------------------------------------------------------------- @@ -66,7 +64,7 @@ namespace Katabatic { autoContact->_postCreate(); autoContact->unsetFlags( CntInCreationStage ); - ltrace(90) << "create(net*) " << autoContact << endl; + cdebug.log(145) << "create(net*) " << autoContact << endl; return autoContact; } @@ -151,10 +149,9 @@ namespace Katabatic { void AutoContactTurn::updateCache () { - DebugSession::open( getNet(), 80 ); + DebugSession::open( getNet(), 140, 150 ); - ltrace(110) << _getTypeName() << "::updateCache() " << this << endl; - ltracein(110); + cdebug.log(145,1) << _getTypeName() << "::updateCache() " << this << endl; Component* anchor; Horizontal** horizontals = new Horizontal* [2]; @@ -178,29 +175,28 @@ namespace Katabatic { } else unsetFlags( CntInvalidatedCache ); - ltrace(110) << "h1:" << _horizontal1 << endl; - ltrace(110) << "v1:" << _vertical1 << endl; + cdebug.log(145) << "h1:" << _horizontal1 << endl; + cdebug.log(145) << "v1:" << _vertical1 << endl; delete [] horizontals; delete [] verticals; - ltraceout(110); + cdebug.tabw(145,-1); DebugSession::close(); } void AutoContactTurn::updateGeometry () { - DebugSession::open( getNet(), 80 ); + DebugSession::open( getNet(), 140, 150 ); - ltrace(110) << _getTypeName() << "::updateGeometry() " << this << endl; - ltracein(110); + cdebug.log(145,1) << _getTypeName() << "::updateGeometry() " << this << endl; if (isInvalidatedCache()) updateCache(); if (isInvalidatedCache()) { cerr << Error( "%s::updateGeometry() %s: Unable to restore cache." , _getTypeName().c_str(), getString(this).c_str() ) << endl; - ltraceout(110); + cdebug.tabw(145,-1); return; } @@ -212,23 +208,22 @@ namespace Katabatic { setY( getHorizontal1()->getY() ); } - ltraceout(110); + cdebug.tabw(145,-1); DebugSession::close(); } void AutoContactTurn::updateTopology () { - DebugSession::open ( getNet(), 80 ); + DebugSession::open ( getNet(), 140, 150 ); - ltrace(110) << _getTypeName() << "::updateTopology() " << this << endl; - ltracein(110); + cdebug.log(145,1) << _getTypeName() << "::updateTopology() " << this << endl; if (isInvalidatedCache()) updateCache(); if (isInvalidatedCache()) { cerr << Error( "%s::updateGeometry() %s: Unable to restore cache." , _getTypeName().c_str(), getString(this).c_str() ) << endl; - ltraceout(110); + cdebug.tabw(145,-1); return; } @@ -249,12 +244,12 @@ namespace Katabatic { //_horizontal1 = static_cast( _horizontal1->makeDogleg(this) ); _horizontal1->makeDogleg(this); depthH1 = rg->getLayerDepth( _horizontal1->getLayer() ); - ltrace(110) << "Update h1: " << _horizontal1 << endl; + cdebug.log(145) << "Update h1: " << _horizontal1 << endl; } else /*if (_vertical1->isInvalidatedLayer())*/ { //_vertical1 = static_cast( _vertical1->makeDogleg(this) ); _vertical1->makeDogleg(this); depthV1 = rg->getLayerDepth( _vertical1->getLayer() ); - ltrace(110) << "Update v1: " << _vertical1 << endl; + cdebug.log(145) << "Update v1: " << _vertical1 << endl; } delta = abssub ( depthH1, depthV1 ); } @@ -266,7 +261,7 @@ namespace Katabatic { _vertical1 ->invalidate( this ); } - ltraceout(110); + cdebug.tabw(145,-1); DebugSession::close (); } diff --git a/katabatic/src/AutoContactVTee.cpp b/katabatic/src/AutoContactVTee.cpp index 47e8a2e0..5fd4e280 100644 --- a/katabatic/src/AutoContactVTee.cpp +++ b/katabatic/src/AutoContactVTee.cpp @@ -41,8 +41,6 @@ namespace Katabatic { using Hurricane::Bug; using Hurricane::Error; using Hurricane::DebugSession; - using Hurricane::ltracein; - using Hurricane::ltraceout; // ------------------------------------------------------------------- @@ -64,7 +62,7 @@ namespace Katabatic { autoContact->_postCreate(); autoContact->unsetFlags( CntInCreationStage ); - ltrace(90) << "create(net*) " << autoContact << endl; + cdebug.log(145) << "create(net*) " << autoContact << endl; return autoContact; } @@ -161,10 +159,9 @@ namespace Katabatic { void AutoContactVTee::updateCache () { - DebugSession::open( getNet(), 80 ); + DebugSession::open( getNet(), 140, 150 ); - ltrace(110) << "AutoContactVTee::updateCache() " << this << endl; - ltracein(110); + cdebug.log(145,1) << "AutoContactVTee::updateCache() " << this << endl; Component* anchor; Horizontal** horizontals = new Horizontal* [3]; @@ -194,30 +191,29 @@ namespace Katabatic { } unsetFlags( CntInvalidatedCache ); - ltrace(110) << "h1:" << _horizontal1 << endl; - ltrace(110) << "v1:" << _vertical1 << endl; - ltrace(110) << "v2:" << _vertical2 << endl; + cdebug.log(145) << "h1:" << _horizontal1 << endl; + cdebug.log(145) << "v1:" << _vertical1 << endl; + cdebug.log(145) << "v2:" << _vertical2 << endl; delete [] horizontals; delete [] verticals; - ltraceout(110); + cdebug.tabw(145,-1); DebugSession::close(); } void AutoContactVTee::updateGeometry () { - DebugSession::open( getNet(), 80 ); + DebugSession::open( getNet(), 140, 150 ); - ltrace(110) << "AutoContactVTee::updateGeometry() " << this << endl; - ltracein(110); + cdebug.log(145,1) << "AutoContactVTee::updateGeometry() " << this << endl; if (isInvalidatedCache()) updateCache(); if (isInvalidatedCache()) { cerr << Error( "%s::updateGeometry() %s: Unable to restore cache." , _getTypeName().c_str(), getString(this).c_str() ) << endl; - ltraceout(110); + cdebug.tabw(145,-1); return; } @@ -229,23 +225,22 @@ namespace Katabatic { setY( getHorizontal1()->getY() ); } - ltraceout(110); + cdebug.tabw(145,-1); DebugSession::close(); } void AutoContactVTee::updateTopology () { - DebugSession::open ( getNet(), 80 ); + DebugSession::open ( getNet(), 140, 150 ); - ltrace(110) << "AutoContactVTee::updateTopology() " << this << endl; - ltracein(110); + cdebug.log(145,1) << "AutoContactVTee::updateTopology() " << this << endl; if (isInvalidatedCache()) updateCache(); if (isInvalidatedCache()) { cerr << Error( "%s::updateGeometry() %s: Unable to restore cache." , _getTypeName().c_str(), getString(this).c_str() ) << endl; - ltraceout(110); + cdebug.tabw(145,-1); return; } @@ -258,9 +253,9 @@ namespace Katabatic { size_t maxDepth = std::max( depthH1, std::max(depthV1,depthV2) ); size_t delta = maxDepth - minDepth; - ltrace(110) << "minDepth:" << minDepth << endl; - ltrace(110) << "maxDepth:" << maxDepth << endl; - ltrace(110) << "delta:" << delta << endl; + cdebug.log(145) << "minDepth:" << minDepth << endl; + cdebug.log(145) << "maxDepth:" << maxDepth << endl; + cdebug.log(145) << "delta:" << delta << endl; unsetFlags( CntWeakTerminal ); @@ -269,13 +264,13 @@ namespace Katabatic { setFlags( CntBadTopology ); } else { if (depthV1 == depthV2) { - ltrace(110) << "depthV1 == depthV2 (" << depthV1 << ")" << endl; + cdebug.log(145) << "depthV1 == depthV2 (" << depthV1 << ")" << endl; // Dogleg on the horizontal. switch ( delta ) { case 0: setLayer( rg->getRoutingLayer(minDepth) ); break; case 1: setLayer( rg->getContactLayer(minDepth) ); break; default: - ltrace(110) << "Restore connectivity: dogleg on h1." << endl; + cdebug.log(145) << "Restore connectivity: dogleg on h1." << endl; setLayer( rg->getContactLayer( depthV1 + ((depthV1==minDepth)?0:-1) ) ); _horizontal1 = static_cast( _horizontal1->makeDogleg(this) ); break; @@ -302,7 +297,7 @@ namespace Katabatic { _vertical2 ->invalidate( this ); } - ltraceout(110); + cdebug.tabw(145,-1); DebugSession::close (); } diff --git a/katabatic/src/AutoHorizontal.cpp b/katabatic/src/AutoHorizontal.cpp index 1a750415..2ca1438e 100644 --- a/katabatic/src/AutoHorizontal.cpp +++ b/katabatic/src/AutoHorizontal.cpp @@ -32,8 +32,6 @@ namespace Katabatic { using std::min; using std::max; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::Error; using Hurricane::Bug; using Hurricane::DebugSession; @@ -61,8 +59,8 @@ namespace Katabatic { : AutoSegment(horizontal) , _horizontal(horizontal) { - ltrace(99) << "CTOR AutoHorizontal " << this << endl; - ltrace(99) << " over " << horizontal << endl; + cdebug.log(145) << "CTOR AutoHorizontal " << this << endl; + cdebug.log(145) << " over " << horizontal << endl; } @@ -109,9 +107,9 @@ namespace Katabatic { void AutoHorizontal::_preDestroy () { - ltrace(200) << "AutoHorizontal::_preDestroy() - " << endl; - ltrace(200) << " " << _getString() << endl; - ltracein(90); + cdebug.log(149) << "AutoHorizontal::_preDestroy() - " << endl; + cdebug.log(149) << " " << _getString() << endl; + cdebug.tabw(145,1); if ( not Session::doDestroyTool() ) { AutoContact* source = getAutoSource(); @@ -140,14 +138,14 @@ namespace Katabatic { } AutoSegment::_preDestroy (); - ltraceout(90); + cdebug.tabw(145,-1); } AutoHorizontal::~AutoHorizontal () { if ( Session::doDestroyBaseSegment() and not Session::doDestroyTool() ) { - ltrace(200) << "~AutoHorizontal() - " << endl; + cdebug.log(149) << "~AutoHorizontal() - " << endl; _horizontal->destroy (); } } @@ -179,7 +177,7 @@ namespace Katabatic { constraintMin = contact->getCBYMin(); constraintMax = contact->getCBYMax(); - ltrace(148) << "Source constraints: " << contact << " [" + cdebug.log(149) << "Source constraints: " << contact << " [" << DbU::getValueString(constraintMin) << ":" << DbU::getValueString(constraintMax) << "]" << endl; @@ -188,7 +186,7 @@ namespace Katabatic { constraintMin = max ( constraintMin, contact->getCBYMin() ); constraintMax = min ( constraintMax, contact->getCBYMax() ); - ltrace(148) << "Merge with target constraints: " << contact << " [" + cdebug.log(149) << "Merge with target constraints: " << contact << " [" << DbU::getValueString(contact->getCBYMin()) << ":" << DbU::getValueString(contact->getCBYMax()) << "]" << endl; @@ -196,12 +194,12 @@ namespace Katabatic { constraintMin = max ( constraintMin, getUserConstraints().getVMin() ); constraintMax = min ( constraintMax, getUserConstraints().getVMax() ); - ltrace(148) << "Merge with user constraints: " << getUserConstraints() << " [" + cdebug.log(149) << "Merge with user constraints: " << getUserConstraints() << " [" << DbU::getValueString(getUserConstraints().getVMin()) << ":" << DbU::getValueString(getUserConstraints().getVMax()) << "]" << endl; - ltrace(148) << "Resulting constraints: " << " [" + cdebug.log(149) << "Resulting constraints: " << " [" << DbU::getValueString(constraintMin) << ":" << DbU::getValueString(constraintMax) << "]" << endl; @@ -235,7 +233,7 @@ namespace Katabatic { bool AutoHorizontal::_canSlacken () const { - ltracein(200); + cdebug.tabw(149,1); Interval sourceSide = getAutoSource()->getGCell()->getSide( KbVertical ); Interval targetSide = getAutoTarget()->getGCell()->getSide( KbVertical ); @@ -246,24 +244,24 @@ namespace Katabatic { sourceConstraints.inflate( 1 ); targetConstraints.inflate( 1 ); - ltrace(200) << "source " << getAutoSource() << endl; - ltrace(200) << "source constraints: " << sourceConstraints + cdebug.log(149) << "source " << getAutoSource() << endl; + cdebug.log(149) << "source constraints: " << sourceConstraints << " " << DbU::getValueString(sourceConstraints.getSize()) << endl; - ltrace(200) << "target " << getAutoTarget() << endl; - ltrace(200) << "target constraints: " << targetConstraints + cdebug.log(149) << "target " << getAutoTarget() << endl; + cdebug.log(149) << "target constraints: " << targetConstraints << " " << DbU::getValueString(targetConstraints.getSize()) << endl; - if (not sourceConstraints.contains(sourceSide)) { ltraceout(200); return true; } - if (not targetConstraints.contains(targetSide)) { ltraceout(200); return true; } + if (not sourceConstraints.contains(sourceSide)) { cdebug.tabw(149,-1); return true; } + if (not targetConstraints.contains(targetSide)) { cdebug.tabw(149,-1); return true; } - ltraceout(200); + cdebug.tabw(149,-1); return false; } bool AutoHorizontal::_slacken ( unsigned int flags ) { - ltrace(200) << "AutoHorizontal::_slacken() " << this << endl; + cdebug.log(149) << "AutoHorizontal::_slacken() " << this << endl; if (not isStrongTerminal()) return false; @@ -290,10 +288,10 @@ namespace Katabatic { return false; } - ltracein(200); - ltrace(200) << "_flags:" << (_flags & (SegGlobal|SegWeakGlobal)) << endl; - ltrace(200) << "test:" << (getLength() < 5*getPitch()) << endl; - ltrace(200) << "length:" << DbU::getValueString(getLength()) << endl; + cdebug.tabw(149,1); + cdebug.log(149) << "_flags:" << (_flags & (SegGlobal|SegWeakGlobal)) << endl; + cdebug.log(149) << "test:" << (getLength() < 5*getPitch()) << endl; + cdebug.log(149) << "length:" << DbU::getValueString(getLength()) << endl; int lowSlack = (flags & KbHalfSlacken) ? 3 : 10; bool slackened = false; @@ -308,13 +306,13 @@ namespace Katabatic { int slack = constraints.getSize() / getPitch(); int nativeSlack = nativeConstraints.getSize() / getPitch(); - ltrace(200) << "Source constraint: " << constraints + cdebug.log(149) << "Source constraint: " << constraints << " slack:" << slack << " native slack:" << nativeSlack << endl; - ltrace(200) << "Perpand constraints on target: " << perpandConstraints << endl; + cdebug.log(149) << "Perpand constraints on target: " << perpandConstraints << endl; // Ugly: GCell's track number is hardwired. if ((nativeSlack < lowSlack) or (nativeSlack - slack < 3)) { - ltrace(200) << "Slackening from Source: " << source << endl; + cdebug.log(149) << "Slackening from Source: " << source << endl; _makeDogleg( source->getGCell(), KbNoFlags ); slackened = true; } else if (slack < 10) { @@ -323,12 +321,12 @@ namespace Katabatic { const vector& doglegs = Session::getDoglegs(); if (doglegs.size() >= 2) { - ltrace(200) << "AutoSegment::_slaken(): Source @" << DbU::getValueString(getSourcePosition()) << endl; + cdebug.log(149) << "AutoSegment::_slaken(): Source @" << DbU::getValueString(getSourcePosition()) << endl; doglegs[doglegs.size()-2]->setAxis( getSourcePosition() ); success = true; if (isMetal2Source) { - ltrace(200) << "Fixing on source terminal contact." + cdebug.log(149) << "Fixing on source terminal contact." << doglegs[doglegs.size()-2]->getAutoSource() << endl; //doglegs[doglegs.size()-2]->getAutoSource()->setFlags( CntFixed ); doglegs[doglegs.size()-2]->getAutoSource()->setConstraintBox( source->getConstraintBox() ); @@ -348,11 +346,11 @@ namespace Katabatic { int nativeSlack = nativeConstraints.getSize() / getPitch(); // Ugly: GCell's track number is hardwired. - ltrace(200) << "Target constraint: " << constraints + cdebug.log(149) << "Target constraint: " << constraints << " slack:" << slack << " native slack:" << nativeSlack << endl; if ((nativeSlack < lowSlack) or (nativeSlack - slack < 3)) { - ltrace(200) << "Slackening from Target: " << target << endl; + cdebug.log(149) << "Slackening from Target: " << target << endl; parallel->_makeDogleg( target->getGCell(), KbNoFlags ); slackened = true; } else if (slack < 10) { @@ -368,12 +366,12 @@ namespace Katabatic { const vector& doglegs = Session::getDoglegs(); if (doglegs.size() >= 2) { - ltrace(200) << "AutoSegment::_slaken(): Target @" << DbU::getValueString(targetPosition) << endl; + cdebug.log(149) << "AutoSegment::_slaken(): Target @" << DbU::getValueString(targetPosition) << endl; doglegs[doglegs.size()-2]->setAxis( targetPosition ); success = true; if (isMetal2Target) { - ltrace(200) << "Fixing on target terminal contact: " + cdebug.log(149) << "Fixing on target terminal contact: " << doglegs[doglegs.size()-2]->getAutoTarget() << endl; //doglegs[doglegs.size()-2]->getAutoTarget()->setFlags( CntFixed ); doglegs[doglegs.size()-2]->getAutoTarget()->setConstraintBox( target->getConstraintBox() ); @@ -381,7 +379,7 @@ namespace Katabatic { } } } - ltraceout(200); + cdebug.tabw(149,-1); return success; } @@ -401,7 +399,7 @@ namespace Katabatic { if (_horizontal->getY() == axis) return; - ltrace(80) << "_setAxis() @Y " << DbU::toLambda(axis) << " " << this << endl; + cdebug.log(145) << "_setAxis() @Y " << DbU::toLambda(axis) << " " << this << endl; _horizontal->setY( axis ); invalidate(); @@ -419,7 +417,7 @@ namespace Katabatic { void AutoHorizontal::updateOrient () { if (_horizontal->getTargetX() < _horizontal->getSourceX()) { - ltrace(80) << "updateOrient() " << this << " (before S/T swap)" << endl; + cdebug.log(145) << "updateOrient() " << this << " (before S/T swap)" << endl; _horizontal->invert(); unsigned int spinFlags = _flags & SegDepthSpin; @@ -706,9 +704,9 @@ namespace Katabatic { unsigned int AutoHorizontal::_makeDogleg ( GCell* doglegGCell, unsigned int flags ) { - DebugSession::open( getNet(), 80 ); - ltrace(200) << "AutoHorizontal::_makeDogleg(GCell*)" << endl; - ltracein(159); + DebugSession::open( getNet(), 140, 150 ); + cdebug.log(149) << "AutoHorizontal::_makeDogleg(GCell*)" << endl; + cdebug.tabw(149,1); //Session::doglegReset(); @@ -721,7 +719,7 @@ namespace Katabatic { if (isLocal()) doglegAxis = (getSourceX() + getTargetX()) / 2; - ltrace(159) << "Detaching from Target AutoContact " << autoTarget << "." << endl; + cdebug.log(149) << "Detaching from Target AutoContact " << autoTarget << "." << endl; if (doglegGCell == begin) unsetFlags( SegGlobal ); if (doglegGCell != end) { @@ -749,8 +747,8 @@ namespace Katabatic { segment1->_setAxis( doglegAxis ); segment1->setFlags( SegDogleg|SegSlackened|SegCanonical|SegNotAligned ); - ltrace(200) << "New " << dlContact1 << endl; - ltrace(200) << "New " << dlContact2 << endl; + cdebug.log(149) << "New " << dlContact1 << endl; + cdebug.log(149) << "New " << dlContact2 << endl; Session::dogleg( segment1 ); targetAttach( dlContact1 ); @@ -782,9 +780,9 @@ namespace Katabatic { segment2->setFlags( SegWeakTerminal1 ); } - ltrace(200) << "Session::dogleg[x+1] perpand: " << segment1 << endl; - ltrace(200) << "Session::dogleg[x+2] new paral: " << segment2 << endl; - ltrace(200) << "Session::dogleg[x+0] original: " << this << endl; + cdebug.log(149) << "Session::dogleg[x+1] perpand: " << segment1 << endl; + cdebug.log(149) << "Session::dogleg[x+2] new paral: " << segment2 << endl; + cdebug.log(149) << "Session::dogleg[x+0] original: " << this << endl; dlContact1->updateCache(); dlContact2->updateCache(); @@ -793,7 +791,7 @@ namespace Katabatic { segment2->canonize( flags ); if (not isCanonical()) canonize( flags ); - ltraceout(159); + cdebug.tabw(149,-1); DebugSession::close(); return (upLayer) ? KbUseAboveLayer : KbUseBelowLayer; diff --git a/katabatic/src/AutoSegment.cpp b/katabatic/src/AutoSegment.cpp index 1a13e428..853ebe7b 100644 --- a/katabatic/src/AutoSegment.cpp +++ b/katabatic/src/AutoSegment.cpp @@ -111,7 +111,7 @@ namespace { } else { if ( autoSegment->isGlobal() ) return false; - ltrace(88) << "Examining " << autoSegment << " " << fromContact << endl; + cdebug.log(145) << "Examining " << autoSegment << " " << fromContact << endl; if ( autoSegment->getSource() == autoSegment->getTarget() ) { cerr << Error("Source & Target are the same :\n" @@ -146,7 +146,7 @@ namespace { return false; } } else { - ltrace(88) << "Terminal is " << terminalContact << endl; + cdebug.log(145) << "Terminal is " << terminalContact << endl; Box constraintBox = terminalContact->getConstraintBox(); if ( isHorizontal ) { @@ -198,7 +198,7 @@ namespace { _attractors[position]++; _attractorsCount++; - ltrace(88) << "add Attractor @" << DbU::toLambda(position) + cdebug.log(145) << "add Attractor @" << DbU::toLambda(position) << " [" << _attractors[position] << "]" << endl; } @@ -367,13 +367,13 @@ namespace Katabatic { void AutoSegment::_preDestroy () { - ltrace(200) << "AutoSegment::_preDestroy() - " << (void*)this << endl; - ltracein(90); + cdebug.log(149) << "AutoSegment::_preDestroy() - " << (void*)this << endl; + cdebug.tabw(145,1); _observers.notify( Destroy ); Session::unlink( this ); - ltraceout(90); + cdebug.tabw(145,-1); } @@ -420,8 +420,8 @@ namespace Katabatic { if (flags & KbTarget) setFlags( SegInvalidatedTarget ); if (isInvalidated()) return; - ltrace(200) << "AutoSegment::invalidate() " << flags << " " << this << endl; - ltracein(200); + cdebug.log(149) << "AutoSegment::invalidate() " << flags << " " << this << endl; + cdebug.tabw(149,1); _invalidate(); @@ -430,14 +430,14 @@ namespace Katabatic { isegment->_invalidate(); } } - ltraceout(200); + cdebug.tabw(149,-1); } void AutoSegment::_invalidate () { if (isInvalidated()) return; - ltrace(110) << "AutoSegment::_invalidate() " << this << endl; + cdebug.log(145) << "AutoSegment::_invalidate() " << this << endl; setFlags( SegInvalidated ); Session::invalidate( this ); @@ -456,10 +456,10 @@ namespace Katabatic { void AutoSegment::revalidate () { - ltrace(200) << "AutoSegment::revalidate() " << this << endl; + cdebug.log(149) << "AutoSegment::revalidate() " << this << endl; if (not isInvalidated()) return; - ltracein(200); + cdebug.tabw(149,1); updateOrient (); updatePositions(); @@ -470,7 +470,7 @@ namespace Katabatic { AutoContact* source = getAutoSource(); const Layer* contactLayer = source->getLayer(); const Layer* segmentLayer = getLayer(); - ltrace(200) << "Changed source: " << source << endl; + cdebug.log(149) << "Changed source: " << source << endl; unsetFlags( SegSourceTop|SegSourceBottom ); if (contactLayer != segmentLayer) @@ -483,7 +483,7 @@ namespace Katabatic { AutoContact* target = getAutoTarget(); const Layer* contactLayer = target->getLayer(); const Layer* segmentLayer = getLayer(); - ltrace(200) << "Changed target: " << target << endl; + cdebug.log(149) << "Changed target: " << target << endl; unsetFlags( SegTargetTop|SegTargetBottom ); if (contactLayer != segmentLayer) @@ -505,8 +505,8 @@ namespace Katabatic { _observers.notify( observerFlags ); - ltrace(200) << "Updated: " << this << endl; - ltraceout(200); + cdebug.log(149) << "Updated: " << this << endl; + cdebug.tabw(149,-1); } @@ -558,14 +558,14 @@ namespace Katabatic { AutoSegment* AutoSegment::getCanonical ( DbU::Unit& min, DbU::Unit& max ) { - ltrace(89) << "AutoSegment::getCanonical() - " << this << endl; + cdebug.log(145) << "AutoSegment::getCanonical() - " << this << endl; min = getSourcePosition (); max = getTargetPosition (); if (max < min) swap( min, max ); - //ltrace(89) << "[" << DbU::getValueString(min) << " " << DbU::getValueString(max) << "]" << endl; + //cdebug.log(145) << "[" << DbU::getValueString(min) << " " << DbU::getValueString(max) << "]" << endl; AutoSegment* canonical = this; size_t canonicals = isCanonical(); @@ -588,8 +588,8 @@ namespace Katabatic { aligneds++; } - //ltrace(89) << "[" << DbU::getValueString(min) << " " << DbU::getValueString(max) << "]" << endl; - ltrace(89) << "Canonical: " << canonical << endl; + //cdebug.log(145) << "[" << DbU::getValueString(min) << " " << DbU::getValueString(max) << "]" << endl; + cdebug.log(145) << "Canonical: " << canonical << endl; if ( (canonicals > 1) or ( not canonicals and (aligneds > 2) ) ) { cerr << Bug("AutoSegment::getCanonical(): %p:%s" @@ -631,7 +631,7 @@ namespace Katabatic { AutoSegments AutoSegment::getAligneds ( unsigned int flags ) { - ltrace(89) << "AutoSegment::getAligneds() - flags:" << flags << endl; + cdebug.log(145) << "AutoSegment::getAligneds() - flags:" << flags << endl; return AutoSegments_Aligneds( this, flags ); } @@ -757,18 +757,17 @@ namespace Katabatic { void AutoSegment::mergeUserConstraints ( const Interval& constraints ) { - ltrace(200) << "mergeUserConstraints() " << this << endl; - ltrace(200) << "| " << constraints << " merged with " << _userConstraints << endl; + cdebug.log(149) << "mergeUserConstraints() " << this << endl; + cdebug.log(149) << "| " << constraints << " merged with " << _userConstraints << endl; _userConstraints.intersection(constraints); } bool AutoSegment::toConstraintAxis ( unsigned int flags ) { - ltrace(200) << "toConstraintAxis() " << this << endl; - ltracein(200); + cdebug.log(149,1) << "toConstraintAxis() " << this << endl; - if (not isCanonical()) { ltraceout(200); return false; } + if (not isCanonical()) { cdebug.tabw(149,-1); return false; } DbU::Unit constraintMin; DbU::Unit constraintMax; @@ -776,7 +775,7 @@ namespace Katabatic { getConstraints( constraintMin, constraintMax ); // Empty constraint interval: ignore. - if (constraintMin > constraintMax) { ltraceout(200); return false; } + if (constraintMin > constraintMax) { cdebug.tabw(149,-1); return false; } if (isDogleg()) { DbU::Unit halfSideLength = getAutoSource()->getGCell()->getSide @@ -787,27 +786,26 @@ namespace Katabatic { if (getAxis() < constraintMin) { setAxis( constraintMin, flags ); - ltraceout(200); + cdebug.tabw(149,-1); return true; } if (getAxis() > constraintMax) { setAxis( constraintMax, flags ); - ltraceout(200); + cdebug.tabw(149,-1); return true; } - ltraceout(200); + cdebug.tabw(149,-1); return false; } bool AutoSegment::toOptimalAxis ( unsigned int flags ) { - ltrace(200) << "toOptimalAxis() " << this << endl; - ltracein(200); + cdebug.log(149,1) << "toOptimalAxis() " << this << endl; - if (not isCanonical()) { ltraceout(200); return false; } + if (not isCanonical()) { cdebug.tabw(149,-1); return false; } DbU::Unit constraintMin; DbU::Unit constraintMax; @@ -819,19 +817,19 @@ namespace Katabatic { if (getAxis() < optimalMin) { setAxis( optimalMin, flags ); - ltraceout(200); + cdebug.tabw(149,-1); return true; } if (getAxis() > optimalMax) { setAxis( optimalMax, flags ); - ltraceout(200); + cdebug.tabw(149,-1); return true; } if (flags & KbRealignate) setAxis( getAxis(), flags ); - ltraceout(200); + cdebug.tabw(149,-1); return false; } @@ -842,10 +840,10 @@ namespace Katabatic { if ( (axis == getAxis()) and not (flags & KbRealignate) ) return; - ltrace(200) << "setAxis() @" + cdebug.log(149) << "setAxis() @" << ((isHorizontal())?"Y ":"X ") << DbU::toLambda(getAxis()) << " to " << DbU::toLambda(axis) << " on " << this << endl; - ltracein(80); + cdebug.tabw(145,1); _setAxis( axis ); @@ -854,10 +852,10 @@ namespace Katabatic { isegment->_setAxis( getAxis() ); } } else { - ltrace(200) << "No need to process parallels." << endl; + cdebug.log(149) << "No need to process parallels." << endl; } - ltraceout(80); + cdebug.tabw(145,-1); } @@ -866,7 +864,7 @@ namespace Katabatic { AutoContact* source = getAutoSource(); AutoContact* target = getAutoTarget(); - ltrace(99) << "computeTerminal() S:" << source->isTerminal() + cdebug.log(145) << "computeTerminal() S:" << source->isTerminal() << " T:" << target->isTerminal() << " " << this << endl; @@ -904,8 +902,7 @@ namespace Katabatic { void AutoSegment::computeOptimal ( set& processeds ) { - ltrace(89) << "computeOptimal() - " << this << endl; - ltracein(89); + cdebug.log(145,1) << "computeOptimal() - " << this << endl; DbU::Unit optimalMin; DbU::Unit optimalMax; @@ -956,10 +953,9 @@ namespace Katabatic { } forEach( AutoSegment*, autoSegment, getPerpandiculars() ) { - ltrace(89) << "Perpandicular " << *autoSegment << endl; - ltracein(89); + cdebug.log(145,1) << "Perpandicular " << *autoSegment << endl; if (autoSegment->isLocal()) { - if (not autoSegment->isStrongTerminal()) { ltraceout(89); continue; } + if (not autoSegment->isStrongTerminal()) { cdebug.tabw(145,-1); continue; } DbU::Unit terminalMin; DbU::Unit terminalMax; @@ -983,12 +979,12 @@ namespace Katabatic { isMin = false; attractors.addAttractor( (isMin) ? minGCell : maxGCell ); } - ltraceout(89); + cdebug.tabw(145,-1); } if (attractors.getAttractorsCount()) { - ltrace(89) << "Lower Median " << DbU::toLambda(attractors.getLowerMedian()) << endl; - ltrace(89) << "Upper Median " << DbU::toLambda(attractors.getUpperMedian()) << endl; + cdebug.log(145) << "Lower Median " << DbU::toLambda(attractors.getLowerMedian()) << endl; + cdebug.log(145) << "Upper Median " << DbU::toLambda(attractors.getUpperMedian()) << endl; optimalMin = attractors.getLowerMedian(); optimalMax = attractors.getUpperMedian(); @@ -1002,29 +998,29 @@ namespace Katabatic { setInBound( constraintMin, constraintMax, optimalMin ); setInBound( constraintMin, constraintMax, optimalMax ); - ltrace(89) << "Applying constraint on: " << this << endl; + cdebug.log(145) << "Applying constraint on: " << this << endl; setOptimalMin( optimalMin ); setOptimalMax( optimalMax ); processeds.insert( this ); if (not isNotAligned()) { forEach ( AutoSegment*, autoSegment, getAligneds() ) { - ltrace(89) << "Applying constraint on: " << *autoSegment << endl; + cdebug.log(145) << "Applying constraint on: " << *autoSegment << endl; autoSegment->setOptimalMin( optimalMin ); autoSegment->setOptimalMax( optimalMax ); processeds.insert( (*autoSegment) ); } } - ltraceout(89); + cdebug.tabw(145,-1); } AutoSegment* AutoSegment::canonize ( unsigned int flags ) { - ltrace(159) << "canonize() - " << this << endl; + cdebug.log(149) << "canonize() - " << this << endl; // if (isCanonical() and isGlobal()) { - // ltrace(159) << "* " << this << " canonical" << endl; + // cdebug.log(149) << "* " << this << " canonical" << endl; // return this; // } @@ -1042,7 +1038,7 @@ namespace Katabatic { if (not hasCanonical) { if (isegment->isCanonical()) { - ltrace(159) << "* " << *isegment << " canonical already set" << endl; + cdebug.log(149) << "* " << *isegment << " canonical already set" << endl; canonical = *isegment; hasCanonical = true; } @@ -1063,10 +1059,10 @@ namespace Katabatic { } if (segments.empty()) setFlags( SegNotAligned ); - if (isCanonical()) { ltrace(159) << "* " << this << " canonical" << endl; } + if (isCanonical()) { cdebug.log(149) << "* " << this << " canonical" << endl; } else { - ltrace(159) << "* " << this << " not canonical" << endl; - ltrace(159) << "* " << canonical << " *is* the canonical" << endl; + cdebug.log(149) << "* " << this << " not canonical" << endl; + cdebug.log(149) << "* " << canonical << " *is* the canonical" << endl; } } else { setFlags ( SegCanonical ); @@ -1264,8 +1260,7 @@ namespace Katabatic { void AutoSegment::changeDepth ( unsigned int depth, unsigned int flags ) { - ltrace(200) << "changeDepth() " << depth << " - " << this << endl; - ltracein(200); + cdebug.log(149,1) << "changeDepth() " << depth << " - " << this << endl; Session::invalidate( getNet() ); _changeDepth( depth, flags & ~KbPropagate ); @@ -1276,14 +1271,13 @@ namespace Katabatic { } } - ltraceout(200); + cdebug.tabw(149,-1); } void AutoSegment::_changeDepth ( unsigned int depth, unsigned int flags ) { - ltrace(200) << "_changeDepth() - " << this << endl; - ltracein(200); + cdebug.log(149,1) << "_changeDepth() - " << this << endl; invalidate( KbNoFlags ); setFlags( SegInvalidatedLayer|SegInvalidatedSource|SegInvalidatedTarget ); @@ -1297,7 +1291,7 @@ namespace Katabatic { } if (not (flags & KbWithNeighbors)) { - ltraceout(200); + cdebug.tabw(149,-1); return; } @@ -1328,13 +1322,13 @@ namespace Katabatic { for ( size_t i=0 ; iinvalidate(); - ltraceout(200); + cdebug.tabw(149,-1); } bool AutoSegment::canSlacken ( unsigned int flags ) const { - ltrace(200) << "AutoSegment::canSlacken()" << endl; + cdebug.log(149) << "AutoSegment::canSlacken()" << endl; if (not isGlobal() and not (flags & KbPropagate)) return false; @@ -1367,7 +1361,7 @@ namespace Katabatic { float AutoSegment::getMaxUnderDensity ( unsigned int flags ) { - ltrace(200) << "AutoSegment::getMaxUnderDensity() " << endl; + cdebug.log(149) << "AutoSegment::getMaxUnderDensity() " << endl; GCell* begin = NULL; GCell* end = NULL; @@ -1403,7 +1397,7 @@ namespace Katabatic { bool AutoSegment::canPivotUp ( float reserve, unsigned int flags ) const { - ltrace(200) << "AutoSegment::canPivotUp() - " << flags + cdebug.log(149) << "AutoSegment::canPivotUp() - " << flags << " (reserve:" << reserve << ")" << endl; if ( isLayerChange() or isFixed() ) return false; @@ -1419,9 +1413,9 @@ namespace Katabatic { } if ( not (flags&KbIgnoreContacts) ) { - ltrace(200) << getAutoSource() << endl; - ltrace(200) << getAutoTarget() << endl; - ltrace(200) << "min depths, Segment:" << depth + cdebug.log(149) << getAutoSource() << endl; + cdebug.log(149) << getAutoTarget() << endl; + cdebug.log(149) << "min depths, Segment:" << depth << " S:" << getAutoSource()->getMinDepth() << " T:" << getAutoTarget()->getMinDepth() << endl; @@ -1439,11 +1433,11 @@ namespace Katabatic { if (isegment->getAutoTarget()->getMinDepth() < depth) return false; } } else { - ltrace(200) << "AutoSegment::canPivotUp() - true [no propagate]" << endl; + cdebug.log(149) << "AutoSegment::canPivotUp() - true [no propagate]" << endl; return true; } - ltrace(200) << "AutoSegment::canPivotUp() - true [propagate]" << endl; + cdebug.log(149) << "AutoSegment::canPivotUp() - true [propagate]" << endl; return true; } @@ -1451,7 +1445,7 @@ namespace Katabatic { bool AutoSegment::canPivotDown ( float reserve, unsigned int flags ) const { - ltrace(200) << "AutoSegment::canPivotDown()" + cdebug.log(149) << "AutoSegment::canPivotDown()" << " (reserve:" << reserve << ")" << endl; if ( isLayerChange() or isFixed() ) return false; @@ -1466,16 +1460,16 @@ namespace Katabatic { if (not gcells[i]->hasFreeTrack(depth-2,reserve)) return false; } - ltrace(200) << getAutoSource() << endl; - ltrace(200) << getAutoTarget() << endl; - ltrace(200) << "max depths, Segment:" << depth + cdebug.log(149) << getAutoSource() << endl; + cdebug.log(149) << getAutoTarget() << endl; + cdebug.log(149) << "max depths, Segment:" << depth << " S:" << getAutoSource()->getMaxDepth() << " T:" << getAutoTarget()->getMaxDepth() << endl; if (getAutoSource()->getMaxDepth() > depth) return false; if (getAutoTarget()->getMaxDepth() > depth) return false; if (not (flags & KbPropagate)) { - ltrace(200) << "AutoSegment::canPivotDown() - true [no propagate]" << endl; + cdebug.log(149) << "AutoSegment::canPivotDown() - true [no propagate]" << endl; return true; } @@ -1490,7 +1484,7 @@ namespace Katabatic { } } - ltrace(200) << "AutoSegment::canPivotDown() - true [propagate]" << endl; + cdebug.log(149) << "AutoSegment::canPivotDown() - true [propagate]" << endl; return true; } @@ -1498,7 +1492,7 @@ namespace Katabatic { bool AutoSegment::canMoveUp ( float reserve, unsigned int flags ) const { - ltrace(200) << "AutoSegment::canMoveUp() " << flags + cdebug.log(149) << "AutoSegment::canMoveUp() " << flags << " (reserve:" << reserve << ")" << endl; bool lowDensity = true; @@ -1520,12 +1514,12 @@ namespace Katabatic { for ( size_t i=0 ; igetWDensity(depth-2) > 0.5) ) lowDensity = false; if (not gcells[i]->hasFreeTrack(depth,reserve)) { - ltrace(200) << "Not enough free track in " << gcells[i] << endl; + cdebug.log(149) << "Not enough free track in " << gcells[i] << endl; return false; } } - ltrace(200) << "Enough free track under canonical segment." << endl; + cdebug.log(149) << "Enough free track under canonical segment." << endl; if ( isLocal() and not (flags & KbPropagate) ) { if (not getAutoSource()->canMoveUp(this)) return false; @@ -1546,7 +1540,7 @@ namespace Katabatic { for ( size_t i=0 ; igetWDensity(depth-2) > 0.6) ) lowDensity = false; if (not gcells[i]->hasFreeTrack(depth,reserve)) { - ltrace(200) << "Not enough free track in " << gcells[i] << endl; + cdebug.log(149) << "Not enough free track in " << gcells[i] << endl; return false; } } @@ -1557,20 +1551,20 @@ namespace Katabatic { if ( (depth >= 4) and (flags & KbWithPerpands) ) { float fragmentation = begin->getFragmentation( depth-1 ); - ltrace(200) << "Check begin GCell perpandicular fragmentation: " << fragmentation << endl; + cdebug.log(149) << "Check begin GCell perpandicular fragmentation: " << fragmentation << endl; if (fragmentation < 0.5) { - ltrace(200) << "Not enough free track for perpandicular in begin GCell " + cdebug.log(149) << "Not enough free track for perpandicular in begin GCell " << "(frag:" << fragmentation << ")." << endl; return false; } fragmentation = end->getFragmentation( depth-1 ); - ltrace(200) << "Check end GCell perpandicular fragmentation: " << fragmentation << endl; + cdebug.log(149) << "Check end GCell perpandicular fragmentation: " << fragmentation << endl; if (fragmentation < 0.5) { - ltrace(200) << "Not enough free track for perpandicular in end GCell " + cdebug.log(149) << "Not enough free track for perpandicular in end GCell " << "(frag:" << fragmentation << ")." << endl; return false; @@ -1630,7 +1624,7 @@ namespace Katabatic { bool AutoSegment::shearUp ( GCell* upGCell, AutoSegment*& movedUp, float reserve, unsigned int flags ) { - ltrace(200) << "AutoSegment::shearUp() " << this << endl; + cdebug.log(149) << "AutoSegment::shearUp() " << this << endl; movedUp = NULL; @@ -1657,7 +1651,7 @@ namespace Katabatic { GCell* rightShear = NULL; for ( size_t i=iupGCell ; ihasFreeTrack(upDepth,reserve) ) { - ltrace(200) << "Right shearing @ " << gcells[i] << endl; + cdebug.log(149) << "Right shearing @ " << gcells[i] << endl; rightShear = gcells[i]; } } @@ -1668,7 +1662,7 @@ namespace Katabatic { do { --i; if ( not gcells[i]->hasFreeTrack(upDepth,reserve) ) { - ltrace(200) << "Left shearing @ " << gcells[i] << endl; + cdebug.log(149) << "Left shearing @ " << gcells[i] << endl; leftShear = gcells[i]; } } while (i > 0); @@ -1701,7 +1695,7 @@ namespace Katabatic { unsigned int AutoSegment::canDogleg ( Interval interval ) { - ltrace(200) << "AutoSegment::canDogleg(Interval) " << interval << endl; + cdebug.log(149) << "AutoSegment::canDogleg(Interval) " << interval << endl; size_t leftDogleg = 0; size_t rightDogleg = 0; @@ -1724,7 +1718,7 @@ namespace Katabatic { if ( (leftDogleg == 1) and (rightDogleg <= 1) ) return KbDoglegOnLeft; if ( (leftDogleg <= 1) and (rightDogleg == 1) ) return KbDoglegOnRight; - ltrace(200) << "leftCount:" << leftDogleg << " rightCount:" << rightDogleg << endl; + cdebug.log(149) << "leftCount:" << leftDogleg << " rightCount:" << rightDogleg << endl; return 0; } @@ -1732,9 +1726,8 @@ namespace Katabatic { AutoSegment* AutoSegment::makeDogleg ( AutoContact* from ) { - ltrace(200) << "AutoSegment::makeDogleg(AutoContact*) " << from << endl; - ltracein(200); - ltrace(200) << this << endl; + cdebug.log(149,1) << "AutoSegment::makeDogleg(AutoContact*) " << from << endl; + cdebug.log(149) << this << endl; RoutingGauge* rg = Session::getRoutingGauge(); size_t segmentDepth = rg->getLayerDepth( getLayer() ); @@ -1742,72 +1735,71 @@ namespace Katabatic { size_t index = doglegs.size(); bool isSource = (getAutoSource() == from); - ltrace(200) << "isSource:" << isSource << endl; + cdebug.log(149) << "isSource:" << isSource << endl; makeDogleg( from->getGCell(), KbNoCheckLayer ); if (doglegs.size() == index) { - ltraceout(200); + cdebug.tabw(149,-1); return NULL; } doglegs[ index+1 ]->setAxis( isHorizontal() ? from->getX() : from->getY() ); if (not from->getLayer()->contains(getLayer())) { - ltrace(200) << "Contact layer do not contains Segment layer, adjust layers" << endl; + cdebug.log(149) << "Contact layer do not contains Segment layer, adjust layers" << endl; if (getLayer()->above(from->getLayer())) { - ltrace(200) << "Go Down from depth " << segmentDepth << endl; + cdebug.log(149) << "Go Down from depth " << segmentDepth << endl; doglegs[ index + 1 ]->setLayer( rg->getRoutingLayer(segmentDepth-1) ); - ltrace(200) << "doglegs[i+1]: " << doglegs[index+1] << endl; + cdebug.log(149) << "doglegs[i+1]: " << doglegs[index+1] << endl; if (isSource) { doglegs[ index + 0 ]->setLayer( rg->getRoutingLayer(segmentDepth-2) ); doglegs[ index + 1 ]->getAutoSource()->setLayer( rg->getContactLayer(segmentDepth-2) ); doglegs[ index + 1 ]->getAutoTarget()->setLayer( rg->getContactLayer(segmentDepth-1) ); - ltrace(200) << "doglegs[i+0]: " << doglegs[index+0] << endl; - ltrace(200) << "doglegs[i+1]: " << doglegs[index+1]->getAutoSource() << endl; - ltrace(200) << "doglegs[i+1]: " << doglegs[index+1]->getAutoTarget() << endl; + cdebug.log(149) << "doglegs[i+0]: " << doglegs[index+0] << endl; + cdebug.log(149) << "doglegs[i+1]: " << doglegs[index+1]->getAutoSource() << endl; + cdebug.log(149) << "doglegs[i+1]: " << doglegs[index+1]->getAutoTarget() << endl; } else { doglegs[ index + 2 ]->setLayer( rg->getRoutingLayer(segmentDepth-2) ); doglegs[ index + 1 ]->getAutoTarget()->setLayer( rg->getContactLayer(segmentDepth-2) ); doglegs[ index + 1 ]->getAutoSource()->setLayer( rg->getContactLayer(segmentDepth-1) ); - ltrace(200) << "doglegs[i+2]: " << doglegs[index+2] << endl; - ltrace(200) << "doglegs[i+1]: " << doglegs[index+1]->getAutoTarget() << endl; - ltrace(200) << "doglegs[i+1]: " << doglegs[index+1]->getAutoSource() << endl; + cdebug.log(149) << "doglegs[i+2]: " << doglegs[index+2] << endl; + cdebug.log(149) << "doglegs[i+1]: " << doglegs[index+1]->getAutoTarget() << endl; + cdebug.log(149) << "doglegs[i+1]: " << doglegs[index+1]->getAutoSource() << endl; } } else { - ltrace(200) << "Go Up from depth " << segmentDepth << endl; + cdebug.log(149) << "Go Up from depth " << segmentDepth << endl; doglegs[ index + 1 ]->setLayer( rg->getRoutingLayer(segmentDepth+1) ); - ltrace(200) << "doglegs[i+1]: " << doglegs[index+1] << endl; + cdebug.log(149) << "doglegs[i+1]: " << doglegs[index+1] << endl; if (isSource) { doglegs[ index + 0 ]->setLayer( rg->getRoutingLayer(segmentDepth+2) ); doglegs[ index + 1 ]->getAutoSource()->setLayer( rg->getContactLayer(segmentDepth+1) ); doglegs[ index + 1 ]->getAutoTarget()->setLayer( rg->getContactLayer(segmentDepth ) ); - ltrace(200) << "doglegs[i+0]: " << doglegs[index+0] << endl; - ltrace(200) << "doglegs[i+1]: " << doglegs[index+1]->getAutoSource() << endl; - ltrace(200) << "doglegs[i+1]: " << doglegs[index+1]->getAutoTarget() << endl; + cdebug.log(149) << "doglegs[i+0]: " << doglegs[index+0] << endl; + cdebug.log(149) << "doglegs[i+1]: " << doglegs[index+1]->getAutoSource() << endl; + cdebug.log(149) << "doglegs[i+1]: " << doglegs[index+1]->getAutoTarget() << endl; } else { doglegs[ index + 2 ]->setLayer( rg->getRoutingLayer(segmentDepth+2) ); doglegs[ index + 1 ]->getAutoTarget()->setLayer( rg->getContactLayer(segmentDepth+1) ); doglegs[ index + 1 ]->getAutoSource()->setLayer( rg->getContactLayer(segmentDepth ) ); - ltrace(200) << "doglegs[i+2]: " << doglegs[index+2] << endl; - ltrace(200) << "doglegs[i+1]: " << doglegs[index+1]->getAutoTarget() << endl; - ltrace(200) << "doglegs[i+1]: " << doglegs[index+1]->getAutoSource() << endl; + cdebug.log(149) << "doglegs[i+2]: " << doglegs[index+2] << endl; + cdebug.log(149) << "doglegs[i+1]: " << doglegs[index+1]->getAutoTarget() << endl; + cdebug.log(149) << "doglegs[i+1]: " << doglegs[index+1]->getAutoSource() << endl; } } } - ltraceout(200); + cdebug.tabw(149,-1); return doglegs[ index + (isSource?0:2) ]; } unsigned int AutoSegment::makeDogleg ( Interval interval, unsigned int flags ) { - ltrace(200) << "AutoSegment::makeDogleg(Interval) - " << interval << endl; - ltracein(200); + cdebug.log(149,1) << "AutoSegment::makeDogleg(Interval) - " << interval << endl; bool leftDogleg = true; unsigned int rflags = 0; @@ -1826,7 +1818,7 @@ namespace Katabatic { } } - if ( (leftDoglegCount != 1) and (rightDoglegCount != 1) ) { ltraceout(200); return 0; } + if ( (leftDoglegCount != 1) and (rightDoglegCount != 1) ) { cdebug.tabw(149,-1); return 0; } if (not leftDoglegCount) { leftDogleg = false; leftCandidate = rightCandidate; @@ -1834,8 +1826,8 @@ namespace Katabatic { } if (leftCandidate and rightCandidate) { - ltrace(200) << "Left Constraint: " << leftCandidate->getSourceConstraints(KbNativeConstraints) << endl; - ltrace(200) << "Right Constraint: " << rightCandidate->getTargetConstraints(KbNativeConstraints) << endl; + cdebug.log(149) << "Left Constraint: " << leftCandidate->getSourceConstraints(KbNativeConstraints) << endl; + cdebug.log(149) << "Right Constraint: " << rightCandidate->getTargetConstraints(KbNativeConstraints) << endl; if ( leftCandidate ->getTargetConstraints(KbNativeConstraints).getSize() < rightCandidate->getSourceConstraints(KbNativeConstraints).getSize() ) { @@ -1855,7 +1847,7 @@ namespace Katabatic { if (leftDogleg) axis = interval.getVMin() - getPitch(); else axis = interval.getVMax() + getPitch(); - ltrace(200) << "Break @" << DbU::getValueString(axis) << " " << leftCandidate << endl; + cdebug.log(149) << "Break @" << DbU::getValueString(axis) << " " << leftCandidate << endl; unsigned int direction = getDirection(); GCell* gcell = leftCandidate->getAutoSource()->getGCell(); @@ -1865,26 +1857,26 @@ namespace Katabatic { gcell = (direction == KbHorizontal) ? gcell->getRight() : gcell->getUp(); } - ltrace(200) << "In " << gcell << endl; + cdebug.log(149) << "In " << gcell << endl; rflags = leftCandidate->_makeDogleg( gcell, flags ); const vector& doglegs = Session::getDoglegs(); if (doglegs.size() >= 2) { - ltrace(200) << "AutoSegment::makeDogleg(): @" << DbU::getValueString(axis) << endl; + cdebug.log(149) << "AutoSegment::makeDogleg(): @" << DbU::getValueString(axis) << endl; doglegs[1]->setAxis( axis ); } } - ltraceout(200); + cdebug.tabw(149,-1); return rflags | (leftDogleg ? KbDoglegOnLeft : KbDoglegOnRight); } unsigned int AutoSegment::makeDogleg ( GCell* doglegGCell, unsigned int flags ) { - ltrace(500) << "Deter| AutoSegment::makeDogleg(GCell*) " << doglegGCell << endl; - ltrace(500) << "Deter| in " << this << endl; - ltracein(160); + cdebug.log(9000) << "Deter| AutoSegment::makeDogleg(GCell*) " << doglegGCell << endl; + cdebug.log(9000) << "Deter| in " << this << endl; + cdebug.tabw(149,1); unsigned int rflags = 0; @@ -1904,17 +1896,17 @@ namespace Katabatic { } if (doglegGCell->getSide(getDirection()).intersect(getSpanU())) { - ltrace(159) << "Dogleg in " << this << endl; + cdebug.log(149) << "Dogleg in " << this << endl; rflags = _makeDogleg( doglegGCell, flags ); } else { - ltrace(159) << "Looking in aligneds." << endl; + cdebug.log(149) << "Looking in aligneds." << endl; if (not isNotAligned()) { forEach ( AutoSegment*, aligned, getAligneds(flags) ) { - ltrace(159) << "| Try in " << *aligned << endl; + cdebug.log(149) << "| Try in " << *aligned << endl; if (doglegGCell->getSide(getDirection()).intersect(aligned->getSpanU())) { - ltrace(159) << "Dogleg in " << *aligned << endl; + cdebug.log(149) << "Dogleg in " << *aligned << endl; rflags = aligned->_makeDogleg( doglegGCell, flags ); - ltraceout(160); + cdebug.tabw(149,-1); return 0; } } @@ -1922,7 +1914,7 @@ namespace Katabatic { cerr << Bug("Cannot make a dogleg in %s at %s" ,_getString().c_str(), getString(doglegGCell).c_str()) << endl; } - ltraceout(160); + cdebug.tabw(149,-1); return rflags; } @@ -2010,8 +2002,8 @@ namespace Katabatic { Vertical* vertical = dynamic_cast( hurricaneSegment ); AutoContact* reference = source; - ltrace(159) << "Source:" << source << endl; - ltrace(159) << "Target:" << target << endl; + cdebug.log(149) << "Source:" << source << endl; + cdebug.log(149) << "Target:" << target << endl; if (target->isFixed()) { if (source->isFixed()) { @@ -2139,8 +2131,8 @@ namespace Katabatic { AutoSegment* segment; AutoContact* reference = source; - ltrace(159) << "Source:" << source << endl; - ltrace(159) << "Target:" << target << endl; + cdebug.log(149) << "Source:" << source << endl; + cdebug.log(149) << "Target:" << target << endl; if (target->isFixed()) { if (source->isFixed()) { @@ -2195,8 +2187,7 @@ namespace Katabatic { bool AutoSegment::isTopologicalBound ( AutoSegment* seed, unsigned int flags ) { - ltrace(80) << "isTopologicalBound() - " << seed << endl; - ltracein(80); + cdebug.log(145,1) << "isTopologicalBound() - " << seed << endl; set exploreds; vector stack; @@ -2205,7 +2196,7 @@ namespace Katabatic { if (flags & KbSuperior) axis = seed->getTargetU(); else axis = seed->getSourceU(); - ltrace(80) << "check for bound " << DbU::getValueString(axis) << endl; + cdebug.log(145) << "check for bound " << DbU::getValueString(axis) << endl; exploreds.insert( seed->getAutoSource() ); exploreds.insert( seed->getAutoTarget() ); @@ -2222,11 +2213,11 @@ namespace Katabatic { AutoContact* currentContact = stack.back(); stack.pop_back(); - ltrace(80) << "Exploring: " << (void*)currentContact << " " << currentContact << endl; + cdebug.log(145) << "Exploring: " << (void*)currentContact << " " << currentContact << endl; exploreds.insert( currentContact ); - if (currentContact->getAnchor()) { ltraceout(80); return true; } + if (currentContact->getAnchor()) { cdebug.tabw(145,-1); return true; } forEach ( Component*, component, currentContact->getSlaveComponents() ) { Segment* segment = dynamic_cast( *component ); @@ -2253,17 +2244,17 @@ namespace Katabatic { if (autoSegment->isHorizontal() xor (flags & KbHorizontal)) continue; - ltrace(80) << "| " << autoSegment << endl; + cdebug.log(145) << "| " << autoSegment << endl; if (flags & KbSuperior) { - if (autoSegment->getTargetU() > axis) { ltraceout(80); return true; } + if (autoSegment->getTargetU() > axis) { cdebug.tabw(145,-1); return true; } } else { - if (autoSegment->getSourceU() < axis) { ltraceout(80); return true; } + if (autoSegment->getSourceU() < axis) { cdebug.tabw(145,-1); return true; } } } } - ltraceout(80); + cdebug.tabw(145,-1); return false; } @@ -2313,8 +2304,7 @@ namespace Katabatic { , DbU::Unit& rightBound ) { - ltrace(80) << "getTopologicalInfos() - " << seed << endl; - ltracein(80); + cdebug.log(145,1) << "getTopologicalInfos() - " << seed << endl; leftBound = DbU::Max; rightBound = DbU::Min; @@ -2340,11 +2330,11 @@ namespace Katabatic { else constraint = sourceContact->getCBYMin(); if (constraint > rightBound) rightBound = constraint; - ltrace(200) << "Segments of: " << sourceContact << endl; + cdebug.log(149) << "Segments of: " << sourceContact << endl; LocatorHelper helper (sourceContact, KbHorizontal|KbWithPerpands); for ( ; helper.isValid() ; helper.progress() ) { AutoSegment* currentSegment = helper.getSegment(); - ltrace(200) << "Looking for: " << currentSegment << endl; + cdebug.log(149) << "Looking for: " << currentSegment << endl; if (currentSegment == sourceSegment) continue; if (AutoSegment::areAlignedsAndDiffLayer(currentSegment,seed)) { @@ -2360,28 +2350,28 @@ namespace Katabatic { aligneds.push_back( currentSegment ); AutoContact* targetContact = currentSegment->getOppositeAnchor( sourceContact ); - ltrace(200) << "Target: " << targetContact << endl; + cdebug.log(149) << "Target: " << targetContact << endl; if (targetContact) { if ( (seed->isHorizontal() and sourceContact->isHTee()) or (seed->isVertical () and sourceContact->isVTee()) ) { - ltrace(200) << "Stacking target. " << endl; + cdebug.log(149) << "Stacking target. " << endl; stack.push( targetContact, currentSegment ); } } } else { - ltrace(200) << "| perpandicular " << currentSegment << endl; + cdebug.log(149) << "| perpandicular " << currentSegment << endl; perpandiculars.push_back( currentSegment ); } } } - ltraceout(80); + cdebug.tabw(145,-1); } int AutoSegment::getTerminalCount ( AutoSegment* seed, vector& collapseds ) { - ltrace(80) << "getTerminalCount() - " << seed << " (+collapseds)" << endl; + cdebug.log(145) << "getTerminalCount() - " << seed << " (+collapseds)" << endl; int count = 0; for ( size_t i=0 ; i < collapseds.size() ; i++ ) { diff --git a/katabatic/src/AutoSegments.cpp b/katabatic/src/AutoSegments.cpp index e77ca57c..afebaa64 100644 --- a/katabatic/src/AutoSegments.cpp +++ b/katabatic/src/AutoSegments.cpp @@ -24,9 +24,6 @@ namespace Katabatic { using namespace std; using Hurricane::tab; - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::_TName; using Hurricane::Error; using Hurricane::ForEachIterator; @@ -39,7 +36,7 @@ namespace Katabatic { void AutoSegmentStack::push ( AutoContact* contact, AutoSegment* segment ) { - ltrace(80) << "Stacking " << contact << " + " << segment << endl; + cdebug.log(145) << "Stacking " << contact << " + " << segment << endl; push_back( make_pair(contact,segment) ); } @@ -71,7 +68,7 @@ namespace Katabatic { void AutoSegments_OnContact::Locator::progress () { - ltrace(80) << "AutoSegments_OnContact::Locator::progress()" << endl; + cdebug.log(145) << "AutoSegments_OnContact::Locator::progress()" << endl; while (_hook and not _hook->isMaster()) { _hook = _hook->getNextHook(); @@ -127,7 +124,7 @@ namespace Katabatic { if (not _master) return; _flags |= (_master->isHorizontal()) ? KbHorizontal : KbVertical; - ltrace(80) << "AutoSegments_Aligneds::Locator::Locator() - _flags:" << _flags << endl; + cdebug.log(145) << "AutoSegments_Aligneds::Locator::Locator() - _flags:" << _flags << endl; AutoContact* contact = segment->getAutoSource(); if (contact) _stack.push( contact, segment ); @@ -149,7 +146,7 @@ namespace Katabatic { void AutoSegments_Aligneds::Locator::progress () { - ltrace(80) << "AutoSegments_Aligneds::Locator::progress()" << endl; + cdebug.log(145) << "AutoSegments_Aligneds::Locator::progress()" << endl; while (not _stack.isEmpty()) { AutoContact* sourceContact = _stack.getAutoContact (); @@ -160,7 +157,7 @@ namespace Katabatic { LocatorHelper helper (sourceContact, _flags); for ( ; helper.isValid() ; helper.progress() ) { AutoSegment* currentSegment = helper.getSegment(); - ltrace(80) << "Looking at: " << currentSegment << endl; + cdebug.log(145) << "Looking at: " << currentSegment << endl; if (currentSegment == sourceSegment) continue; @@ -222,8 +219,8 @@ namespace Katabatic { , _stack () , _perpandiculars() { - ltrace(80) << "AutoSegments_Perpandiculars::Locator::Locator()" << endl; - ltrace(80) << " " << _master << endl; + cdebug.log(145) << "AutoSegments_Perpandiculars::Locator::Locator()" << endl; + cdebug.log(145) << " " << _master << endl; if (not _master) return; if (_master->isHorizontal()) _flags |= KbHorizontal; @@ -248,7 +245,7 @@ namespace Katabatic { void AutoSegments_Perpandiculars::Locator::progress () { - ltrace(80) << "AutoSegments_Perpandiculars::Locator::progress()" << endl; + cdebug.log(145) << "AutoSegments_Perpandiculars::Locator::progress()" << endl; if (not _perpandiculars.empty()) _perpandiculars.pop_back(); if (not _perpandiculars.empty()) return; @@ -278,7 +275,7 @@ namespace Katabatic { continue; } - ltrace(80) << "Stacking target. " << endl; + cdebug.log(145) << "Stacking target. " << endl; _stack.push( targetContact, currentSegment ); } } @@ -357,18 +354,17 @@ namespace Katabatic { void AutoSegments_AnchorOnGCell::Locator::progress () { - ltrace(80) << "AutoSegments_AnchorOnGCell::Locator::progress()" << endl; - ltracein(79); + cdebug.log(145,1) << "AutoSegments_AnchorOnGCell::Locator::progress()" << endl; while ( true ) { if (_hookLocator == NULL) { if (_itContact == _itEnd) { - ltrace(79) << "No more AutoContacts" << endl; - ltraceout(79); + cdebug.log(145) << "No more AutoContacts" << endl; + cdebug.tabw(145,-1); return; } - ltrace(79) << *_itContact << endl; + cdebug.log(145) << *_itContact << endl; _hookLocator = (*_itContact)->getBodyHook()->getSlaveHooks().getLocator(); _itContact++; @@ -377,7 +373,7 @@ namespace Katabatic { } while ( _hookLocator->isValid() ) { - ltrace(79) << _hookLocator->getElement() << endl; + cdebug.log(145) << _hookLocator->getElement() << endl; Hook* hook = dynamic_cast(_hookLocator->getElement()); if (hook) { if ( ((_flags & KbSource) and (dynamic_cast(hook))) @@ -385,9 +381,9 @@ namespace Katabatic { _element = Session::lookup( static_cast(hook->getComponent()) ); if (_element->isHorizontal()) { - if (_flags & KbHorizontal) { ltraceout(79); return; } + if (_flags & KbHorizontal) { cdebug.tabw(145,-1); return; } } else - if (_flags & KbVertical) { ltraceout(79); return; } + if (_flags & KbVertical) { cdebug.tabw(145,-1); return; } } } _hookLocator->progress(); @@ -396,7 +392,7 @@ namespace Katabatic { _element = NULL; } - ltraceout(79); + cdebug.tabw(145,-1); } @@ -451,7 +447,7 @@ namespace Katabatic { void AutoSegments_CachedOnContact::Locator::progress () { - ltrace(80) << "AutoSegments_CachedOnContact::Locator::progress()" << endl; + cdebug.log(145) << "AutoSegments_CachedOnContact::Locator::progress()" << endl; _helper->progress(); } diff --git a/katabatic/src/AutoVertical.cpp b/katabatic/src/AutoVertical.cpp index 45bf02f9..14b33e13 100644 --- a/katabatic/src/AutoVertical.cpp +++ b/katabatic/src/AutoVertical.cpp @@ -29,8 +29,6 @@ namespace Katabatic { using std::min; using std::max; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::Error; using Hurricane::Bug; @@ -56,8 +54,8 @@ namespace Katabatic { : AutoSegment(vertical) , _vertical(vertical) { - ltrace(99) << "CTOR AutoVertical " << this << endl; - ltrace(99) << " over " << vertical << endl; + cdebug.log(145) << "CTOR AutoVertical " << this << endl; + cdebug.log(145) << " over " << vertical << endl; } @@ -97,9 +95,8 @@ namespace Katabatic { void AutoVertical::_preDestroy () { - ltrace(200) << "AutoVertical::_preDestroy() - " << endl; - ltrace(200) << " " << _getString() << endl; - ltracein(90); + cdebug.log(149,1) << "AutoVertical::_preDestroy() - " << endl; + cdebug.log(149) << _getString() << endl; if ( not Session::doDestroyTool() ) { AutoContact* source = getAutoSource(); @@ -127,14 +124,14 @@ namespace Katabatic { } AutoSegment::_preDestroy (); - ltraceout(90); + cdebug.tabw(145,-1); } AutoVertical::~AutoVertical () { if ( Session::doDestroyBaseSegment() and not Session::doDestroyTool() ) { - ltrace(200) << "~AutoVertical() - " << endl; + cdebug.log(149) << "~AutoVertical() - " << endl; _vertical->destroy (); } } @@ -166,7 +163,7 @@ namespace Katabatic { constraintMin = contact->getCBXMin(); constraintMax = contact->getCBXMax(); - ltrace(148) << "Source constraints: " << contact << " [" + cdebug.log(149) << "Source constraints: " << contact << " [" << DbU::getValueString(constraintMin) << ":" << DbU::getValueString(constraintMax) << "]" << endl; @@ -175,7 +172,7 @@ namespace Katabatic { constraintMin = max ( constraintMin, contact->getCBXMin() ); constraintMax = min ( constraintMax, contact->getCBXMax() ); - ltrace(148) << "Merge with target constraints: " << contact << " [" + cdebug.log(149) << "Merge with target constraints: " << contact << " [" << DbU::getValueString(constraintMin) << ":" << DbU::getValueString(constraintMax) << "]" << endl; @@ -183,7 +180,7 @@ namespace Katabatic { constraintMin = max ( constraintMin, getUserConstraints().getVMin() ); constraintMax = min ( constraintMax, getUserConstraints().getVMax() ); - ltrace(148) << "Merge with user constraints: " << getUserConstraints() << " [" + cdebug.log(149) << "Merge with user constraints: " << getUserConstraints() << " [" << DbU::getValueString(constraintMin) << ":" << DbU::getValueString(constraintMax) << "]" << endl; @@ -217,7 +214,7 @@ namespace Katabatic { bool AutoVertical::_canSlacken () const { - ltraceout(200); + cdebug.tabw(149,-1); Interval sourceSide = getAutoSource()->getGCell()->getSide( KbHorizontal ); Interval targetSide = getAutoTarget()->getGCell()->getSide( KbHorizontal ); @@ -228,26 +225,25 @@ namespace Katabatic { sourceConstraints.inflate( 1 ); targetConstraints.inflate( 1 ); - if (not sourceConstraints.contains(sourceSide)) { ltraceout(200); return true; } - if (not targetConstraints.contains(targetSide)) { ltraceout(200); return true; } + if (not sourceConstraints.contains(sourceSide)) { cdebug.tabw(149,-1); return true; } + if (not targetConstraints.contains(targetSide)) { cdebug.tabw(149,-1); return true; } - ltraceout(200); + cdebug.tabw(149,-1); return false; } bool AutoVertical::_slacken ( unsigned int flags ) { - ltrace(200) << "AutoVertical::_slacken() " << this << endl; - ltracein(200); + cdebug.log(149,1) << "AutoVertical::_slacken() " << this << endl; if ( not isStrongTerminal() or (not (_flags & (SegGlobal|SegWeakGlobal)) and (getLength() < getPitch()*5)) ) - { ltraceout(200); return false; } + { cdebug.tabw(149,-1); return false; } - ltrace(200) << "_flags:" << (_flags & (SegGlobal|SegWeakGlobal)) << endl; - ltrace(200) << "test:" << (getLength() < getPitch()*5) << endl; - ltrace(200) << "length:" << DbU::getValueString(getLength()) << endl; + cdebug.log(149) << "_flags:" << (_flags & (SegGlobal|SegWeakGlobal)) << endl; + cdebug.log(149) << "test:" << (getLength() < getPitch()*5) << endl; + cdebug.log(149) << "length:" << DbU::getValueString(getLength()) << endl; bool success = false; bool slackened = false; @@ -272,7 +268,7 @@ namespace Katabatic { const vector& doglegs = Session::getDoglegs(); if (doglegs.size() >= 2) { - ltrace(200) << "AutoSegment::_slaken(): Source @" << DbU::getValueString(getSourcePosition()) << endl; + cdebug.log(149) << "AutoSegment::_slaken(): Source @" << DbU::getValueString(getSourcePosition()) << endl; doglegs[doglegs.size()-2]->_setAxis( getSourcePosition() ); success = true; @@ -303,7 +299,7 @@ namespace Katabatic { const vector& doglegs = Session::getDoglegs(); if (doglegs.size() >= 2) { - ltrace(200) << "AutoSegment::_slaken(): Source @" << DbU::getValueString(getTargetPosition()) << endl; + cdebug.log(149) << "AutoSegment::_slaken(): Source @" << DbU::getValueString(getTargetPosition()) << endl; doglegs[doglegs.size()-2]->_setAxis( getTargetPosition() ); success = true; } @@ -315,7 +311,7 @@ namespace Katabatic { setFlags ( SegSlackened ); unsetFlags( SegHalfSlackened ); } - ltraceout(200); + cdebug.tabw(149,-1); return success; } @@ -327,7 +323,7 @@ namespace Katabatic { if (_vertical->getX() == axis) return; - ltrace(159) << "_setAxis() @X " << DbU::toLambda(axis) << " " << this << endl; + cdebug.log(149) << "_setAxis() @X " << DbU::toLambda(axis) << " " << this << endl; _vertical->setX( axis ); invalidate(); @@ -345,7 +341,7 @@ namespace Katabatic { void AutoVertical::updateOrient () { if (_vertical->getTargetY() < _vertical->getSourceY()) { - ltrace(80) << "updateOrient() " << this << " (before S/T swap)" << endl; + cdebug.log(145) << "updateOrient() " << this << " (before S/T swap)" << endl; _vertical->invert(); unsigned int spinFlags = _flags & SegDepthSpin; @@ -549,7 +545,7 @@ namespace Katabatic { bool AutoVertical::moveURight () { - ltrace(200) << "AutoVertical::moveURight()" << endl; + cdebug.log(149) << "AutoVertical::moveURight()" << endl; if (not getAutoSource()->isTurn() or not getAutoTarget()->isTurn()) return true; if (not getAutoSource()->getGCell()->getRight()) return true; @@ -604,7 +600,7 @@ namespace Katabatic { DbU::Unit x = begin->getSide( KbHorizontal ).getVMin(); setAxis( x ); - ltrace(200) << "Moved to axis: " << DbU::getValueString(x) << endl; + cdebug.log(149) << "Moved to axis: " << DbU::getValueString(x) << endl; return true; } @@ -612,7 +608,7 @@ namespace Katabatic { unsigned int AutoVertical::_makeDogleg ( GCell* doglegGCell, unsigned int flags ) { - ltrace(200) << "AutoVertical::_makeDogleg(GCell*)" << endl; + cdebug.log(149) << "AutoVertical::_makeDogleg(GCell*)" << endl; AutoContact* autoSource = getAutoSource(); AutoContact* autoTarget = getAutoTarget(); @@ -645,16 +641,16 @@ namespace Katabatic { invalidate( KbTopology ); autoTarget->invalidate( KbTopology ); AutoContact* dlContact1 = AutoContactTurn::create( doglegGCell, _vertical->getNet(), contactLayer ); - ltrace(200) << dlContact1 << endl; + cdebug.log(149) << dlContact1 << endl; AutoContact* dlContact2 = AutoContactTurn::create( doglegGCell, _vertical->getNet(), contactLayer ); - ltrace(200) << dlContact2 << endl; + cdebug.log(149) << dlContact2 << endl; AutoSegment* segment1 = AutoSegment::create( dlContact1 , dlContact2, KbHorizontal ); - ltrace(200) << segment1 << endl; + cdebug.log(149) << segment1 << endl; segment1->setLayer( doglegLayer ); segment1->_setAxis( doglegAxis ); segment1->setFlags( SegDogleg|SegSlackened|SegCanonical|SegNotAligned ); - ltrace(200) << "New " << dlContact1->base() << "." << endl; - ltrace(200) << "New " << dlContact2->base() << "." << endl; + cdebug.log(149) << "New " << dlContact1->base() << "." << endl; + cdebug.log(149) << "New " << dlContact2->base() << "." << endl; Session::dogleg( segment1 ); targetAttach( dlContact1 ); @@ -686,9 +682,9 @@ namespace Katabatic { segment2->setFlags( SegWeakTerminal1 ); } - ltrace(200) << "Session::dogleg[x+1] perpand: " << segment1 << endl; - ltrace(200) << "Session::dogleg[x+2] new paral: " << segment2 << endl; - ltrace(200) << "Session::dogleg[x+0] original: " << this << endl; + cdebug.log(149) << "Session::dogleg[x+1] perpand: " << segment1 << endl; + cdebug.log(149) << "Session::dogleg[x+2] new paral: " << segment2 << endl; + cdebug.log(149) << "Session::dogleg[x+0] original: " << this << endl; dlContact1->updateCache(); dlContact2->updateCache(); diff --git a/katabatic/src/ChipTools.cpp b/katabatic/src/ChipTools.cpp index 375ae98a..110b13ad 100644 --- a/katabatic/src/ChipTools.cpp +++ b/katabatic/src/ChipTools.cpp @@ -74,14 +74,14 @@ namespace { void breakSegments ( GCell* begin, GCell* end, Layer::Mask mask, unsigned int flags ) { for ( GCell* gcell=begin ; gcell != NULL ; ) { - ltrace(200) << "Pre-break in " << gcell << endl; + cdebug.log(149) << "Pre-break in " << gcell << endl; if ( (flags & KbHorizontal) and (flags & KbGlobalSegment) ) { const vector& hsegments = gcell->getHSegments(); for ( size_t i=0 ; igetLayer()->getMask() & mask) ) continue; - ltrace(200) << "Pre-break: " << hsegments[i] << " @" << gcell << endl; + cdebug.log(149) << "Pre-break: " << hsegments[i] << " @" << gcell << endl; #ifdef THIS_IS_DISABLED hsegments[i]->makeDogLeg ( gcell, true ); #endif @@ -96,7 +96,7 @@ namespace { for ( size_t i=0 ; igetLayer()->getMask() & mask) ) continue; - ltrace(200) << "Pre-break: " << vsegments[i] << " @" << gcell << endl; + cdebug.log(149) << "Pre-break: " << vsegments[i] << " @" << gcell << endl; #if THIS_IS_DISABLED vsegments[i]->makeDogLeg ( gcell, true ); #endif @@ -120,7 +120,7 @@ namespace { } for ( size_t i=0 ; igetDirection() << "&" << flags << " " << segments[i] << endl; #if THIS_IS_DISABLED diff --git a/katabatic/src/Configuration.cpp b/katabatic/src/Configuration.cpp index bb44f39f..91d9fc96 100644 --- a/katabatic/src/Configuration.cpp +++ b/katabatic/src/Configuration.cpp @@ -43,7 +43,6 @@ namespace Katabatic { using std::ostringstream; using std::vector; using Hurricane::tab; - using Hurricane::inltrace; using Hurricane::Warning; using Hurricane::Error; using Hurricane::Technology; @@ -144,7 +143,7 @@ namespace Katabatic { ConfigurationConcrete::~ConfigurationConcrete () { - ltrace(89) << "About to delete attribute _rg (RoutingGauge)." << endl; + cdebug.log(145) << "About to delete attribute _rg (RoutingGauge)." << endl; _cg->destroy (); _rg->destroy (); } diff --git a/katabatic/src/GCell.cpp b/katabatic/src/GCell.cpp index 0429edcb..a296200c 100644 --- a/katabatic/src/GCell.cpp +++ b/katabatic/src/GCell.cpp @@ -256,9 +256,6 @@ namespace Katabatic { using namespace std; using Hurricane::roundfp; using Hurricane::tab; - using Hurricane::ltracein; - using Hurricane::ltraceout; - using Hurricane::inltrace; using Hurricane::ForEachIterator; using Hurricane::Warning; using Hurricane::Bug; @@ -350,12 +347,11 @@ namespace Katabatic { void GCell::_postCreate () { - ltrace(90) << "GCell::_postCreate() - " << (void*)this << " " << this << endl; - ltracein(90); + cdebug.log(145,1) << "GCell::_postCreate() - " << (void*)this << " " << this << endl; ExtensionGo::_postCreate (); - ltraceout(90); + cdebug.tabw(145,-1); } @@ -366,7 +362,7 @@ namespace Katabatic { DbU::Unit trShrink = ( gcellGrid->isOnTopBorder (index) or gcellGrid->isOnRightBorder(index)) ? 0 : _topRightShrink; - ltrace(90) << "Gcell::create()" << endl; + cdebug.log(145) << "Gcell::create()" << endl; GCell* gcell = new GCell ( gcellGrid, index, box.inflate( 0 ,0 ,-trShrink ,-trShrink ) ); gcell->_postCreate (); @@ -377,7 +373,7 @@ namespace Katabatic { GCell::~GCell () { - ltrace(90) << "GCell::~GCell()" << endl; + cdebug.log(145) << "GCell::~GCell()" << endl; delete [] _blockages; delete [] _densities; @@ -392,7 +388,7 @@ namespace Katabatic { void GCell::_preDestroy () { - ltrace(90) << "GCell::_preDestroy() - " << (void*)this << " " << this << endl; + cdebug.log(145) << "GCell::_preDestroy() - " << (void*)this << " " << this << endl; ExtensionGo::_preDestroy (); } @@ -407,14 +403,14 @@ namespace Katabatic { float difference = roundfp ( getDensity() - threshold ); //int difference = floatDifference(getDensity(),threshold,10000); - ltrace(190) << "GCell:isAboveDensity() " << threshold << " diff:" << difference << endl; + cdebug.log(149) << "GCell:isAboveDensity() " << threshold << " diff:" << difference << endl; return (difference >= 0.0); } bool GCell::areDensityConnex ( GCell* a, GCell* b ) { - ltrace(190) << "GCell:areDensityConnex()" << endl; + cdebug.log(149) << "GCell:areDensityConnex()" << endl; for ( unsigned int i=1 ; igetDepth() ; i++ ) { // Ugly: hard-coded skip METAL1. //int highDiffa = floatDifference(a->_densities[i],0.6,10000); @@ -422,12 +418,12 @@ namespace Katabatic { float highDiffa = roundfp ( a->_densities[i] - 0.6 ); float highDiffb = roundfp ( b->_densities[i] - 0.6 ); - ltrace(190) << "Compare depth " << i + cdebug.log(149) << "Compare depth " << i << " " << a->_densities[i] << "," << highDiffa << " & " << b->_densities[i] << "," << highDiffb << endl; if ( (highDiffa > 0) and (highDiffb > 0) ) { - ltrace(190) << "GCell::areDensityConnex() Neighboring high saturated GCell (depth:" << i + cdebug.log(149) << "GCell::areDensityConnex() Neighboring high saturated GCell (depth:" << i << " " << a->_densities[i] << " & " << b->_densities[i] << ")" << endl; return true; } @@ -653,7 +649,7 @@ namespace Katabatic { // } // } - ltrace(300) << "GCell:addBlockage() " << this << " " + cdebug.log(149) << "GCell:addBlockage() " << this << " " << depth << ":" << DbU::getValueString(_blockages[depth]) << endl; } @@ -672,7 +668,7 @@ namespace Katabatic { } if (found) { - ltrace(200) << "remove " << ac << " from " << this << endl; + cdebug.log(149) << "remove " << ac << " from " << this << endl; _contacts.pop_back(); } else { cerr << Bug("%p:%s do not belong to %s." @@ -910,7 +906,7 @@ namespace Katabatic { //for ( size_t i=0 ; i<_depth ; i++ ) { _densities[i] = roundfp ( _densities[i] ); } //_cDensity = roundfp (_cDensity ); - //ltrace(190) << "updateDensity: " << this << endl; + //cdebug.log(149) << "updateDensity: " << this << endl; checkDensity(); @@ -1024,7 +1020,7 @@ namespace Katabatic { case KbVertical: capacity = getVCapacity(); break; } - ltrace(200) << " | hasFreeTrack [" << getIndex() << "] depth:" << depth << " " + cdebug.log(149) << " | hasFreeTrack [" << getIndex() << "] depth:" << depth << " " << Session::getRoutingGauge()->getRoutingLayer(depth)->getName() //<< " " << (_densities[depth]*capacity) << " vs. " << capacity << " " << _feedthroughs[depth] << " vs. " << capacity @@ -1126,7 +1122,7 @@ namespace Katabatic { AutoSegment* segment; while ( (_densities[1] > 0.5) and stepDesaturate(1,globalNets,segment,KbForceMove) ) { - ltrace(200) << "Moved up: " << segment << endl; + cdebug.log(149) << "Moved up: " << segment << endl; } } @@ -1137,7 +1133,7 @@ namespace Katabatic { , unsigned int flags ) { - ltrace(500) << "Deter| GCell::stepDesaturate() [" << getIndex() << "] depth:" << depth << endl; + cdebug.log(9000) << "Deter| GCell::stepDesaturate() [" << getIndex() << "] depth:" << depth << endl; updateDensity (); moved = NULL; @@ -1168,7 +1164,7 @@ namespace Katabatic { if ( segmentDepth > depth ) break; globalNets.insert ( (*isegment)->getNet() ); - ltrace(500) << "Deter| Move up " << (*isegment) << endl; + cdebug.log(9000) << "Deter| Move up " << (*isegment) << endl; #if THIS_IS_DISABLED (*isegment)->changeDepth ( depth+2, false, false ); @@ -1184,7 +1180,7 @@ namespace Katabatic { bool GCell::stepBalance ( unsigned int depth, GCell::SetIndex& invalidateds ) { - ltrace(200) << "stepBalance() - " << this << endl; + cdebug.log(149) << "stepBalance() - " << this << endl; updateDensity (); @@ -1229,8 +1225,8 @@ namespace Katabatic { bool GCell::stepNetDesaturate ( unsigned int depth, set& globalNets, GCell::SetIndex& invalidateds ) { - ltrace(500) << "Deter| GCell::stepNetDesaturate() depth:" << depth << endl; - ltrace(500) << "Deter| " << this << endl; + cdebug.log(9000) << "Deter| GCell::stepNetDesaturate() depth:" << depth << endl; + cdebug.log(9000) << "Deter| " << this << endl; updateDensity (); @@ -1257,7 +1253,7 @@ namespace Katabatic { if ( segmentDepth < depth ) continue; if ( segmentDepth > depth ) break; - ltrace(500) << "Deter| Move up " << (*isegment) << endl; + cdebug.log(9000) << "Deter| Move up " << (*isegment) << endl; if ( getGCellGrid()->getKatabatic()->moveUpNetTrunk2(*isegment,globalNets,invalidateds) ) return true; @@ -1393,7 +1389,7 @@ namespace Katabatic { void GCellDensitySet::requeue () { - ltrace(190) << "GCellDensitySet::requeue()" << endl; + cdebug.log(149) << "GCellDensitySet::requeue()" << endl; std::set::iterator iinserted; GCell::SetIndex::iterator igcell = _requests.begin(); diff --git a/katabatic/src/GCellGrid.cpp b/katabatic/src/GCellGrid.cpp index 55c41238..61da3aa1 100644 --- a/katabatic/src/GCellGrid.cpp +++ b/katabatic/src/GCellGrid.cpp @@ -27,9 +27,6 @@ namespace Katabatic { using namespace std; using Hurricane::tab; - using Hurricane::ltracein; - using Hurricane::ltraceout; - using Hurricane::inltrace; using Hurricane::Error; using Hurricane::ForEachIterator; using Knik::KnikEngine; @@ -76,10 +73,9 @@ namespace Katabatic { _rawSize = _columns * _rows; - ltrace(80) << "Katabatic GCell Matrix [" << getColumns() << "x" << getRows() << "]" << endl; - ltracein(80); - ltrace(80) << "_xGraduations := " << _xGraduations._print() << endl; - ltrace(80) << "_yGraduations := " << _yGraduations._print() << endl; + cdebug.log(145,1) << "Katabatic GCell Matrix [" << getColumns() << "x" << getRows() << "]" << endl; + cdebug.log(145) << "_xGraduations := " << _xGraduations._print() << endl; + cdebug.log(145) << "_yGraduations := " << _yGraduations._print() << endl; for ( unsigned int row=0 ; row < getRows() ; row++ ) { for ( unsigned int column=0; column::iterator it = _gcells.begin(); vector::iterator end = _gcells.end (); for ( ; it != end ; it++ ) (*it)->destroy (); - ltraceout(90); + cdebug.tabw(145,-1); } diff --git a/katabatic/src/KatabaticEngine.cpp b/katabatic/src/KatabaticEngine.cpp index 3e679736..310bb667 100644 --- a/katabatic/src/KatabaticEngine.cpp +++ b/katabatic/src/KatabaticEngine.cpp @@ -46,8 +46,7 @@ namespace { #if 0 bool isTopAndBottomConnected ( Segment* segment, set& layers ) { - ltrace(88) << "* Potential Null Length: " << segment << endl; - ltracein(88); + cdebug.log(145,1) << "* Potential Null Length: " << segment << endl; Contact* source = dynamic_cast(segment->getSource()); Contact* target = dynamic_cast(segment->getTarget()); @@ -56,7 +55,7 @@ namespace { if (source != NULL) { forEach ( Hook*, ihook, source->getBodyHook()->getSlaveHooks() ) { - ltrace(88) << "* Slave: " << (*ihook)->getComponent() << endl; + cdebug.log(145) << "* Slave: " << (*ihook)->getComponent() << endl; if ((*ihook)->getComponent() == segment) continue; layers.insert( (*ihook)->getComponent()->getLayer() ); } @@ -64,7 +63,7 @@ namespace { if (target != NULL) { forEach ( Hook*, ihook, target->getBodyHook()->getSlaveHooks() ) { - ltrace(88) << "* Slave: " << (*ihook)->getComponent() << endl; + cdebug.log(145) << "* Slave: " << (*ihook)->getComponent() << endl; if ((*ihook)->getComponent() == segment) continue; layers.insert( (*ihook)->getComponent()->getLayer() ); } @@ -74,7 +73,7 @@ namespace { if ( (source->getAnchor() != NULL) or (target->getAnchor() != NULL) ) supplemental++; - ltraceout(88); + cdebug.tabw(145,-1); return layers.size()+supplemental > 2; } @@ -90,9 +89,6 @@ namespace Katabatic { using namespace std; using Hurricane::tab; - using Hurricane::ltracein; - using Hurricane::ltraceout; - using Hurricane::inltrace; using Hurricane::DebugSession; using Hurricane::ForEachIterator; using Hurricane::Bug; @@ -183,22 +179,22 @@ namespace Katabatic { for ( unsigned int depth=0 ; depth<8 ; ++depth ) { // West. forEach( GCell*, igcell, _gcellGrid->getGCellsColumn(depth,0,rows-1)) { - ltrace(89) << "Setting as West Pad:" << (*igcell) << endl; + cdebug.log(145) << "Setting as West Pad:" << (*igcell) << endl; igcell->setUnderIoPad(); } // East. forEach( GCell*, igcell, _gcellGrid->getGCellsColumn(columns-1-depth,0,rows-1)) { - ltrace(89) << "Setting as East Pad:" << (*igcell) << endl; + cdebug.log(145) << "Setting as East Pad:" << (*igcell) << endl; igcell->setUnderIoPad(); } // South. forEach( GCell*, igcell, _gcellGrid->getGCellsRow(depth,0,columns-1)) { - ltrace(89) << "Setting as South Pad:" << (*igcell) << endl; + cdebug.log(145) << "Setting as South Pad:" << (*igcell) << endl; igcell->setUnderIoPad(); } // North. forEach( GCell*, igcell, _gcellGrid->getGCellsRow(rows-1-depth,0,columns-1)) { - ltrace(89) << "Setting as North Pad:" << (*igcell) << endl; + cdebug.log(145) << "Setting as North Pad:" << (*igcell) << endl; igcell->setUnderIoPad(); } } @@ -208,7 +204,7 @@ namespace Katabatic { KatabaticEngine* KatabaticEngine::create ( Cell* cell ) { - ltrace(90) << "KatabaticEngine::create() - " << cell << endl; + cdebug.log(145) << "KatabaticEngine::create() - " << cell << endl; KatabaticEngine* katabatic = new KatabaticEngine( cell ); @@ -224,8 +220,7 @@ namespace Katabatic { void KatabaticEngine::_preDestroy () { - ltrace(90) << "Katabatic::_preDestroy ()" << endl; - ltracein(90); + cdebug.log(145,1) << "Katabatic::_preDestroy ()" << endl; if (getState() < Katabatic::EngineGutted) setState( Katabatic::EnginePreDestroying ); @@ -233,11 +228,11 @@ namespace Katabatic { _gutKatabatic(); _state = EngineGutted; - ltrace(89) << "About to delete base class ToolEngine." << endl; + cdebug.log(145) << "About to delete base class ToolEngine." << endl; ToolEngine::_preDestroy(); - ltrace(89) << "Exiting Katabatic::_preDestroy()." << endl; - ltraceout(90); + cdebug.log(145) << "Exiting Katabatic::_preDestroy()." << endl; + cdebug.tabw(145,-1); cmess2 << " - GCells := " << GCell::getAllocateds() << endl; cmess2 << " - AutoContacts := " << AutoContact::getAllocateds() << endl; @@ -252,8 +247,7 @@ namespace Katabatic { unsetFlags( EngineDestroyBaseContact|EngineDestroyBaseSegment ); if (_state == EngineDriving) { - ltracein(90); - ltrace(90) << "Saving AutoContacts/AutoSegments." << endl; + cdebug.log(145,1) << "Saving AutoContacts/AutoSegments." << endl; size_t fixedSegments = 0; size_t sameLayerDoglegs = 0; @@ -275,11 +269,11 @@ namespace Katabatic { //_autoContactLut.clear (); - ltraceout(90); + cdebug.tabw(145,-1); } if (_state < EngineGutted ) { - ltrace(90) << "Gutting Katabatic." << endl; + cdebug.log(145) << "Gutting Katabatic." << endl; _state = EngineGutted; setFlags( EngineDestroyBaseContact ); @@ -432,7 +426,7 @@ namespace Katabatic { void KatabaticEngine::_destroyAutoSegments () { - ltrace(90) << "Katabatic::_destroyAutoSegments ()" << endl; + cdebug.log(145) << "Katabatic::_destroyAutoSegments ()" << endl; size_t expandeds = 0; @@ -451,7 +445,7 @@ namespace Katabatic { void KatabaticEngine::_destroyAutoContacts () { - ltrace(90) << "Katabatic::_destroyAutoContacts ()" << endl; + cdebug.log(145) << "Katabatic::_destroyAutoContacts ()" << endl; AutoContactLut::iterator it = _autoContactLut.begin(); AutoContactLut::iterator end = _autoContactLut.end (); @@ -541,7 +535,7 @@ namespace Katabatic { void KatabaticEngine::finalizeLayout () { - ltrace(90) << "Katabatic::finalizeLayout()" << endl; + cdebug.log(145) << "Katabatic::finalizeLayout()" << endl; if (_state > EngineDriving) return; _state = EngineDriving; @@ -557,10 +551,10 @@ namespace Katabatic { void KatabaticEngine::_alignate ( Net* net ) { - DebugSession::open( net, 99 ); + DebugSession::open( net, 140, 150 ); - ltrace(100) << "Katabatic::_alignate( " << net << " )" << endl; - ltracein(99); + cdebug.log(149) << "Katabatic::_alignate( " << net << " )" << endl; + cdebug.tabw(145,1); //cmess2 << " - " << getString(net) << endl; @@ -581,33 +575,33 @@ namespace Katabatic { AutoSegment* seedSegment = unexploreds[i]; if (exploredSegments.find(seedSegment->base()) == exploredSegments.end()) { - ltrace(99) << "New chunk from: " << seedSegment << endl; + cdebug.log(145) << "New chunk from: " << seedSegment << endl; aligneds.push_back( seedSegment ); forEach ( AutoSegment*, collapsed, seedSegment->getAligneds() ) { - ltrace(99) << "Aligned: " << *collapsed << endl; + cdebug.log(145) << "Aligned: " << *collapsed << endl; aligneds.push_back( *collapsed ); exploredSegments.insert( collapsed->base() ); } - ltracein(99); + cdebug.tabw(145,1); sort( aligneds.begin(), aligneds.end(), AutoSegment::CompareId() ); - ltrace(99) << "Seed: " << (void*)aligneds[0]->base() << " " << aligneds[0] << endl; + cdebug.log(145) << "Seed: " << (void*)aligneds[0]->base() << " " << aligneds[0] << endl; for ( size_t j=1 ; jbase()) << " " << aligneds[j] << endl; + cdebug.log(145) << "Secondary: " << (void*)(aligneds[j]->base()) << " " << aligneds[j] << endl; } - ltrace(159) << "Align on " << aligneds[0] + cdebug.log(149) << "Align on " << aligneds[0] << " " << DbU::toLambda(aligneds[0]->getAxis()) << endl; aligneds[0]->setAxis( aligneds[0]->getAxis(), KbRealignate ); aligneds.clear(); - ltraceout(99); + cdebug.tabw(145,-1); } } - ltraceout(99); + cdebug.tabw(145,-1); DebugSession::close(); } @@ -615,10 +609,10 @@ namespace Katabatic { void KatabaticEngine::updateNetTopology ( Net* net ) { - DebugSession::open( net ); + DebugSession::open( net, 140, 150 ); - ltrace(100) << "Katabatic::updateNetTopology( " << net << " )" << endl; - ltracein(99); + cdebug.log(149) << "Katabatic::updateNetTopology( " << net << " )" << endl; + cdebug.tabw(145,1); vector contacts; forEach ( Component*, icomponent, net->getComponents() ) { @@ -633,17 +627,17 @@ namespace Katabatic { for ( size_t i=0 ; iupdateTopology(); - ltraceout(99); + cdebug.tabw(145,-1); DebugSession::close(); } void KatabaticEngine::_computeNetTerminals ( Net* net ) { - DebugSession::open( net, 88 ); + DebugSession::open( net, 140, 150 ); - ltrace(100) << "Katabatic::_computeNetTerminals( " << net << " )" << endl; - ltracein(99); + cdebug.log(149) << "Katabatic::_computeNetTerminals( " << net << " )" << endl; + cdebug.tabw(145,1); vector segments; forEach ( Segment*, segment, net->getSegments() ) { @@ -652,7 +646,7 @@ namespace Katabatic { if (autoSegment->isInvalidated()) autoSegment->computeTerminal(); } - ltraceout(99); + cdebug.tabw(145,-1); DebugSession::close(); } @@ -660,13 +654,13 @@ namespace Katabatic { void KatabaticEngine::_saveNet ( Net* net ) { - DebugSession::open( net, 88 ); + DebugSession::open( net, 140, 150 ); - ltrace(90) << "Katabatic::_saveNet() " << net << endl; - ltracein(90); + cdebug.log(145) << "Katabatic::_saveNet() " << net << endl; + cdebug.tabw(145,1); #if 0 - ltrace(90) << "Deleting zero-length segments." << endl; + cdebug.log(145) << "Deleting zero-length segments." << endl; vector nullSegments; set connectedLayers; @@ -680,13 +674,13 @@ namespace Katabatic { } if (Session::lookup(*segment) == NULL) { - ltrace(90) << "* Not associated to an AutoSegment: " << *segment << endl; + cdebug.log(145) << "* Not associated to an AutoSegment: " << *segment << endl; continue; } if (not isTopAndBottomConnected(*segment,connectedLayers)) { nullSegments.push_back( *segment ); - ltrace(90) << "* Null Length: " << *segment << endl; + cdebug.log(145) << "* Null Length: " << *segment << endl; } } @@ -709,20 +703,20 @@ namespace Katabatic { swap( source, target ); } - ltrace(90) << "Deleting: " << nullSegments[i] << endl; + cdebug.log(145) << "Deleting: " << nullSegments[i] << endl; if (isTopAndBottomConnected(nullSegments[i],connectedLayers)) { - ltrace(90) << "Deletion cancelled, no longer top or bottom connected." << endl; + cdebug.log(145) << "Deletion cancelled, no longer top or bottom connected." << endl; continue; } - ltrace(90) << "* Source: " << (void*)source << " " << source << endl; - ltrace(90) << "* Target: " << (void*)target << " " << target << endl; + cdebug.log(145) << "* Source: " << (void*)source << " " << source << endl; + cdebug.log(145) << "* Target: " << (void*)target << " " << target << endl; const Layer* layer = DataBase::getDB()->getTechnology() ->getViaBetween( *connectedLayers.begin(), *connectedLayers.rbegin() ); - ltrace(90) << *connectedLayers.begin() << " + " << *connectedLayers.rbegin() << endl; - ltrace(90) << "* Shrink layer: " << layer << endl; + cdebug.log(145) << *connectedLayers.begin() << " + " << *connectedLayers.rbegin() << endl; + cdebug.log(145) << "* Shrink layer: " << layer << endl; if ( !layer ) { cerr << Error("NULL contact layer while deleting %s." ,getString(nullSegments[i]).c_str()) << endl; @@ -736,7 +730,7 @@ namespace Katabatic { while ( masterHook->getNextHook() != source->getBodyHook() ) { slaveHooks.push_back( masterHook->getNextHook() ); - ltrace(90) << "* detach: " + cdebug.log(145) << "* detach: " << (void*)masterHook->getNextHook()->getComponent() << " " << masterHook->getNextHook()->getComponent() << endl; masterHook->getNextHook()->detach(); @@ -748,35 +742,34 @@ namespace Katabatic { slaveHooks[j]->attach( masterHook ); } - ltrace(90) << (void*)target << " " << target << " setLayer: " << layer << endl; + cdebug.log(145) << (void*)target << " " << target << " setLayer: " << layer << endl; target->setLayer( layer ); } unsetFlags( EngineDestroyBaseSegment ); #endif - ltraceout(90); + cdebug.tabw(145,-1); DebugSession::close(); } void KatabaticEngine::_check ( Net* net ) const { - ltrace(200) << "Checking " << net << endl; - ltracein(200); + cdebug.log(149,1) << "Checking " << net << endl; forEach ( Segment*, isegment, net->getComponents().getSubSet() ) { AutoSegment* autoSegment = _lookup ( *isegment ); - ltrace(200) << autoSegment << endl; + cdebug.log(149) << autoSegment << endl; if ( autoSegment ) { AutoContact* autoContact = autoSegment->getAutoSource(); - ltrace(200) << autoContact << endl; + cdebug.log(149) << autoContact << endl; if ( autoContact ) autoContact->checkTopology (); autoContact = autoSegment->getAutoTarget(); - ltrace(200) << autoContact << endl; + cdebug.log(149) << autoContact << endl; if ( autoContact ) autoContact->checkTopology (); } } - ltraceout(200); + cdebug.tabw(149,-1); } diff --git a/katabatic/src/LayerAssign.cpp b/katabatic/src/LayerAssign.cpp index ce5d5cbd..e9d5a3c4 100644 --- a/katabatic/src/LayerAssign.cpp +++ b/katabatic/src/LayerAssign.cpp @@ -39,8 +39,6 @@ namespace Katabatic { using Hurricane::DebugSession; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::ForEachIterator; using Hurricane::Warning; @@ -72,11 +70,11 @@ namespace Katabatic { std::set::const_iterator igcell = queue.getGCells().begin(); size_t i = 0; for ( ; igcell!=queue.getGCells().end() ; ++igcell, ++i ) { - ltrace(400) << "_desaturate: [" << depth << "]:" + cdebug.log(149) << "_desaturate: [" << depth << "]:" << (*igcell)->getDensity(depth) << " " << *igcell << endl; if (not (*igcell)->isSaturated(depth)) { - ltrace(400) << "STOP desaturated: @" << i << " " << *igcell << endl; + cdebug.log(149) << "STOP desaturated: @" << i << " " << *igcell << endl; for ( ; igcell!=queue.getGCells().end() ; ++igcell ) { if ( (*igcell)->isSaturated( depth ) ) { cparanoid << "[ERROR] Still saturated: @" << i << " " << *igcell << endl; @@ -100,10 +98,10 @@ namespace Katabatic { void KatabaticEngine::_layerAssignByLength ( Net* net, unsigned long& total, unsigned long& global, set& globalNets ) { - DebugSession::open ( net, 90 ); + DebugSession::open ( net, 140, 150 ); - ltrace(100) << "Katabatic::_layerAssignByLength( " << net << " )" << endl; - ltracein(99); + cdebug.log(149) << "Katabatic::_layerAssignByLength( " << net << " )" << endl; + cdebug.tabw(145,1); bool isGlobal = false; set globalContacts; @@ -122,7 +120,7 @@ namespace Katabatic { } } - ltraceout(99); + cdebug.tabw(145,-1); DebugSession::close(); } @@ -142,10 +140,10 @@ namespace Katabatic { void KatabaticEngine::_layerAssignByTrunk ( Net* net, set& globalNets, unsigned long& total, unsigned long& global ) { - DebugSession::open( net, 90 ); + DebugSession::open( net, 140, 150 ); - ltrace(100) << "Katabatic::_layerAssignByTrunk ( " << net << " )" << endl; - ltracein(99); + cdebug.log(149) << "Katabatic::_layerAssignByTrunk ( " << net << " )" << endl; + cdebug.tabw(145,1); bool isGlobal = false; unsigned long netGlobal = 0; @@ -171,7 +169,7 @@ namespace Katabatic { if ( autoSegment and not autoSegment->isStrongTerminal() ) { netGlobal++; - ltrace(99) << "Migrate to M4/M5: " << autoSegment << endl; + cdebug.log(145) << "Migrate to M4/M5: " << autoSegment << endl; if (autoSegment->isHorizontal()) autoSegment->setLayer( Session::getRoutingLayer(3) ); if (autoSegment->isVertical ()) autoSegment->setLayer( Session::getRoutingLayer(4) ); } @@ -181,7 +179,7 @@ namespace Katabatic { total += netTotal; global += netGlobal; - ltraceout(99); + cdebug.tabw(145,-1); DebugSession::close(); } @@ -202,9 +200,9 @@ namespace Katabatic { void KatabaticEngine::moveULeft ( AutoSegment* seed, set& globalNets, GCell::SetIndex& invalidateds ) { Net* net = seed->getNet(); - DebugSession::open( net, 90 ); + DebugSession::open( net, 140, 150 ); - ltrace(500) << "Deter| Move left: " << seed << endl; + cdebug.log(9000) << "Deter| Move left: " << seed << endl; seed->moveULeft(); globalNets.insert( net ); @@ -239,9 +237,9 @@ namespace Katabatic { void KatabaticEngine::moveURight ( AutoSegment* seed, set& globalNets, GCell::SetIndex& invalidateds ) { Net* net = seed->getNet(); - DebugSession::open( net, 90 ); + DebugSession::open( net, 140, 150 ); - ltrace(500) << "Deter| Move right: " << seed << endl; + cdebug.log(9000) << "Deter| Move right: " << seed << endl; seed->moveURight(); globalNets.insert( net ); @@ -278,15 +276,15 @@ namespace Katabatic { Net* net = seed->getNet(); unsigned int seedDepth = Session::getRoutingGauge()->getLayerDepth(seed->getLayer()); - DebugSession::open( net, 90 ); - ltrace(500) << "Deter| moveUpNetTrunk() depth:" << seedDepth << " " << seed << endl; + DebugSession::open( net, 140, 150 ); + cdebug.log(9000) << "Deter| moveUpNetTrunk() depth:" << seedDepth << " " << seed << endl; if (not seed->canMoveUp( 1.0, KbPropagate|KbAllowTerminal|KbNoCheckLayer) ) { - ltrace(500) << "Deter| Reject seed move up, cannot move up." << endl; + cdebug.log(9000) << "Deter| Reject seed move up, cannot move up." << endl; DebugSession::close(); return false; } - ltracein(400); + cdebug.tabw(149,1); globalNets.insert( net ); @@ -330,7 +328,7 @@ namespace Katabatic { } for ( size_t i=0 ; igetLayerDepth( globals[i]->getLayer() ); globals[i]->changeDepth( depth+2, KbWithNeighbors ); @@ -342,7 +340,7 @@ namespace Katabatic { } for ( size_t i=0 ; igetLayerDepth(locals[i]->getLayer()); if (depth > seedDepth+1) continue; @@ -350,7 +348,7 @@ namespace Katabatic { if (locals[i]->canPivotUp(2.0,KbPropagate|KbNoCheckLayer)) { locals[i]->changeDepth( depth+2, KbWithNeighbors ); - //ltrace(500) << "Deter| Trunk move up L:" << locals[i] << endl; + //cdebug.log(9000) << "Deter| Trunk move up L:" << locals[i] << endl; vector gcells; locals[i]->getGCells( gcells ); @@ -360,7 +358,7 @@ namespace Katabatic { } } - ltraceout(400); + cdebug.tabw(149,-1); DebugSession::close(); return true; @@ -372,15 +370,15 @@ namespace Katabatic { Net* net = seed->getNet(); unsigned int seedDepth = Session::getRoutingGauge()->getLayerDepth(seed->getLayer()); - DebugSession::open( net, 90 ); - ltrace(500) << "Deter| moveUpNetTrunk() depth:" << seedDepth << " " << seed << endl; + DebugSession::open( net, 140, 150 ); + cdebug.log(9000) << "Deter| moveUpNetTrunk() depth:" << seedDepth << " " << seed << endl; if (not seed->canMoveUp( 1.0, KbPropagate|KbAllowTerminal|KbNoCheckLayer) ) { - ltrace(500) << "Deter| Reject seed move up, cannot move up." << endl; + cdebug.log(9000) << "Deter| Reject seed move up, cannot move up." << endl; DebugSession::close(); return false; } - ltracein(400); + cdebug.tabw(149,1); globalNets.insert( net ); @@ -390,7 +388,7 @@ namespace Katabatic { forEach ( Segment*, isegment, net->getSegments() ) { AutoSegment* autoSegment = Session::lookup( *isegment ); - //ltrace(500) << "Deter| Loop " << autoSegment << endl; + //cdebug.log(9000) << "Deter| Loop " << autoSegment << endl; if (not autoSegment) continue; if (autoSegment->isLocal()) { @@ -409,7 +407,7 @@ namespace Katabatic { sort( locals.begin(), locals.end(), AutoSegment::CompareId() ); for ( size_t i=0 ; igetLayerDepth( globals[i]->getLayer() ); if (depth > seedDepth+1) continue; @@ -419,7 +417,7 @@ namespace Katabatic { if ( globals[i]->canMoveUp(1.0,KbPropagate|KbAllowTerminal|KbNoCheckLayer) ) { globals[i]->changeDepth( depth+2, KbWithNeighbors ); - //ltrace(500) << "Deter| Trunk move up G:" << globals[i] << endl; + //cdebug.log(9000) << "Deter| Trunk move up G:" << globals[i] << endl; vector gcells; globals[i]->getGCells( gcells ); @@ -427,12 +425,12 @@ namespace Katabatic { invalidateds.insert( gcells[j] ); } } else { - //ltrace(500) << "Deter| Reject Trunk move up G:" << globals[i] << endl; + //cdebug.log(9000) << "Deter| Reject Trunk move up G:" << globals[i] << endl; } } for ( size_t i=0 ; igetLayerDepth(locals[i]->getLayer()); if (depth > seedDepth+1) continue; @@ -440,7 +438,7 @@ namespace Katabatic { if (locals[i]->canPivotUp(2.0,KbPropagate|KbNoCheckLayer)) { locals[i]->changeDepth( depth+2, KbWithNeighbors ); - //ltrace(500) << "Deter| Trunk move up L:" << locals[i] << endl; + //cdebug.log(9000) << "Deter| Trunk move up L:" << locals[i] << endl; vector gcells; locals[i]->getGCells( gcells ); @@ -450,7 +448,7 @@ namespace Katabatic { } } - ltraceout(400); + cdebug.tabw(149,-1); DebugSession::close(); return true; @@ -477,11 +475,11 @@ namespace Katabatic { std::set::const_iterator igcell = queue.getGCells().begin(); size_t i = 0; for ( ; igcell!=queue.getGCells().end() ; ++igcell, ++i ) { - ltrace(400) << "_balance: [" << depth << "]:" + cdebug.log(149) << "_balance: [" << depth << "]:" << (*igcell)->getDensity(depth) << " " << *igcell << endl; if (not (*igcell)->isSaturated(depth)) { - ltrace(400) << "STOP desaturated: @" << i << " " << *igcell << endl; + cdebug.log(149) << "STOP desaturated: @" << i << " " << *igcell << endl; for ( ; igcell!=queue.getGCells().end() ; ++igcell ) { if ((*igcell)->isSaturated(depth)) { cparanoid << Error( "Still saturated: @%d %s", i, getString(*igcell).c_str() ) << endl; @@ -510,7 +508,7 @@ namespace Katabatic { void KatabaticEngine::balanceGlobalDensity () { - ltrace(500) << "Deter| Balance Global Density" << endl; + cdebug.log(9000) << "Deter| Balance Global Density" << endl; //_balanceGlobalDensity( 1 ); // metal2 //_balanceGlobalDensity( 2 ); // metal3 @@ -556,7 +554,7 @@ namespace Katabatic { void KatabaticEngine::layerAssign ( unsigned int method ) { - ltrace(500) << "Deter| Layer Assignment" << endl; + cdebug.log(9000) << "Deter| Layer Assignment" << endl; set globalNets; diff --git a/katabatic/src/LoadGrByNet.cpp b/katabatic/src/LoadGrByNet.cpp index a5da24f0..da45b2dc 100644 --- a/katabatic/src/LoadGrByNet.cpp +++ b/katabatic/src/LoadGrByNet.cpp @@ -498,7 +498,7 @@ namespace { flags |= (height < 3*Session::getPitch(anchorDepth)) ? VSmall : 0; flags |= ((width == 0) && (height == 0)) ? Punctual : 0; - ltrace(99) << "::checkRoutingPadSize(): pitch[" << anchorDepth << "]:" + cdebug.log(145) << "::checkRoutingPadSize(): pitch[" << anchorDepth << "]:" << DbU::toLambda(Session::getPitch(anchorDepth)) << " " << ((flags & HSmall) ? "HSmall " : " ") << ((flags & VSmall) ? "VSmall " : " ") @@ -623,7 +623,7 @@ namespace { inline void ForkStack::push ( Hook* from, AutoContact* contact ) { - ltrace(80) << " Stacking " << from << " + " << contact << endl; + cdebug.log(145) << " Stacking " << from << " + " << contact << endl; _stack.push_back( Element(from,contact) ); } @@ -819,16 +819,15 @@ namespace { { _connexity.connexity = 0; - ltrace(99) << "GCellTopology::GCellTopology()" << endl; - ltracein(99); - ltrace(99) << getString(fromHook) << endl; - ltrace(99) << sourceContact << endl; + cdebug.log(145,1) << "GCellTopology::GCellTopology()" << endl; + cdebug.log(145) << getString(fromHook) << endl; + cdebug.log(145) << sourceContact << endl; Segment* fromSegment = static_cast( _fromHook->getComponent() ); _net = fromSegment->getNet(); forEach ( Hook*, hook, fromHook->getHooks() ) { - ltrace(99) << "Topology [" << _connexity.connexity << "] = " + cdebug.log(145) << "Topology [" << _connexity.connexity << "] = " << "[" << _connexity.fields.globals << "+" << _connexity.fields.M1 << "+" << _connexity.fields.M2 @@ -853,7 +852,7 @@ namespace { Component* anchor = hook->getComponent(); RoutingPad* rp = dynamic_cast( anchor ); - ltrace(99) << "| Looking for Anchor:" << anchor << " rp:" << rp << endl; + cdebug.log(145) << "| Looking for Anchor:" << anchor << " rp:" << rp << endl; if (anchor) { Contact* contact = dynamic_cast( anchor ); @@ -862,8 +861,8 @@ namespace { or Session::getKatabatic()->isGMetal ( anchor->getLayer() )) ) { // Global routing articulation contact are in not ? GCell* gcell = gcellGrid->getGCell( contact->getCenter() ); - ltrace(99) << "* Global Routing Articulation: " << contact << endl; - ltrace(99) << "| " << gcell << endl; + cdebug.log(145) << "* Global Routing Articulation: " << contact << endl; + cdebug.log(145) << "| " << gcell << endl; if (gcell == NULL) throw Error( invalidGCell ); if (_gcell == NULL) _gcell = gcell; @@ -892,16 +891,16 @@ namespace { if (dynamic_cast(rp->getOccurrence().getEntity())) _connexity.fields.Pin++; } - ltrace(99) << "| Component to connect: " << anchor << endl; + cdebug.log(145) << "| Component to connect: " << anchor << endl; _routingPads.push_back( rp ); } } } } - ltrace(99) << "east: " << _east << endl; - ltrace(99) << "west: " << _west << endl; - ltrace(99) << "north:" << _north << endl; - ltrace(99) << "south:" << _south << endl; + cdebug.log(145) << "east: " << _east << endl; + cdebug.log(145) << "west: " << _west << endl; + cdebug.log(145) << "north:" << _north << endl; + cdebug.log(145) << "south:" << _south << endl; if (_connexity.fields.globals == 1) { if ( _north or _south ) _topology |= Global_Vertical_End; @@ -914,7 +913,7 @@ namespace { _topology |= Global_Fork; } - ltraceout(99); + cdebug.tabw(145,-1); if (_gcell == NULL) throw Error( missingGCell ); } @@ -922,8 +921,7 @@ namespace { void GCellTopology::construct ( ForkStack& forks ) { - ltrace(99) << "GCellTopology::construct() [" << _connexity.connexity << "] in " << _gcell << endl; - ltracein(99); + cdebug.log(145,1) << "GCellTopology::construct() [" << _connexity.connexity << "] in " << _gcell << endl; _southWestContact = NULL; _northEastContact = NULL; @@ -1022,16 +1020,16 @@ namespace { ); globalSegment->setFlags( (_degree == 2) ? SegBipoint : 0 ); - ltrace(99) << "Create global segment: " << globalSegment << endl; + cdebug.log(145) << "Create global segment: " << globalSegment << endl; #if THIS_IS_DEPRECATED if ( globalSegment->isHorizontal() and ( (Session::getRoutingGauge()->getLayerDepth(_sourceContact->getLayer()->getBottom()) > 1) or (Session::getRoutingGauge()->getLayerDepth(targetContact ->getLayer()->getBottom()) > 1)) ) { globalSegment->setLayer ( Session::getRoutingLayer(3) ); - ltrace(99) << "Source:" << _sourceContact << endl; - ltrace(99) << "Target:" << targetContact << endl; - ltrace(99) << "Moving up global:" << globalSegment << endl; + cdebug.log(145) << "Source:" << _sourceContact << endl; + cdebug.log(145) << "Target:" << targetContact << endl; + cdebug.log(145) << "Moving up global:" << globalSegment << endl; } #endif // HARDCODED VALUE. @@ -1039,7 +1037,7 @@ namespace { _toFixSegments.push_back( globalSegment ); if (_connexity.fields.globals < 2) { - ltraceout(99); + cdebug.tabw(145,-1); return; } } else @@ -1048,30 +1046,30 @@ namespace { if ( _east and (_fromHook != _east) ) { Hook* toHook = getSegmentOppositeHook( _east ); - ltrace(99) << "Pushing East (to) " << getString(toHook) << endl; - ltrace(99) << "Pushing East (from) " << _northEastContact << endl; + cdebug.log(145) << "Pushing East (to) " << getString(toHook) << endl; + cdebug.log(145) << "Pushing East (from) " << _northEastContact << endl; forks.push( toHook, _northEastContact ); } if ( _west and (_fromHook != _west) ) { Hook* toHook = getSegmentOppositeHook( _west ); - ltrace(99) << "Pushing West (to) " << getString(toHook) << endl; - ltrace(99) << "Pushing West (from) " << _southWestContact << endl; + cdebug.log(145) << "Pushing West (to) " << getString(toHook) << endl; + cdebug.log(145) << "Pushing West (from) " << _southWestContact << endl; forks.push( toHook, _southWestContact ); } if ( _north and (_fromHook != _north) ) { Hook* toHook = getSegmentOppositeHook( _north ); - ltrace(99) << "Pushing North (to) " << getString(toHook) << endl; - ltrace(99) << "Pushing North (from) " << _northEastContact << endl; + cdebug.log(145) << "Pushing North (to) " << getString(toHook) << endl; + cdebug.log(145) << "Pushing North (from) " << _northEastContact << endl; forks.push( toHook, _northEastContact ); } if ( _south and (_fromHook != _south) ) { Hook* toHook = getSegmentOppositeHook( _south ); - ltrace(99) << "Pushing South (to) " << getString(toHook) << endl; - ltrace(99) << "Pushing South (from) " << _southWestContact << endl; + cdebug.log(145) << "Pushing South (to) " << getString(toHook) << endl; + cdebug.log(145) << "Pushing South (from) " << _southWestContact << endl; forks.push( toHook, _southWestContact ); } - ltraceout(99); + cdebug.tabw(145,-1); } @@ -1082,9 +1080,8 @@ namespace { , unsigned int flags ) { - ltrace(99) << "doRp_AutoContacts()" << endl; - ltracein(99); - ltrace(99) << rp << endl; + cdebug.log(145,1) << "doRp_AutoContacts()" << endl; + cdebug.log(145) << rp << endl; source = target = NULL; @@ -1161,15 +1158,14 @@ namespace { ); } - ltraceout(99); + cdebug.tabw(145,-1); return; } AutoContact* GCellTopology::doRp_Access ( GCell* gcell, Component* rp, unsigned int flags ) { - ltrace(99) << "doRp_Access() - flags:" << flags << endl; - ltracein(99); + cdebug.log(145,1) << "doRp_Access() - flags:" << flags << endl; AutoContact* rpContactSource; AutoContact* rpContactTarget; @@ -1194,7 +1190,7 @@ namespace { } } - ltraceout(99); + cdebug.tabw(145,-1); return rpContactSource; } @@ -1202,9 +1198,8 @@ namespace { AutoContact* GCellTopology::doRp_AccessPad ( RoutingPad* rp, unsigned int flags ) { - ltrace(99) << "doRp_AccessPad()" << endl; - ltracein(99); - ltrace(99) << rp << endl; + cdebug.log(145,1) << "doRp_AccessPad()" << endl; + cdebug.log(145) << rp << endl; // Hardcoded: H access is METAL2 (depth=1), V access is METAL3 (depth=2). size_t accessDepth = (flags & HAccess) ? 1 : 2 ; @@ -1286,7 +1281,7 @@ namespace { , Session::getWireWidth(depth) ); } - ltrace(99) << "Pad strap: " << anchor << endl; + cdebug.log(145) << "Pad strap: " << anchor << endl; source = target; } } else { @@ -1329,7 +1324,7 @@ namespace { , Session::getWireWidth(depth) ); } - ltrace(99) << "Pad strap: " << anchor << endl; + cdebug.log(145) << "Pad strap: " << anchor << endl; source = target; } } @@ -1343,14 +1338,14 @@ namespace { , Session::getWireWidth(accessDepth) , Session::getWireWidth(accessDepth) ); - ltraceout(99); + cdebug.tabw(145,-1); return autoSource; } void GCellTopology::doRp_StairCaseH ( GCell* gcell, Component* rp1, Component* rp2 ) { - ltrace(99) << "doRp_StairCaseH()" << endl; + cdebug.log(145) << "doRp_StairCaseH()" << endl; if (rp1->getCenter().getX() > rp2->getCenter().getX()) swap( rp1, rp2 ); @@ -1364,7 +1359,7 @@ namespace { doRp_AutoContacts( gcell, rp2, rp2ContactSource, rp2ContactTarget, DoSourceContact ); if (rp1ContactTarget->getY() == rp2ContactSource->getY()) { - ltrace(99) << "Aligned horizontal routing pads : straight wire" << endl; + cdebug.log(145) << "Aligned horizontal routing pads : straight wire" << endl; viaLayer = rp1->getLayer(); AutoSegment::create( rp1ContactTarget, rp2ContactSource, KbHorizontal ); @@ -1384,7 +1379,7 @@ namespace { void GCellTopology::doRp_StairCaseV ( GCell* gcell, Component* rp1, Component* rp2 ) { - ltrace(99) << "doRp_StairCaseV()" << endl; + cdebug.log(145) << "doRp_StairCaseV()" << endl; if (rp1->getCenter().getY() > rp2->getCenter().getY()) swap( rp1, rp2 ); @@ -1398,7 +1393,7 @@ namespace { doRp_AutoContacts( gcell, rp2, rp2ContactSource, rp2ContactTarget, DoSourceContact ); if (rp1ContactTarget->getX() == rp2ContactSource->getX()) { - ltrace(99) << "Aligned vertical routing pads : straight wire" << endl; + cdebug.log(145) << "Aligned vertical routing pads : straight wire" << endl; viaLayer = rp1->getLayer(); AutoSegment::create( rp1ContactTarget, rp2ContactSource, KbVertical ); @@ -1418,8 +1413,7 @@ namespace { void GCellTopology::_do_xG () { - ltrace(99) << "_do_xG()" << endl; - ltracein(99); + cdebug.log(145,1) << "_do_xG()" << endl; if (_connexity.fields.globals == 2) { _southWestContact @@ -1446,15 +1440,14 @@ namespace { AutoSegment::create( _southWestContact, turn, KbHorizontal ); AutoSegment::create( turn, _northEastContact, KbVertical ); } - ltraceout(99); + cdebug.tabw(145,-1); } void GCellTopology::_do_xG_1Pad () { - ltrace(99) << "_do_xG_1Pad() [Managed Configuration - Optimized] " << _topology << endl; - ltracein(99); - ltrace(99) << "_connexity.globals:" << _connexity.fields.globals << endl; + cdebug.log(145,1) << "_do_xG_1Pad() [Managed Configuration - Optimized] " << _topology << endl; + cdebug.log(145) << "_connexity.globals:" << _connexity.fields.globals << endl; unsigned int flags = NoFlags; bool eastPad = false; @@ -1475,7 +1468,7 @@ namespace { , getString(padInstance).c_str() ) << endl; break; } - ltrace(99) << "eastPad:" << eastPad << ", " + cdebug.log(145) << "eastPad:" << eastPad << ", " << "westPad:" << westPad << ", " << "northPad:" << northPad << ", " << "southPad:" << southPad @@ -1496,7 +1489,7 @@ namespace { // if (northPad or eastPad) { // _southWestContact = _northEastContact = source; - // ltraceout(99); + // cdebug.tabw(145,-1); // return; // } @@ -1509,7 +1502,7 @@ namespace { = AutoContactTurn::create( _gcell, _net, Session::getContactLayer(1) ); AutoSegment::create( source, turn, KbHorizontal ); AutoSegment::create( turn, _northEastContact, KbVertical ); - ltraceout(99); + cdebug.tabw(145,-1); return; } else if ( (southPad and (_north != NULL)) or (northPad and (_south != NULL)) ) { @@ -1518,7 +1511,7 @@ namespace { = AutoContactTurn::create( _gcell, _net, Session::getContactLayer(1) ); AutoSegment::create( source, turn, KbVertical ); AutoSegment::create( turn, _northEastContact, KbHorizontal ); - ltraceout(99); + cdebug.tabw(145,-1); return; } } @@ -1551,14 +1544,13 @@ namespace { } --_connexity.fields.globals; - ltraceout(99); + cdebug.tabw(145,-1); } void GCellTopology::_do_1G_1PinM2 () { - ltrace(99) << "_do_1G_1PinM2() [Managed Configuration - Optimized] " << _topology << endl; - ltracein(99); + cdebug.log(145,1) << "_do_1G_1PinM2() [Managed Configuration - Optimized] " << _topology << endl; AutoContact* rpContact = doRp_Access( _gcell, _routingPads[0], NoFlags ); AutoContact* turn1 = AutoContactTurn::create( _gcell, _net, Session::getContactLayer(1) ); @@ -1571,14 +1563,13 @@ namespace { } _southWestContact = _northEastContact = turn1; - ltraceout(99); + cdebug.tabw(145,-1); } void GCellTopology::_do_1G_1M1 () { - ltrace(99) << "_do_1G_1M1() [Managed Configuration - Optimized] " << _topology << endl; - ltracein(99); + cdebug.log(145,1) << "_do_1G_1M1() [Managed Configuration - Optimized] " << _topology << endl; unsigned int flags = NoFlags; if (_east ) { flags |= HAccess; } @@ -1588,14 +1579,13 @@ namespace { _southWestContact = _northEastContact = doRp_Access( _gcell, _routingPads[0], flags ); - ltraceout(99); + cdebug.tabw(145,-1); } void GCellTopology::_do_1G_xM1 () { - ltrace(99) << "_do_1G_" << _connexity.fields.M1 << "M1() [Managed Configuration]" << endl; - ltracein(99); + cdebug.log(145,1) << "_do_1G_" << _connexity.fields.M1 << "M1() [Managed Configuration]" << endl; sort( _routingPads.begin(), _routingPads.end(), SortRpByX(NoFlags) ); // increasing X. for ( unsigned int i=1 ; i<_routingPads.size() ; ++i ) { @@ -1610,10 +1600,10 @@ namespace { else { globalRp = _routingPads[0]; - ltrace(99) << "| Initial N/S Global RP: " << globalRp << endl; + cdebug.log(145) << "| Initial N/S Global RP: " << globalRp << endl; for ( unsigned int i=1 ; i<_routingPads.size() ; ++i ) { if (_routingPads[i]->getBoundingBox().getHeight() > globalRp->getBoundingBox().getHeight()) { - ltrace(99) << "| Better RP: " << globalRp << endl; + cdebug.log(145) << "| Better RP: " << globalRp << endl; globalRp = _routingPads[i]; } } @@ -1629,14 +1619,13 @@ namespace { _northEastContact = _southWestContact = globalContact; - ltraceout(99); + cdebug.tabw(145,-1); } void GCellTopology::_do_xG_1M1_1M2 () { - ltrace(99) << "_do_xG_1M1_1M2() [Managed Configuration]" << endl; - ltracein(99); + cdebug.log(145,1) << "_do_xG_1M1_1M2() [Managed Configuration]" << endl; Component* rpL1; Component* rpL2; @@ -1647,8 +1636,8 @@ namespace { rpL1 = _routingPads[1]; rpL2 = _routingPads[0]; } - ltrace(99) << "rpL1 := " << rpL1 << endl; - ltrace(99) << "rpL2 := " << rpL2 << endl; + cdebug.log(145) << "rpL1 := " << rpL1 << endl; + cdebug.log(145) << "rpL2 := " << rpL2 << endl; AutoContact* rpL1ContactSource = NULL; AutoContact* rpL1ContactTarget = NULL; @@ -1692,21 +1681,20 @@ namespace { } } - ltraceout(99); + cdebug.tabw(145,-1); } void GCellTopology::_do_xG_xM1_xM3 () { - ltrace(99) << "_do_xG_" << _connexity.fields.M1 - << "M1_" << _connexity.fields.M3 - << "M3() [G:" << _connexity.fields.globals << " Managed Configuration]" << endl; - ltracein(99); - ltrace(99) << "_connexity: " << _connexity.connexity << endl; - ltrace(99) << "_north: " << _north << endl; - ltrace(99) << "_south: " << _south << endl; - ltrace(99) << "_east: " << _east << endl; - ltrace(99) << "_west: " << _west << endl; + cdebug.log(145,1) << "_do_xG_" << _connexity.fields.M1 + << "M1_" << _connexity.fields.M3 + << "M3() [G:" << _connexity.fields.globals << " Managed Configuration]" << endl; + cdebug.log(145) << "_connexity: " << _connexity.connexity << endl; + cdebug.log(145) << "_north: " << _north << endl; + cdebug.log(145) << "_south: " << _south << endl; + cdebug.log(145) << "_east: " << _east << endl; + cdebug.log(145) << "_west: " << _west << endl; Component* rpM3 = NULL; if (_routingPads[0]->getLayer() == Session::getRoutingLayer(2)) @@ -1750,11 +1738,11 @@ namespace { } else { // All RoutingPad are M1. Component* southWestRp = _routingPads[0]; - ltrace(99) << "| Initial S-W Global RP: " << southWestRp << endl; + cdebug.log(145) << "| Initial S-W Global RP: " << southWestRp << endl; for ( unsigned int i=1 ; i<_routingPads.size() ; ++i ) { if (southWestRp->getBoundingBox().getHeight() >= 4*Session::getPitch(1)) break; if (_routingPads[i]->getBoundingBox().getHeight() > southWestRp->getBoundingBox().getHeight()) { - ltrace(99) << "| Better RP: " << southWestRp << endl; + cdebug.log(145) << "| Better RP: " << southWestRp << endl; southWestRp = _routingPads[i]; } } @@ -1772,14 +1760,14 @@ namespace { } Component* northEastRp = _routingPads[_routingPads.size()-1]; - ltrace(99) << "| Initial N-E Global RP: " << northEastRp << endl; + cdebug.log(145) << "| Initial N-E Global RP: " << northEastRp << endl; if (_routingPads.size() > 1) { for ( unsigned int i=_routingPads.size()-1; i != 0 ; ) { i -= 1; if (northEastRp->getBoundingBox().getHeight() >= 4*Session::getPitch(1)) break; if (_routingPads[i]->getBoundingBox().getHeight() > northEastRp->getBoundingBox().getHeight()) { - ltrace(99) << "| Better RP: " << northEastRp << endl; + cdebug.log(145) << "| Better RP: " << northEastRp << endl; northEastRp = _routingPads[i]; } } @@ -1798,17 +1786,16 @@ namespace { } } - ltraceout(99); + cdebug.tabw(145,-1); } void GCellTopology::_do_4G_1M2 () { - ltrace(99) << "_do_4G_1M2() [Managed Configuration]" << endl; - ltracein(99); + cdebug.log(145,1) << "_do_4G_1M2() [Managed Configuration]" << endl; Component* rpL2 = _routingPads[0]; - ltrace(99) << "rpL2 := " << rpL2 << endl; + cdebug.log(145) << "rpL2 := " << rpL2 << endl; AutoContact* rpL2ContactSource = NULL; AutoContact* rpL2ContactTarget = NULL; @@ -1821,15 +1808,14 @@ namespace { AutoSegment::create( _southWestContact, rpL2ContactSource, KbHorizontal ); AutoSegment::create( rpL2ContactTarget, _northEastContact, KbHorizontal ); - ltraceout(99); + cdebug.tabw(145,-1); } void GCellTopology::_do_xG_xM2 () { - ltrace(99) << "_do_" - << _connexity.fields.globals << "G_" - << _connexity.fields.M2 << "M2() [Managed Configuration - x]" << endl; - ltracein(99); + cdebug.log(145,1) << "_do_" + << _connexity.fields.globals << "G_" + << _connexity.fields.M2 << "M2() [Managed Configuration - x]" << endl; Component* biggestRp = _routingPads[0]; for ( unsigned int i=1 ; i<_routingPads.size() ; ++i ) { @@ -1860,14 +1846,13 @@ namespace { AutoSegment::create( rpContact, _northEastContact, KbVertical ); } - ltraceout(99); + cdebug.tabw(145,-1); } void GCellTopology::_do_1G_1M3 () { - ltrace(99) << "_do_1G_1M3() [Optimised Configuration]" << endl; - ltracein(99); + cdebug.log(145,1) << "_do_1G_1M3() [Optimised Configuration]" << endl; unsigned int flags = (_east or _west) ? HAccess : NoFlags; flags |= (_north) ? DoTargetContact : NoFlags; @@ -1882,8 +1867,8 @@ namespace { if (not _southWestContact) _southWestContact = _northEastContact; if (not _northEastContact) _northEastContact = _southWestContact; - ltrace(99) << "_southWest: " << _southWestContact << endl; - ltrace(99) << "_northEast: " << _northEastContact << endl; + cdebug.log(145) << "_southWest: " << _southWestContact << endl; + cdebug.log(145) << "_northEast: " << _northEastContact << endl; if (flags & HAccess) { // HARDCODED VALUE. @@ -1904,19 +1889,18 @@ namespace { } } } - ltraceout(99); + cdebug.tabw(145,-1); } void GCellTopology::_do_xG_xM3 () { - ltrace(99) << "_do_xG_" << _connexity.fields.M3 - << "M3() [Managed Configuration]" << endl; - ltracein(99); - ltrace(99) << "_west:" << _west << endl; - ltrace(99) << "_east:" << _east << endl; - ltrace(99) << "_south:" << _south << endl; - ltrace(99) << "_north:" << _north << endl; + cdebug.log(145,1) << "_do_xG_" << _connexity.fields.M3 + << "M3() [Managed Configuration]" << endl; + cdebug.log(145) << "_west:" << _west << endl; + cdebug.log(145) << "_east:" << _east << endl; + cdebug.log(145) << "_south:" << _south << endl; + cdebug.log(145) << "_north:" << _north << endl; sort( _routingPads.begin(), _routingPads.end(), SortRpByY(NoFlags) ); // increasing Y. for ( unsigned int i=1 ; i<_routingPads.size() ; i++ ) { @@ -1932,7 +1916,7 @@ namespace { doRp_AutoContacts( _gcell, rp, _southWestContact, unusedContact, DoSourceContact ); if (_sourceContact) { if (_sourceContact->getX() != _southWestContact->getX()) { - ltrace(200) << "Misaligned South: _source:" << DbU::getValueString(_sourceContact->getX()) + cdebug.log(149) << "Misaligned South: _source:" << DbU::getValueString(_sourceContact->getX()) << "_southWest:" << DbU::getValueString(_southWestContact->getX()) << endl; AutoContactTurn* turn1 = AutoContactTurn::create( _gcell, _net, Session::getContactLayer(1) ); @@ -1956,7 +1940,7 @@ namespace { doRp_AutoContacts( _gcell, rp, unusedContact, _northEastContact, DoTargetContact ); if (_sourceContact) { if (_sourceContact->getX() != _northEastContact->getX()) { - ltrace(200) << "Misaligned North: _source:" << DbU::getValueString(_sourceContact->getX()) + cdebug.log(149) << "Misaligned North: _source:" << DbU::getValueString(_sourceContact->getX()) << "_southWest:" << DbU::getValueString(_northEastContact->getX()) << endl; AutoContactTurn* turn1 = AutoContactTurn::create( _gcell, _net, Session::getContactLayer(1) ); @@ -1973,14 +1957,13 @@ namespace { AutoSegment::create( rpContact, _northEastContact, KbVertical ); } - ltraceout(99); + cdebug.tabw(145,-1); } void singleGCell ( KatabaticEngine* ktbt, Net* net ) { - ltrace(99) << "singleGCell() " << net << endl; - ltracein(99); + cdebug.log(145,1) << "singleGCell() " << net << endl; vector rpM1s; Component* rpM2 = NULL; @@ -1996,7 +1979,7 @@ namespace { cerr << Error( "For %s, less than two Plugs/Pins (%d)." , getString(net).c_str() , rpM1s.size() ) << endl; - ltraceout(99); + cdebug.tabw(145,-1); return; } @@ -2007,11 +1990,11 @@ namespace { if (not gcell) { cerr << Error( "No GCell under %s.", getString(rpM1s[0]).c_str() ) << endl; - ltraceout(99); + cdebug.tabw(145,-1); return; } - ltrace(80) << "singleGCell " << gcell << endl; + cdebug.log(145) << "singleGCell " << gcell << endl; AutoContact* turn = NULL; AutoContact* source = NULL; @@ -2031,7 +2014,7 @@ namespace { AutoSegment::create( turn , target, KbVertical ); } - ltraceout(99); + cdebug.tabw(145,-1); } @@ -2042,9 +2025,6 @@ namespace { namespace Katabatic { - using Hurricane::ltracein; - using Hurricane::ltraceout; - using Hurricane::ltracelevel; using Hurricane::Name; using Hurricane::DebugSession; using Hurricane::Error; @@ -2064,7 +2044,7 @@ namespace Katabatic { forEach ( Net*, inet, getCell()->getNets() ) { if (NetRoutingExtension::isAutomaticGlobalRoute(*inet)) { - DebugSession::open( *inet, 80 ); + DebugSession::open( *inet, 140, 150 ); _loadNetGlobalRouting( *inet ); Session::revalidate(); DebugSession::close(); @@ -2088,8 +2068,8 @@ namespace Katabatic { void KatabaticEngine::_loadNetGlobalRouting ( Net* net ) { - ltrace(100) << "Katabatic::_loadNetGlobalRouting( " << net << " )" << endl; - ltracein(99); + cdebug.log(149) << "Katabatic::_loadNetGlobalRouting( " << net << " )" << endl; + cdebug.tabw(145,1); ForkStack forks; Hook* sourceHook = NULL; @@ -2103,7 +2083,7 @@ namespace Katabatic { if (degree == 0) { cmess2 << Warning("Net \"%s\" do not have any RoutingPad (ignored)." ,getString(net->getName()).c_str()) << endl; - ltraceout(99); + cdebug.tabw(145,-1); return; } if (degree < 2) { @@ -2112,11 +2092,11 @@ namespace Katabatic { cmess2 << Warning("Net \"%s\" have less than 2 plugs/pins (ignored)." ,getString(net->getName()).c_str()) << endl; #endif - ltraceout(99); + cdebug.tabw(145,-1); return; } - ltracein(99); + cdebug.tabw(145,1); Hook* startHook = NULL; GCell* lowestGCell = NULL; size_t unconnecteds = 0; @@ -2124,12 +2104,12 @@ namespace Katabatic { GCellTopology::init( degree ); - ltrace(99) << "Start RoutingPad Ring" << endl; + cdebug.log(145) << "Start RoutingPad Ring" << endl; forEach ( RoutingPad*, startRp, routingPads ) { bool segmentFound = false; forEach ( Hook*, ihook, startRp->getBodyHook()->getHooks() ) { - ltrace(99) << "Component " << ihook->getComponent() << endl; + cdebug.log(145) << "Component " << ihook->getComponent() << endl; Segment* segment = dynamic_cast( ihook->getComponent() ); if (segment) { @@ -2139,7 +2119,7 @@ namespace Katabatic { GCellTopology gcellConf ( getGCellGrid(), *ihook, NULL ); if (gcellConf.getStateG() == 1) { if ( (lowestGCell == NULL) or (lowestGCell->getIndex() > gcellConf.getGCell()->getIndex()) ) { - ltrace(99) << "Starting from GCell " << gcellConf.getGCell() << endl; + cdebug.log(145) << "Starting from GCell " << gcellConf.getGCell() << endl; lowestGCell = gcellConf.getGCell(); startHook = *ihook; } @@ -2155,16 +2135,16 @@ namespace Katabatic { NetRoutingExtension::create( net )->setFlags ( NetRoutingState::Excluded ); NetRoutingExtension::create( net )->unsetFlags( NetRoutingState::AutomaticGlobalRoute ); - ltraceout(99); + cdebug.tabw(145,-1); return; } // Uncomment the next line to disable the lowest GCell search. // (takes first GCell with exactly one global). //if (startHook) break; } - ltraceout(99); + cdebug.tabw(145,-1); - if (startHook == NULL) { singleGCell( this, net ); ltraceout(99); return; } + if (startHook == NULL) { singleGCell( this, net ); cdebug.tabw(145,-1); return; } GCellTopology startGCellConf ( getGCellGrid(), startHook, NULL ); startGCellConf.construct( forks ); @@ -2181,8 +2161,8 @@ namespace Katabatic { sourceContact = forks.getContact(); forks.pop(); - ltrace(99) << "Popping (from) " << sourceHook << endl; - ltrace(99) << "Popping (to) " << sourceContact << endl; + cdebug.log(145) << "Popping (from) " << sourceHook << endl; + cdebug.log(145) << "Popping (to) " << sourceContact << endl; } lookupClear(); @@ -2197,7 +2177,7 @@ namespace Katabatic { Session::revalidate(); GCellTopology::fixSegments(); - ltraceout(99); + cdebug.tabw(145,-1); } diff --git a/katabatic/src/NetConstraints.cpp b/katabatic/src/NetConstraints.cpp index 5094c7f5..1769db8e 100644 --- a/katabatic/src/NetConstraints.cpp +++ b/katabatic/src/NetConstraints.cpp @@ -61,28 +61,27 @@ namespace { void propagateConstraintFromRp ( RoutingPad* rp ) { - ltrace(99) << "propagateConstraintFromRp() - " << rp << endl; - ltracein(99); + cdebug.log(145,1) << "propagateConstraintFromRp() - " << rp << endl; forEach ( Component*, icomponent, rp->getSlaveComponents() ) { - ltrace(99) << "slave component: " << *icomponent << endl; + cdebug.log(145) << "slave component: " << *icomponent << endl; AutoContact* sourceContact = Session::lookup( dynamic_cast(*icomponent) ); if (sourceContact) { - ltrace(99) << "Start slave: " << sourceContact << endl; + cdebug.log(145) << "Start slave: " << sourceContact << endl; set verticalSegments; set horizontalSegments; forEach ( AutoSegment*, isegment, sourceContact->getAutoSegments() ) { - ltrace(99) << "Examining: " << (*isegment) << endl; + cdebug.log(145) << "Examining: " << (*isegment) << endl; AutoContact* targetContact = isegment->getOppositeAnchor(sourceContact); if (targetContact) { if (isegment->isHorizontal()) { - ltrace(99) << "On horizontal stack " << (*isegment) << endl; + cdebug.log(145) << "On horizontal stack " << (*isegment) << endl; horizontalSegments.insert( (*isegment) ); } else { - ltrace(99) << "On vertical stack " << (*isegment) << endl; + cdebug.log(145) << "On vertical stack " << (*isegment) << endl; verticalSegments.insert( (*isegment) ); } } @@ -91,24 +90,24 @@ namespace { Box constraintBox = sourceContact->getConstraintBox(); // Propagate constraint through horizontally aligned segments. - ltrace(99) << "Propagate constraint on horizontal segments" << endl; + cdebug.log(145) << "Propagate constraint on horizontal segments" << endl; set::iterator ihorizontal = horizontalSegments.begin(); for ( ; ihorizontal != horizontalSegments.end() ; ++ihorizontal ) { AutoContact* contact = NULL; forEach ( AutoSegment*, ialigned, (*ihorizontal)->getAligneds() ) { contact = ialigned->getAutoTarget(); - ltrace(99) << "contact: " << contact << endl; + cdebug.log(145) << "contact: " << contact << endl; if (contact) { - ltrace(99) << "Apply to (target): " << contact << endl; + cdebug.log(145) << "Apply to (target): " << contact << endl; contact->restrictConstraintBox( constraintBox.getYMin() , constraintBox.getYMax() , KbHorizontal|KbWarnOnError ); } contact = ialigned->getAutoSource(); - ltrace(99) << "contact: " << contact << endl; + cdebug.log(145) << "contact: " << contact << endl; if (contact) { - ltrace(99) << "Apply to (source): " << contact << endl; + cdebug.log(145) << "Apply to (source): " << contact << endl; contact->restrictConstraintBox( constraintBox.getYMin() , constraintBox.getYMax() , KbHorizontal|KbWarnOnError ); @@ -117,7 +116,7 @@ namespace { } // Propagate constraint through vertically aligned segments. - ltrace(99) << "Propagate constraint on vertical segments" << endl; + cdebug.log(145) << "Propagate constraint on vertical segments" << endl; set::iterator ivertical = verticalSegments.begin(); for ( ; ivertical != verticalSegments.end() ; ++ivertical ) { @@ -125,14 +124,14 @@ namespace { forEach ( AutoSegment*, ialigned, (*ivertical)->getAligneds() ) { contact = ialigned->getAutoTarget(); if (contact) { - ltrace(99) << "Apply to (target): " << contact << endl; + cdebug.log(145) << "Apply to (target): " << contact << endl; contact->restrictConstraintBox( constraintBox.getXMin() , constraintBox.getXMax() , KbVertical|KbWarnOnError ); } contact = ialigned->getAutoSource(); if (contact) { - ltrace(99) << "Apply to (source): " << contact << endl; + cdebug.log(145) << "Apply to (source): " << contact << endl; contact->restrictConstraintBox( constraintBox.getXMin() , constraintBox.getXMax() , KbVertical|KbWarnOnError ); @@ -142,8 +141,8 @@ namespace { } } - ltrace(99) << "propagateConstraintFromRp() - Exit" << endl; - ltraceout(99); + cdebug.log(145) << "propagateConstraintFromRp() - Exit" << endl; + cdebug.tabw(145,-1); } @@ -159,10 +158,10 @@ namespace Katabatic { void KatabaticEngine::computeNetConstraints ( Net* net ) { - DebugSession::open( net ); + DebugSession::open( net, 140, 150); - ltrace(100) << "Katabatic::computeNetConstraints( " << net << " )" << endl; - ltracein(99); + cdebug.log(149) << "Katabatic::computeNetConstraints( " << net << " )" << endl; + cdebug.tabw(145,1); vector routingPads; forEach ( Component*, icomponent, net->getComponents() ) { @@ -185,7 +184,7 @@ namespace Katabatic { // if (autoSegment) autoSegment->toConstraintAxis(); // } - ltraceout(99); + cdebug.tabw(145,-1); DebugSession::close(); } diff --git a/katabatic/src/NetOptimals.cpp b/katabatic/src/NetOptimals.cpp index 0c839c85..4e32de29 100644 --- a/katabatic/src/NetOptimals.cpp +++ b/katabatic/src/NetOptimals.cpp @@ -29,9 +29,6 @@ namespace Katabatic { using namespace std; using Hurricane::tab; - using Hurricane::ltracein; - using Hurricane::ltraceout; - using Hurricane::inltrace; using Hurricane::ForEachIterator; using Hurricane::Net; using Hurricane::Segment; @@ -40,9 +37,9 @@ namespace Katabatic { void KatabaticEngine::_computeNetOptimals ( Net* net ) { - DebugSession::open( net, 88 ); - ltrace(100) << "Katabatic::_computeNetOptimals( " << net << " )" << endl; - ltracein(99); + DebugSession::open( net, 140, 150 ); + cdebug.log(149) << "Katabatic::_computeNetOptimals( " << net << " )" << endl; + cdebug.tabw(145,1); vector segments; forEach ( Segment*, segment, net->getSegments() ) { @@ -55,16 +52,16 @@ namespace Katabatic { for ( size_t i=0 ; icomputeOptimal( processeds ); - ltraceout(99); + cdebug.tabw(145,-1); DebugSession::close(); } void KatabaticEngine::toOptimals ( Net* net ) { - DebugSession::open( net, 88 ); - ltrace(100) << "Katabatic::_toOptimals( " << net << " )" << endl; - ltracein(99); + DebugSession::open( net, 140, 150 ); + cdebug.log(149) << "Katabatic::_toOptimals( " << net << " )" << endl; + cdebug.tabw(145,1); vector segments; forEach ( Segment*, segment, net->getSegments() ) { @@ -77,7 +74,7 @@ namespace Katabatic { if (segments[i]->isCanonical()) segments[i]->toOptimalAxis(); } - ltraceout(99); + cdebug.tabw(145,-1); DebugSession::close(); } diff --git a/katabatic/src/PyKatabatic.cpp b/katabatic/src/PyKatabatic.cpp index df019b09..25cf9fe0 100644 --- a/katabatic/src/PyKatabatic.cpp +++ b/katabatic/src/PyKatabatic.cpp @@ -23,7 +23,6 @@ namespace Katabatic { using std::cerr; using std::endl; using Hurricane::tab; - using Hurricane::in_trace; using Isobar::__cs; @@ -55,7 +54,7 @@ extern "C" { // Module Initialization : "initKatabatic ()" DL_EXPORT(void) initKatabatic () { - trace << "initKatabatic()" << endl; + cdebug.log(38) << "initKatabatic()" << endl; PyObject* module = Py_InitModule ( "Katabatic", PyKatabatic_Methods ); if ( module == NULL ) { diff --git a/katabatic/src/Session.cpp b/katabatic/src/Session.cpp index ae63dd69..edae05df 100644 --- a/katabatic/src/Session.cpp +++ b/katabatic/src/Session.cpp @@ -52,10 +52,6 @@ namespace Katabatic { using namespace std; using Hurricane::tab; - using Hurricane::ltracein; - using Hurricane::ltraceout; - using Hurricane::inltrace; - using Hurricane::ltracelevel; using Hurricane::Error; using Hurricane::ForEachIterator; using Hurricane::UpdateSession; @@ -123,19 +119,18 @@ namespace Katabatic { void Session::_invalidate ( Net* net ) { - ltrace(200) << "Session::invalidate(Net*) - " << net << endl; + cdebug.log(149) << "Session::invalidate(Net*) - " << net << endl; _netInvalidateds.insert(net); } void Session::_canonize () { - ltrace(110) << "Katabatic::Session::_canonize()" << endl; - ltracein(110); + cdebug.log(145,1) << "Katabatic::Session::_canonize()" << endl; if (_segmentInvalidateds.empty()) { - ltrace(110) << "Invalidated AutoSegment collection <_segmentInvalidateds> is empty." << endl; - ltraceout(110); + cdebug.log(145) << "Invalidated AutoSegment collection <_segmentInvalidateds> is empty." << endl; + cdebug.tabw(145,-1); return; } @@ -150,13 +145,13 @@ namespace Katabatic { AutoSegment* canonical = seedSegment; if (exploredSegments.find(seedSegment->base()) == exploredSegments.end()) { - ltrace(110) << "New chunk from: " << seedSegment << endl; + cdebug.log(145) << "New chunk from: " << seedSegment << endl; aligneds.push_back( seedSegment ); bool isWeakGlobal = seedSegment->isGlobal(); if (not seedSegment->isNotAligned()) { forEach ( AutoSegment*, aligned, seedSegment->getAligneds() ) { - ltrace(110) << "Aligned: " << *aligned << endl; + cdebug.log(145) << "Aligned: " << *aligned << endl; aligneds.push_back ( *aligned ); exploredSegments.insert ( aligned->base() ); @@ -166,10 +161,10 @@ namespace Katabatic { } } - ltracein(110); + cdebug.tabw(145,1); canonical->setFlags( SegCanonical ); - ltrace(110) << "Canonical: " << canonical << endl; + cdebug.log(145) << "Canonical: " << canonical << endl; for ( size_t j=0 ; jisGlobal()) aligneds[j]->setFlags ( SegWeakGlobal ); @@ -182,34 +177,33 @@ namespace Katabatic { ,getString(aligneds[j]).c_str()) << endl; } aligneds[j]->unsetFlags( SegCanonical ); - ltrace(110) << "Secondary: " << aligneds[j] << endl; + cdebug.log(145) << "Secondary: " << aligneds[j] << endl; } if (aligneds.empty()) canonical->setFlags( SegNotAligned ); - ltrace(159) << "Align @" << DbU::toLambda(canonical->getAxis()) + cdebug.log(149) << "Align @" << DbU::toLambda(canonical->getAxis()) << " on " << canonical << endl; //canonical->setAxis( canonical->getAxis(), KbRealignate ); if (canonical->isUnsetAxis()) canonical->toOptimalAxis( KbRealignate|KbPropagate ); else canonical->setAxis( canonical->getAxis(), KbRealignate|KbPropagate ); aligneds.clear(); - ltraceout(110); + cdebug.tabw(145,-1); } } - ltraceout(110); + cdebug.tabw(145,-1); } void Session::_revalidateTopology () { - ltrace(110) << "Katabatic::Session::_revalidateTopology()" << endl; - ltracein(110); + cdebug.log(145,1) << "Katabatic::Session::_revalidateTopology()" << endl; set::iterator inet = _netInvalidateds.begin(); for ( ; inet != _netInvalidateds.end() ; inet++ ) { - ltrace(110) << "Katabatic::Session::_revalidateTopology(Net*)" << *inet << endl; + cdebug.log(145) << "Katabatic::Session::_revalidateTopology(Net*)" << *inet << endl; _katabatic->updateNetTopology ( *inet ); _katabatic->computeNetConstraints( *inet ); _katabatic->_computeNetOptimals ( *inet ); @@ -227,29 +221,27 @@ namespace Katabatic { _netRevalidateds.clear(); _netRevalidateds.swap( _netInvalidateds ); - ltraceout(110); + cdebug.tabw(145,-1); } size_t Session::_revalidate () { - ltrace(110) << "Katabatic::Session::revalidate()" << endl; - ltracein(110); - - ltrace(110) << "_segmentInvalidateds.size(): " << _segmentInvalidateds.size() << endl; - ltrace(110) << "_autoContacts.size(): " << _autoContacts.size() << endl; + cdebug.log(145,1) << "Katabatic::Session::revalidate()" << endl; + cdebug.log(145) << "_segmentInvalidateds.size(): " << _segmentInvalidateds.size() << endl; + cdebug.log(145) << "_autoContacts.size(): " << _autoContacts.size() << endl; size_t count = 0; if (not _netInvalidateds.empty()) _revalidateTopology(); - ltrace(110) << "AutoContacts Revalidate (after _revalidateTopology())." << endl; + cdebug.log(145) << "AutoContacts Revalidate (after _revalidateTopology())." << endl; for ( size_t i=0 ; i < _autoContacts.size() ; i++, count++ ) _autoContacts[i]->updateGeometry(); _autoContacts.clear(); - ltrace(110) << "AutoSegments Revalidate (after AutoContact::updateGeometry())." << endl; - ltrace(110) << "_segmentInvalidateds.size(): " << _segmentInvalidateds.size() << endl; + cdebug.log(145) << "AutoSegments Revalidate (after AutoContact::updateGeometry())." << endl; + cdebug.log(145) << "_segmentInvalidateds.size(): " << _segmentInvalidateds.size() << endl; _segmentRevalidateds.clear(); for ( size_t i=0 ; i < _segmentInvalidateds.size() ; ++i, ++count ) { @@ -262,7 +254,7 @@ namespace Katabatic { } _segmentInvalidateds.clear(); - ltrace(110) << "AutoSegments/AutoContacts queued deletion." << endl; + cdebug.log(145) << "AutoSegments/AutoContacts queued deletion." << endl; unsigned int flags = _katabatic->getFlags( EngineDestroyMask ); _katabatic->setFlags( EngineDestroyMask ); set::iterator isegment = _destroyedSegments.begin(); @@ -276,7 +268,7 @@ namespace Katabatic { _katabatic->setFlags( flags ); set().swap( _destroyedSegments ); - ltraceout(110); + cdebug.tabw(145,-1); return count; } @@ -284,7 +276,7 @@ namespace Katabatic { Session* Session::open ( KatabaticEngine* ktbt ) { - ltrace(110) << "Session::open()" << endl; + cdebug.log(145) << "Session::open()" << endl; if (_session) { if (_session->_katabatic != ktbt) @@ -302,8 +294,7 @@ namespace Katabatic { void Session::close () { - ltrace(110) << "Session::close()" << endl; - ltracein(110); + cdebug.log(145,1) << "Session::close()" << endl; if (not _session) throw Error( openSessionError, "Session::Close()" ); @@ -312,7 +303,7 @@ namespace Katabatic { delete _session; _session = NULL; - ltraceout(110); + cdebug.tabw(145,-1); } diff --git a/katabatic/src/katabatic/AutoContact.h b/katabatic/src/katabatic/AutoContact.h index bd8726b1..39286105 100644 --- a/katabatic/src/katabatic/AutoContact.h +++ b/katabatic/src/katabatic/AutoContact.h @@ -32,9 +32,6 @@ namespace Katabatic { using std::cerr; using std::endl; using Hurricane::tab; - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::Name; using Hurricane::Net; using Hurricane::Component; @@ -292,13 +289,13 @@ namespace Katabatic { inline LocatorHelper::LocatorHelper ( AutoContact* contact, unsigned int flags ) : _flags(flags), _index(_min()), _contact(contact) { - ltracein(80); - ltrace(80) << "CTOR LocatorHelper " << contact->_getString() << endl; - ltrace(80) << "+ _min():" << _min() << endl; - ltrace(80) << "+ _max():" << _max() << endl; - ltrace(80) << "+ getSegment(_min()):" << _contact->getSegment(_min()) << endl; + cdebug.tabw(145,1); + cdebug.log(145) << "CTOR LocatorHelper " << contact->_getString() << endl; + cdebug.log(145) << "+ _min():" << _min() << endl; + cdebug.log(145) << "+ _max():" << _max() << endl; + cdebug.log(145) << "+ getSegment(_min()):" << _contact->getSegment(_min()) << endl; if (not _contact->getSegment(_index)) progress(); - ltraceout(80); + cdebug.tabw(145,-1); } inline bool LocatorHelper::isValid () const @@ -312,20 +309,20 @@ namespace Katabatic { inline AutoSegment* LocatorHelper::getSegment () const { - ltrace(80) << "LocatorHelper::getSegment(" << _index << ") - " << _contact->getSegment(_index) << endl; + cdebug.log(145) << "LocatorHelper::getSegment(" << _index << ") - " << _contact->getSegment(_index) << endl; return (_index < _max()) ? _contact->getSegment(_index) : NULL; } inline void LocatorHelper::progress () { - ltracein(80); + cdebug.tabw(145,1); ++_index; - ltrace(80) << "LocatorHelper::progress() [" << _index << "] " << _contact->getSegment(_index) << endl; + cdebug.log(145) << "LocatorHelper::progress() [" << _index << "] " << _contact->getSegment(_index) << endl; while ((_index < _max()) and (_contact->getSegment(_index) == NULL)) { ++_index; - ltrace(80) << "LocatorHelper::progress() [" << _index << "] " << _contact->getSegment(_index) << endl; + cdebug.log(145) << "LocatorHelper::progress() [" << _index << "] " << _contact->getSegment(_index) << endl; } - ltraceout(80); + cdebug.tabw(145,-1); } diff --git a/katabatic/src/katabatic/AutoSegment.h b/katabatic/src/katabatic/AutoSegment.h index a8ac253c..3e6728ea 100644 --- a/katabatic/src/katabatic/AutoSegment.h +++ b/katabatic/src/katabatic/AutoSegment.h @@ -46,7 +46,6 @@ namespace Katabatic { using std::endl; using std::binary_function; using Hurricane::tab; - using Hurricane::inltrace; using Hurricane::Interval; using Hurricane::Layer; using Hurricane::Components; @@ -522,7 +521,7 @@ namespace Katabatic { inline int AutoSegment::getTerminalCount ( AutoSegment* seed ) { - ltrace(80) << "getTerminalCount() - " << seed << endl; + cdebug.log(145) << "getTerminalCount() - " << seed << endl; vector collapseds; vector perpandiculars; diff --git a/katabatic/src/katabatic/Session.h b/katabatic/src/katabatic/Session.h index 81e0347b..869cf7e8 100644 --- a/katabatic/src/katabatic/Session.h +++ b/katabatic/src/katabatic/Session.h @@ -48,7 +48,6 @@ namespace Katabatic { using std::map; using std::make_pair; using Hurricane::tab; - using Hurricane::inltrace; using Hurricane::_TName; using Hurricane::Record; using Hurricane::Layer; diff --git a/kite/src/BuildPowerRails.cpp b/kite/src/BuildPowerRails.cpp index 523b53db..b38f1087 100644 --- a/kite/src/BuildPowerRails.cpp +++ b/kite/src/BuildPowerRails.cpp @@ -45,9 +45,6 @@ namespace { using namespace std; using Hurricane::tab; - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::DebugSession; using Hurricane::ForEachIterator; using Hurricane::Warning; @@ -380,7 +377,7 @@ namespace { Net* GlobalNetTable::getRootNet ( const Net* net, Path path ) const { - ltrace(300) << " getRootNet:" << path << ":" << net << endl; + cdebug.log(159) << " getRootNet:" << path << ":" << net << endl; if (net == _blockage) return _blockage; @@ -399,12 +396,12 @@ namespace { if (not path.isEmpty()) { DeepNet* deepClockNet = getTopCell()->getDeepNet( path, net ); if (deepClockNet) { - ltrace(300) << " Deep Clock Net:" << deepClockNet + cdebug.log(159) << " Deep Clock Net:" << deepClockNet << " state:" << NetRoutingExtension::getFlags(deepClockNet) << endl; return NetRoutingExtension::isFixed(deepClockNet) ? _blockage : NULL; } else { - ltrace(300) << " Top Clock Net:" << net + cdebug.log(159) << " Top Clock Net:" << net << " state:" << NetRoutingExtension::getFlags(net) << endl; } @@ -413,7 +410,7 @@ namespace { Plug* plug = NULL; while ( true ) { - ltrace(300) << " " << path << "+" << upNet << endl; + cdebug.log(159) << " " << path << "+" << upNet << endl; if (path.isEmpty()) break; if ((upNet == NULL) or not upNet->isExternal()) return _blockage; @@ -427,7 +424,7 @@ namespace { } } - ltrace(300) << " Check againts top clocks ck:" << ((_ck) ? _ck->getName() : "NULL") + cdebug.log(159) << " Check againts top clocks ck:" << ((_ck) ? _ck->getName() : "NULL") << " cki:" << ((_cki) ? _cki->getName() : "NULL") << " cko:" << ((_cko) ? _cko->getName() : "NULL") << endl; @@ -558,7 +555,7 @@ namespace { , _width (width) , _chunks() { - ltrace(300) << " new Rail " + cdebug.log(159) << " new Rail " << " @" << DbU::getValueString(axis) << " " << getRoutingPlane()->getLayer()->getName() << " " << getRails()->getNet() @@ -576,10 +573,10 @@ namespace { void PowerRailsPlanes::Rail::merge ( DbU::Unit source, DbU::Unit target ) { Interval chunkToMerge ( source, target ); - ltrace(300) << " Rail::merge() " + cdebug.log(159) << " Rail::merge() " << ((getDirection()==KbHorizontal) ? "Horizontal" : "Vertical") << " " << chunkToMerge << endl; - ltrace(300) << " | " << _getString() << endl; + cdebug.log(159) << " | " << _getString() << endl; list::iterator imerge = _chunks.end(); list::iterator ichunk = _chunks.begin(); @@ -587,20 +584,20 @@ namespace { while ( ichunk != _chunks.end() ) { if (imerge == _chunks.end()) { if (chunkToMerge.getVMax() < (*ichunk).getVMin()) { - ltrace(300) << " | Insert before " << *ichunk << endl; + cdebug.log(159) << " | Insert before " << *ichunk << endl; imerge = _chunks.insert( ichunk, chunkToMerge ); break; } if (chunkToMerge.intersect(*ichunk)) { - ltrace(300) << " | Merge with " << *ichunk << endl; + cdebug.log(159) << " | Merge with " << *ichunk << endl; imerge = ichunk; (*imerge).merge( chunkToMerge ); } } else { if (chunkToMerge.getVMax() >= (*ichunk).getVMin()) { (*imerge).merge( *ichunk ); - ltrace(300) << " | Absorb (erase) " << *ichunk << endl; + cdebug.log(159) << " | Absorb (erase) " << *ichunk << endl; ichunk = _chunks.erase( ichunk ); continue; } else @@ -609,12 +606,12 @@ namespace { // if (chunkToMerge.intersect(*ichunk)) { // if (imerge == _chunks.end()) { - // ltrace(300) << " | Merge with " << *ichunk << endl; + // cdebug.log(159) << " | Merge with " << *ichunk << endl; // imerge = ichunk; // (*imerge).merge( chunkToMerge ); // } else { // (*imerge).merge( *ichunk ); - // ltrace(300) << " | Absorb (erase) " << *ichunk << endl; + // cdebug.log(159) << " | Absorb (erase) " << *ichunk << endl; // ichunk = _chunks.erase( ichunk ); // continue; // } @@ -624,19 +621,19 @@ namespace { if (imerge == _chunks.end()) { _chunks.insert( ichunk, chunkToMerge ); - ltrace(300) << " | Insert at end " << DbU::getValueString(_axis) << " " << chunkToMerge << endl; - ltrace(300) << " | " << _getString() << endl; + cdebug.log(159) << " | Insert at end " << DbU::getValueString(_axis) << " " << chunkToMerge << endl; + cdebug.log(159) << " | " << _getString() << endl; } } void PowerRailsPlanes::Rail::doLayout ( const Layer* layer ) { - ltrace(300) << "Doing layout of rail: " + cdebug.log(159) << "Doing layout of rail: " << " " << layer->getName() << " " << ((getDirection()==KbHorizontal) ? "Horizontal" : "Vertical") << " @" << DbU::getValueString(_axis) << endl; - ltrace(300) << _getString() << endl; + cdebug.log(159) << _getString() << endl; Net* net = getNet(); RoutingPlane* plane = getRoutingPlane(); @@ -652,13 +649,13 @@ namespace { DbU::Unit axisMin = 0; DbU::Unit axisMax = 0; - ltrace(300) << " delta:" << DbU::getValueString(delta) + cdebug.log(159) << " delta:" << DbU::getValueString(delta) << " (pitch:" << DbU::getValueString(plane->getLayerGauge()->getPitch()) << " , ww/2:" << DbU::getValueString(plane->getLayerGauge()->getHalfWireWidth()) << ")" << endl; // if ( type == Constant::PinOnly ) { - // ltrace(300) << " Layer is PinOnly." << endl; + // cdebug.log(159) << " Layer is PinOnly." << endl; // return; // } @@ -680,7 +677,7 @@ namespace { ) << endl; } - ltrace(300) << " chunk: [" << DbU::getValueString((*ichunk).getVMin()) + cdebug.log(159) << " chunk: [" << DbU::getValueString((*ichunk).getVMin()) << ":" << DbU::getValueString((*ichunk).getVMax()) << "]" << endl; segment = Horizontal::create ( net @@ -703,13 +700,13 @@ namespace { Track* track = plane->getTrackByPosition ( axisMin, Constant::Superior ); for ( ; track and (track->getAxis() <= axisMax) ; track = track->getNextTrack() ) { TrackElement* element = TrackFixedSegment::create ( track, segment ); - ltrace(300) << " Insert in " << track << "+" << element << endl; + cdebug.log(159) << " Insert in " << track << "+" << element << endl; } } } else { list::iterator ichunk = _chunks.begin(); for ( ; ichunk != _chunks.end() ; ichunk++ ) { - ltrace(300) << " chunk: [" << DbU::getValueString((*ichunk).getVMin()) + cdebug.log(159) << " chunk: [" << DbU::getValueString((*ichunk).getVMin()) << ":" << DbU::getValueString((*ichunk).getVMax()) << "]" << endl; segment = Vertical::create ( net @@ -729,13 +726,13 @@ namespace { axisMax += delta; //} - ltrace(300) << " axisMin:" << DbU::getValueString(axisMin) + cdebug.log(159) << " axisMin:" << DbU::getValueString(axisMin) << " axisMax:" << DbU::getValueString(axisMax) << endl; Track* track = plane->getTrackByPosition ( axisMin, Constant::Superior ); for ( ; track and (track->getAxis() <= axisMax) ; track = track->getNextTrack() ) { TrackElement* element = TrackFixedSegment::create ( track, segment ); - ltrace(300) << " Insert in " << track + cdebug.log(159) << " Insert in " << track << "+" << element << " " << (net->isExternal() ? "external" : "internal") << endl; @@ -787,7 +784,7 @@ namespace { , _net (net) , _rails () { - ltrace(300) << " new Rails @" + cdebug.log(159) << " new Rails @" << " " << getRoutingPlane()->getLayer()->getName() << " " << net << " " << ((getDirection()==KbHorizontal) ? "Horizontal": "Vertical") << endl; @@ -845,7 +842,7 @@ namespace { void PowerRailsPlanes::Rails::doLayout ( const Layer* layer ) { - ltrace(300) << "Doing layout of rails: " << layer->getName() + cdebug.log(159) << "Doing layout of rails: " << layer->getName() << " " << ((_direction==KbHorizontal) ? "Horizontal" : "Vertical") << " " << _net->getName() << endl; @@ -861,7 +858,7 @@ namespace { , _verticalRails () , _powerDirection (routingPlane->getDirection()) { - ltrace(300) << "New Plane " << _layer->getName() << " " << _routingPlane << endl; + cdebug.log(159) << "New Plane " << _layer->getName() << " " << _routingPlane << endl; // Hard-coded SxLib gauge. if (_routingPlane->getDepth() == 0) _powerDirection = KbHorizontal; @@ -891,7 +888,7 @@ namespace { { Rails* rails = NULL; - ltrace(300) << " Plane::merge() " << net->getName() << " " << bb << endl; + cdebug.log(159) << " Plane::merge() " << net->getName() << " " << bb << endl; unsigned int direction = getDirection(); if ( (net->getType() == Net::Type::POWER) or (net->getType() == Net::Type::GROUND) ) @@ -914,7 +911,7 @@ namespace { } else rails = (*irails).second; - ltrace(300) << " Vertical Merging" << endl; + cdebug.log(159) << " Vertical Merging" << endl; rails->merge ( bb ); } } @@ -922,7 +919,7 @@ namespace { void PowerRailsPlanes::Plane::doLayout () { - ltrace(300) << "Doing layout of plane: " << _layer->getName() << endl; + cdebug.log(159) << "Doing layout of plane: " << _layer->getName() << endl; RailsMap::iterator irails = _horizontalRails.begin(); for ( ; irails != _horizontalRails.end() ; ++irails ) { @@ -955,10 +952,10 @@ namespace { RoutingLayerGauge* lg = rg->getLayerGauge(regular); if ( not lg ) continue; - ltrace(300) << "Gauge: [" << lg->getDepth() << "] " << lg << endl; + cdebug.log(159) << "Gauge: [" << lg->getDepth() << "] " << lg << endl; RoutingPlane* rp = _kite->getRoutingPlaneByIndex(lg->getDepth()); - ltrace(300) << "Plane:" << rp << endl; + cdebug.log(159) << "Plane:" << rp << endl; _planes.insert( make_pair(regular->getBasicLayer(),new Plane(regular,rp)) ); @@ -1023,7 +1020,7 @@ namespace { Net* topGlobalNet = _globalNets.getRootNet( net, Path() ); if (topGlobalNet == NULL) { - ltrace(300) << "Not a global net: " << net << endl; + cdebug.log(159) << "Not a global net: " << net << endl; return; } @@ -1174,17 +1171,17 @@ namespace { #endif if ( rootNet == NULL ) { - ltrace(300) << " rootNet is NULL, not taken into account." << endl; + cdebug.log(159) << " rootNet is NULL, not taken into account." << endl; return; } - ltrace(300) << " rootNet " << rootNet << " (" << rootNet->isClock() << ") " + cdebug.log(159) << " rootNet " << rootNet << " (" << rootNet->isClock() << ") " << go->getCell() << " (" << go->getCell()->isTerminal() << ")" << endl; const Segment* segment = dynamic_cast(component); if ( segment != NULL ) { _goMatchCount++; - ltrace(300) << " Merging PowerRail element: " << segment << endl; + cdebug.log(159) << " Merging PowerRail element: " << segment << endl; Box bb = segment->getBoundingBox ( basicLayer ); @@ -1213,7 +1210,7 @@ namespace { Box bb = contact->getBoundingBox ( basicLayer ); transformation.applyOn ( bb ); - ltrace(300) << " Merging PowerRail element: " << contact << " bb:" << bb + cdebug.log(159) << " Merging PowerRail element: " << contact << " bb:" << bb << " " << basicLayer << endl; _powerRailsPlanes.merge ( bb, rootNet ); @@ -1290,7 +1287,7 @@ namespace Kite { void KiteEngine::buildPowerRails () { - //DebugSession::open( 300 ); + //DebugSession::open( 150, 160 ); if (not _blockageNet) { _blockageNet = getCell()->getNet("blockagenet"); diff --git a/kite/src/BuildPreRouteds.cpp b/kite/src/BuildPreRouteds.cpp index cf76a9e0..25c8aa4f 100644 --- a/kite/src/BuildPreRouteds.cpp +++ b/kite/src/BuildPreRouteds.cpp @@ -51,9 +51,6 @@ namespace Kite { using namespace std; using Hurricane::tab; - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::ForEachIterator; using Hurricane::Warning; using Hurricane::Error; diff --git a/kite/src/Configuration.cpp b/kite/src/Configuration.cpp index c5f37607..9c2f28d9 100644 --- a/kite/src/Configuration.cpp +++ b/kite/src/Configuration.cpp @@ -29,7 +29,6 @@ namespace Kite { using std::endl; using std::ostringstream; using Hurricane::tab; - using Hurricane::inltrace; using Hurricane::Error; using Hurricane::Technology; diff --git a/kite/src/DataNegociate.cpp b/kite/src/DataNegociate.cpp index 5b55e2d4..14195368 100644 --- a/kite/src/DataNegociate.cpp +++ b/kite/src/DataNegociate.cpp @@ -33,9 +33,6 @@ namespace Kite { using std::ostringstream; using Hurricane::Bug; using Hurricane::DebugSession; - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::tab; using Katabatic::KbHorizontal; using Katabatic::KbPropagate; @@ -84,11 +81,10 @@ namespace Kite { void DataNegociate::update () { - DebugSession::open( _trackSegment->getNet(), 148 ); + DebugSession::open( _trackSegment->getNet(), 150, 160 ); - //ltrace(500) << "Deter| DataNegociate::update() - " << _trackSegment << endl; - ltrace(148) << "DataNegociate::update() - " << _trackSegment << endl; - ltracein(148); + //cdebug.log(9000) << "Deter| DataNegociate::update() - " << _trackSegment << endl; + cdebug.log(159,1) << "DataNegociate::update() - " << _trackSegment << endl; size_t reduceCandidates = 0; DbU::Unit pitch = _trackSegment->getPitch(); @@ -107,12 +103,12 @@ namespace Kite { ); _terminals = AutoSegment::getTerminalCount( _trackSegment->base(), collapseds ); - //ltrace(500) << "Deter| Terminals:" << _terminals << endl; + //cdebug.log(9000) << "Deter| Terminals:" << _terminals << endl; _attractors.clear(); _perpandiculars.clear(); _perpandicularFree = Interval(false); - ltrace(148) << "Extracting attractors from perpandiculars." << endl; + cdebug.log(159) << "Extracting attractors from perpandiculars." << endl; for ( size_t i=0 ; i < perpandiculars.size() ; i++ ) { Interval interval; TrackElement* perpandicular; @@ -140,26 +136,25 @@ namespace Kite { //cerr << " " << interval << endl; //interval.inflate( DbU::fromLambda(-0.5) ); - ltrace(148) << "| perpandicular: " << perpandiculars[i] << endl; - ltrace(148) << "| canonical: " << perpandicular << endl; - ltracein(148); - ltrace(148) << "Canonical // interval: " << interval << endl; + cdebug.log(159) << "| perpandicular: " << perpandiculars[i] << endl; + cdebug.log(159) << "| canonical: " << perpandicular << endl; + cdebug.log(159,1) << "Canonical // interval: " << interval << endl; _perpandiculars.push_back( perpandicular ); if (perpandicular->getTrack()) { Interval trackFree = perpandicular->getFreeInterval(); - ltrace(148) << "Track Perpandicular Free: " << trackFree << endl; + cdebug.log(159) << "Track Perpandicular Free: " << trackFree << endl; _perpandicularFree.intersection( trackFree ); } else { - ltrace(148) << "Not in any track " << perpandicular << endl; + cdebug.log(159) << "Not in any track " << perpandicular << endl; } #if 0 if (interval.isPonctual()) { - ltrace(148) << "Punctual attractor @" << DbU::getValueString(interval.getVMin()) << endl; + cdebug.log(159) << "Punctual attractor @" << DbU::getValueString(interval.getVMin()) << endl; _attractors.push_back( interval.getVMin() ); - ltraceout(148); + cdebug.tabw(159,-1); continue; } @@ -173,7 +168,7 @@ namespace Kite { } else { iattractor->second -= 1; } - ltrace(148) << "Left attractor @" << DbU::getValueString(interval.getVMin()) << endl; + cdebug.log(159) << "Left attractor @" << DbU::getValueString(interval.getVMin()) << endl; } if ( (interval.getVMax() != _trackSegment->getAxis()) @@ -186,7 +181,7 @@ namespace Kite { } else { iattractor->second += 1; } - ltrace(148) << "Right attractor @" << DbU::getValueString(interval.getVMax()) << endl; + cdebug.log(159) << "Right attractor @" << DbU::getValueString(interval.getVMax()) << endl; } if (perpandicular->base()->isReduceCandidate()) { @@ -203,7 +198,7 @@ namespace Kite { } #endif - ltraceout(148); + cdebug.tabw(159,-1); } if ( not _trackSegment->isTerminal() and (_perpandiculars.size() < 2) ) cerr << Bug( "Less than two perpandiculars on %s.", getString(_trackSegment).c_str() ) << endl; @@ -221,11 +216,11 @@ namespace Kite { s << DbU::getValueString( _attractors[i] ); } s << "]"; - ltrace(148) << s.str() << endl; - ltrace(200) << "Perpandicular Free: " << _perpandicularFree << endl; + cdebug.log(159) << s.str() << endl; + cdebug.log(159) << "Perpandicular Free: " << _perpandicularFree << endl; - ltraceout(148); + cdebug.tabw(159,-1); DebugSession::close(); } diff --git a/kite/src/KiteEngine.cpp b/kite/src/KiteEngine.cpp index 09e475ba..248f41e4 100644 --- a/kite/src/KiteEngine.cpp +++ b/kite/src/KiteEngine.cpp @@ -68,9 +68,6 @@ namespace Kite { using Hurricane::UpdateSession; using Hurricane::DebugSession; using Hurricane::tab; - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::ForEachIterator; using Hurricane::Bug; using Hurricane::Error; @@ -154,8 +151,7 @@ namespace Kite { void KiteEngine::_initDataBase () { - ltrace(90) << "KiteEngine::_initDataBase()" << endl; - ltracein(90); + cdebug.log(155,1) << "KiteEngine::_initDataBase()" << endl; Session::open( this ); createGlobalGraph( KtNoFlags ); @@ -167,7 +163,7 @@ namespace Kite { Session::close(); _runKiteInit(); - ltraceout(90); + cdebug.tabw(155,-1); } @@ -184,8 +180,7 @@ namespace Kite { void KiteEngine::_preDestroy () { - ltrace(90) << "KiteEngine::_preDestroy()" << endl; - ltracein(90); + cdebug.log(155,1) << "KiteEngine::_preDestroy()" << endl; cmess1 << " o Deleting ToolEngine<" << getName() << "> from Cell <" << _cell->getName() << ">" << endl; @@ -210,7 +205,7 @@ namespace Kite { _knik->destroy(); } - ltraceout(90); + cdebug.tabw(155,-1); } @@ -445,21 +440,21 @@ namespace Kite { for ( size_t itrack=0 ; itrackgetTrackByIndex ( itrack ); - ltrace(300) << "Capacity from: " << track << endl; + cdebug.log(159) << "Capacity from: " << track << endl; if (track->getDirection() == KbHorizontal) { for ( size_t ielement=0 ; ielementgetSize() ; ++ielement ) { TrackElement* element = track->getSegment( ielement ); if (element->getNet() == NULL) { - ltrace(300) << "Reject capacity from (not Net): " << element << endl; + cdebug.log(159) << "Reject capacity from (not Net): " << element << endl; continue; } if ( (not element->isFixed()) and (not element->isBlockage()) and (not element->isUserDefined()) ) { cmess2 << "Reject capacity from (neither fixed, blockage nor user defined): " << element << endl; - //ltrace(300) << "Reject capacity from (neither fixed nor blockage): " << element << endl; + //cdebug.log(159) << "Reject capacity from (neither fixed nor blockage): " << element << endl; continue; } @@ -467,7 +462,7 @@ namespace Kite { //int elementCapacity = (chipCorona.contains(elementBb)) ? -hEdgeCapacity : -1; int elementCapacity = -1; - ltrace(300) << "Capacity from: " << element << ":" << elementCapacity << endl; + cdebug.log(159) << "Capacity from: " << element << ":" << elementCapacity << endl; Katabatic::GCell* gcell = getGCellGrid()->getGCell( Point(element->getSourceU(),track->getAxis()) ); Katabatic::GCell* end = getGCellGrid()->getGCell( Point(element->getTargetU(),track->getAxis()) ); @@ -493,11 +488,11 @@ namespace Kite { TrackElement* element = track->getSegment( ielement ); if (element->getNet() == NULL) { - ltrace(300) << "Reject capacity from (not Net): " << element << endl; + cdebug.log(159) << "Reject capacity from (not Net): " << element << endl; continue; } if ( (not element->isFixed()) and not (element->isBlockage()) ) { - ltrace(300) << "Reject capacity from (neither fixed nor blockage): " << element << endl; + cdebug.log(159) << "Reject capacity from (neither fixed nor blockage): " << element << endl; continue; } @@ -505,7 +500,7 @@ namespace Kite { //int elementCapacity = (chipCorona.contains(elementBb)) ? -vEdgeCapacity : -1; int elementCapacity = -1; - ltrace(300) << "Capacity from: " << element << ":" << elementCapacity << endl; + cdebug.log(159) << "Capacity from: " << element << ":" << elementCapacity << endl; Katabatic::GCell* gcell = getGCellGrid()->getGCell( Point(track->getAxis(),element->getSourceU()) ); Katabatic::GCell* end = getGCellGrid()->getGCell( Point(track->getAxis(),element->getTargetU()) ); @@ -814,28 +809,27 @@ namespace Kite { void KiteEngine::finalizeLayout () { - ltrace(90) << "KiteEngine::finalizeLayout()" << endl; + cdebug.log(155) << "KiteEngine::finalizeLayout()" << endl; if (getState() > Katabatic::EngineDriving) return; - ltracein(90); + cdebug.tabw(155,1); setState( Katabatic::EngineDriving ); _gutKite(); KatabaticEngine::finalizeLayout(); - ltrace(90) << "State: " << getState() << endl; + cdebug.log(155) << "State: " << getState() << endl; getCell()->setFlags( Cell::Flags::Routed ); - ltraceout(90); + cdebug.tabw(155,-1); } void KiteEngine::_gutKite () { - ltrace(90) << "KiteEngine::_gutKite()" << endl; - ltracein(90); - ltrace(90) << "State: " << getState() << endl; + cdebug.log(155,1) << "KiteEngine::_gutKite()" << endl; + cdebug.log(155) << "State: " << getState() << endl; if (getState() < Katabatic::EngineGutted) { Session::open( this ); @@ -848,7 +842,7 @@ namespace Kite { Session::close(); } - ltraceout(90); + cdebug.tabw(155,-1); } diff --git a/kite/src/KiteMain.cpp b/kite/src/KiteMain.cpp index ffa6b3a9..cc142a4b 100644 --- a/kite/src/KiteMain.cpp +++ b/kite/src/KiteMain.cpp @@ -58,18 +58,17 @@ int main ( int argc, char *argv[] ) , "" ); - unsigned int traceLevel; - bool verbose1; - bool verbose2; - bool showConf; - bool info; - bool bug; - bool coreDump; - bool logMode; - bool loadGlobal; - bool dumpMeasures; - bool saveGlobal; - bool destroyDatabase; + bool verbose1; + bool verbose2; + bool showConf; + bool info; + bool bug; + bool coreDump; + bool logMode; + bool loadGlobal; + bool dumpMeasures; + bool saveGlobal; + bool destroyDatabase; bopts::options_description options ("Command line arguments & options"); options.add_options() @@ -86,9 +85,6 @@ int main ( int argc, char *argv[] ) , "Display bug related messages.") ( "log-mode,L" , bopts::bool_switch(&logMode)->default_value(false) , "Disable ANSI escape sequences displaying.") - ( "trace-level,l" , bopts::value(&traceLevel)->default_value(1000) - , "Set the level of trace, trace messages with a level superior to " - " will be printed on ." ) ( "core-dump,D" , bopts::bool_switch(&coreDump)->default_value(false) , "Enable core dumping.") ( "load-global,g" , bopts::bool_switch(&loadGlobal)->default_value(false) @@ -122,8 +118,6 @@ int main ( int argc, char *argv[] ) if (arguments["bug" ].as()) Cfg::getParamBool("misc.bug" )->setBool( true ); if (arguments["log-mode" ].as()) Cfg::getParamBool("misc.logMode" )->setBool( true ); if (arguments["show-conf" ].as()) Cfg::getParamBool("misc.showConf" )->setBool( true ); - - if (arguments.count("trace-level" )) Cfg::getParamInt("misc.traceLevel")->setInt( traceLevel ); Cfg::Configuration::popDefaultPriority(); cmess1 << banner << endl; diff --git a/kite/src/Manipulator.cpp b/kite/src/Manipulator.cpp index 9ed412ba..a75bd507 100644 --- a/kite/src/Manipulator.cpp +++ b/kite/src/Manipulator.cpp @@ -95,7 +95,7 @@ namespace Kite { if (not _segment) throw Error( "Manipulator::Manipulator(): cannot build upon a NULL TrackElement." ); - DebugSession::open( _segment->getNet(), 200 ); + DebugSession::open( _segment->getNet(), 150, 160 ); _data = _segment->getDataNegociate(); if (_data) _event = _data->getRoutingEvent(); @@ -143,7 +143,7 @@ namespace Kite { bool Manipulator::ripup ( unsigned int type, DbU::Unit axisHint ) { - ltrace(200) << "Manipulator::ripup() " << endl; + cdebug.log(159) << "Manipulator::ripup() " << endl; if (not canRipup()) return false; @@ -157,7 +157,7 @@ namespace Kite { bool Manipulator::ripupPerpandiculars ( unsigned int flags ) { - ltrace(200) << "Manipulator::ripupPerpandiculars() - " << flags << endl; + cdebug.log(159) << "Manipulator::ripupPerpandiculars() - " << flags << endl; bool success = true; bool cagedPerpandiculars = false; @@ -177,7 +177,7 @@ namespace Kite { parallelActionFlags |= SegmentAction::ToRipupLimit; } - ltrace(200) << "Pure constraints: " << constraints << endl; + cdebug.log(159) << "Pure constraints: " << constraints << endl; Track* track = NULL; const vector& perpandiculars = _event->getPerpandiculars(); @@ -202,7 +202,7 @@ namespace Kite { // Try to ripup the perpandicular. DataNegociate* data2 = perpandiculars[i]->getDataNegociate(); - ltrace(200) << "| " << perpandiculars[i] << endl; + cdebug.log(159) << "| " << perpandiculars[i] << endl; if ( (flags & Manipulator::ToMoveUp) and (data2->getState() < DataNegociate::MoveUp) ) data2->setState( DataNegociate::MoveUp ); @@ -229,23 +229,23 @@ namespace Kite { // Try to ripup conflicting neighbor. if (Manipulator(other,_fsm).canRipup()) { - ltrace(200) << " | Ripup: " << begin << " " << other << endl; + cdebug.log(159) << " | Ripup: " << begin << " " << other << endl; _fsm.addAction( other, SegmentAction::OtherRipup ); } else { - ltrace(200) << "Aborted ripup of perpandiculars, fixed or blocked." << endl; + cdebug.log(159) << "Aborted ripup of perpandiculars, fixed or blocked." << endl; return false; } } } if (cagedPerpandiculars and not placedPerpandiculars) { - ltrace(200) << "Aborted ripup of perpandiculars, constraints are due to fixed/blockage." << endl; + cdebug.log(159) << "Aborted ripup of perpandiculars, constraints are due to fixed/blockage." << endl; _fsm.addAction( _segment, SegmentAction::SelfRipup ); return true; } if (_segment->isLocal() and not placedPerpandiculars) { - ltrace(200) << "No placed perpandiculars, tight native constraints, place perpandiculars FIRST." << endl; + cdebug.log(159) << "No placed perpandiculars, tight native constraints, place perpandiculars FIRST." << endl; for ( size_t i=0 ; i < perpandiculars.size() ; i++ ) { _fsm.addAction( perpandiculars[i], perpandicularActionFlags|SegmentAction::EventLevel4 ); } @@ -272,7 +272,7 @@ namespace Kite { bool Manipulator::relax ( Interval interval, unsigned int flags ) { interval.inflate( - Session::getExtensionCap(getLayer()) ); - ltrace(200) << "Manipulator::relax() of: " << _segment << " " << interval << endl; + cdebug.log(159) << "Manipulator::relax() of: " << _segment << " " << interval << endl; if (_segment->isFixed()) return false; if (not interval.intersect(_segment->getCanonicalInterval())) return false; @@ -284,10 +284,10 @@ namespace Kite { if (interval.contains(_segment->base()->getAutoTarget()->getX())) return false; } - ltracein(200); + cdebug.tabw(159,1); bool success = true; bool expand = _segment->isGlobal() and (flags&AllowExpand); - ltrace(200) << "Expand:" << expand << endl; + cdebug.log(159) << "Expand:" << expand << endl; Katabatic::GCellVector gcells; _segment->getGCells( gcells ); @@ -297,7 +297,7 @@ namespace Kite { , getString(_segment).c_str() , getString(gcells[0]).c_str() ) << endl; - ltraceout(200); + cdebug.tabw(159,-1); return false; } @@ -311,15 +311,15 @@ namespace Kite { // Look for closest enclosing min & max GCells indexes. for ( igcell=0 ; igcellgetSide(_segment->getDirection()); - ltrace(200) << "| " << setw(3) << igcell << " " << gcells[igcell] << " uside: " << uside << endl; + cdebug.log(159) << "| " << setw(3) << igcell << " " << gcells[igcell] << " uside: " << uside << endl; if (uside.contains(interval.getVMin())) { iminconflict = igcell; - ltrace(200) << "> Min conflict: " << iminconflict << endl; + cdebug.log(159) << "> Min conflict: " << iminconflict << endl; } if (uside.contains(interval.getVMax())) { imaxconflict = igcell; - ltrace(200) << "> Max conflict: " << imaxconflict << endl; + cdebug.log(159) << "> Max conflict: " << imaxconflict << endl; } } @@ -329,13 +329,13 @@ namespace Kite { bool maxExpanded = false; if (expand) { if (iminconflict < gcells.size()) { - //ltrace(200) << "Expand min" << endl; + //cdebug.log(159) << "Expand min" << endl; size_t imindensity = 0; for ( size_t iexpand=1 ; iexpandcanDogleg(gcells[iexpand],KtAllowDoglegReuse)) continue; - // ltrace(200) << " Density " + // cdebug.log(159) << " Density " // << "Density " << Session::getRoutingGauge()->getRoutingLayer(depth)->getName() // << " min. dens.:" << gcells[imindensity]->getDensity(depth) // << " exp. dens.:" << gcells[iexpand ]->getDensity(depth) @@ -343,7 +343,7 @@ namespace Kite { if (gcells[imindensity]->getDensity(depth) - gcells[iexpand]->getDensity(depth) > 1e-3) { imindensity = iexpand; - //ltrace(200) << "Accepted expand " << imindensity << endl; + //cdebug.log(159) << "Accepted expand " << imindensity << endl; } } @@ -352,13 +352,13 @@ namespace Kite { } if (imaxconflict < gcells.size()) { - //ltrace(200) << "Expand max" << endl; + //cdebug.log(159) << "Expand max" << endl; size_t imindensity = imaxconflict; for ( size_t iexpand=imaxconflict+1 ; iexpandcanDogleg(gcells[iexpand],KtAllowDoglegReuse)) continue; - // ltrace(200) << " Density " + // cdebug.log(159) << " Density " // << Session::getRoutingGauge()->getRoutingLayer(depth)->getName() // << " min. dens.:" << gcells[imindensity]->getDensity(depth) // << " exp. dens.:" << gcells[iexpand ]->getDensity(depth) @@ -366,7 +366,7 @@ namespace Kite { if (gcells[imindensity]->getDensity(depth) - gcells[iexpand]->getDensity(depth) > 1e-3) { imindensity = iexpand; - //ltrace(200) << "Accepted expand " << imindensity << endl; + //cdebug.log(159) << "Accepted expand " << imindensity << endl; } } @@ -374,14 +374,14 @@ namespace Kite { imaxconflict = (imindensity < gcells.size()) ? imindensity : gcells.size(); } } - ltrace(200) << "minExpanded:" << minExpanded << " (" << iminconflict + cdebug.log(159) << "minExpanded:" << minExpanded << " (" << iminconflict << ") maxExpanded:" << maxExpanded << " (" << imaxconflict << ")" << endl; // Check for full enclosure. if ( ( (iminconflict == gcells.size()) and (imaxconflict == gcells.size() ) ) or ( (iminconflict == 0) and (imaxconflict == gcells.size()-1) )) { cinfo << "[INFO] Manipulator::relax(): Segment fully enclosed in interval." << endl; - ltraceout(200); + cdebug.tabw(159,-1); return false; } @@ -412,47 +412,47 @@ namespace Kite { case 0: cerr << Bug( "Manipulator::relax() Can't find a GCell suitable for making dogleg." , getString(interval).c_str() ) << endl; - ltraceout(200); + cdebug.tabw(159,-1); return false; } - ltrace(200) << "| Has to do " << dogLegCount << " doglegs." << endl; + cdebug.log(159) << "| Has to do " << dogLegCount << " doglegs." << endl; // Check of "min is less than one track close the edge" (while not expanded). // AND we are on the first GCell AND there's one dogleg only. if (not minExpanded and (iminconflict == 0) and (imaxconflict == gcells.size())) { - ltrace(200) << "Cannot break in first GCell only." << endl; - ltraceout(200); + cdebug.log(159) << "Cannot break in first GCell only." << endl; + cdebug.tabw(159,-1); return false; } // Check of "min is less than one track close the edge" (while not expanded). if ( /*not minExpanded and*/ (iminconflict > 0) and (iminconflict < gcells.size()) ) { uside = gcells[iminconflict-1]->getSide(_segment->getDirection()); - ltrace(200) << "GCell Edge Comparison (min): " << uside + cdebug.log(159) << "GCell Edge Comparison (min): " << uside << " vs. " << DbU::getValueString(interval.getVMin()) << endl; // Ugly: One lambda shrink. if (interval.getVMin()-DbU::lambda(1.0) <= uside.getVMax()) { - ltrace(200) << "Using previous GCell." << endl; + cdebug.log(159) << "Using previous GCell." << endl; iminconflict--; } } // Check if there is only one dogleg AND it's the last one. if (not maxExpanded and (iminconflict == gcells.size()) and (imaxconflict == gcells.size()-1)) { - ltrace(200) << "Cannot break in last GCell only." << endl; - ltraceout(200); + cdebug.log(159) << "Cannot break in last GCell only." << endl; + cdebug.tabw(159,-1); return false; } // Check of "max is less than one track close the edge" (while not expanded). if ((imaxconflict < gcells.size()-1)) { uside = gcells[imaxconflict+1]->getSide( _segment->getDirection() ); - ltrace(200) << "GCell Edge Comparison (max): " << uside + cdebug.log(159) << "GCell Edge Comparison (max): " << uside << " vs. " << DbU::getValueString(interval.getVMax()) << endl; if (interval.getVMax()+getPPitch() >= uside.getVMin()) { interval.inflate( 0, getPPitch() ); - ltrace(200) << "Using next GCell " << interval << endl; + cdebug.log(159) << "Using next GCell " << interval << endl; imaxconflict++; } } @@ -467,7 +467,7 @@ namespace Kite { } // Making first dogleg. - ltrace(200) << "Making FIRST dogleg at " << ifirstDogleg << endl; + cdebug.log(159) << "Making FIRST dogleg at " << ifirstDogleg << endl; TrackElement* segment1 = NULL; TrackElement* segment2 = NULL; Track* track = _segment->getTrack(); @@ -481,14 +481,14 @@ namespace Kite { if (ifirstDogleg == 0) dogleg = _segment->getSourceDogleg(); if (ifirstDogleg == gcells.size()-1) dogleg = _segment->getTargetDogleg(); if (dogleg) { - ltrace(200) << "Reusing dogleg." << endl; + cdebug.log(159) << "Reusing dogleg." << endl; doglegReuse1 = true; segment1 = _segment; } else { // Try to create a new dogleg. if (not _segment->canDogleg(dogLegGCell)) { - ltrace(200) << "Cannot create FIRST dogleg." << endl; - ltraceout(200); + cdebug.log(159) << "Cannot create FIRST dogleg." << endl; + cdebug.tabw(159,-1); return false; } _segment->makeDogleg( dogLegGCell, dogleg, segment1 ); @@ -497,18 +497,18 @@ namespace Kite { if (firstDoglegIsMin) { if (minExpanded) { doglegAxis = dogLegGCell->getSide( _segment->getDirection() ).getCenter(); - //ltrace(200) << "MARK 1 doglegAxis: " << DbU::getValueString(doglegAxis) << endl; + //cdebug.log(159) << "MARK 1 doglegAxis: " << DbU::getValueString(doglegAxis) << endl; } else { doglegAxis = interval.getVMin() - getPPitch(); - //ltrace(200) << "MARK 2 doglegAxis: " << DbU::getValueString(doglegAxis) << endl; + //cdebug.log(159) << "MARK 2 doglegAxis: " << DbU::getValueString(doglegAxis) << endl; } } else { if (maxExpanded) { doglegAxis = dogLegGCell->getSide( _segment->getDirection() ).getVMin(); - //ltrace(200) << "MARK 3 doglegAxis: " << DbU::getValueString(doglegAxis) << endl; + //cdebug.log(159) << "MARK 3 doglegAxis: " << DbU::getValueString(doglegAxis) << endl; } else { doglegAxis = interval.getVMax() + getPPitch() - DbU::fromLambda(1.0); - //ltrace(200) << "MARK 4 doglegAxis: " << DbU::getValueString(doglegAxis) << endl; + //cdebug.log(159) << "MARK 4 doglegAxis: " << DbU::getValueString(doglegAxis) << endl; } } if (doglegReuse1) _fsm.addAction( dogleg, SegmentAction::OtherRipup ); @@ -517,35 +517,35 @@ namespace Kite { // If event is present, the dogleg is in the current RoutingSet. RoutingEvent* event = dogleg->getDataNegociate()->getRoutingEvent(); if (event) { - ltrace(200) << "Set Axis Hint: @" << DbU::getValueString(doglegAxis) << " " << dogleg << endl; + cdebug.log(159) << "Set Axis Hint: @" << DbU::getValueString(doglegAxis) << " " << dogleg << endl; event->setAxisHint( doglegAxis ); } else { - ltrace(200) << "Dogleg has no RoutingEvent yet." << endl; + cdebug.log(159) << "Dogleg has no RoutingEvent yet." << endl; } // Making second dogleg. if (dogLegCount > 1) { - ltrace(200) << "Making SECOND dogleg at " << isecondDogleg + cdebug.log(159) << "Making SECOND dogleg at " << isecondDogleg << " on " << segment1 << endl; dogleg = NULL; dogLegGCell = gcells[isecondDogleg]; if (ifirstDogleg == isecondDogleg) { - ltrace(200) << "Double break in same GCell." << endl; + cdebug.log(159) << "Double break in same GCell." << endl; segment1->setFlags( TElemSourceDogleg ); } if (isecondDogleg == gcells.size()-1) dogleg = segment1->getTargetDogleg(); if (dogleg) { - ltrace(200) << "Reusing dogleg." << endl; + cdebug.log(159) << "Reusing dogleg." << endl; doglegReuse2 = true; segment2 = segment1; } else { // Try to create a new dogleg. if (not segment1->canDogleg(dogLegGCell)) { - ltrace(200) << "Cannot create SECOND dogleg." << endl; - ltraceout(200); + cdebug.log(159) << "Cannot create SECOND dogleg." << endl; + cdebug.tabw(159,-1); return false; } segment1->makeDogleg( dogLegGCell, dogleg, segment2 ); @@ -562,10 +562,10 @@ namespace Kite { // If event is present, the dogleg is in the current RoutingSet. RoutingEvent* event = dogleg->getDataNegociate()->getRoutingEvent(); if (event) { - ltrace(200) << "Set Axis Hint: @" << DbU::getValueString(doglegAxis) << " " << dogleg << endl; + cdebug.log(159) << "Set Axis Hint: @" << DbU::getValueString(doglegAxis) << " " << dogleg << endl; event->setAxisHint( doglegAxis ); } else { - ltrace(200) << "Dogleg has no RoutingEvent yet." << endl; + cdebug.log(159) << "Dogleg has no RoutingEvent yet." << endl; } // This cases seems never to occurs. @@ -573,7 +573,7 @@ namespace Kite { for ( size_t i=0 ; igetTrack() and track) { - ltrace(200) << "Direct Track insert of: " << segment << endl; + cdebug.log(159) << "Direct Track insert of: " << segment << endl; Session::addInsertEvent( segment, track ); } } @@ -599,23 +599,23 @@ namespace Kite { } if (_segment->isLocal()) { - ltrace(200) << "Reset state of: " << _segment << endl; + cdebug.log(159) << "Reset state of: " << _segment << endl; _segment->getDataNegociate()->setState( DataNegociate::RipupPerpandiculars, true ); } else { - ltrace(200) << "No state reset: " << _segment << endl; + cdebug.log(159) << "No state reset: " << _segment << endl; } if ((not doglegReuse1) and segment1 and segment1->isLocal()) { - ltrace(200) << "Reset state of: " << segment1 << endl; + cdebug.log(159) << "Reset state of: " << segment1 << endl; segment1->getDataNegociate()->setState( DataNegociate::RipupPerpandiculars, true ); } if ((not doglegReuse2) and segment2 and segment2->isLocal()) { - ltrace(200) << "Reset state of: " << segment2 << endl; + cdebug.log(159) << "Reset state of: " << segment2 << endl; segment2->getDataNegociate()->setState( DataNegociate::RipupPerpandiculars, true ); } - ltraceout(200); + cdebug.tabw(159,-1); return success; } @@ -635,37 +635,37 @@ namespace Kite { bool rightIntrication = false; bool success = true; - ltrace(200) << "Manipulator::insertInTrack() - " << toFree << endl; + cdebug.log(159) << "Manipulator::insertInTrack() - " << toFree << endl; for ( size_t i = begin ; success && (i < end) ; i++ ) { TrackElement* segment2 = track->getSegment(i); - ltrace(200) << "* Looking // " << segment2 << endl; + cdebug.log(159) << "* Looking // " << segment2 << endl; if ( segment2->getNet() == ownerNet ) continue; if ( not toFree.intersect(segment2->getCanonicalInterval()) ) { - ltrace(200) << "No intersection with: " << segment2->getCanonicalInterval() << endl; + cdebug.log(159) << "No intersection with: " << segment2->getCanonicalInterval() << endl; continue; } if ( segment2->isBlockage() or segment2->isFixed() ) { - ltrace(200) << "Ovelap is blockage or fixed." << endl; + cdebug.log(159) << "Ovelap is blockage or fixed." << endl; success = false; continue; } // if ( segment2->getId() >= maxId ) { - // ltrace(200) << "Ovelap has an Id superior to AutoSegment::maxId:" << maxId << "." << endl; + // cdebug.log(159) << "Ovelap has an Id superior to AutoSegment::maxId:" << maxId << "." << endl; // continue; // } // ripupNet = segment2->getNet(); DataNegociate* data2 = segment2->getDataNegociate(); if ( !data2 ) { - ltrace(200) << "No DataNegociate, ignoring." << endl; + cdebug.log(159) << "No DataNegociate, ignoring." << endl; continue; } if ( data2->getState() == DataNegociate::MaximumSlack ) { - ltrace(200) << "At " << DataNegociate::getStateString(data2) + cdebug.log(159) << "At " << DataNegociate::getStateString(data2) << " for " << segment2 << endl; success = false; continue; @@ -675,7 +675,7 @@ namespace Kite { bool shrinkRight = false; if ( data2->getRightMinExtend() < toFree.getVMin() ) { - ltrace(200) << "- Shrink right edge (push left) " << segment2 << endl; + cdebug.log(159) << "- Shrink right edge (push left) " << segment2 << endl; shrinkRight = true; TrackElement* rightNeighbor2 = track->getSegment(i+1); if ( rightNeighbor2 && (rightNeighbor2->getNet() == segment2->getNet()) ) { @@ -688,7 +688,7 @@ namespace Kite { } if ( data2->getLeftMinExtend() > toFree.getVMax() ) { - ltrace(200) << "- Shrink left edge (push right) " << segment2 << endl; + cdebug.log(159) << "- Shrink left edge (push right) " << segment2 << endl; shrinkLeft = true; if ( i > 0 ) { TrackElement* leftNeighbor2 = track->getSegment(i-1); @@ -710,7 +710,7 @@ namespace Kite { } } - ltrace(200) << "- Hard overlap/enclosure/shrink " << segment2 << endl; + cdebug.log(159) << "- Hard overlap/enclosure/shrink " << segment2 << endl; if ( _segment->isStrap() and segment2->isGlobal() ) continue; if ( not (success = Manipulator(segment2,_fsm).ripup(SegmentAction::OtherRipup)) ) continue; @@ -725,11 +725,11 @@ namespace Kite { if ( not event3 ) continue; if ( not toFree.intersect(event3->getConstraints()) ) { - ltrace(200) << " . " << segment3 << endl; + cdebug.log(159) << " . " << segment3 << endl; continue; } - ltrace(200) << " | " << segment3 << endl; + cdebug.log(159) << " | " << segment3 << endl; if ( shrinkRight xor shrinkLeft ) { if ( shrinkRight ) { @@ -740,7 +740,7 @@ namespace Kite { break; if ( event3->getTracksFree() == 1 ) { - ltrace(200) << "Potential left intrication with other perpandicular." << endl; + cdebug.log(159) << "Potential left intrication with other perpandicular." << endl; if ( segment3->getAxis() == segment2->getTargetU() - Session::getExtensionCap(getLayer()) ) { leftIntrication = true; leftAxisHint = segment3->getAxis(); @@ -754,7 +754,7 @@ namespace Kite { )) ) break; if ( event3->getTracksFree() == 1 ) { - ltrace(200) << "Potential right intrication with other perpandicular." << endl; + cdebug.log(159) << "Potential right intrication with other perpandicular." << endl; if ( segment3->getAxis() == segment2->getSourceU() + Session::getExtensionCap(getLayer()) ) { rightIntrication = true; rightAxisHint = segment3->getAxis(); @@ -772,7 +772,7 @@ namespace Kite { } if ( success ) { - ltrace(200) << "Manipulator::insertInTrack() success" << endl; + cdebug.log(159) << "Manipulator::insertInTrack() success" << endl; _fsm.setState ( SegmentFsm::OtherRipup ); _fsm.addAction ( _segment @@ -802,12 +802,12 @@ namespace Kite { set canonicals; bool success = true; - ltrace(200) << "Manipulator::forceToTrack() - " << toFree << endl; + cdebug.log(159) << "Manipulator::forceToTrack() - " << toFree << endl; for ( size_t i=begin ; success and (i < end) ; ++i ) { TrackElement* segment2 = track->getSegment(i); - ltrace(200) << "* Looking // " << segment2 << endl; + cdebug.log(159) << "* Looking // " << segment2 << endl; if (segment2->getNet() == ownerNet) continue; if (not toFree.intersect(segment2->getCanonicalInterval())) continue; @@ -819,11 +819,11 @@ namespace Kite { DataNegociate* data2 = segment2->getDataNegociate(); if (not data2 ) { - ltrace(200) << "No DataNegociate, ignoring." << endl; + cdebug.log(159) << "No DataNegociate, ignoring." << endl; continue; } - ltrace(200) << "- Forced ripup " << segment2 << endl; + cdebug.log(159) << "- Forced ripup " << segment2 << endl; if (not (success=Manipulator(segment2,_fsm).ripup(SegmentAction::OtherRipup))) continue; @@ -864,17 +864,17 @@ namespace Kite { DbU::Unit leftExtend = _segment->getSourceU() + Session::getExtensionCap(getLayer()); DbU::Unit rightExtend = _segment->getSourceU() - Session::getExtensionCap(getLayer()); - ltrace(200) << "Manipulator::shrinkToTrack()" << endl; + cdebug.log(159) << "Manipulator::shrinkToTrack()" << endl; if (_segment->isLocal()) return false; Interval shrunkFree = _segment->base()->getMinSpanU(); - ltrace(200) << "* " << shrunkFree << endl; + cdebug.log(159) << "* " << shrunkFree << endl; for ( size_t i = begin ; success and (i < end) ; ++i ) { TrackElement* segment2 = track->getSegment(i); - ltrace(200) << "* Looking // " << segment2 << endl; + cdebug.log(159) << "* Looking // " << segment2 << endl; if (segment2->getNet() == ownerNet) continue; if (segment2->isFixed()) { success = false; continue; } @@ -895,7 +895,7 @@ namespace Kite { for ( iperpand = perpandiculars.begin() ; iperpand != perpandiculars.end() ; ++iperpand ) { DataNegociate* data2 = (*iperpand)->getDataNegociate(); if (data2) { - ltrace(200) << "| perpandicular bound:" << *iperpand << endl; + cdebug.log(159) << "| perpandicular bound:" << *iperpand << endl; success = Manipulator(*iperpand,_fsm).ripup( SegmentAction::SelfRipupPerpandWithAxisHint ); if (success) { if ((*iperpand)->getAxis() == leftExtend ) axisHint = leftAxisHint; @@ -913,7 +913,7 @@ namespace Kite { _fsm.addAction( _segment, SegmentAction::SelfInsert ); _fsm.setState ( SegmentFsm::OtherRipup ); - ltrace(200) << "Successful shrinkToTrack." << endl; + cdebug.log(159) << "Successful shrinkToTrack." << endl; return true; } #endif @@ -924,13 +924,12 @@ namespace Kite { bool Manipulator::forceOverLocals () { - ltrace(200) << "Manipulator::forceOverLocals()" << endl; - ltracein(200); + cdebug.log(159,1) << "Manipulator::forceOverLocals()" << endl; vector& costs = _fsm.getCosts(); size_t itrack = 0; for ( ; itrackgetSegment(i); - ltrace(200) << "* Looking // " << segment2 << endl; + cdebug.log(159) << "* Looking // " << segment2 << endl; if ( segment2->getNet() == ownerNet ) continue; if ( not toFree.intersect(segment2->getCanonicalInterval()) ) continue; @@ -959,12 +958,12 @@ namespace Kite { DataNegociate* data2 = segment2->getDataNegociate(); if ( not data2 ) { - ltrace(200) << "No DataNegociate, ignoring." << endl; + cdebug.log(159) << "No DataNegociate, ignoring." << endl; success = false; continue; } - ltrace(200) << "- Forced ripup " << segment2 << endl; + cdebug.log(159) << "- Forced ripup " << segment2 << endl; if ( not (success=Manipulator(segment2,_fsm).ripup(SegmentAction::OtherRipup)) ) { continue; } @@ -980,14 +979,14 @@ namespace Kite { } } - ltraceout(200); + cdebug.tabw(159,-1); return (itrack < costs.size()); } bool Manipulator::slacken ( unsigned int flags ) { - ltrace(200) << "Manipulator::slacken() " << _segment << endl; + cdebug.log(159) << "Manipulator::slacken() " << _segment << endl; if ( _segment->isFixed ()) return false; if (not _segment->canSlacken()) return false; @@ -998,7 +997,7 @@ namespace Kite { bool Manipulator::ripple () { - ltrace(200) << "Manipulator::ripple() from " << _segment << endl; + cdebug.log(159) << "Manipulator::ripple() from " << _segment << endl; //if (not _segment->canRipple()) return false; if (not _segment->isLocal()) return false; @@ -1007,7 +1006,7 @@ namespace Kite { Interval uside = _segment->base()->getAutoSource()->getGCell()->getSide ( Katabatic::perpandicularTo(_segment->getDirection())/*, false*/ ); RoutingPlane* plane = Session::getKiteEngine()->getRoutingPlaneByLayer(_segment->getLayer()); - ltracein(200); + cdebug.tabw(159,1); for( Track* track : Tracks_Range::get(plane,uside)) { size_t begin; size_t end; @@ -1015,7 +1014,7 @@ namespace Kite { track->getOverlapBounds( _segment->getCanonicalInterval(), begin, end ); for ( ; begin < end ; begin++ ) { TrackElement* other = track->getSegment(begin); - ltrace(200) << "| " << other << endl; + cdebug.log(159) << "| " << other << endl; if (other->getNet() == net) continue; if (not other->canRipple()) continue; @@ -1042,7 +1041,7 @@ namespace Kite { _fsm.addAction( other, SegmentAction::OtherRipup ); } } - ltraceout(200); + cdebug.tabw(159,-1); return true; } @@ -1050,7 +1049,7 @@ namespace Kite { bool Manipulator::pivotUp () { - ltrace(200) << "Manipulator::pivotUp() " << _segment << endl; + cdebug.log(159) << "Manipulator::pivotUp() " << _segment << endl; return false; if (_segment->isFixed()) return false; @@ -1065,7 +1064,7 @@ namespace Kite { bool Manipulator::pivotDown () { - ltrace(200) << "Manipulator::pivotDown() " << _segment << endl; + cdebug.log(159) << "Manipulator::pivotDown() " << _segment << endl; return false; if ( _segment->isFixed () ) return false; @@ -1078,7 +1077,7 @@ namespace Kite { bool Manipulator::moveUp ( unsigned int flags ) { - ltrace(200) << "Manipulator::moveUp() " << _segment << endl; + cdebug.log(159) << "Manipulator::moveUp() " << _segment << endl; unsigned int kflags = Katabatic::KbWithNeighbors; //kflags |= (flags & AllowLocalMoveUp ) ? Katabatic::AutoSegment::AllowLocal : 0; @@ -1104,7 +1103,7 @@ namespace Kite { bool Manipulator::makeDogleg () { - ltrace(200) << "Manipulator::makeDogleg() " << _segment << endl; + cdebug.log(159) << "Manipulator::makeDogleg() " << _segment << endl; if ( _segment->isFixed()) return false; if (not _segment->isLocal()) return false; @@ -1121,7 +1120,7 @@ namespace Kite { for ( size_t i=begin ; igetSegment(i); - ltrace(200) << "* Looking // " << segment2 << endl; + cdebug.log(159) << "* Looking // " << segment2 << endl; if ( segment2->getNet() == ownerNet) continue; if (not toFree.intersect(segment2->getCanonicalInterval())) continue; @@ -1144,8 +1143,8 @@ namespace Kite { bool Manipulator::makeDogleg ( Interval overlap ) { - ltrace(200) << "Manipulator::makeDogleg(Interval) " << _segment << endl; - ltrace(200) << overlap << endl; + cdebug.log(159) << "Manipulator::makeDogleg(Interval) " << _segment << endl; + cdebug.log(159) << overlap << endl; if ( _segment->isFixed () ) return false; if (not _segment->canDogleg(overlap)) return false; @@ -1153,7 +1152,7 @@ namespace Kite { unsigned int flags = 0; TrackElement* dogleg = _segment->makeDogleg(overlap,flags); if (dogleg) { - ltrace(200) << "Manipulator::makeDogleg(Interval) - Push dogleg to the " + cdebug.log(159) << "Manipulator::makeDogleg(Interval) - Push dogleg to the " << ((flags&Katabatic::KbDoglegOnLeft)?"left":"right") << endl; if (_segment->isTerminal()) { Katabatic::AutoContact* contact = @@ -1164,7 +1163,7 @@ namespace Kite { if (event) { event->setAxisHint ( axisHint ); event->setForcedToHint( true ); - ltrace(200) << "Forced to axis hint @" << DbU::getValueString(axisHint) << endl; + cdebug.log(159) << "Forced to axis hint @" << DbU::getValueString(axisHint) << endl; } } return true; @@ -1176,8 +1175,8 @@ namespace Kite { bool Manipulator::makeDogleg ( DbU::Unit position ) { - ltrace(200) << "Manipulator::makeDogleg(position) " << _segment << endl; - ltrace(200) << "Breaking position: " << DbU::getValueString(position) << endl; + cdebug.log(159) << "Manipulator::makeDogleg(position) " << _segment << endl; + cdebug.log(159) << "Breaking position: " << DbU::getValueString(position) << endl; if (_segment->isFixed()) return false; @@ -1201,7 +1200,7 @@ namespace Kite { bool Manipulator::minimize () { - ltrace(200) << "Manipulator::minimize() " << _segment << endl; + cdebug.log(159) << "Manipulator::minimize() " << _segment << endl; if (_segment->isFixed()) return false; if (not _event->canMinimize()) return false; @@ -1211,10 +1210,10 @@ namespace Kite { Interval punctualSpan ( false ); if (_segment->base()->getAutoSource()->getAnchor()) { - ltrace(200) << " | " << _segment->base()->getAutoSource() << endl; + cdebug.log(159) << " | " << _segment->base()->getAutoSource() << endl; Interval constraints ( _segment->base()->getAutoSource()->getUConstraints (perpandicularTo(_segment->getDirection())) ); - ltrace(200) << " | Constraints: " << constraints << endl; + cdebug.log(159) << " | Constraints: " << constraints << endl; minSpan = min( minSpan, constraints.getVMax() ); maxSpan = max( maxSpan, constraints.getVMin() ); @@ -1222,10 +1221,10 @@ namespace Kite { } if (_segment->base()->getAutoTarget()->getAnchor()) { - ltrace(200) << " | " << _segment->base()->getAutoTarget() << endl; + cdebug.log(159) << " | " << _segment->base()->getAutoTarget() << endl; Interval constraints ( _segment->base()->getAutoTarget()->getUConstraints (perpandicularTo(_segment->getDirection())) ); - ltrace(200) << " | Constraints: " << constraints << endl; + cdebug.log(159) << " | Constraints: " << constraints << endl; minSpan = min( minSpan, constraints.getVMax() ); maxSpan = max( maxSpan, constraints.getVMin() ); @@ -1237,12 +1236,12 @@ namespace Kite { DataNegociate* data2 = perpandiculars[i]->getDataNegociate(); if (not data2) continue; - ltrace(200) << " | " << perpandiculars[i] << endl; + cdebug.log(159) << " | " << perpandiculars[i] << endl; RoutingEvent* event2 = data2->getRoutingEvent(); if (not event2) continue; - ltrace(200) << " | Constraints: " << event2->getConstraints() << endl; + cdebug.log(159) << " | Constraints: " << event2->getConstraints() << endl; minSpan = min( minSpan, event2->getConstraints().getVMax() ); maxSpan = max( maxSpan, event2->getConstraints().getVMin() ); @@ -1250,7 +1249,7 @@ namespace Kite { } if (minSpan > maxSpan) swap( minSpan, maxSpan ); - ltrace(200) << "punctualSpan: " << punctualSpan + cdebug.log(159) << "punctualSpan: " << punctualSpan << " min/max span: [" << DbU::getValueString(minSpan) << ":" << DbU::getValueString(maxSpan) << "]" << " long: [" << minSpan @@ -1264,7 +1263,7 @@ namespace Kite { if (end < track->getSize()) end++; - ltrace(200) << "Looking for holes in " << _fsm.getCost(itrack) << endl; + cdebug.log(159) << "Looking for holes in " << _fsm.getCost(itrack) << endl; TrackElement* otherPrevious = NULL; // ToDo: Manage disjoint but subsequent segment of a Net. @@ -1275,13 +1274,13 @@ namespace Kite { if (not otherPrevious) { holes.push_back( Interval(track->getMin() ,otherSegment->getSourceU()) ); - ltrace(200) << "| First hole: " << holes.back() << " " << otherSegment << endl; + cdebug.log(159) << "| First hole: " << holes.back() << " " << otherSegment << endl; } else { if (otherSegment->getNet() == otherPrevious->getNet()) continue; holes.push_back( Interval(otherPrevious->getTargetU() ,otherSegment ->getSourceU()) ); - ltrace(200) << "| Found hole: " << holes.back() + cdebug.log(159) << "| Found hole: " << holes.back() << " " << otherPrevious << " <-> " << " " << otherSegment << endl; } otherPrevious = otherSegment; @@ -1289,7 +1288,7 @@ namespace Kite { } if (holes.empty()) { - ltrace(200) << "No holes found to minimize into." << endl; + cdebug.log(159) << "No holes found to minimize into." << endl; return false; } @@ -1306,45 +1305,45 @@ namespace Kite { bool success = false; if (biggestHole.intersect(punctualSpan)) { - ltrace(200) << "Go as punctual into biggest hole: " << biggestHole << endl; + cdebug.log(159) << "Go as punctual into biggest hole: " << biggestHole << endl; axisHint = biggestHole.intersection(punctualSpan).getCenter(); success = true; } else { for ( size_t i=0 ; igetDataNegociate(); if (not data2) continue; - ltrace(200) << " | " << perpandiculars[i] << endl; + cdebug.log(159) << " | " << perpandiculars[i] << endl; RoutingEvent* event2 = data2->getRoutingEvent(); if (not event2) continue; @@ -1389,7 +1388,7 @@ namespace Kite { void Manipulator::repackPerpandiculars () { - ltrace(200) << "Manipulator::repackPerpandiculars()" << endl; + cdebug.log(159) << "Manipulator::repackPerpandiculars()" << endl; const vector& perpandiculars = _event->getPerpandiculars(); for ( size_t iperpand=0 ; iperpandgetCanonicalInterval(); if (not intersect.intersect(cost.getInterval())) return; if (segment->isBlockage() or segment->isFixed()) { - ltrace(200) << "Infinite cost from: " << segment << endl; + cdebug.log(159) << "Infinite cost from: " << segment << endl; cost.setInfinite (); cost.setOverlap (); cost.setHardOverlap(); @@ -83,7 +83,7 @@ namespace { if ( segment->isLocal() ) { cost.mergeDataState( data->getState() ); if (data->getState() >= DataNegociate::LocalVsGlobal) { - ltrace(200) << "MaximumSlack/LocalVsGlobal for " << segment << endl; + cdebug.log(159) << "MaximumSlack/LocalVsGlobal for " << segment << endl; } } @@ -101,13 +101,13 @@ namespace { cost.setOverlap(); if ( segment->isLocal() or (cost.isForGlobal() and (Session::getRoutingGauge()->getLayerDepth(segment->getLayer()) < 3)) ) { - ltrace(500) << "Deter| incTerminals() " << boolalpha << cost.isForGlobal() << " " << (data->getTerminals()*100) << endl; + cdebug.log(9000) << "Deter| incTerminals() " << boolalpha << cost.isForGlobal() << " " << (data->getTerminals()*100) << endl; cost.incTerminals( data->getTerminals()*100 ); } else { - ltrace(500) << "Deter| isForGlobal() " << boolalpha << cost.isForGlobal() << endl; + cdebug.log(9000) << "Deter| isForGlobal() " << boolalpha << cost.isForGlobal() << endl; } - ltrace(200) << "| Increment Delta: " << DbU::getValueString(intersect.getSize()) << endl; + cdebug.log(159) << "| Increment Delta: " << DbU::getValueString(intersect.getSize()) << endl; cost.incDelta( intersect.getSize() ); } @@ -147,9 +147,6 @@ namespace Kite { using Hurricane::Warning; using Hurricane::Bug; using Hurricane::tab; - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::ForEachIterator; using CRL::Histogram; using CRL::addMeasure; @@ -228,8 +225,7 @@ namespace Kite { TrackElement* NegociateWindow::createTrackSegment ( AutoSegment* autoSegment, unsigned int flags ) { - ltrace(200) << "NegociateWindow::createTrackSegment() - " << autoSegment << endl; - ltracein(159); + cdebug.log(159,1) << "NegociateWindow::createTrackSegment() - " << autoSegment << endl; // Special case: fixed AutoSegments must not interfere with blockages. // Ugly: uses of getExtensionCap(). @@ -248,25 +244,25 @@ namespace Kite { for ( ; (begin < end) ; begin++ ) { TrackElement* other = track->getSegment(begin); - ltrace(200) << "| overlap: " << other << endl; + cdebug.log(159) << "| overlap: " << other << endl; if (not other->isBlockage()) continue; other->getCanonical( blockageSpan ); blockageSpan.inflate( Session::getExtensionCap(autoSegment->getLayer()) ); - ltrace(200) << " fixed:" << fixedSpan << " vs. blockage:" << blockageSpan << endl; + cdebug.log(159) << " fixed:" << fixedSpan << " vs. blockage:" << blockageSpan << endl; if (not fixedSpan.intersect(blockageSpan)) continue; // Overlap between fixed & blockage. - ltrace(200) << "* Blockage overlap: " << autoSegment << endl; + cdebug.log(159) << "* Blockage overlap: " << autoSegment << endl; Session::destroyRequest( autoSegment ); cerr << Warning( "Overlap between fixed %s and blockage at %s." , getString(autoSegment).c_str() , getString(blockageSpan).c_str() ) << endl; - ltraceout(159); + cdebug.tabw(159,-1); return NULL; } } @@ -278,10 +274,10 @@ namespace Kite { TrackElement* trackSegment = TrackSegment::create( autoSegment, NULL, created ); if (not (flags & KtLoadingStage)) - ltrace(159) << "* lookup: " << autoSegment << endl; + cdebug.log(159) << "* lookup: " << autoSegment << endl; if (created) { - ltrace(159) << "* " << trackSegment << endl; + cdebug.log(159) << "* " << trackSegment << endl; RoutingPlane* plane = Session::getKiteEngine()->getRoutingPlaneByLayer(autoSegment->getLayer()); Track* track = plane->getTrackByPosition ( autoSegment->getAxis() ); @@ -290,9 +286,9 @@ namespace Kite { if (track->getAxis() > uside.getVMax()) track = track->getPreviousTrack(); if (track->getAxis() < uside.getVMin()) track = track->getNextTrack(); - ltrace(159) << "* GCell U-side " << uside << endl; - ltrace(159) << "* " << plane << endl; - ltrace(159) << "* " << track << endl; + cdebug.log(159) << "* GCell U-side " << uside << endl; + cdebug.log(159) << "* " << plane << endl; + cdebug.log(159) << "* " << track << endl; trackSegment->setAxis( track->getAxis(), Katabatic::SegAxisSet ); trackSegment->invalidate(); @@ -305,10 +301,10 @@ namespace Kite { } if (not created and not (flags & KtLoadingStage)) { - ltrace(200) << "TrackSegment already exists (and not in loading stage)." << endl; + cdebug.log(159) << "TrackSegment already exists (and not in loading stage)." << endl; } - ltraceout(159); + cdebug.tabw(159,-1); return trackSegment; } @@ -351,27 +347,26 @@ namespace Kite { void NegociateWindow::_createRouting ( Katabatic::GCell* gcell ) { - ltrace(200) << "NegociateWindow::_createRouting() - " << gcell << endl; - ltracein(200); + cdebug.log(159,1) << "NegociateWindow::_createRouting() - " << gcell << endl; Segment* segment; AutoSegment* autoSegment; - ltrace(149) << "AutoSegments from AutoContacts" << endl; + cdebug.log(159) << "AutoSegments from AutoContacts" << endl; const vector& contacts = gcell->getContacts(); for ( size_t i=0 ; igetSlaveComponents() ) { segment = dynamic_cast(component); autoSegment = Session::base()->lookup( segment ); - ltrace(149) << autoSegment << endl; + cdebug.log(159) << autoSegment << endl; if (autoSegment and autoSegment->isCanonical()) { createTrackSegment( autoSegment, KtLoadingStage ); } } } - ltrace(149) << "_segments.size():" << _segments.size() << endl; - ltraceout(200); + cdebug.log(159) << "_segments.size():" << _segments.size() << endl; + cdebug.tabw(159,-1); } @@ -429,9 +424,8 @@ namespace Kite { size_t NegociateWindow::_negociate () { - ltrace(500) << "Deter| NegociateWindow::_negociate()" << endl; - ltrace(150) << "NegociateWindow::_negociate() - " << _segments.size() << endl; - ltracein(149); + cdebug.log(9000) << "Deter| NegociateWindow::_negociate()" << endl; + cdebug.log(159,1) << "NegociateWindow::_negociate() - " << _segments.size() << endl; cmess1 << " o Negociation Stage." << endl; @@ -440,7 +434,7 @@ namespace Kite { _eventHistory.clear(); _eventQueue.load( _segments ); cmess2 << " " << endl; - if (inltrace(500)) _eventQueue.dump(); + if (cdebug.enabled(9000)) _eventQueue.dump(); size_t count = 0; RoutingEvent::setStage( RoutingEvent::Negociate ); @@ -475,10 +469,10 @@ namespace Kite { //_pack( count, true ); if (count and cmess2.enabled() and tty::enabled()) cmess1 << endl; - ltrace(500) << "Deter| Repair Stage" << endl; + cdebug.log(9000) << "Deter| Repair Stage" << endl; cmess1 << " o Repair Stage." << endl; - ltrace(200) << "Loadind Repair queue." << endl; + cdebug.log(159) << "Loadind Repair queue." << endl; RoutingEvent::setStage( RoutingEvent::Repair ); for ( size_t i=0 ; (i<_eventHistory.size()) and not isInterrupted() ; i++ ) { RoutingEvent* event = _eventHistory.getNth(i); @@ -530,7 +524,7 @@ namespace Kite { } _statistics.setEventsCount( eventsCount ); - ltraceout(149); + cdebug.tabw(159,-1); return eventsCount; } @@ -538,8 +532,7 @@ namespace Kite { void NegociateWindow::run ( unsigned int flags ) { - ltrace(150) << "NegociateWindow::run()" << endl; - ltracein(149); + cdebug.log(159,1) << "NegociateWindow::run()" << endl; cmess1 << " o Running Negociate Algorithm" << endl; @@ -578,7 +571,7 @@ namespace Kite { _kite->_check( overlaps, "after negociation" ); # endif - ltraceout(149); + cdebug.tabw(159,-1); } diff --git a/kite/src/PreProcess.cpp b/kite/src/PreProcess.cpp index a048a4f1..36fec087 100644 --- a/kite/src/PreProcess.cpp +++ b/kite/src/PreProcess.cpp @@ -51,7 +51,7 @@ namespace { TrackElement* perpandicular; for( Segment* osegment : segment->base()->getAutoSource()->getSlaveComponents().getSubSet() ) { perpandicular = Session::lookup ( osegment ); - ltrace(200) << "S " << perpandicular << endl; + cdebug.log(159) << "S " << perpandicular << endl; if ( not perpandicular or (perpandicular->getDirection() == direction) ) continue; @@ -60,7 +60,7 @@ namespace { for( Segment* osegment : segment->base()->getAutoTarget()->getSlaveComponents().getSubSet() ) { perpandicular = Session::lookup ( osegment ); - ltrace(200) << "T " << perpandicular << endl; + cdebug.log(159) << "T " << perpandicular << endl; if ( not perpandicular or (perpandicular->getDirection() == direction) ) continue; @@ -71,12 +71,12 @@ namespace { void findFailedPerpandiculars ( RoutingPad* rp, unsigned int direction, set& faileds ) { - ltrace(200) << "Find failed caging: " << rp << endl; + cdebug.log(159) << "Find failed caging: " << rp << endl; TrackElement* parallel; for( Segment* osegment : rp->getSlaveComponents().getSubSet() ) { parallel = Session::lookup ( osegment ); - ltrace(200) << "* " << parallel << endl; + cdebug.log(159) << "* " << parallel << endl; if ( parallel->isFixed () ) continue; if ( parallel->getDirection() != direction ) continue; @@ -97,7 +97,7 @@ namespace { { if (not segment->isFixed()) return; - ltrace(200) << "Propagate caging: " << segment << endl; + cdebug.log(159) << "Propagate caging: " << segment << endl; Track* track = segment->getTrack(); //unsigned int direction = Session::getRoutingGauge()->getLayerDirection(segment->getLayer()); @@ -124,7 +124,7 @@ namespace { if (parallel->getNet() == segment->getNet()) continue; if (not parallel->isFixed()) continue; - ltrace(200) << "Min Constraint from: " << parallel << endl; + cdebug.log(159) << "Min Constraint from: " << parallel << endl; minConstraint = max( minConstraint, parallel->getTargetU() ); } @@ -136,7 +136,7 @@ namespace { if (parallel->getNet() == segment->getNet()) continue; if (not parallel->isFixed()) continue; - ltrace(200) << "Max Constraint from: " << parallel << endl; + cdebug.log(159) << "Max Constraint from: " << parallel << endl; maxConstraint = min( maxConstraint, parallel->getSourceU() ); } @@ -145,7 +145,7 @@ namespace { return; } if ( (minConstraint <= uside.getVMin()) and (maxConstraint >= uside.getVMax()) ) { - ltrace(200) << "No constraints [" << DbU::getValueString(minConstraint) + cdebug.log(159) << "No constraints [" << DbU::getValueString(minConstraint) << ":" << DbU::getValueString(maxConstraint) << " vs. " << uside << endl; return; @@ -158,7 +158,7 @@ namespace { TrackElement* parallel; for( Segment* osegment : rp->getSlaveComponents().getSubSet() ) { parallel = Session::lookup( osegment ); - ltrace(200) << "* " << parallel << endl; + cdebug.log(159) << "* " << parallel << endl; if (parallel->isFixed ()) continue; if (parallel->isGlobal()) continue; @@ -173,32 +173,31 @@ namespace { } // Apply caging constraints to perpandiculars. - ltracein(200); + cdebug.tabw(159,1); if (perpandiculars.size() == 0) { - ltrace(200) << "No perpandiculars to " << segment << endl; - ltraceout(200); + cdebug.log(159) << "No perpandiculars to " << segment << endl; + cdebug.tabw(159,-1); return; } Interval constraints ( minConstraint, maxConstraint ); for ( size_t iperpand=0 ; iperpandbase()->mergeUserConstraints( constraints ); if (perpandiculars[iperpand]->base()->getUserConstraints().isEmpty()) { - ltrace(200) << "Cumulative caged constraints are too tight on " << perpandiculars[iperpand] << endl; + cdebug.log(159) << "Cumulative caged constraints are too tight on " << perpandiculars[iperpand] << endl; findFailedPerpandiculars( rp, direction, faileds ); } } - ltraceout(200); + cdebug.tabw(159,-1); } void moveUpCaged ( TrackElement* segment ) { - DebugSession::open( segment->getNet(), 150 ); - ltrace(150) << "::moveUpCaged() " << segment << endl; - ltracein(150); + DebugSession::open( segment->getNet(), 150, 160 ); + cdebug.log(159,1) << "::moveUpCaged() " << segment << endl; //Configuration* configuration = Session::getConfiguration(); //const Layer* metal2 = configuration->getRoutingLayer( 1 ); @@ -216,15 +215,14 @@ namespace { } } - ltraceout(150); + cdebug.tabw(159,-1); DebugSession::close(); } void protectCagedTerminals ( Track* track ) { - ltrace(150) << "protectCagedTerminals() " << track << endl; - ltracein(150); + cdebug.log(159,1) << "protectCagedTerminals() " << track << endl; DbU::Unit lastMovedUp = track->getMin(); unsigned int moveUpCount = 0; @@ -236,7 +234,7 @@ namespace { RoutingPlane* metal3plane = track->getRoutingPlane()->getTop(); if (track->getLayer() != metal2) { - ltraceout(150); + cdebug.tabw(159,-1); return; } @@ -317,7 +315,7 @@ namespace { } } - ltraceout(150); + cdebug.tabw(159,-1); } @@ -358,7 +356,7 @@ namespace Kite { segment = _lookup( isegment->second ); if (not segment or not segment->isFixed()) continue; - DebugSession::open( segment->getNet() ); + DebugSession::open( segment->getNet(), 150, 160 ); propagateCagedConstraints( segment, faileds ); DebugSession::close(); } diff --git a/kite/src/ProtectRoutingPads.cpp b/kite/src/ProtectRoutingPads.cpp index 939d7d74..c6b98d77 100644 --- a/kite/src/ProtectRoutingPads.cpp +++ b/kite/src/ProtectRoutingPads.cpp @@ -44,7 +44,6 @@ namespace { using namespace std; using Hurricane::tab; - using Hurricane::inltrace; using Hurricane::ForEachIterator; using Hurricane::DbU; using Hurricane::Box; diff --git a/kite/src/PyGraphicKiteEngine.cpp b/kite/src/PyGraphicKiteEngine.cpp index 16f216f3..0ac5107e 100644 --- a/kite/src/PyGraphicKiteEngine.cpp +++ b/kite/src/PyGraphicKiteEngine.cpp @@ -48,7 +48,7 @@ extern "C" { static PyObject* PyGraphicKiteEngine_grab ( PyObject* ) { - trace << "PyGraphicKiteEngine_grab()" << endl; + cdebug.log(40) << "PyGraphicKiteEngine_grab()" << endl; PyGraphicKiteEngine* pyGraphicKiteEngine = NULL; HTRY @@ -64,7 +64,7 @@ extern "C" { static PyObject* PyGraphicKiteEngine_getCell ( PyGraphicKiteEngine* self ) { - trace << "PyGraphicKiteEngine_getCell ()" << endl; + cdebug.log(40) << "PyGraphicKiteEngine_getCell ()" << endl; Cell* cell = NULL; diff --git a/kite/src/PyKite.cpp b/kite/src/PyKite.cpp index f884b2a3..ac838ac0 100644 --- a/kite/src/PyKite.cpp +++ b/kite/src/PyKite.cpp @@ -26,7 +26,6 @@ namespace Kite { using std::cerr; using std::endl; using Hurricane::tab; - using Hurricane::in_trace; using Isobar::__cs; using CRL::PyTypeToolEngine; using CRL::PyTypeGraphicTool; @@ -66,7 +65,7 @@ extern "C" { // Module Initialization : "initKite ()" DL_EXPORT(void) initKite () { - trace << "initKite()" << endl; + cdebug.log(40) << "initKite()" << endl; PyKiteEngine_LinkPyType(); PyGraphicKiteEngine_LinkPyType(); diff --git a/kite/src/PyKiteEngine.cpp b/kite/src/PyKiteEngine.cpp index 0323e55d..d4598fe5 100644 --- a/kite/src/PyKiteEngine.cpp +++ b/kite/src/PyKiteEngine.cpp @@ -35,7 +35,6 @@ namespace Kite { using std::hex; using std::ostringstream; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::Exception; using Hurricane::Bug; using Hurricane::Error; @@ -63,7 +62,7 @@ extern "C" { #define DirectVoidToolMethod(SELF_TYPE, SELF_OBJECT, FUNC_NAME) \ static PyObject* Py##SELF_TYPE##_##FUNC_NAME(Py##SELF_TYPE* self) \ { \ - trace << "Py" #SELF_TYPE "_" #FUNC_NAME "()" << endl; \ + cdebug.log(40) << "Py" #SELF_TYPE "_" #FUNC_NAME "()" << endl; \ HTRY \ METHOD_HEAD(#SELF_TYPE "." #FUNC_NAME "()") \ if (SELF_OBJECT->getViewer()) { \ @@ -86,7 +85,7 @@ extern "C" { static PyObject* PyKiteEngine_wipeoutRouting ( PyObject*, PyObject* args ) { - trace << "PyKiteEngine_wipeoutRouting()" << endl; + cdebug.log(40) << "PyKiteEngine_wipeoutRouting()" << endl; HTRY PyObject* arg0; @@ -103,7 +102,7 @@ extern "C" { static PyObject* PyKiteEngine_get ( PyObject*, PyObject* args ) { - trace << "PyKiteEngine_get()" << endl; + cdebug.log(40) << "PyKiteEngine_get()" << endl; KiteEngine* kite = NULL; @@ -120,7 +119,7 @@ extern "C" { static PyObject* PyKiteEngine_create ( PyObject*, PyObject* args ) { - trace << "PyKiteEngine_create()" << endl; + cdebug.log(40) << "PyKiteEngine_create()" << endl; KiteEngine* kite = NULL; @@ -146,7 +145,7 @@ extern "C" { static PyObject* PyKiteEngine_setViewer ( PyKiteEngine* self, PyObject* args ) { - trace << "PyKiteEngine_setViewer ()" << endl; + cdebug.log(40) << "PyKiteEngine_setViewer ()" << endl; HTRY METHOD_HEAD( "KiteEngine.setViewer()" ) @@ -167,7 +166,7 @@ extern "C" { PyObject* PyKiteEngine_runGlobalRouter ( PyKiteEngine* self, PyObject* args ) { - trace << "PyKiteEngine_runGlobalRouter()" << endl; + cdebug.log(40) << "PyKiteEngine_runGlobalRouter()" << endl; HTRY METHOD_HEAD("KiteEngine.runGlobalRouter()") @@ -193,7 +192,7 @@ extern "C" { PyObject* PyKiteEngine_loadGlobalRouting ( PyKiteEngine* self, PyObject* args ) { - trace << "PyKiteEngine_loadGlobalRouting()" << endl; + cdebug.log(40) << "PyKiteEngine_loadGlobalRouting()" << endl; HTRY METHOD_HEAD("KiteEngine.loadGlobalRouting()") @@ -244,7 +243,7 @@ extern "C" { PyObject* PyKiteEngine_layerAssign ( PyKiteEngine* self, PyObject* args ) { - trace << "PyKiteEngine_layerAssign()" << endl; + cdebug.log(40) << "PyKiteEngine_layerAssign()" << endl; HTRY METHOD_HEAD("KiteEngine.layerAssign()") @@ -276,7 +275,7 @@ extern "C" { static PyObject* PyKiteEngine_runNegociatePreRouted ( PyKiteEngine* self ) { - trace << "PyKiteEngine_runNegociatePreRouted()" << endl; + cdebug.log(40) << "PyKiteEngine_runNegociatePreRouted()" << endl; HTRY METHOD_HEAD("KiteEngine.runNegociatePreRouted()") if (kite->getViewer()) { @@ -294,7 +293,7 @@ extern "C" { static PyObject* PyKiteEngine_runNegociate ( PyKiteEngine* self ) { - trace << "PyKiteEngine_runNegociate()" << endl; + cdebug.log(40) << "PyKiteEngine_runNegociate()" << endl; HTRY METHOD_HEAD("KiteEngine.runNegociate()") if (kite->getViewer()) { diff --git a/kite/src/RoutingEvent.cpp b/kite/src/RoutingEvent.cpp index fd4904e3..a2c495ee 100644 --- a/kite/src/RoutingEvent.cpp +++ b/kite/src/RoutingEvent.cpp @@ -49,9 +49,6 @@ namespace Kite { using std::min; using std::ostringstream; using Hurricane::tab; - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::DebugSession; using Hurricane::Bug; using Hurricane::Error; @@ -189,8 +186,8 @@ namespace Kite { DataNegociate* data = _segment->getDataNegociate(); if (data) data->setRoutingEvent( this ); - ltrace(180) << "create: " << this << endl; - ltrace(200) << "Initial setAxisHint @" << DbU::getValueString(getAxisHint()) << endl; + cdebug.log(159) << "create: " << this << endl; + cdebug.log(159) << "Initial setAxisHint @" << DbU::getValueString(getAxisHint()) << endl; if (_segment->getTrack()) { cerr << Bug( "RoutingEvent::create() - TrackElement is already inserted in a Track." @@ -227,7 +224,7 @@ namespace Kite { clone->_disabled = false; clone->_eventLevel = 0; - ltrace(200) << "RoutingEvent::clone() " << clone + cdebug.log(159) << "RoutingEvent::clone() " << clone << " (from: " << ")" << endl; return clone; @@ -236,7 +233,7 @@ namespace Kite { RoutingEvent::~RoutingEvent () { - ltrace(180) << "~RoutingEvent() " << endl; + cdebug.log(159) << "~RoutingEvent() " << endl; DataNegociate* data = _segment->getDataNegociate(); if ( data and (data->getRoutingEvent() == this) ) @@ -246,7 +243,7 @@ namespace Kite { void RoutingEvent::destroy () { - ltrace(180) << "RoutingEvent::destroy() " << this << endl; + cdebug.log(159) << "RoutingEvent::destroy() " << this << endl; if (_allocateds > 0) --_allocateds; delete this; @@ -277,7 +274,7 @@ namespace Kite { void RoutingEvent::setAxisHint ( DbU::Unit axis ) { - ltrace(200) << "setAxisHint @" << DbU::getValueString(axis) << " " << _segment << endl; + cdebug.log(159) << "setAxisHint @" << DbU::getValueString(axis) << " " << _segment << endl; _axisHint = axis; } @@ -301,7 +298,7 @@ namespace Kite { } _axisHint = parent->getAxis(); - ltrace(200) << "setAxisHintFromParent() - hint:" << DbU::getValueString(_axisHint) + cdebug.log(159) << "setAxisHintFromParent() - hint:" << DbU::getValueString(_axisHint) << " axis:" << DbU::getValueString(parent->getAxis()) << " parent:" << parent << endl; return; } @@ -315,14 +312,14 @@ namespace Kite { RoutingEvent* fork = NULL; if ( (getStage() != Repair) and isUnimplemented() ) { - ltrace(200) << "Reschedule: cancelled (Unimplemented) " + cdebug.log(159) << "Reschedule: cancelled (Unimplemented) " << " -> " << fork << endl; return NULL; } if (not isProcessed()) { fork = this; - ltrace(200) << "Reschedule/Self: " + cdebug.log(159) << "Reschedule/Self: " << " -> " << eventLevel << ":" << fork << endl; } else { @@ -331,7 +328,7 @@ namespace Kite { _segment->getDataNegociate()->setRoutingEvent( fork ); - ltrace(200) << "Reschedule/Fork: " + cdebug.log(159) << "Reschedule/Fork: " << " -> " << fork << endl; } @@ -397,22 +394,22 @@ namespace Kite { #endif } - DebugSession::open( _segment->getNet(), 148 ); + DebugSession::open( _segment->getNet(), 150, 160 ); - ltrace(500) << "Deter| Event " - << getProcesseds() - << "," << getEventLevel() - << "," << setw(6) << getPriority() - << ": " << _segment << endl; + cdebug.log(9000) << "Deter| Event " + << getProcesseds() + << "," << getEventLevel() + << "," << setw(6) << getPriority() + << ": " << _segment << endl; _processeds++; - ltracein(200); - ltrace(200) << "State: *before* " - << DataNegociate::getStateString(_segment->getDataNegociate()) - << " ripup:" << _segment->getDataNegociate()->getRipupCount() - << endl; - ltrace(149) << "Level: " << getEventLevel() - << ", area: " << _segment->getFreedomDegree() << endl; + cdebug.tabw(159,1); + cdebug.log(159) << "State: *before* " + << DataNegociate::getStateString(_segment->getDataNegociate()) + << " ripup:" << _segment->getDataNegociate()->getRipupCount() + << endl; + cdebug.log(159) << "Level: " << getEventLevel() + << ", area: " << _segment->getFreedomDegree() << endl; //_preCheck( _segment ); _eventLevel = 0; @@ -420,7 +417,7 @@ namespace Kite { if (_mode != Pack) history.push( this ); if ( isProcessed() or isDisabled() ) { - ltrace(200) << "Already processed or disabled." << endl; + cdebug.log(159) << "Already processed or disabled." << endl; } else { setProcessed(); setTimeStamp( _processeds ); @@ -434,7 +431,7 @@ namespace Kite { break; } } - ltraceout(200); + cdebug.tabw(159,-1); queue.repushInvalidateds(); Session::revalidate(); @@ -453,7 +450,7 @@ namespace Kite { void RoutingEvent::_processNegociate ( RoutingEventQueue& queue, RoutingEventHistory& history ) { - ltrace(200) << "* Mode:Negociation." << endl; + cdebug.log(159) << "* Mode:Negociation." << endl; SegmentFsm fsm ( this, queue, history ); @@ -462,23 +459,23 @@ namespace Kite { return; } - ltracein(200); + cdebug.tabw(159,1); fsm.getData()->incRipupCount(); size_t itrack = 0; for ( itrack = 0 ; itrack < fsm.getCosts().size() ; itrack++ ) - ltrace(200) << "| " << fsm.getCost(itrack) << endl; + cdebug.log(159) << "| " << fsm.getCost(itrack) << endl; itrack = 0; if ( (not isOverConstrained()) and Manipulator(_segment,fsm).canRipup() ) { if (fsm.getCosts().size() and fsm.getCost(itrack).isFree()) { - ltrace(200) << "Insert in free space " << this << endl; + cdebug.log(159) << "Insert in free space " << this << endl; resetInsertState(); _axisHistory = _segment->getAxis(); _eventLevel = 0; - ltrace(500) << "Deter| addInsertEvent() @" << fsm.getCost(itrack).getTrack() << endl; + cdebug.log(9000) << "Deter| addInsertEvent() @" << fsm.getCost(itrack).getTrack() << endl; if (not _segment->isReduced()) Session::addInsertEvent( _segment, fsm.getCost(itrack).getTrack() ); fsm.setState( SegmentFsm::SelfInserted ); @@ -488,13 +485,13 @@ namespace Kite { Manipulator(_segment,fsm).ripupPerpandiculars(); } else { if (Manipulator(_segment,fsm).canRipup(Manipulator::NotOnLastRipup)) { - if (inltrace(500)) { + if (cdebug.enabled(9000)) { for ( itrack=0 ; itracksetState( DataNegociate::Slacken ); } if (not fsm.slackenTopology()) { @@ -520,17 +517,17 @@ namespace Kite { fsm.doActions(); if (itrack < fsm.getCosts().size()) { - ltrace(200) << "Placed: @" << DbU::getValueString(fsm.getCost(itrack).getTrack()->getAxis()) + cdebug.log(159) << "Placed: @" << DbU::getValueString(fsm.getCost(itrack).getTrack()->getAxis()) << " " << this << endl; } - ltraceout(200); + cdebug.tabw(159,-1); } void RoutingEvent::_processPack ( RoutingEventQueue& queue, RoutingEventHistory& history ) { - ltrace(200) << "* Mode:Pack." << endl; + cdebug.log(159) << "* Mode:Pack." << endl; if (not _segment->isUTurn()) return; @@ -538,10 +535,10 @@ namespace Kite { if (fsm.getState() == SegmentFsm::MissingData ) return; if (fsm.getState() == SegmentFsm::EmptyTrackList) return; - ltracein(200); + cdebug.tabw(159,1); for ( size_t i = 0 ; i < fsm.getCosts().size() ; i++ ) - ltrace(200) << "| " << fsm.getCost(i) << endl; - ltraceout(200); + cdebug.log(159) << "| " << fsm.getCost(i) << endl; + cdebug.tabw(159,-1); if ( _segment->getTrack() and fsm.getCosts().size() @@ -557,10 +554,10 @@ namespace Kite { void RoutingEvent::_processRepair ( RoutingEventQueue& queue, RoutingEventHistory& history ) { - ltrace(200) << "* Mode:Repair." << endl; + cdebug.log(159) << "* Mode:Repair." << endl; if ( _segment->getTrack() != NULL ) { - ltrace(200) << "* Cancel: already in Track." << endl; + cdebug.log(159) << "* Cancel: already in Track." << endl; return; } @@ -568,13 +565,13 @@ namespace Kite { if (fsm.getState() == SegmentFsm::MissingData ) return; if (fsm.getState() == SegmentFsm::EmptyTrackList) return; - ltracein(200); + cdebug.tabw(159,1); for ( size_t i = 0 ; i < fsm.getCosts().size() ; i++ ) - ltrace(200) << "| " << fsm.getCost(i) << endl; - ltraceout(200); + cdebug.log(159) << "| " << fsm.getCost(i) << endl; + cdebug.tabw(159,-1); if (fsm.getCosts().size() and fsm.getCost(0).isFree()) { - ltrace(200) << "Insert in free space." << endl; + cdebug.log(159) << "Insert in free space." << endl; Session::addInsertEvent( _segment, fsm.getCost(0).getTrack() ); fsm.setState( SegmentFsm::SelfInserted ); } else { @@ -594,7 +591,7 @@ namespace Kite { queue.commit(); break; default: - ltrace(200) << "Repair failed." << endl; + cdebug.log(159) << "Repair failed." << endl; break; } } @@ -603,37 +600,36 @@ namespace Kite { void RoutingEvent::revalidate () { - DebugSession::open( _segment->getNet(), 148 ); + DebugSession::open( _segment->getNet(), 150, 160 ); - ltrace(200) << "RoutingEvent::revalidate() - " << this << endl; - ltracein(200); + cdebug.log(159,1) << "RoutingEvent::revalidate() - " << this << endl; //_dataNegociate->update(); setAxisHintFromParent(); - ltrace(200) << "axisHint:" << DbU::getValueString(getAxisHint()) << endl; + cdebug.log(159) << "axisHint:" << DbU::getValueString(getAxisHint()) << endl; _overConstrained = false; _segment->base()->getConstraints( _constraints ); _segment->base()->getOptimal ( _optimal ); - ltrace(200) << "Stage:" << RoutingEvent::getStage() << endl; + cdebug.log(159) << "Stage:" << RoutingEvent::getStage() << endl; if (RoutingEvent::getStage() == RoutingEvent::Repair) { if (_segment->isStrongTerminal(KbPropagate)) { - ltrace(200) << "Not expanding on Terminals:" << _constraints << endl; + cdebug.log(159) << "Not expanding on Terminals:" << _constraints << endl; } else { - ltrace(200) << "Expanding:" << _constraints << endl; + cdebug.log(159) << "Expanding:" << _constraints << endl; _constraints.inflate( Session::getSliceHeight() ); - ltrace(200) << "Expanding (after):" << _constraints << endl; + cdebug.log(159) << "Expanding (after):" << _constraints << endl; } } - ltrace(200) << "| Raw Track Constraint: " << _constraints << endl; + cdebug.log(159) << "| Raw Track Constraint: " << _constraints << endl; _tracksNb = 0; Interval perpandicular = _constraints; perpandicular.intersection( getPerpandicularFree()); - ltrace(200) << "| Perpandicular Free: " << perpandicular << endl; + cdebug.log(159) << "| Perpandicular Free: " << perpandicular << endl; if (not perpandicular.isEmpty()) { RoutingPlane* plane = Session::getKiteEngine()->getRoutingPlaneByLayer(_segment->getLayer()); @@ -644,7 +640,7 @@ namespace Kite { ; track = track->getNextTrack(), _tracksNb++ ); } if (not _tracksNb) { - ltrace(200) << "| Reverting to pure constraints." << endl; + cdebug.log(159) << "| Reverting to pure constraints." << endl; RoutingPlane* plane = Session::getKiteEngine()->getRoutingPlaneByLayer(_segment->getLayer()); Track* track = plane->getTrackByPosition(_constraints.getVMin()); @@ -653,7 +649,7 @@ namespace Kite { ; track = track->getNextTrack(), _tracksNb++ ); } if (not _tracksNb) { - ltrace(200) << "| Pure constraints are too tight." << endl; + cdebug.log(159) << "| Pure constraints are too tight." << endl; if (_segment->base()) _overConstrained = _segment->base()->getAutoSource()->isTerminal() and _segment->base()->getAutoTarget()->isTerminal(); @@ -663,8 +659,8 @@ namespace Kite { = (DbU::toLambda(_segment->getLength()) + 1.0) * (DbU::toLambda(_segment->base()->getSlack()) + 1.0); - ltrace(200) << _segment << " has " << _tracksNb << " choices " << perpandicular << endl; - ltraceout(200); + cdebug.log(159) << _segment << " has " << _tracksNb << " choices " << perpandicular << endl; + cdebug.tabw(159,-1); DebugSession::close(); } diff --git a/kite/src/RoutingEventQueue.cpp b/kite/src/RoutingEventQueue.cpp index ac18b2f1..0270f64e 100644 --- a/kite/src/RoutingEventQueue.cpp +++ b/kite/src/RoutingEventQueue.cpp @@ -36,9 +36,6 @@ namespace Kite { using std::pop_heap; using Hurricane::tab; - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::Bug; @@ -92,8 +89,7 @@ namespace Kite { void RoutingEventQueue::commit () { - ltrace(200) << "RoutingEventQueue::commit()" << endl; - ltracein(200); + cdebug.log(159,1) << "RoutingEventQueue::commit()" << endl; size_t addeds = _pushRequests.size(); size_t before = _events.size(); @@ -105,7 +101,7 @@ namespace Kite { _topEventLevel = max( _topEventLevel, (*ipushEvent)->getEventLevel() ); _events.insert( (*ipushEvent) ); - ltrace(200) << "| " << (*ipushEvent) << endl; + cdebug.log(159) << "| " << (*ipushEvent) << endl; } _pushRequests.clear(); #if defined(CHECK_ROUTINGEVENT_QUEUE) @@ -117,7 +113,7 @@ namespace Kite { , addeds,(after-before) ) << endl; } - ltraceout(200); + cdebug.tabw(159,-1); } diff --git a/kite/src/RoutingPlane.cpp b/kite/src/RoutingPlane.cpp index 029b3ae0..3214783c 100644 --- a/kite/src/RoutingPlane.cpp +++ b/kite/src/RoutingPlane.cpp @@ -40,9 +40,6 @@ namespace Kite { using std::cerr; using std::endl; using Hurricane::tab; - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::Error; using Hurricane::Box; using Hurricane::Cell; @@ -79,16 +76,15 @@ namespace Kite { void RoutingPlane::destroy () { - ltrace(90) << "RoutingPlane::destroy() - " - << (void*)this << " " << this << endl; - ltracein(90); + cdebug.log(155,1) << "RoutingPlane::destroy() - " + << (void*)this << " " << this << endl; for ( size_t index=0 ; index<_tracks.size() ; ++index ) _tracks[index]->destroy(); delete this; - ltraceout(90); + cdebug.tabw(155,-1); } diff --git a/kite/src/SegmentFsm.cpp b/kite/src/SegmentFsm.cpp index 2cb57611..b775691f 100644 --- a/kite/src/SegmentFsm.cpp +++ b/kite/src/SegmentFsm.cpp @@ -160,7 +160,7 @@ namespace { void UnionIntervals::addInterval ( Interval& interval ) { - ltrace(200) << "UnionInterval::addInterval() - " << interval << endl; + cdebug.log(159) << "UnionInterval::addInterval() - " << interval << endl; list::iterator iintv = _intervals.begin (); @@ -337,9 +337,6 @@ namespace Kite { using std::sort; using Hurricane::tab; - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::DebugSession; using Hurricane::Bug; using Hurricane::ForEachIterator; @@ -367,12 +364,12 @@ namespace Kite { // "_immediate" ripup flags was associated with "perpandicular", as they // must be re-inserted *before* any parallel. Must look to solve the redundancy. - DebugSession::open( _segment->getNet(), 200 ); + DebugSession::open( _segment->getNet(), 150, 160 ); if (_type & Perpandicular) { - ltrace(200) << "* Riping Pp " << _segment << endl; + cdebug.log(159) << "* Riping Pp " << _segment << endl; } else { - ltrace(200) << "* Riping // " << _segment << endl; + cdebug.log(159) << "* Riping // " << _segment << endl; } if (_segment->isFixed()) { DebugSession::close(); return true; } @@ -398,7 +395,7 @@ namespace Kite { } if ( (_type & AxisHint) /*and not _segment->isSlackenDogleg()*/ ) { - ltrace(200) << "Setting Axis Hint: @" << DbU::getValueString(_axisHint) << endl; + cdebug.log(159) << "Setting Axis Hint: @" << DbU::getValueString(_axisHint) << endl; event->setAxisHint( _axisHint ); } @@ -406,7 +403,7 @@ namespace Kite { // There should be no need to move the axis of the segment to be inserted, // it will automatically slot into the empty track, if any. if (_type & MoveToAxis) { - ltrace(200) << "Moving Axis To: @" << DbU::getValueString(_axisHint) << endl; + cdebug.log(159) << "Moving Axis To: @" << DbU::getValueString(_axisHint) << endl; _segment->setAxis( _axisHint ); } @@ -472,29 +469,28 @@ namespace Kite { const Interval& perpandicular = _event->getPerpandicularFree(); - ltrace(148) << "Katabatic intervals:" << endl; - ltrace(148) << "* Optimal: " << _optimal << endl; - ltrace(148) << "* Constraints: " << _constraint << endl; - ltrace(148) << "* Perpandicular: " << perpandicular << endl; - ltrace(148) << "* AxisHint: " << DbU::getValueString(_event->getAxisHint()) << endl; + cdebug.log(159) << "Katabatic intervals:" << endl; + cdebug.log(159) << "* Optimal: " << _optimal << endl; + cdebug.log(159) << "* Constraints: " << _constraint << endl; + cdebug.log(159) << "* Perpandicular: " << perpandicular << endl; + cdebug.log(159) << "* AxisHint: " << DbU::getValueString(_event->getAxisHint()) << endl; if (_event->getTracksNb()) { if (_constraint.getIntersection(perpandicular).isEmpty()) { - ltrace(200) << "Perpandicular free is too tight." << endl; + cdebug.log(159) << "Perpandicular free is too tight." << endl; _state = EmptyTrackList; } else _constraint.intersection( perpandicular ); } else { - ltrace(200) << "No Track in perpandicular free." << endl; + cdebug.log(159) << "No Track in perpandicular free." << endl; _state = EmptyTrackList; } if (_state == EmptyTrackList) return; - ltrace(148) << "Negociate intervals:" << endl; - ltrace(148) << "* Optimal: " << _optimal << endl; - ltrace(148) << "* Constraints: " << _constraint << endl; - ltracein(148); + cdebug.log(159) << "Negociate intervals:" << endl; + cdebug.log(159) << "* Optimal: " << _optimal << endl; + cdebug.log(159,1) << "* Constraints: " << _constraint << endl; // if ( segment->isLocal() and (_data->getState() >= DataNegociate::MaximumSlack) ) // _constraint.inflate ( 0, DbU::lambda(1.0) ); @@ -515,7 +511,7 @@ namespace Kite { _costs.back().setAxisWeight ( _event->getAxisWeight(track->getAxis()) ); _costs.back().incDeltaPerpand( _data->getWiringDelta(track->getAxis()) ); if (segment->isGlobal()) { - ltrace(500) << "Deter| setForGlobal() on " << track << endl; + cdebug.log(9000) << "Deter| setForGlobal() on " << track << endl; _costs.back().setForGlobal(); } @@ -531,9 +527,9 @@ namespace Kite { if ( _fullBlocked and (not _costs.back().isBlockage() and not _costs.back().isFixed()) ) _fullBlocked = false; - ltrace(149) << "| " << _costs.back() << ((_fullBlocked)?" FB ": " -- ") << track << endl; + cdebug.log(159) << "| " << _costs.back() << ((_fullBlocked)?" FB ": " -- ") << track << endl; } - ltraceout(148); + cdebug.tabw(159,-1); if (_costs.empty()) { Track* nearest = plane->getTrackByPosition(_constraint.getCenter()); @@ -561,7 +557,7 @@ namespace Kite { flags |= (RoutingEvent::getStage() == RoutingEvent::Repair) ? TrackCost::IgnoreSharedLength : 0; if (flags & TrackCost::DiscardGlobals) { - ltrace(200) << "TrackCost::Compare() - DiscardGlobals" << endl; + cdebug.log(159) << "TrackCost::Compare() - DiscardGlobals" << endl; } sort( _costs.begin(), _costs.end(), TrackCost::Compare(flags) ); @@ -579,14 +575,14 @@ namespace Kite { { if ( not segment->isFixed() ) { _actions.push_back ( SegmentAction(segment,type,axisHint,toSegmentFsm) ); - ltrace(200) << "SegmentFsm::addAction(): " << segment << endl; + cdebug.log(159) << "SegmentFsm::addAction(): " << segment << endl; } } void SegmentFsm::doActions () { - ltrace(200) << "SegmentFsm::doActions() - " << _actions.size() << endl; + cdebug.log(159) << "SegmentFsm::doActions() - " << _actions.size() << endl; bool ripupOthersParallel = false; bool ripedByLocal = getEvent()->getSegment()->isLocal(); @@ -602,7 +598,7 @@ namespace Kite { if ( (_actions[i].getType() & SegmentAction::SelfInsert) and ripupOthersParallel ) _actions[i].setFlag ( SegmentAction::EventLevel3 ); - DebugSession::open ( _actions[i].getSegment()->getNet(), 200 ); + DebugSession::open ( _actions[i].getSegment()->getNet(), 150, 160 ); if ( not _actions[i].doAction(_queue) ) { cinfo << "[INFO] Failed action on " << _actions[i].getSegment() << endl; } @@ -615,7 +611,7 @@ namespace Kite { bool SegmentFsm::insertInTrack ( size_t i ) { - ltrace(200) << "SegmentFsm::insertInTrack() istate:" << _event->getInsertState() + cdebug.log(159) << "SegmentFsm::insertInTrack() istate:" << _event->getInsertState() << " track:" << i << endl; _event->incInsertState(); @@ -641,7 +637,7 @@ namespace Kite { RoutingEvent* event; TrackElement* segment = _event->getSegment(); - ltrace(200) << "SegmentFsm::conflictSolveByHistory()" << endl; + cdebug.log(159) << "SegmentFsm::conflictSolveByHistory()" << endl; size_t maxDepth = min( getHistory().size(), (size_t)300 ); size_t depth = 0; @@ -667,10 +663,10 @@ namespace Kite { if (sourceDogleg) { if (segment->isHorizontal()) { breakPoint = Point( minConflict, segment->getAxis() ); - ltrace(200) << breakPoint << endl; + cdebug.log(159) << breakPoint << endl; } else { breakPoint = Point( segment->getAxis(), minConflict ); - ltrace(200) << breakPoint << endl; + cdebug.log(159) << breakPoint << endl; } Katabatic::GCell* dogLegGCell = Session::getGCellUnder( breakPoint.getX(), breakPoint.getY() ); @@ -686,10 +682,10 @@ namespace Kite { if (not success and targetDogleg) { if (segment->isHorizontal()) { breakPoint = Point( maxConflict, segment->getAxis() ); - ltrace(200) << breakPoint << endl; + cdebug.log(159) << breakPoint << endl; } else { breakPoint = Point( segment->getAxis(), maxConflict ); - ltrace(200) << breakPoint << endl; + cdebug.log(159) << breakPoint << endl; } Katabatic::GCell* dogLegGCell = Session::getGCellUnder( breakPoint.getX(), breakPoint.getY() ); @@ -703,14 +699,14 @@ namespace Kite { } } } else { - ltrace(200) << "No disloggers found @" << DbU::getValueString(segment->getAxis()) << endl; + cdebug.log(159) << "No disloggers found @" << DbU::getValueString(segment->getAxis()) << endl; Interval freeSpan = Session::getKiteEngine()-> getTrackByPosition(segment->getLayer(),segment->getAxis())-> getFreeInterval(segment->getSourceU(),segment->getNet()); if (freeSpan.contains(segment->getCanonicalInterval())) { - ltrace(200) << "Disloggers vanished, Segment can be re-inserted." << endl; + cdebug.log(159) << "Disloggers vanished, Segment can be re-inserted." << endl; success = true; } } @@ -730,8 +726,8 @@ namespace Kite { | ((_data and (_data->getStateCount() < 2)) ? Manipulator::AllowExpand : Manipulator::NoExpand); - ltrace(200) << "SegmentFsm::conflictSolveByPlaceds()" << endl; - ltrace(200) << "| Candidates Tracks: " << endl; + cdebug.log(159) << "SegmentFsm::conflictSolveByPlaceds()" << endl; + cdebug.log(159) << "| Candidates Tracks: " << endl; segment->base()->getConstraints( constraints ); Interval overlap = segment->getCanonicalInterval(); @@ -763,29 +759,29 @@ namespace Kite { candidates.back().setBegin( begin ); candidates.back().setEnd ( end ); - ltrace(200) << "* " << track << " [" << begin << ":" << end << "]" << endl; + cdebug.log(159) << "* " << track << " [" << begin << ":" << end << "]" << endl; for ( ; (begin < end) ; ++begin ) { other = track->getSegment( begin ); if (other->getNet() == segment->getNet()) { - ltrace(200) << " | " << begin << " Same net: " << " " << other << endl; + cdebug.log(159) << " | " << begin << " Same net: " << " " << other << endl; continue; } if (not other->getCanonicalInterval().intersect(overlap)) { - ltrace(200) << " | " << begin << " No Conflict: " << " " << other << endl; + cdebug.log(159) << " | " << begin << " No Conflict: " << " " << other << endl; if (otherNet == NULL) candidates.back().setBegin( begin+1 ); continue; } - ltrace(200) << " | " << begin << " Conflict: " << " " << other << endl; + cdebug.log(159) << " | " << begin << " Conflict: " << " " << other << endl; if (otherNet != other->getNet()) { if (otherNet) { if (otherIsGlobal) { candidates.back().addConflict( otherOverlap ); - ltrace(200) << " | Other overlap G: " << otherOverlap << endl; + cdebug.log(159) << " | Other overlap G: " << otherOverlap << endl; } else { - ltrace(200) << " | Other overlap L: " << otherOverlap << " ignored." << endl; + cdebug.log(159) << " | Other overlap L: " << otherOverlap << " ignored." << endl; } } otherNet = other->getNet(); @@ -799,9 +795,9 @@ namespace Kite { if (not otherOverlap.isEmpty()) { if (otherIsGlobal) { candidates.back().addConflict( otherOverlap ); - ltrace(200) << " | Other overlap G: " << otherOverlap << endl; + cdebug.log(159) << " | Other overlap G: " << otherOverlap << endl; } else { - ltrace(200) << " | Other overlap L: " << otherOverlap << " ignored." << endl; + cdebug.log(159) << " | Other overlap L: " << otherOverlap << " ignored." << endl; } } @@ -811,14 +807,14 @@ namespace Kite { sort( candidates.begin(), candidates.end() ); for ( size_t icandidate=0 ; icandidateisGlobal()) { - ltrace(200) << "conflictSolveByPlaceds() - Conflict with global, other move up" << endl; + cdebug.log(159) << "conflictSolveByPlaceds() - Conflict with global, other move up" << endl; if ((success = Manipulator(other,*this).moveUp())) break; } - ltrace(200) << "conflictSolveByPlaceds() - Relaxing self" << endl; + cdebug.log(159) << "conflictSolveByPlaceds() - Relaxing self" << endl; if (Manipulator(segment,*this).relax(overlap0,relaxFlags)) { success = true; @@ -843,7 +839,7 @@ namespace Kite { if ( not canMoveUp and (relaxFlags != Manipulator::NoExpand) and Manipulator(segment,*this).relax(overlap0,Manipulator::NoExpand|Manipulator::NoDoglegReuse) ) { - ltrace(200) << "Cannot move up but successful narrow breaking." << endl; + cdebug.log(159) << "Cannot move up but successful narrow breaking." << endl; success = true; break; } @@ -851,8 +847,8 @@ namespace Kite { } if ( not success and segment->isGlobal() and (_costs.size() <= 1) ) { - ltrace(200) << "Overconstrained perpandiculars, rip them up. On track:" << endl; - ltrace(200) << " " << track << endl; + cdebug.log(159) << "Overconstrained perpandiculars, rip them up. On track:" << endl; + cdebug.log(159) << " " << track << endl; Manipulator(segment,*this).ripupPerpandiculars (); success = true; } @@ -864,7 +860,7 @@ namespace Kite { bool SegmentFsm::solveTerminalVsGlobal () { TrackElement* segment = getEvent()->getSegment(); - ltrace(200) << "SegmentFsm::solveTerminalVsGlobal: " << " " << segment << endl; + cdebug.log(159) << "SegmentFsm::solveTerminalVsGlobal: " << " " << segment << endl; if (not (segment->isTerminal() and segment->isLocal())) return false; @@ -882,9 +878,9 @@ namespace Kite { if (not other->isGlobal()) continue; if (not otherOverlap.contains(overlap)) continue; - ltrace(200) << "| Global candidate:" << other << endl; + cdebug.log(159) << "| Global candidate:" << other << endl; if (Manipulator(other,*this).moveUp(Manipulator::AllowTerminalMoveUp)) { - ltrace(200) << "| Global candidate selected." << endl; + cdebug.log(159) << "| Global candidate selected." << endl; return true; } } @@ -899,14 +895,13 @@ namespace Kite { bool success = false; TrackElement* segment = getEvent()->getSegment(); - ltrace(200) << "SegmentFsm::solveFullBlockages: " << " " << segment << endl; - ltracein(200); + cdebug.log(159,1) << "SegmentFsm::solveFullBlockages: " << " " << segment << endl; if ( segment->isLocal() ) { success = Manipulator(segment,*this).pivotUp(); if ( not success ) { - ltrace(200) << "Tightly constrained local segment overlapping a blockage, move up." << endl; - ltrace(200) << segment << endl; + cdebug.log(159) << "Tightly constrained local segment overlapping a blockage, move up." << endl; + cdebug.log(159) << segment << endl; success = Manipulator(segment,*this).moveUp (Manipulator::AllowLocalMoveUp|Manipulator::AllowTerminalMoveUp); } @@ -923,7 +918,7 @@ namespace Kite { if ( other->getNet() == segment->getNet() ) continue; if ( not otherOverlap.intersect(overlap) ) continue; - ltrace(200) << "| " << begin << " Blockage conflict: " << " " << other << endl; + cdebug.log(159) << "| " << begin << " Blockage conflict: " << " " << other << endl; if ( (success = Manipulator(segment,*this).relax (otherOverlap,Manipulator::NoDoglegReuse|Manipulator::NoExpand)) ) { break; @@ -933,25 +928,24 @@ namespace Kite { if ( not success ) { cparanoid << Error( "Tighly constrained segment overlapping a blockage:\n %s" , getString(segment).c_str() ) << endl; - ltrace(200) << "Segment is hard blocked, bypass to Unimplemented." << endl; + cdebug.log(159) << "Segment is hard blocked, bypass to Unimplemented." << endl; } - ltraceout(200); + cdebug.tabw(159,-1); return success; } bool SegmentFsm::desaturate () { - ltrace(200) << "SegmentFsm::desaturate()" << endl; - ltracein(200); + cdebug.log(159,1) << "SegmentFsm::desaturate()" << endl; size_t itrack = 0; #if THIS_IS_DISABLED TrackElement* segment = _event->getSegment(); for ( ; itrackgetSegment(i); - ltrace(200) << "* Looking // " << segment2 << endl; + cdebug.log(159) << "* Looking // " << segment2 << endl; if ( segment2->getNet() == ownerNet ) continue; if ( not toFree.intersect(segment2->getCanonicalInterval()) ) continue; @@ -975,12 +969,12 @@ namespace Kite { DataNegociate* data2 = segment2->getDataNegociate(); if ( not data2 ) { - ltrace(200) << "No DataNegociate, ignoring." << endl; + cdebug.log(159) << "No DataNegociate, ignoring." << endl; success = false; continue; } - ltrace(200) << "- Forced moveUp " << segment2 << endl; + cdebug.log(159) << "- Forced moveUp " << segment2 << endl; if ( not (success=Manipulator(segment2,*this).moveUp(Manipulator::AllowTerminalMoveUp)) ) { continue; } @@ -998,7 +992,7 @@ namespace Kite { } #endif - ltraceout(200); + cdebug.tabw(159,-1); return (itrack < _costs.size()); } @@ -1006,7 +1000,7 @@ namespace Kite { bool SegmentFsm::_slackenStrap ( TrackElement*& segment, DataNegociate*& data, unsigned int flags ) { - ltrace(200) << "Strap segment Fsm." << endl; + cdebug.log(159) << "Strap segment Fsm." << endl; bool success = false; unsigned int nextState = data->getState(); @@ -1038,7 +1032,7 @@ namespace Kite { if (not (flags&NoTransition)) { data->setState( nextState ); - ltrace(200) << "Incrementing state (after): " << nextState << " count:" << data->getStateCount() << endl; + cdebug.log(159) << "Incrementing state (after): " << nextState << " count:" << data->getStateCount() << endl; } return success; @@ -1047,7 +1041,7 @@ namespace Kite { bool SegmentFsm::_slackenLocal ( TrackElement*& segment, DataNegociate*& data, unsigned int flags ) { - ltrace(200) << "Local segment Fsm." << endl; + cdebug.log(159) << "Local segment Fsm." << endl; bool success = false; unsigned int nextState = data->getState(); @@ -1059,7 +1053,7 @@ namespace Kite { if (success) break; case DataNegociate::Minimize: if (isFullBlocked() and not segment->isTerminal()) { - ltrace(200) << "Is Fully blocked." << endl; + cdebug.log(159) << "Is Fully blocked." << endl; nextState = DataNegociate::Unimplemented; break; } @@ -1115,7 +1109,7 @@ namespace Kite { if (not (flags&NoTransition)) { data->setState( nextState ); - ltrace(200) << "Incrementing state (after): " << nextState << " count:" << data->getStateCount() << endl; + cdebug.log(159) << "Incrementing state (after): " << nextState << " count:" << data->getStateCount() << endl; } return success; @@ -1131,17 +1125,17 @@ namespace Kite { case DataNegociate::RipupPerpandiculars: case DataNegociate::Minimize: case DataNegociate::Dogleg: - ltrace(200) << "Global, SegmentFsm: RipupPerpandiculars." << endl; + cdebug.log(159) << "Global, SegmentFsm: RipupPerpandiculars." << endl; nextState = DataNegociate::Slacken; break; case DataNegociate::Slacken: - ltrace(200) << "Global, SegmentFsm: Slacken." << endl; + cdebug.log(159) << "Global, SegmentFsm: Slacken." << endl; if ((success = Manipulator(segment,*this).slacken(KbHalfSlacken))) { nextState = DataNegociate::RipupPerpandiculars; break; } case DataNegociate::MoveUp: - ltrace(200) << "Global, SegmentFsm: MoveUp." << endl; + cdebug.log(159) << "Global, SegmentFsm: MoveUp." << endl; if ((success = Manipulator(segment,*this).moveUp(Manipulator::AllowShortPivotUp))) { break; } @@ -1149,7 +1143,7 @@ namespace Kite { break; case DataNegociate::ConflictSolveByHistory: case DataNegociate::ConflictSolveByPlaceds: - ltrace(200) << "Global, SegmentFsm: ConflictSolveByHistory or ConflictSolveByPlaceds." << endl; + cdebug.log(159) << "Global, SegmentFsm: ConflictSolveByHistory or ConflictSolveByPlaceds." << endl; if ((success = conflictSolveByPlaceds())) { if (segment->canMoveUp(1.0,Katabatic::KbCheckLowDensity)) nextState = DataNegociate::MoveUp; @@ -1166,7 +1160,7 @@ namespace Kite { break; } case DataNegociate::Unimplemented: - ltrace(200) << "Global, SegmentFsm: MaximumSlack or Unimplemented." << endl; + cdebug.log(159) << "Global, SegmentFsm: MaximumSlack or Unimplemented." << endl; nextState = DataNegociate::Unimplemented; break; } @@ -1186,12 +1180,12 @@ namespace Kite { if (not (flags&NoTransition)) { if (data->getChildSegment()) { TrackElement* child = segment; - ltrace(200) << "Incrementing state of childs (after): " << endl; + cdebug.log(159) << "Incrementing state of childs (after): " << endl; while ( child ) { - ltrace(200) << "| " << child << endl; + cdebug.log(159) << "| " << child << endl; if (child->base()->isGlobal()) { child->getDataNegociate()->setState( nextState ); - ltrace(200) << "| Update:" << nextState << " count:" << child->getDataNegociate()->getStateCount() << endl; + cdebug.log(159) << "| Update:" << nextState << " count:" << child->getDataNegociate()->getStateCount() << endl; } TrackElement* parent = child; child = parent->getDataNegociate()->getChildSegment(); @@ -1199,8 +1193,8 @@ namespace Kite { } } else { data->setState( nextState ); - ltrace(200) << "Incrementing state (after): " << segment << endl; - ltrace(200) << "| " << nextState << " count:" << data->getStateCount() << endl; + cdebug.log(159) << "Incrementing state (after): " << segment << endl; + cdebug.log(159) << "| " << nextState << " count:" << data->getStateCount() << endl; } } @@ -1215,12 +1209,11 @@ namespace Kite { DataNegociate* data = segment->getDataNegociate (); unsigned int actionFlags = SegmentAction::SelfInsert|SegmentAction::EventLevel5; - DebugSession::open( segment->getNet(), 200 ); - ltrace(200) << "Slacken Topology for " << segment->getNet() - << " " << segment << endl; - ltracein(200); + DebugSession::open( segment->getNet(), 150, 160 ); + cdebug.log(159,1) << "Slacken Topology for " << segment->getNet() + << " " << segment << endl; - if (not segment or not data) { ltraceout(200); DebugSession::close(); return false; } + if (not segment or not data) { cdebug.tabw(159,-1); DebugSession::close(); return false; } _event->resetInsertState(); data->resetRipupCount(); @@ -1239,7 +1232,7 @@ namespace Kite { } } - ltraceout(200); + cdebug.tabw(159,-1); DebugSession::close(); return success; diff --git a/kite/src/Session.cpp b/kite/src/Session.cpp index 639f4c8e..bfd75940 100644 --- a/kite/src/Session.cpp +++ b/kite/src/Session.cpp @@ -42,9 +42,6 @@ namespace Kite { using std::cerr; using std::endl; using Hurricane::tab; - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::Error; using Hurricane::Bug; using Hurricane::Point; @@ -78,7 +75,7 @@ namespace Kite { Session* Session::open ( KiteEngine* kite ) { - ltrace(110) << "Kite::Session::open()" << endl; + cdebug.log(159) << "Kite::Session::open()" << endl; Session* session = Session::get(); if (session) { @@ -154,8 +151,7 @@ namespace Kite { size_t Session::_revalidate () { - ltrace(150) << "Kite::Session::_revalidate()" << endl; - ltracein(150); + cdebug.log(159,1) << "Kite::Session::_revalidate()" << endl; _doRemovalEvents(); @@ -172,7 +168,7 @@ namespace Kite { set::const_iterator idestroyed = destroyeds.begin(); for ( ; idestroyed != destroyeds.end() ; ++idestroyed ) { if (lookup(*idestroyed)) { - ltraceout(90); + cdebug.tabw(155,-1); throw Error( "Destroyed AutoSegment is associated with a TrackSegment\n" " (%s)" , getString(*idestroyed).c_str()); @@ -239,18 +235,18 @@ namespace Kite { revalidateds[i]->reduce(); TrackElement* trackSegment = lookup( revalidateds[i] ); if (trackSegment->getTrack()) _addRemoveEvent( trackSegment ); - ltrace(150) << "Session: reduce:" << revalidateds[i] << endl; + cdebug.log(159) << "Session: reduce:" << revalidateds[i] << endl; } if (revalidateds[i]->mustRaise()) { revalidateds[i]->raise(); lookup( revalidateds[i] )->reschedule( 0 ); - ltrace(150) << "Session: raise:" << revalidateds[i] << endl; + cdebug.log(159) << "Session: raise:" << revalidateds[i] << endl; } } _doRemovalEvents(); - ltraceout(150); + cdebug.tabw(159,-1); return count; } @@ -285,7 +281,7 @@ namespace Kite { void Session::_addInsertEvent ( TrackElement* segment, Track* track ) { - ltrace(200) << "addInsertEvent() " << segment + cdebug.log(159) << "addInsertEvent() " << segment << "\n @" << track << endl; if ( segment->getTrack() != NULL ) { @@ -311,7 +307,7 @@ namespace Kite { return; } - ltrace(200) << "Ripup: @" << DbU::getValueString(segment->getAxis()) << " " << segment << endl; + cdebug.log(159) << "Ripup: @" << DbU::getValueString(segment->getAxis()) << " " << segment << endl; _removeEvents.push_back( Event(segment,segment->getTrack()) ); _addSortEvent( segment->getTrack(), true ); } diff --git a/kite/src/Track.cpp b/kite/src/Track.cpp index 67d154b8..8f4740ed 100644 --- a/kite/src/Track.cpp +++ b/kite/src/Track.cpp @@ -54,9 +54,6 @@ namespace Kite { using std::sort; using Hurricane::dbo_ptr; using Hurricane::tab; - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::Warning; using Hurricane::Bug; using Hurricane::Layer; @@ -89,13 +86,12 @@ namespace Kite { Track::~Track () - { ltrace(90) << "Track::~Track() - " << (void*)this << endl; } + { cdebug.log(155) << "Track::~Track() - " << (void*)this << endl; } void Track::_preDestroy () { - ltrace(90) << "Track::_preDestroy() - " << (void*)this << " " << this << endl; - ltracein(90); + cdebug.log(155,1) << "Track::_preDestroy() - " << (void*)this << " " << this << endl; for ( size_t i=0 ; i<_segments.size() ; i++ ) if (_segments[i]) { _segments[i]->detach(); _segments[i]->destroy(); } @@ -103,13 +99,13 @@ namespace Kite { for ( size_t i=0 ; i<_markers.size() ; i++ ) if (_markers[i]) _markers[i]->destroy(); - ltraceout(90); + cdebug.tabw(155,-1); } void Track::destroy () { - ltrace(90) << "Track::destroy() - " << (void*)this << " " << this << endl; + cdebug.log(155) << "Track::destroy() - " << (void*)this << " " << this << endl; Track::_preDestroy(); delete this; @@ -176,7 +172,7 @@ namespace Kite { TrackElement* Track::getPrevious ( size_t& index, Net* net ) const { for ( index-- ; index != npos ; index-- ) { - if (inltrace(148)) { + if (cdebug.enabled()) { cerr << tab << index << ":"; cerr.flush(); cerr << _segments[index] << endl; } @@ -279,7 +275,7 @@ namespace Kite { if (_segments[end]->getSourceU() >= interval.getVMax()) break; } - ltrace(190) << "Track::getOverlapBounds(): begin:" << begin << " end:" << end << endl; + cdebug.log(159) << "Track::getOverlapBounds(): begin:" << begin << " end:" << end << endl; } @@ -291,13 +287,11 @@ namespace Kite { { TrackCost cost ( const_cast(this), interval, begin, end, net, flags ); - ltrace(190) << "getOverlapCost() @" << DbU::getValueString(_axis) - << " [" << DbU::getValueString(interval.getVMin()) - << ":" << DbU::getValueString(interval.getVMax()) - << "] <-> [" << begin << ":" << end << "]" - << endl; - - ltracein(148); + cdebug.log(159,1) << "getOverlapCost() @" << DbU::getValueString(_axis) + << " [" << DbU::getValueString(interval.getVMin()) + << ":" << DbU::getValueString(interval.getVMax()) + << "] <-> [" << begin << ":" << end << "]" + << endl; vector::const_iterator lowerBound = lower_bound( _markers.begin(), _markers.end(), interval.getVMin(), TrackMarker::Compare() ); @@ -305,16 +299,16 @@ namespace Kite { for ( ; (mbegin < _markers.size()) and (_markers[mbegin]->getSourceU() <= interval.getVMax()) ; mbegin++ ) { - ltrace(148) << "| @" << DbU::getValueString(_axis) << _markers[mbegin] << endl; + cdebug.log(159) << "| @" << DbU::getValueString(_axis) << _markers[mbegin] << endl; if ( _markers[mbegin]->getNet() != net ) { - ltrace(148) << "* Mark: @" << DbU::getValueString(_axis) << " " << _markers[mbegin] << endl; + cdebug.log(159) << "* Mark: @" << DbU::getValueString(_axis) << " " << _markers[mbegin] << endl; cost.incTerminals( _markers[mbegin]->getWeight(this) ); } } if (begin == npos) { - ltrace(148) << " begin == npos (after last TrackElement)." << endl; - ltraceout(148); + cdebug.log(159) << " begin == npos (after last TrackElement)." << endl; + cdebug.tabw(159,-1); return cost; } @@ -323,12 +317,12 @@ namespace Kite { if ( _segments[begin]->getNet() == net ) { cost.incDeltaShared ( overlap.getSize() ); } - ltrace(190) << "| overlap: " << _segments[begin] << endl; + cdebug.log(159) << "| overlap: " << _segments[begin] << endl; _segments[begin]->incOverlapCost( net, cost ); if (cost.isInfinite()) break; } - ltraceout(148); + cdebug.tabw(159,-1); return cost; } @@ -351,9 +345,8 @@ namespace Kite { void Track::getTerminalWeight ( Interval interval, Net* net, size_t& count, unsigned int& weight ) const { - ltrace(148) << "getTerminalWeight() @" << DbU::getValueString(_axis) - << " [" << interval.getVMin() << " " << interval.getVMax() << "]" << endl; - ltracein(148); + cdebug.log(159,1) << "getTerminalWeight() @" << DbU::getValueString(_axis) + << " [" << interval.getVMin() << " " << interval.getVMax() << "]" << endl; //count = 0; //weight = 0; @@ -364,14 +357,14 @@ namespace Kite { for ( ; (mbegin < _markers.size()) && (_markers[mbegin]->getSourceU() <= interval.getVMax()) ; mbegin++ ) { - ltrace(148) << "| @" << DbU::getValueString(_axis) << _markers[mbegin] << endl; + cdebug.log(159) << "| @" << DbU::getValueString(_axis) << _markers[mbegin] << endl; if ( _markers[mbegin]->getNet() == net ) { - ltrace(200) << "* Mark: @" << DbU::getValueString(_axis) << " " << _markers[mbegin] << endl; + cdebug.log(159) << "* Mark: @" << DbU::getValueString(_axis) << " " << _markers[mbegin] << endl; weight += _markers[mbegin]->getWeight(this); ++count; } } - ltraceout(148); + cdebug.tabw(159,-1); } @@ -457,9 +450,9 @@ namespace Kite { void Track::insert ( TrackElement* segment ) { - // ltrace(500) << "Deter| Track::insert() " << getLayer()->getName() + // cdebug.log(9000) << "Deter| Track::insert() " << getLayer()->getName() // << " @" << DbU::getValueString(getAxis()) << " " << segment << endl; - ltrace(200) << "Track::insert() " << getLayer()->getName() + cdebug.log(159) << "Track::insert() " << getLayer()->getName() << " @" << DbU::getValueString(getAxis()) << " " << segment << endl; if ( (getLayer()->getMask() != segment->getLayer()->getMask()) @@ -489,7 +482,7 @@ namespace Kite { bool holes = false; if (message) cerr << " o Checking Track - " << message << endl; - ltrace(90) << (void*)this << ":" << this << endl; + cdebug.log(155) << (void*)this << ":" << this << endl; for ( size_t i=0 ; i<_segments.size() ; i++ ) { if (_segments[i]) { @@ -630,8 +623,7 @@ namespace Kite { size_t Track::doRemoval () { - ltrace(148) << "Track::doRemoval() - " << this << endl; - ltracein(148); + cdebug.log(159,1) << "Track::doRemoval() - " << this << endl; size_t size = _segments.size(); @@ -640,8 +632,8 @@ namespace Kite { _segments.erase( beginRemove, _segments.end() ); - ltrace(148) << "After doRemoval " << this << endl; - ltraceout(148); + cdebug.log(159) << "After doRemoval " << this << endl; + cdebug.tabw(159,-1); return size - _segments.size(); } @@ -649,7 +641,7 @@ namespace Kite { void Track::doReorder () { - ltrace(200) << "Track::doReorder() " << this << endl; + cdebug.log(159) << "Track::doReorder() " << this << endl; if (not _segmentsValid ) { std::sort ( _segments.begin(), _segments.end(), SegmentCompare() ); diff --git a/kite/src/TrackElement.cpp b/kite/src/TrackElement.cpp index 13721409..3a2a19e4 100644 --- a/kite/src/TrackElement.cpp +++ b/kite/src/TrackElement.cpp @@ -52,9 +52,6 @@ namespace { namespace Kite { - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::tab; using Hurricane::Bug; using Hurricane::Net; @@ -104,7 +101,7 @@ namespace Kite { TrackElement* segment = getOwner(); if (flags & AutoSegment::Invalidate) { if (not segment->isInvalidated()) { - ltrace(200) << "::notify() on " << segment << endl; + cdebug.log(159) << "::notify() on " << segment << endl; segment->invalidate(); } } @@ -112,7 +109,7 @@ namespace Kite { if (flags & AutoSegment::Revalidate) { // Revalidation must be delayed until *all* the AutoSegments have been revalidated. // if (segment->isInvalidated()) { - // ltrace(200) << "::notify() on " << segment << endl; + // cdebug.log(159) << "::notify() on " << segment << endl; // segment->revalidate( true ); // } } diff --git a/kite/src/TrackElements.cpp b/kite/src/TrackElements.cpp index 3ef8d438..e9091b12 100644 --- a/kite/src/TrackElements.cpp +++ b/kite/src/TrackElements.cpp @@ -25,9 +25,6 @@ namespace Kite { using namespace std; using Hurricane::tab; - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::ForEachIterator; using Hurricane::Interval; using Hurricane::Bug; @@ -42,8 +39,8 @@ namespace Kite { , _locator (segment->base()) , _element (NULL) { - ltrace(80) << "TrackElements_Perpandiculars::Locator::Locator()" << endl; - ltrace(80) << " " << segment << endl; + cdebug.log(155) << "TrackElements_Perpandiculars::Locator::Locator()" << endl; + cdebug.log(155) << " " << segment << endl; Interval bounds; if ( _locator.isValid() ) { @@ -62,7 +59,7 @@ namespace Kite { void TrackElements_Perpandiculars::Locator::progress () { - ltrace(80) << "TrackElements_Perpandiculars::Locator::progress()" << endl; + cdebug.log(155) << "TrackElements_Perpandiculars::Locator::progress()" << endl; Interval bounds; while ( _locator.isValid() ) { diff --git a/kite/src/TrackFixedSegment.cpp b/kite/src/TrackFixedSegment.cpp index 76bc61d8..5c51bf43 100644 --- a/kite/src/TrackFixedSegment.cpp +++ b/kite/src/TrackFixedSegment.cpp @@ -40,9 +40,6 @@ namespace Kite { using namespace std; - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::tab; using Hurricane::Warning; using Hurricane::ForEachIterator; @@ -162,7 +159,7 @@ namespace Kite { void TrackFixedSegment::_preDestroy () { - ltrace(90) << "TrackFixedSegment::_preDestroy() - " << (void*)this << endl; + cdebug.log(155) << "TrackFixedSegment::_preDestroy() - " << (void*)this << endl; TrackElement::_preDestroy(); } @@ -176,8 +173,8 @@ namespace Kite { trackFixedSegment = new TrackFixedSegment ( track, segment ); trackFixedSegment->_postCreate(); - ltrace(190) << "Adding: " << segment << " on " << track << endl; - ltrace(200) << "TrackFixedSegment::create(): " << trackFixedSegment << endl; + cdebug.log(159) << "Adding: " << segment << " on " << track << endl; + cdebug.log(159) << "TrackFixedSegment::create(): " << trackFixedSegment << endl; Session::addInsertEvent( trackFixedSegment, track ); } diff --git a/kite/src/TrackSegment.cpp b/kite/src/TrackSegment.cpp index 011b0066..ca628e34 100644 --- a/kite/src/TrackSegment.cpp +++ b/kite/src/TrackSegment.cpp @@ -37,9 +37,6 @@ namespace Kite { using namespace std; - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::tab; using Hurricane::ForEachIterator; using Hurricane::Bug; @@ -69,8 +66,8 @@ namespace Kite { , _data (NULL) , _dogLegLevel (0) { - ltrace(99) << "CTOR TrackSegment " << (void*)this << ":" << this << endl; - ltrace(99) << " over " << (void*)segment << ":" << segment << endl; + cdebug.log(155) << "CTOR TrackSegment " << (void*)this << ":" << this << endl; + cdebug.log(155) << " over " << (void*)segment << ":" << segment << endl; setFlags( TElemCreated|TElemLocked ); if (segment) { @@ -100,7 +97,7 @@ namespace Kite { void TrackSegment::_preDestroy () { - ltrace(90) << "TrackSegment::_preDestroy() - " << (void*)this + cdebug.log(155) << "TrackSegment::_preDestroy() - " << (void*)this << " [" << (void*)_base << ", " << (void*)(_base?_base->base():NULL) << "]" << endl; @@ -137,7 +134,7 @@ namespace Kite { trackSegment->invalidate(); - ltrace(200) << "TrackSegment::create(): " << trackSegment << endl; + cdebug.log(159) << "TrackSegment::create(): " << trackSegment << endl; trackElement = trackSegment; } @@ -232,22 +229,22 @@ namespace Kite { Katabatic::GCell* sourceGCell = base()->getAutoSource()->getGCell(); Katabatic::GCell* targetGCell = base()->getAutoTarget()->getGCell(); - ltrace(148) << "getGCells(): sourceGCell: " << sourceGCell << endl; - ltrace(148) << "getGCells(): targetGCell: " << targetGCell << endl; + cdebug.log(159) << "getGCells(): sourceGCell: " << sourceGCell << endl; + cdebug.log(159) << "getGCells(): targetGCell: " << targetGCell << endl; for( AutoSegment* segment : base()->getAligneds() ) { - ltrace(148) << "| " << segment << endl; + cdebug.log(159) << "| " << segment << endl; Katabatic::GCell* gcell = segment->getAutoSource()->getGCell(); if (gcell->getIndex() < sourceGCell->getIndex()) { sourceGCell = gcell; - ltrace(148) << "getGCells(): new sourceGCell: " << sourceGCell << endl; + cdebug.log(159) << "getGCells(): new sourceGCell: " << sourceGCell << endl; } gcell = segment->getAutoTarget()->getGCell(); if (gcell->getIndex() > targetGCell->getIndex()) { targetGCell = gcell; - ltrace(148) << "getGCells(): new targetGCell: " << targetGCell << endl; + cdebug.log(159) << "getGCells(): new targetGCell: " << targetGCell << endl; } } @@ -323,7 +320,7 @@ namespace Kite { void TrackSegment::detach () { - ltrace(200) << "TrackSegment::detach() - " << endl; + cdebug.log(159) << "TrackSegment::detach() - " << endl; setTrack( NULL ); setIndex( (size_t)-1 ); @@ -334,7 +331,7 @@ namespace Kite { void TrackSegment::revalidate () { unsetFlags( TElemCreated ); - ltrace(148) << "revalidate() - " << this << endl; + cdebug.log(159) << "revalidate() - " << this << endl; _base->getCanonical( _sourceU, _targetU ); @@ -354,7 +351,7 @@ namespace Kite { { if (not other) return; - ltrace(200) << "TrackSegment::swapTrack()" << endl; + cdebug.log(159) << "TrackSegment::swapTrack()" << endl; size_t thisIndex = getIndex (); Track* thisTrack = getTrack (); @@ -387,15 +384,14 @@ namespace Kite { if (thisEvent ) thisEvent ->setSegment( other ); if (otherEvent) otherEvent->setSegment( this ); - ltrace(200) << "| this: " << this << endl; - ltrace(200) << "| other: " << other << endl; + cdebug.log(159) << "| this: " << this << endl; + cdebug.log(159) << "| other: " << other << endl; } void TrackSegment::reschedule ( unsigned int level ) { - ltrace(200) << "TrackSegment::reschedule() - " << this << endl; - ltracein(200); + cdebug.log(159,1) << "TrackSegment::reschedule() - " << this << endl; if (not _data or not _data->hasRoutingEvent()) Session::getNegociateWindow()->addRoutingEvent( this, level ); @@ -405,7 +401,7 @@ namespace Kite { Session::getNegociateWindow()->rescheduleEvent( _data->getRoutingEvent(), level ); } - ltraceout(200); + cdebug.tabw(159,-1); } @@ -427,13 +423,13 @@ namespace Kite { bool TrackSegment::canSlacken () const { - ltrace(200) << "TrackSegment::canSlacken() doglegLevel:" << getDoglegLevel() << endl; + cdebug.log(159) << "TrackSegment::canSlacken() doglegLevel:" << getDoglegLevel() << endl; return (not isSlackened() and (getDoglegLevel() <= 3)) ? _base->canSlacken(KbPropagate) : false; } bool TrackSegment::slacken ( unsigned int flags ) { - ltrace(200) << "TrackSegment::slacken()" << endl; + cdebug.log(159) << "TrackSegment::slacken()" << endl; bool success = false; @@ -441,12 +437,12 @@ namespace Kite { TrackElement* perpandicular = NULL; TrackElement* parallel = NULL; - ltracein(200); + cdebug.tabw(159,1); success = base()->slacken( flags|KbPropagate ); _postDoglegs( perpandicular, parallel ); - ltraceout(200); + cdebug.tabw(159,-1); return success; } else cerr << Bug("TrackSegment::slacken(): NULL base or already slackened.") << endl; @@ -459,8 +455,7 @@ namespace Kite { { bool success = false; - ltrace(200) << "TrackSegment::moveUp() " << flags << endl; - ltracein(200); + cdebug.log(159,1) << "TrackSegment::moveUp() " << flags << endl; success = base()->moveUp( flags ); if (success) { @@ -471,7 +466,7 @@ namespace Kite { _postDoglegs( perpandicular, parallel ); } - ltraceout(200); + cdebug.tabw(159,-1); return success; } @@ -481,8 +476,7 @@ namespace Kite { { bool success = false; - ltrace(200) << "TrackSegment::moveDown() " << flags << endl; - ltracein(200); + cdebug.log(159,1) << "TrackSegment::moveDown() " << flags << endl; success = base()->moveDown( flags ); if (success) { @@ -493,7 +487,7 @@ namespace Kite { _postDoglegs( perpandicular, parallel ); } - ltraceout(200); + cdebug.tabw(159,-1); return success; } @@ -503,13 +497,12 @@ namespace Kite { { bool success = true; - ltrace(200) << "TrackSegment::moveAside() - " - << ((flags&KtMoveToLeft )?"left" :"") - << ((flags&KtMoveToRight)?"rigth":"") << endl; - ltracein(200); + cdebug.log(159,1) << "TrackSegment::moveAside() - " + << ((flags&KtMoveToLeft )?"left" :"") + << ((flags&KtMoveToRight)?"rigth":"") << endl; if (flags & KtMoveToLeft ) base()->moveULeft (); if (flags & KtMoveToRight) base()->moveURight(); - ltraceout(200); + cdebug.tabw(159,-1); return success; } @@ -524,7 +517,7 @@ namespace Kite { for( Segment* segment : base()->getAutoSource()->getSlaveComponents().getSubSet() ) { dogleg = Session::lookup( segment ); if (dogleg and (dogleg->getDirection() == direction)) { - ltrace(200) << "Source dogleg: " << dogleg << endl; + cdebug.log(159) << "Source dogleg: " << dogleg << endl; return dogleg; } } @@ -541,7 +534,7 @@ namespace Kite { for( Segment* segment : base()->getAutoTarget()->getSlaveComponents().getSubSet() ) { dogleg = Session::lookup( segment ); if (dogleg and (dogleg->getDirection() == direction)) { - ltrace(200) << "Target dogleg: " << dogleg << endl; + cdebug.log(159) << "Target dogleg: " << dogleg << endl; return dogleg; } } @@ -551,35 +544,35 @@ namespace Kite { bool TrackSegment::canDogleg () { - ltrace(200) << "TrackSegment::canDogleg()" << endl; + cdebug.log(159) << "TrackSegment::canDogleg()" << endl; if (not isLocal()) { - ltrace(200) << "Failed: is not local." << endl; + cdebug.log(159) << "Failed: is not local." << endl; return false; } if (isFixed()) { - ltrace(200) << "Failed: is fixed." << endl; + cdebug.log(159) << "Failed: is fixed." << endl; return false; } if (isRouted()) { - ltrace(200) << "Failed: belongs to an already routed net." << endl; + cdebug.log(159) << "Failed: belongs to an already routed net." << endl; return false; } if (isSlackened()) { - ltrace(200) << "Failed: is local & slackened." << endl; + cdebug.log(159) << "Failed: is local & slackened." << endl; return false; } if (hasSourceDogleg() or hasTargetDogleg()) { - ltrace(200) << "Failed: already has source or target dogleg." << endl; + cdebug.log(159) << "Failed: already has source or target dogleg." << endl; return false; } if (getDoglegLevel() > 3) { - ltrace(200) << "Failed: maximum dogleg level reached (4)." << endl; + cdebug.log(159) << "Failed: maximum dogleg level reached (4)." << endl; return false; } @@ -589,51 +582,50 @@ namespace Kite { bool TrackSegment::canDogleg ( Katabatic::GCell* doglegGCell, unsigned int flags ) { - ltrace(200) << "TrackSegment::canDogleg(GCell*) " << doglegGCell << endl; - ltracein(200); + cdebug.log(159,1) << "TrackSegment::canDogleg(GCell*) " << doglegGCell << endl; if (doglegGCell->isUnderIoPad()) { - ltrace(200) << "false: Cannot dogleg in a GCell under an I/O Pad." << endl; - ltraceout(200); + cdebug.log(159) << "false: Cannot dogleg in a GCell under an I/O Pad." << endl; + cdebug.tabw(159,-1); return false; } if (isFixed()) { - ltrace(200) << "false: Cannot dogleg a fixed segment." << endl; - ltraceout(200); + cdebug.log(159) << "false: Cannot dogleg a fixed segment." << endl; + cdebug.tabw(159,-1); return false; } if (isRouted()) { - ltrace(200) << "false: Cannot dogleg a segment belonging to an already routed net." << endl; - ltraceout(200); + cdebug.log(159) << "false: Cannot dogleg a segment belonging to an already routed net." << endl; + cdebug.tabw(159,-1); return false; } if (isLocal()) { if (hasSourceDogleg() or hasTargetDogleg()) { - ltrace(200) << "false: Cannot dogleg again a local segment." << endl; - ltraceout(200); + cdebug.log(159) << "false: Cannot dogleg again a local segment." << endl; + cdebug.tabw(159,-1); return false; } if (isSlackened()) { - ltrace(200) << "false: Cannot dogleg a local slackened segment." << endl; - ltraceout(200); + cdebug.log(159) << "false: Cannot dogleg a local slackened segment." << endl; + cdebug.tabw(159,-1); return false; } } if (getDoglegLevel() > 3) { - ltrace(200) << "Failed: maximum dogleg level reached (4)." << endl; - ltraceout(200); + cdebug.log(159) << "Failed: maximum dogleg level reached (4)." << endl; + cdebug.tabw(159,-1); return false; } vector gcells; getGCells( gcells ); - ltrace(190) << "Source: " << *gcells.begin () << endl; - ltrace(190) << "Target: " << *gcells.rbegin() << endl; + cdebug.log(159) << "Source: " << *gcells.begin () << endl; + cdebug.log(159) << "Target: " << *gcells.rbegin() << endl; bool isGCellInside = false; for ( size_t igcell=0 ; igcell 3) { - ltrace(200) << "Failed: maximum dogleg level reached (4)." << endl; + cdebug.log(159) << "Failed: maximum dogleg level reached (4)." << endl; return false; } @@ -727,7 +719,7 @@ namespace Kite { DbU::Unit axis = (_base->isHorizontal()) ? source->getX() : source->getY(); - ltrace(200) << "Setting dogleg axis @" << DbU::getValueString(axis) << endl; + cdebug.log(159) << "Setting dogleg axis @" << DbU::getValueString(axis) << endl; dogleg->setAxis( axis ); } } @@ -740,8 +732,8 @@ namespace Kite { , TrackElement*& parallel ) { - ltrace(200) << "TrackSegment::makeDogleg(GCell*)" << endl; - ltrace(200) << "Break in: " << dogLegGCell << endl; + cdebug.log(159) << "TrackSegment::makeDogleg(GCell*)" << endl; + cdebug.log(159) << "Break in: " << dogLegGCell << endl; base()->makeDogleg( dogLegGCell ); _postDoglegs( perpandicular, parallel ); @@ -755,7 +747,7 @@ namespace Kite { TrackElement* perpandicular = NULL; TrackElement* parallel = NULL; - ltrace(200) << "TrackSegment::makeDogleg(Interval)" << endl; + cdebug.log(159) << "TrackSegment::makeDogleg(Interval)" << endl; flags = base()->makeDogleg( interval ); _postDoglegs( perpandicular, parallel ); @@ -765,8 +757,7 @@ namespace Kite { void TrackSegment::_postDoglegs ( TrackElement*& perpandicular, TrackElement*& parallel ) { - ltrace(200) << "TrackSegment::_postDoglegs()" << endl; - ltracein(200); + cdebug.log(159,1) << "TrackSegment::_postDoglegs()" << endl; unsigned int doglegLevel = 0; const vector& doglegs = Session::getDoglegs(); @@ -778,7 +769,7 @@ namespace Kite { , doglegs.size() ) << endl; for ( size_t i=0 ; icreateTrackSegment(doglegs[i],0) ); segments[i+0]->setFlags( TElemTargetDogleg ); segments[i+0]->getDataNegociate()->resetRipupCount(); @@ -787,12 +778,12 @@ namespace Kite { doglegLevel = segments[i+0]->getDoglegLevel(); segments[i+0]->setDoglegLevel( doglegLevel + (segments[i]->isLocal()?1:0) ); - ltrace(200) << "Looking up new perpand: " << doglegs[i+1] << endl; + cdebug.log(159) << "Looking up new perpand: " << doglegs[i+1] << endl; segments.push_back( Session::getNegociateWindow()->createTrackSegment(doglegs[i+1],0) ); segments[i+1]->setFlags( TElemSourceDogleg|TElemTargetDogleg ); segments[i+1]->setDoglegLevel( doglegLevel + 1 ); - ltrace(200) << "Looking up new parallel: " << doglegs[i+2] << endl; + cdebug.log(159) << "Looking up new parallel: " << doglegs[i+2] << endl; segments.push_back( Session::getNegociateWindow()->createTrackSegment(doglegs[i+2],0) ); segments[i+2]->setFlags( TElemSourceDogleg ); segments[i+2]->getDataNegociate()->resetStateCount(); @@ -818,14 +809,14 @@ namespace Kite { case 1: segPart = "perpand "; break; case 2: segPart = "new paral"; break; } - ltrace(200) << "[" << (i/3) << ":" << i << "] " << segPart << ": " + cdebug.log(159) << "[" << (i/3) << ":" << i << "] " << segPart << ": " << segments[i] << endl; } } else { reschedule( 1 ); } - ltraceout(200); + cdebug.tabw(159,-1); Session::doglegReset(); } diff --git a/kite/src/TrackSegmentCost.cpp b/kite/src/TrackSegmentCost.cpp index 67a9cd9b..dd89c54d 100644 --- a/kite/src/TrackSegmentCost.cpp +++ b/kite/src/TrackSegmentCost.cpp @@ -37,9 +37,6 @@ namespace Kite { using std::ostringstream; using Hurricane::Bug; using Hurricane::DebugSession; - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::tab; @@ -76,10 +73,9 @@ namespace Kite { void TrackSegmentCost::update ( TrackElement* trackSegment ) { - DebugSession::open ( trackSegment->getNet(), 148 ); + DebugSession::open ( trackSegment->getNet(), 150, 160 ); - ltrace(148) << "TrackSegmentCost::update() - " << trackSegment << endl; - ltracein(148); + cdebug.log(159,1) << "TrackSegmentCost::update() - " << trackSegment << endl; vector collapseds; vector perpandiculars; @@ -118,15 +114,14 @@ namespace Kite { } interval.inflate ( DbU::lambda(-1.5) ); - ltrace(148) << "| perpandicular: " << perpandiculars[i] << endl; - ltrace(148) << "| canonical: " << perpandicular << endl; - ltracein(148); - ltrace(148) << "interval: " << interval << endl; + cdebug.log(159) << "| perpandicular: " << perpandiculars[i] << endl; + cdebug.log(159,1) << "| canonical: " << perpandicular << endl; + cdebug.log(159) << "interval: " << interval << endl; if ( interval.isPonctual() ) { - ltrace(148) << "Punctual attractor @" << DbU::getValueString(interval.getVMin()) << endl; + cdebug.log(159) << "Punctual attractor @" << DbU::getValueString(interval.getVMin()) << endl; _attractors.push_back ( interval.getVMin() ); - ltraceout(148); + cdebug.tabw(159,-1); continue; } @@ -141,7 +136,7 @@ namespace Kite { } else { iattractor->second -= 1; } - ltrace(148) << "Left attractor @" << DbU::getValueString(interval.getVMin()) << endl; + cdebug.log(159) << "Left attractor @" << DbU::getValueString(interval.getVMin()) << endl; } if ( ( interval.getVMax() != trackSegment->getAxis() ) @@ -155,10 +150,10 @@ namespace Kite { } else { iattractor->second += 1; } - ltrace(148) << "Right attractor @" << DbU::getValueString(interval.getVMax()) << endl; + cdebug.log(159) << "Right attractor @" << DbU::getValueString(interval.getVMax()) << endl; } - ltraceout(148); + cdebug.tabw(159,-1); } map::iterator iattractor = attractorSpins.begin(); @@ -174,10 +169,10 @@ namespace Kite { s << DbU::getValueString(_attractors[i]); } s << "]"; - ltrace(148) << s.str() << endl; + cdebug.log(159) << s.str() << endl; - ltraceout(148); + cdebug.tabw(159,-1); DebugSession::close (); } diff --git a/kite/src/Tracks.cpp b/kite/src/Tracks.cpp index 0df2b44b..112409b0 100644 --- a/kite/src/Tracks.cpp +++ b/kite/src/Tracks.cpp @@ -26,9 +26,6 @@ namespace Kite { using std::cerr; using std::endl; using Hurricane::tab; - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; // ------------------------------------------------------------------- @@ -41,15 +38,15 @@ namespace Kite { : Hurricane::Locator() , _constraints (constraints) { - ltrace(147) << "Tracks_Range::Locator()" << endl; - ltrace(147) << "* Constraints: " << _constraints << endl; + cdebug.log(159) << "Tracks_Range::Locator()" << endl; + cdebug.log(159) << "* Constraints: " << _constraints << endl; _track = routingPlane->getTrackByPosition ( _constraints.getVMin() ); if ( _track and (_track->getAxis() < _constraints.getVMin()) ) _track = _track->getNextTrack(); if ( _track and (_track->getAxis() > _constraints.getVMax()) ) _track = NULL; - ltrace(147) << "_track: " << _track << endl;; + cdebug.log(159) << "_track: " << _track << endl;; } @@ -150,9 +147,9 @@ namespace Kite { , _inMinOptimal(true) , _inMaxOptimal(true) { - ltrace(147) << "Tracks_Spiral::Locator()" << endl; - ltrace(147) << "* Optimal: " << _optimal << endl; - ltrace(147) << "* Constraints: " << _constraints << endl; + cdebug.log(159) << "Tracks_Spiral::Locator()" << endl; + cdebug.log(159) << "* Optimal: " << _optimal << endl; + cdebug.log(159) << "* Constraints: " << _constraints << endl; _minTrack = _maxTrack = routingPlane->getTrackByPosition ( _optimal.getCenter() ); @@ -172,8 +169,8 @@ namespace Kite { if ( _minTrack && (_minTrack->getAxis() < _optimal.getVMin()) ) _inMinOptimal = false; if ( _maxTrack && (_maxTrack->getAxis() > _optimal.getVMax()) ) _inMaxOptimal = false; - ltrace(147) << "_minTrack: " << _minTrack << endl;; - ltrace(147) << "_maxTrack: " << _maxTrack << endl;; + cdebug.log(159) << "_minTrack: " << _minTrack << endl;; + cdebug.log(159) << "_maxTrack: " << _maxTrack << endl;; } @@ -213,14 +210,13 @@ namespace Kite { void Tracks_Spiral::Locator::progress () { - ltrace(147) << "Track_Spiral::progress() - State:" << endl; - ltracein(147); - ltrace(147) << _onMin - << " " << _minTrack - << " " << _maxTrack << endl; + cdebug.log(159,1) << "Track_Spiral::progress() - State:" << endl; + cdebug.log(159) << _onMin + << " " << _minTrack + << " " << _maxTrack << endl; if ( !isValid() ) { - ltraceout(147); + cdebug.tabw(159,-1); return; } @@ -249,10 +245,10 @@ namespace Kite { } } - ltrace(147) << _onMin + cdebug.log(159) << _onMin << " " << _minTrack << " " << _maxTrack << endl; - ltraceout(147); + cdebug.tabw(159,-1); } diff --git a/kite/src/kite/RoutingEvent.h b/kite/src/kite/RoutingEvent.h index 15a29b5e..5262cab4 100644 --- a/kite/src/kite/RoutingEvent.h +++ b/kite/src/kite/RoutingEvent.h @@ -260,7 +260,7 @@ namespace Kite { << Session::getSegmentStackSize() << ")." << endl; # define _postCheck(segment) \ - ltrace(149) << "Bounds := [" \ + cdebug.log(159) << "Bounds := [" \ << DbU::getValueString(segment->base()->getSourcePosition()) << ":" \ << DbU::getValueString(segment->base()->getTargetPosition()) << "] " \ << DbU::getValueString(segment->getAxis()) << " " \ diff --git a/knik/src/Edge.cpp b/knik/src/Edge.cpp index ec3bbfbd..e01aa8b6 100644 --- a/knik/src/Edge.cpp +++ b/knik/src/Edge.cpp @@ -104,7 +104,7 @@ void Edge::increaseCapacity ( int capacity ) //cerr << "Increasing capacity to " << _capacity << " on " << this << endl; if ( _capacity == 0 ) - ltrace(300) << Warning("%s has reached NULL capacity.",getString(this).c_str()) << endl; + cdebug.log(139) << Warning("%s has reached NULL capacity.",getString(this).c_str()) << endl; } void Edge::incOccupancy () diff --git a/knik/src/Graph.cpp b/knik/src/Graph.cpp index 0947b31d..ef677393 100644 --- a/knik/src/Graph.cpp +++ b/knik/src/Graph.cpp @@ -43,9 +43,6 @@ namespace Knik { - using Hurricane::inltrace; - using Hurricane::ltracein; - using Hurricane::ltraceout; using Hurricane::tab; using Hurricane::ForEachIterator; @@ -788,14 +785,14 @@ void Graph::increaseVTuplePriority ( VTuple* vtuple, float distance ) void Graph::printVTuplePriorityQueue() // *********************************** { - ltracein(600); - ltrace(600) << "VTuplePriorityQueue:" << endl; + cdebug.tabw(139,1); + cdebug.log(139) << "VTuplePriorityQueue:" << endl; unsigned int i=0; for ( auto iv : _vtuplePriorityQueue ) { - ltrace(600) << setw(3) << i << "| " << iv->getVertex() << " : " << iv->getDistance() << endl; + cdebug.log(139) << setw(3) << i << "| " << iv->getVertex() << " : " << iv->getDistance() << endl; ++i; } - ltraceout(600); + cdebug.tabw(139,-1); } void Graph::clearPriorityQueue() @@ -981,9 +978,8 @@ int Graph::initRouting ( Net* net ) //editor->Refresh(); //editor->Stop ("Going to init"); - //if (_working_net->getName() == "read0") DebugSession::open( 600 ); - ltrace(600) << "Graph::initRouting() " << _working_net << endl; - ltracein(600); + //if (_working_net->getName() == "read0") DebugSession::open( 130, 140 ); + cdebug.log(139,1) << "Graph::initRouting() " << _working_net << endl; int currentConnexID = 0; vector vContacts; @@ -1033,9 +1029,9 @@ int Graph::initRouting ( Net* net ) //bool useConnexID = false; for ( unsigned index = 0 ; index < vRoutingPads.size() ; index ++ ) { RoutingPad* routingPad = vRoutingPads[index]; - ltrace(600) << routingPad << endl; + cdebug.log(139) << routingPad << endl; Vertex* rpVertex = getVertex ( routingPad->getCenter() ); - ltrace(600) << rpVertex << endl; + cdebug.log(139) << rpVertex << endl; Contact* rpContact = rpVertex->getContact(); if ( rpContact && (rpContact->getNet() == routingPad->getNet()) ) { // s'il existe deja un contact pour ce vertex pour ce net, on s'y attache @@ -1118,7 +1114,7 @@ int Graph::initRouting ( Net* net ) //cerr << "net " << net << " has " << _vertexes_to_route.size() << " vertexes to route." << endl; //} - ltraceout(600); + cdebug.tabw(139,-1); //DebugSession::close(); return _vertexes_to_route.size(); @@ -1147,18 +1143,16 @@ void Graph::Dijkstra() UpdateEstimateCongestion(); //#endif -//DebugSession::open( _working_net, 600 ); -//if (_working_net->getName() == "read0") DebugSession::open( 600 ); +//DebugSession::open( _working_net, 130, 140 ); +//if (_working_net->getName() == "read0") DebugSession::open( 130, 140 ); - ltrace(600) << "Dijkstra for net: " << _working_net << endl; - ltracein(600); - ltrace(600) << "Stamp:" << _netStamp << endl; - ltrace(600) << "Search area : " << _searchingArea - << " h:" << DbU::getValueString(_searchingArea.getHeight()) << endl; - ltrace(600) << "Matrix tile height : " << DbU::getValueString(_matrixVertex->getTileHeight()) << endl; - ltrace(600) << "Central vertex : " << centralVertex << endl; - ltrace(600) << "_vertexes_to_route.size(): " << _vertexes_to_route.size() << endl; - ltracein(600); + cdebug.log(139,1) << "Dijkstra for net: " << _working_net << endl; + cdebug.log(139) << "Stamp:" << _netStamp << endl; + cdebug.log(139) << "Search area : " << _searchingArea + << " h:" << DbU::getValueString(_searchingArea.getHeight()) << endl; + cdebug.log(139) << "Matrix tile height : " << DbU::getValueString(_matrixVertex->getTileHeight()) << endl; + cdebug.log(139) << "Central vertex : " << centralVertex << endl; + cdebug.log(139,1) << "_vertexes_to_route.size(): " << _vertexes_to_route.size() << endl; //Breakpoint::stop(1, "
Dijkstra
initialized
"); while ( _vertexes_to_route.size() > 1 ) { @@ -1167,13 +1161,13 @@ void Graph::Dijkstra() float reachedDistance = (float)(HUGE_VAL); //checkGraphConsistency(); - if (ltracelevel() >= 600) { - ltrace(600) << "_vertexes_to_route:" << endl; + if (cdebug.enabled(139)) { + cdebug.log(139) << "_vertexes_to_route:" << endl; for ( auto iv : _vertexes_to_route ) - ltrace(600) << "| " << iv << endl; + cdebug.log(139) << "| " << iv << endl; } - ltrace(600) << "Source component" << endl; + cdebug.log(139) << "Source component" << endl; printVTuplePriorityQueue(); //Breakpoint::stop(1, "
Dijkstra
source connexe component
"); @@ -1194,7 +1188,7 @@ void Graph::Dijkstra() reachedDistance = currentVertex->getDistance(); reachedVertexes.clear(); reachedVertexes.push_back ( currentVertex ); - ltrace(600) << "Re-init reachedVertexes with " << currentVertex << endl; + cdebug.log(139) << "Re-init reachedVertexes with " << currentVertex << endl; break; } @@ -1234,21 +1228,21 @@ void Graph::Dijkstra() VTuple* oppositeVTuple = oppositeVertex->getVTuple(); if (oppositeVTuple) { - ltrace(600) << "Increasing priority for:" << endl; - ltrace(600) << "* " << oppositeVertex << endl; - ltrace(600) << "* " << oppositeVTuple << endl; + cdebug.log(139) << "Increasing priority for:" << endl; + cdebug.log(139) << "* " << oppositeVertex << endl; + cdebug.log(139) << "* " << oppositeVTuple << endl; increaseVTuplePriority( oppositeVTuple, newDistance ); // Du fait de la reinit ce n'est plus seulement un increase! // Non, c'est bon si on garde le CleanRoutingState (avec clearPriorityQueue) } else { VTuple* newOppositeVTuple = VTuple::create ( oppositeVertex, newDistance ); - ltrace(600) << "Creating New VTuple for Vertex:" << endl; - ltrace(600) << "* " << oppositeVertex << ":" << newDistance << endl; - ltrace(600) << "* " << newOppositeVTuple << endl; + cdebug.log(139) << "Creating New VTuple for Vertex:" << endl; + cdebug.log(139) << "* " << oppositeVertex << ":" << newDistance << endl; + cdebug.log(139) << "* " << newOppositeVTuple << endl; addVTupleToPriorityQueue( newOppositeVTuple ); } - ltrace(600) << "Updated distance " << newDistance << " on: " << (*iedge) << endl; + cdebug.log(139) << "Updated distance " << newDistance << " on: " << (*iedge) << endl; printVTuplePriorityQueue(); //Breakpoint::stop(1, "
Dijkstra
distance has been updated
"); } @@ -1262,7 +1256,7 @@ void Graph::Dijkstra() reachedDistance = newDistance; reachedVertexes.clear(); reachedVertexes.push_back( oppositeVertex ); - ltrace(600) << "Re-init (< distance) reachedVertexes with " << oppositeVertex << endl; + cdebug.log(139) << "Re-init (< distance) reachedVertexes with " << oppositeVertex << endl; } else if (newDistance == reachedDistance) { // on pourrait simplifier grandement tout ca : 1 seul vertex atteint sauvergardé! // Conclusion qu'il ait le meme connexID ou pas, on ne fait rien, on en a deja atteint @@ -1279,7 +1273,7 @@ void Graph::Dijkstra() } if (not foundVertex) { reachedVertexes.push_back( oppositeVertex ); - ltrace(600) << "Re-init (== distance) reachedVertexes with " << oppositeVertex << endl; + cdebug.log(139) << "Re-init (== distance) reachedVertexes with " << oppositeVertex << endl; } } else { // Nothing to do? @@ -1299,9 +1293,9 @@ void Graph::Dijkstra() } assert( reachedDistance < (float)(HUGE_VAL) ); - ltrace(600) << "Updating two connex components:" << endl; - ltrace(600) << "1. " << (*(reachedVertexes.begin())) << endl; - ltrace(600) << "2. " << firstVertex << endl; + cdebug.log(139) << "Updating two connex components:" << endl; + cdebug.log(139) << "1. " << (*(reachedVertexes.begin())) << endl; + cdebug.log(139) << "2. " << firstVertex << endl; UpdateConnexComp( reachedVertexes, firstVertex ); } @@ -1312,8 +1306,7 @@ void Graph::Dijkstra() //_vertexes_to_route.clear(); // no more useful //_vertexes_to_route = copy_vertex ; - ltraceout(600); - ltraceout(600); + cdebug.tabw(139,-2); //DebugSession::close(); } diff --git a/knik/src/MatrixVertex.cpp b/knik/src/MatrixVertex.cpp index 35c05a7a..113308ff 100644 --- a/knik/src/MatrixVertex.cpp +++ b/knik/src/MatrixVertex.cpp @@ -383,10 +383,10 @@ Vertex* MatrixVertex::getVertex ( Point point ) pair indexes = getIJ ( point ); Vertex* vertex = getVertex ( indexes ); - ltrace(600) << "MatrixVertex::getVertex(): " << vertex << endl; + cdebug.log(139) << "MatrixVertex::getVertex(): " << vertex << endl; if (vertex and vertex->isBlocked()) { - ltrace(600) << "Vertex is blocked, looking for neighbor." << endl; + cdebug.log(139) << "Vertex is blocked, looking for neighbor." << endl; Vertex* neighbor = NULL; for ( size_t i=0; i<4 ; ++i ) { neighbor = vertex->getFirstEdges(i)->getOpposite( vertex ); diff --git a/unicorn/src/CgtMain.cpp b/unicorn/src/CgtMain.cpp index 8afc0c5a..f91c71b2 100644 --- a/unicorn/src/CgtMain.cpp +++ b/unicorn/src/CgtMain.cpp @@ -96,7 +96,6 @@ int main ( int argc, char *argv[] ) bool destroyDatabase; float edgeCapacity; unsigned long eventsLimit; - unsigned int traceLevel; bool textMode; double margin; bool quadriPlace; @@ -115,9 +114,6 @@ int main ( int argc, char *argv[] ) ( "help,h" , "Print this help." ) ( "destroy-db" , bopts::bool_switch(&destroyDatabase)->default_value(false) , "Perform a complete deletion of the database (may be buggy).") - ( "trace-level,l" , bopts::value(&traceLevel) - , "Set the level of trace, trace messages with a level superior to " - " will be printed on ." ) ( "verbose,v" , bopts::bool_switch() , "First level of verbosity.") ( "very-verbose,V" , bopts::bool_switch() @@ -200,9 +196,6 @@ int main ( int argc, char *argv[] ) if (arguments["info" ].as()) Cfg::getParamBool("misc.info" )->setBool ( true , Cfg::Parameter::CommandLine ); if (arguments["log-mode" ].as()) Cfg::getParamBool("misc.logMode" )->setBool ( true , Cfg::Parameter::CommandLine ); if (arguments["show-conf" ].as()) Cfg::getParamBool("misc.showConf" )->setBool ( true , Cfg::Parameter::CommandLine ); - - if (arguments.count("trace-level" )) Cfg::getParamInt("misc.traceLevel")->setInt ( traceLevel, Cfg::Parameter::CommandLine ); - bool showConf = Cfg::getParamBool("misc.showConf")->asBool(); dbo_ptr db ( DataBase::getDB() ); diff --git a/unicorn/src/PyUnicorn.cpp b/unicorn/src/PyUnicorn.cpp index 8ead1986..9fb3bac8 100644 --- a/unicorn/src/PyUnicorn.cpp +++ b/unicorn/src/PyUnicorn.cpp @@ -23,7 +23,6 @@ namespace Unicorn { using std::cerr; using std::endl; using Hurricane::tab; - using Hurricane::in_trace; using Hurricane::CellViewer; using Hurricane::PyTypeCellViewer; using Isobar::__cs; @@ -58,7 +57,7 @@ extern "C" { // Module Initialization : "initUnicorn ()" DL_EXPORT(void) initUnicorn () { - trace << "initUnicorn()" << endl; + cdebug.log(46) << "initUnicorn()" << endl; PyUnicornGui_LinkPyType (); diff --git a/unicorn/src/PyUnicornGui.cpp b/unicorn/src/PyUnicornGui.cpp index 9dbca8d5..dd1c0f20 100644 --- a/unicorn/src/PyUnicornGui.cpp +++ b/unicorn/src/PyUnicornGui.cpp @@ -45,7 +45,7 @@ extern "C" { static PyObject* PyUnicornGui_create ( PyObject*, PyObject* args ) { - trace << "PyUnicornGui_create()" << endl; + cdebug.log(46) << "PyUnicornGui_create()" << endl; UnicornGui* gui = NULL; PyUnicornGui* pyGui = NULL; @@ -68,7 +68,7 @@ extern "C" { static PyObject* PyUnicornGui_registerTool ( PyUnicornGui* self, PyObject* args ) { - trace << "PyUnicornGui_registerTool()" << endl; + cdebug.log(46) << "PyUnicornGui_registerTool()" << endl; HTRY METHOD_HEAD("UnicornGui.registerTool()") @@ -92,7 +92,7 @@ extern "C" { static PyObject* PyUnicornGui_show ( PyUnicornGui* self ) { - trace << "PyUnicornGui_show()" << endl; + cdebug.log(46) << "PyUnicornGui_show()" << endl; HTRY METHOD_HEAD("UnicornGui.show()") @@ -105,7 +105,7 @@ extern "C" { static PyObject* PyUnicornGui_getBanner ( PyUnicornGui* self ) { - trace << "PyUnicornGui_getBanner()" << endl; + cdebug.log(46) << "PyUnicornGui_getBanner()" << endl; Banner* banner = NULL; diff --git a/unicorn/src/UnicornGui.cpp b/unicorn/src/UnicornGui.cpp index 7eedb782..adbb3d3b 100644 --- a/unicorn/src/UnicornGui.cpp +++ b/unicorn/src/UnicornGui.cpp @@ -294,7 +294,10 @@ namespace Unicorn { } break; case ExportCellDialog::Json: - { //DebugSession::open( 50 ); + { //DebugSession::open( 19, 20 ); + cerr << "cdebug (" << cdebug.getMinLevel() << "," << cdebug.getMaxLevel() + << ") level:" << cdebug.getLevel() << " enabled:" << cdebug.enabled() << endl; + JsonWriter writer ( cellName.toStdString()+".json.bz2" ); jsonWrite( &writer, cell ); //DebugSession::close(); diff --git a/unicorn/src/cgt.py b/unicorn/src/cgt.py index ef66aa9c..ba945c1a 100755 --- a/unicorn/src/cgt.py +++ b/unicorn/src/cgt.py @@ -9,6 +9,7 @@ try: import Hurricane import Viewer import CRL + import Anabatic import Etesian import Katabatic import Kite @@ -131,7 +132,6 @@ if __name__ == '__main__': af = CRL.AllianceFramework.create( flags ) print af.getEnvironment().getPrint() - #Hurricane.trace(True) Cfg.Configuration.pushDefaultPriority(Cfg.Parameter.Priority.CommandLine) if options.coreDump: Cfg.getParamBool ('misc.catchCore' ).setBool(False) @@ -179,6 +179,7 @@ if __name__ == '__main__': unicorn = Unicorn.UnicornGui.create() unicorn.setApplicationName ('cgt') + unicorn.registerTool (Anabatic.GraphicAnabaticEngine.grab()) unicorn.registerTool (Etesian.GraphicEtesianEngine.grab()) unicorn.registerTool (Kite.GraphicKiteEngine.grab()) #unicorn.setAnonNetSelectable(False)