From 2127fa916bd6265a1b0f537cdff8f5d0e7edf1ee Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Fri, 18 Aug 2017 18:08:01 +0200 Subject: [PATCH] Inspector support for map<> with default sort. * New: In Hurricane/Common.h, added inspector support for map<> using the default sort mechanism (less<>). --- hurricane/src/hurricane/hurricane/Commons.h | 52 +++++++++++++++++++ .../src/hurricane/hurricane/DebugSession.h | 5 +- 2 files changed, 55 insertions(+), 2 deletions(-) diff --git a/hurricane/src/hurricane/hurricane/Commons.h b/hurricane/src/hurricane/hurricane/Commons.h index eafed47a..7f257b30 100644 --- a/hurricane/src/hurricane/hurricane/Commons.h +++ b/hurricane/src/hurricane/hurricane/Commons.h @@ -539,6 +539,58 @@ inline Hurricane::Record* getRecord ( std::list* l ) // Inspector Support for : "[const] std::map*. +template +inline std::string getString ( std::map* m ) +{ + std::string name = "std::map:"; + return name + getString(m->size()); +} + + +template +inline Hurricane::Record* getRecord ( std::map* m ) +{ + Hurricane::Record* record = NULL; + if ( !m->empty() ) { + record = new Hurricane::Record ( "std::map" ); + typename std::map::iterator iterator = m->begin(); + while ( iterator != m->end() ) { + record->add ( getSlot(getString(iterator->first), iterator->second) ); + ++iterator; + } + } + return record; +} + + +template +inline std::string getString ( const std::map* m ) +{ + std::string name = "const std::map:"; + return name + getString(m->size()); +} + + +template +inline Hurricane::Record* getRecord ( const std::map* m ) +{ + Hurricane::Record* record = NULL; + if ( !m->empty() ) { + record = new Hurricane::Record ( "const std::map" ); + typename std::map::const_iterator iterator = m->begin(); + while ( iterator != m->end() ) { + record->add ( getSlot(getString(iterator->first), iterator->second) ); + ++iterator; + } + } + return record; +} + + +// ------------------------------------------------------------------- +// Inspector Support for : "[const] std::map*. + + template inline std::string getString ( std::map* m ) { diff --git a/hurricane/src/hurricane/hurricane/DebugSession.h b/hurricane/src/hurricane/hurricane/DebugSession.h index c62b7131..dc43e468 100644 --- a/hurricane/src/hurricane/hurricane/DebugSession.h +++ b/hurricane/src/hurricane/hurricane/DebugSession.h @@ -109,10 +109,11 @@ namespace Hurricane { if (cdebug.getMinLevel() < minLevel) minLevel = cdebug.getMinLevel(); if (cdebug.getMaxLevel() > maxLevel) maxLevel = cdebug.getMaxLevel(); - if ( _singleton->_isTraced(symbol) ) + if ( _singleton->_isTraced(symbol) ) { _singleton->_levels.push( make_pair( cdebug.setMinLevel(minLevel) , cdebug.setMaxLevel(maxLevel) ) ); - else { + //cerr << "DebugSession::open() " << symbol << "min:" << minLevel << " max:" << maxLevel << endl; + } else { _singleton->_levels.push ( make_pair( cdebug.getMinLevel() , cdebug.getMaxLevel() ) ); }