From 82cff69d9f6e5cecc90f2b6325d7b465f23db2d4 Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Tue, 17 May 2016 23:00:06 +0200 Subject: [PATCH] Complete rewrite of the trace system (now a stream). * Change: In Hurricane, in Flags add operator overload for "int" type and not only "unsigned int". Otherwise the compiler complaints about ambiguous overload when using enum values which are considered as "int". Simpler code for the BaseFlags::contains() method. Added implicit conversion from BaseFlags toward bool type. * Change: In Hurricane, in Commons, complete replacement of the previous two trace systems (trace & ltrace) by a stream-based one. As it is a true object it is much less fragile than the one based on defines (but maybe a little slower). Define a reservation table for the trace levels for all the Coriolis & Chams components. * Change: All tools, use the new trace system. --- crlcore/etc/common/display.conf | 3 + crlcore/etc/common/misc.conf | 6 +- crlcore/python/helpers/misc.py | 10 +- crlcore/src/ccore/AllianceLibrary.cpp | 5 +- crlcore/src/ccore/Catalog.cpp | 3 +- crlcore/src/ccore/RoutingLayerGauge.cpp | 14 +- crlcore/src/ccore/Utilities.cpp | 15 +- .../src/ccore/bookshelf/BookshelfParser.cpp | 24 +- crlcore/src/ccore/toolbox/RoutingPads.cpp | 8 +- crlcore/src/cyclop/CyclopMain.cpp | 12 +- crlcore/src/pyCRL/PyAcmSigda.cpp | 3 +- crlcore/src/pyCRL/PyAllianceFramework.cpp | 31 +- crlcore/src/pyCRL/PyAllianceLibrary.cpp | 7 +- crlcore/src/pyCRL/PyBanner.cpp | 5 +- crlcore/src/pyCRL/PyBlif.cpp | 3 +- crlcore/src/pyCRL/PyCRL.cpp | 7 +- crlcore/src/pyCRL/PyCatalog.cpp | 1 - crlcore/src/pyCRL/PyCatalogState.cpp | 3 +- crlcore/src/pyCRL/PyCellGauge.cpp | 3 +- crlcore/src/pyCRL/PyEnvironment.cpp | 7 +- crlcore/src/pyCRL/PyIspd05.cpp | 3 +- crlcore/src/pyCRL/PyRoutingGauge.cpp | 21 +- crlcore/src/pyCRL/PyRoutingLayerGauge.cpp | 13 +- crlcore/src/pyCRL/PyToolBox.cpp | 3 +- crlcore/src/pyCRL/PyToolEngine.cpp | 6 +- crlcore/src/x2y/x2y.cpp | 4 - documentation/UsersGuide/UsersGuide.html | 6 +- documentation/UsersGuide/UsersGuide.pdf | 312 +++++++++--------- documentation/UsersGuide/UsersGuide.rst | 6 +- etesian/src/AddFeeds.cpp | 17 +- etesian/src/Configuration.cpp | 3 +- etesian/src/EtesianEngine.cpp | 8 +- etesian/src/PyEtesian.cpp | 3 +- etesian/src/PyEtesianEngine.cpp | 10 +- etesian/src/PyGraphicEtesianEngine.cpp | 4 +- hurricane/doc/hurricane/Commons.dox | 69 +++- hurricane/doc/hurricane/DebugSession.dox | 117 +++++++ hurricane/doc/hurricane/SoC.css | 12 + hurricane/doc/hurricane/Transformation.dox | 90 ++--- hurricane/doc/hurricane/UpdateSession.dox | 37 +++ hurricane/doc/hurricane/doxyfile | 2 + hurricane/src/hurricane/BasicLayer.cpp | 6 +- hurricane/src/hurricane/Box.cpp | 8 +- hurricane/src/hurricane/Cell.cpp | 33 +- hurricane/src/hurricane/Commons.cpp | 75 +---- hurricane/src/hurricane/Component.cpp | 51 ++- hurricane/src/hurricane/Contact.cpp | 11 +- hurricane/src/hurricane/ContactLayer.cpp | 6 +- hurricane/src/hurricane/DeepNet.cpp | 8 +- hurricane/src/hurricane/DiffusionLayer.cpp | 6 +- hurricane/src/hurricane/Entity.cpp | 8 +- hurricane/src/hurricane/ExtensionGo.cpp | 15 +- hurricane/src/hurricane/ExtensionSlice.cpp | 2 +- hurricane/src/hurricane/Instance.cpp | 13 +- hurricane/src/hurricane/JsonReader.cpp | 39 +-- hurricane/src/hurricane/Net.cpp | 10 +- .../src/hurricane/NetExternalComponents.cpp | 4 +- hurricane/src/hurricane/Plug.cpp | 13 +- hurricane/src/hurricane/Quark.cpp | 19 +- hurricane/src/hurricane/RegularLayer.cpp | 6 +- hurricane/src/hurricane/RoutingPad.cpp | 7 +- hurricane/src/hurricane/Rubber.cpp | 21 +- hurricane/src/hurricane/Segment.cpp | 13 +- hurricane/src/hurricane/Signature.cpp | 2 +- hurricane/src/hurricane/Slot.cpp | 2 - hurricane/src/hurricane/Technology.cpp | 6 +- hurricane/src/hurricane/TransistorLayer.cpp | 6 +- hurricane/src/hurricane/UpdateSession.cpp | 46 +-- hurricane/src/hurricane/ViaLayer.cpp | 6 +- .../src/hurricane/grenier/json/JsonReader.cpp | 28 +- .../src/hurricane/grenier/json/JsonReader.h | 10 +- hurricane/src/hurricane/grenier/json/Net.cpp | 2 +- .../src/hurricane/hurricane/Collection.h | 11 +- hurricane/src/hurricane/hurricane/Commons.h | 136 ++++++-- .../src/hurricane/hurricane/DebugSession.h | 28 +- hurricane/src/hurricane/hurricane/Entity.h | 6 +- .../src/hurricane/hurricane/ExtensionGo.h | 13 +- hurricane/src/hurricane/hurricane/Flags.h | 32 +- .../src/hurricane/hurricane/JsonObject.h | 24 +- .../src/hurricane/hurricane/JsonWriter.h | 40 +-- .../src/hurricane/hurricane/Tabulation.h | 4 +- hurricane/src/isobar/ProxyProperty.cpp | 4 +- hurricane/src/isobar/PyBasicLayer.cpp | 4 +- hurricane/src/isobar/PyBox.cpp | 24 +- hurricane/src/isobar/PyBreakpoint.cpp | 10 +- hurricane/src/isobar/PyCell.cpp | 52 +-- hurricane/src/isobar/PyComponent.cpp | 14 +- hurricane/src/isobar/PyContact.cpp | 4 +- hurricane/src/isobar/PyContactLayer.cpp | 2 +- hurricane/src/isobar/PyDataBase.cpp | 8 +- hurricane/src/isobar/PyDbU.cpp | 2 +- hurricane/src/isobar/PyDebugSession.cpp | 21 +- hurricane/src/isobar/PyDiffusionLayer.cpp | 2 +- hurricane/src/isobar/PyEntity.cpp | 2 +- hurricane/src/isobar/PyHook.cpp | 12 +- hurricane/src/isobar/PyHorizontal.cpp | 4 +- hurricane/src/isobar/PyHurricane.cpp | 10 +- hurricane/src/isobar/PyHyperNet.cpp | 8 +- hurricane/src/isobar/PyInstance.cpp | 30 +- hurricane/src/isobar/PyInterval.cpp | 22 +- hurricane/src/isobar/PyLayer.cpp | 16 +- hurricane/src/isobar/PyLayerMask.cpp | 6 +- hurricane/src/isobar/PyLibrary.cpp | 8 +- hurricane/src/isobar/PyMaterial.cpp | 6 +- hurricane/src/isobar/PyNet.cpp | 34 +- hurricane/src/isobar/PyNetDirection.cpp | 3 +- .../src/isobar/PyNetExternalComponents.cpp | 10 +- hurricane/src/isobar/PyNetType.cpp | 3 +- hurricane/src/isobar/PyOccurrence.cpp | 14 +- hurricane/src/isobar/PyOrientation.cpp | 3 +- hurricane/src/isobar/PyPad.cpp | 8 +- hurricane/src/isobar/PyPath.cpp | 20 +- hurricane/src/isobar/PyPin.cpp | 4 +- hurricane/src/isobar/PyPinDirection.cpp | 3 +- hurricane/src/isobar/PyPinPlacementStatus.cpp | 3 +- hurricane/src/isobar/PyPlacementStatus.cpp | 3 +- hurricane/src/isobar/PyPlug.cpp | 8 +- hurricane/src/isobar/PyPoint.cpp | 6 +- hurricane/src/isobar/PyQuery.cpp | 30 +- hurricane/src/isobar/PyQueryMask.cpp | 6 +- hurricane/src/isobar/PyReference.cpp | 8 +- hurricane/src/isobar/PyRegularLayer.cpp | 2 +- hurricane/src/isobar/PyRoutingPad.cpp | 22 +- hurricane/src/isobar/PySegment.cpp | 10 +- hurricane/src/isobar/PyTechnology.cpp | 10 +- hurricane/src/isobar/PyTransformation.cpp | 52 ++- hurricane/src/isobar/PyTransistorLayer.cpp | 2 +- hurricane/src/isobar/PyUpdateSession.cpp | 6 +- hurricane/src/isobar/PyVertical.cpp | 4 +- hurricane/src/isobar/PyViaLayer.cpp | 2 +- .../src/isobar/hurricane/isobar/PyHurricane.h | 82 ++--- hurricane/src/viewer/CellViewer.cpp | 4 +- hurricane/src/viewer/DesignBlob.cpp | 2 - hurricane/src/viewer/DisplayStyle.cpp | 16 +- hurricane/src/viewer/Graphics.cpp | 4 +- hurricane/src/viewer/PyCellViewer.cpp | 22 +- hurricane/src/viewer/PyDisplayStyle.cpp | 22 +- hurricane/src/viewer/PyDrawingGroup.cpp | 6 +- hurricane/src/viewer/PyDrawingStyle.cpp | 4 +- hurricane/src/viewer/PyGraphics.cpp | 24 +- hurricane/src/viewer/PyHApplication.cpp | 4 +- hurricane/src/viewer/PyHSVr.cpp | 4 +- hurricane/src/viewer/PyViewer.cpp | 4 +- hurricane/src/viewer/SelectCommand.cpp | 2 +- katabatic/src/AutoContact.cpp | 41 ++- katabatic/src/AutoContactHTee.cpp | 66 ++-- katabatic/src/AutoContactTerminal.cpp | 63 ++-- katabatic/src/AutoContactTurn.cpp | 37 +-- katabatic/src/AutoContactVTee.cpp | 45 ++- katabatic/src/AutoHorizontal.cpp | 94 +++--- katabatic/src/AutoSegment.cpp | 300 ++++++++--------- katabatic/src/AutoSegments.cpp | 40 +-- katabatic/src/AutoVertical.cpp | 72 ++-- katabatic/src/ChipTools.cpp | 8 +- katabatic/src/Configuration.cpp | 3 +- katabatic/src/GCell.cpp | 46 ++- katabatic/src/GCellGrid.cpp | 19 +- katabatic/src/KatabaticEngine.cpp | 123 ++++--- katabatic/src/LayerAssign.cpp | 78 +++-- katabatic/src/LoadGrByNet.cpp | 256 +++++++------- katabatic/src/NetConstraints.cpp | 41 ++- katabatic/src/NetOptimals.cpp | 19 +- katabatic/src/PyKatabatic.cpp | 3 +- katabatic/src/Session.cpp | 61 ++-- katabatic/src/katabatic/AutoContact.h | 25 +- katabatic/src/katabatic/AutoSegment.h | 3 +- katabatic/src/katabatic/Session.h | 1 - kite/src/BuildPowerRails.cpp | 79 +++-- kite/src/BuildPreRouteds.cpp | 3 - kite/src/Configuration.cpp | 1 - kite/src/DataNegociate.cpp | 41 +-- kite/src/KiteEngine.cpp | 42 +-- kite/src/KiteMain.cpp | 28 +- kite/src/Manipulator.cpp | 249 +++++++------- kite/src/NegociateWindow.cpp | 69 ++-- kite/src/PreProcess.cpp | 46 ++- kite/src/ProtectRoutingPads.cpp | 1 - kite/src/PyGraphicKiteEngine.cpp | 4 +- kite/src/PyKite.cpp | 3 +- kite/src/PyKiteEngine.cpp | 21 +- kite/src/RoutingEvent.cpp | 124 ++++--- kite/src/RoutingEventQueue.cpp | 10 +- kite/src/RoutingPlane.cpp | 10 +- kite/src/SegmentFsm.cpp | 175 +++++----- kite/src/Session.cpp | 20 +- kite/src/Track.cpp | 66 ++-- kite/src/TrackElement.cpp | 7 +- kite/src/TrackElements.cpp | 9 +- kite/src/TrackFixedSegment.cpp | 9 +- kite/src/TrackSegment.cpp | 165 +++++---- kite/src/TrackSegmentCost.cpp | 29 +- kite/src/Tracks.cpp | 34 +- kite/src/kite/RoutingEvent.h | 2 +- knik/src/Edge.cpp | 2 +- knik/src/Graph.cpp | 79 ++--- knik/src/MatrixVertex.cpp | 4 +- unicorn/src/CgtMain.cpp | 7 - unicorn/src/PyUnicorn.cpp | 3 +- unicorn/src/PyUnicornGui.cpp | 8 +- unicorn/src/UnicornGui.cpp | 5 +- unicorn/src/cgt.py | 3 +- 201 files changed, 2614 insertions(+), 2627 deletions(-) create mode 100644 hurricane/doc/hurricane/DebugSession.dox 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)