diff --git a/crlcore/etc/environment.alliance.xml b/crlcore/etc/environment.alliance.xml index bcc062f7..cda8e4b4 100644 --- a/crlcore/etc/environment.alliance.xml +++ b/crlcore/etc/environment.alliance.xml @@ -20,7 +20,7 @@ . - + ${CELL_TOP}/cells/sxlib ${CELL_TOP}/cells/dp_sxlib ${CELL_TOP}/cells/ramlib diff --git a/crlcore/src/ccore/Environment.cpp b/crlcore/src/ccore/Environment.cpp index 921b647a..abf6cc8c 100644 --- a/crlcore/src/ccore/Environment.cpp +++ b/crlcore/src/ccore/Environment.cpp @@ -2,7 +2,7 @@ // -*- C++ -*- // // This file is part of the Coriolis Software. -// Copyright (c) UPMC/LIP6 2008-2009, All Rights Reserved +// Copyright (c) UPMC/LIP6 2008-2010, All Rights Reserved // // =================================================================== // @@ -16,7 +16,7 @@ // | Author : Jean-Paul CHAPUT | // | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | =============================================================== | -// | C++ Module : "./Environnment.h" | +// | C++ Module : "./Environnment.cpp" | // | *************************************************************** | // | U p d a t e s | // | | @@ -176,7 +176,7 @@ namespace { addTagEntry ( TagsLibraries , "catalog" , (tagParser_t)&XmlEnvironmentParser::parseCatalog ); addTagEntry ( TagsLibraries , "working" , (tagParser_t)&XmlEnvironmentParser::parseWorking ); addTagEntry ( TagsWorking , "library" , (tagParser_t)&XmlEnvironmentParser::parseLibrary ); - addTagEntry ( TagsLibraries , "system" , (tagParser_t)&XmlEnvironmentParser::parseSystem ); + addTagEntry ( TagsLibraries , "system" , (tagParser_t)&XmlEnvironmentParser::parseSystem ); addTagEntry ( TagsSystem , "library" , (tagParser_t)&XmlEnvironmentParser::parseLibrary ); addTagEntry ( TagsEnvironment , "formats" , (tagParser_t)&XmlEnvironmentParser::parseFormats ); @@ -387,12 +387,12 @@ namespace { QString operation; - operation = _reader->attributes().value("operation").toString(); - if ( operation.isEmpty() ) - _environment.getLIBRARIES().reset(); - else if ( operation != "append" ) - cerr << "[ERROR] Invalid value for attribute \"operation\" of : \"" - << qPrintable(operation) << "\"." << endl; + // operation = _reader->attributes().value("operation").toString(); + // if ( operation.isEmpty() ) + // _environment.getLIBRARIES().reset(); + // else if ( operation != "append" ) + // cerr << "[ERROR] Invalid value for attribute \"operation\" of : \"" + // << qPrintable(operation) << "\"." << endl; parseTags ( TagsSystem ); } @@ -400,11 +400,23 @@ namespace { void XmlEnvironmentParser::parseLibrary () { + unsigned int mode = Environment::Append; + QString modeAttribute = _reader->attributes().value("mode").toString(); + + if ( not modeAttribute.isEmpty() ) { + if ( modeAttribute == "append" ) mode = Environment::Append; + else if ( modeAttribute == "prepend" ) mode = Environment::Prepend; + else if ( modeAttribute == "replace" ) mode = Environment::Replace; + else + cerr << "[ERROR] Invalid value for attribute \"mode\" of : \"" + << qPrintable(modeAttribute) << "\"." << endl; + } + string library = readTextAsString().toStdString(); expandVariables ( library ); switch ( _state ) { case WorkingLibrary: _environment.setWORKING_LIBRARY ( library.c_str() ); break; - case SystemLibrary: _environment.addSYSTEM_LIBRARY ( library.c_str() ); break; + case SystemLibrary: _environment.addSYSTEM_LIBRARY ( library.c_str(), mode ); break; } } @@ -547,7 +559,7 @@ namespace CRL { { XmlEnvironmentParser::load ( *this, path, warnNotFound ); - check (); + _check (); } @@ -555,7 +567,7 @@ namespace CRL { { _CORIOLIS_TOP = getEnv ( "CORIOLIS_TOP", CORIOLIS_TOP ); - check (); + _check (); } @@ -586,28 +598,28 @@ namespace CRL { void Environment::setPOWER ( const char* value ) { _POWER = value; - setRegex ( &_PowerRegex , _POWER , "Power" ); + _setRegex ( &_PowerRegex , _POWER , "Power" ); } void Environment::setGROUND ( const char* value ) { _GROUND = value; - setRegex ( &_GroundRegex , _GROUND , "Ground" ); + _setRegex ( &_GroundRegex , _GROUND , "Ground" ); } void Environment::setCLOCK ( const char* value ) { _CLOCK = value; - setRegex ( &_ClockRegex , _CLOCK , "Clock" ); + _setRegex ( &_ClockRegex , _CLOCK , "Clock" ); } void Environment::setOBSTACLE ( const char* value ) { _OBSTACLE = value; - setRegex ( &_ObstacleRegex , _OBSTACLE , "Obstacle" ); + _setRegex ( &_ObstacleRegex , _OBSTACLE , "Obstacle" ); } @@ -657,7 +669,7 @@ namespace CRL { } - void Environment::setRegex ( regex_t* regex, const string& pattern, const char* name ) + void Environment::_setRegex ( regex_t* regex, const string& pattern, const char* name ) { char regexError[1024]; int regexCode; @@ -671,7 +683,7 @@ namespace CRL { } - void Environment::check () const + void Environment::_check () const { switch ( _SCALE_X ) { case 1: break; @@ -713,4 +725,27 @@ namespace CRL { } + void Environment::addSYSTEM_LIBRARY ( const char* value, unsigned int mode ) + { + if ( mode == Prepend ) { _LIBRARIES.prepend(value); return; } + if ( mode == Append ) { _LIBRARIES.append (value); return; } + + string newLibName = _getLibraryName ( value ); + for ( size_t i=0 ; i < _LIBRARIES.getSize() ; ++i ) { + if ( newLibName == _getLibraryName(_LIBRARIES[i]) ) { + _LIBRARIES.replace ( value, i ); + return; + } + } + _LIBRARIES.append (value); + } + + + string Environment::_getLibraryName ( const std::string& path ) + { + size_t slash = path.rfind ( '/' ); + return path.substr ( (slash!=string::npos)?slash+1:0 ); + } + + } // End of CRL namespace. diff --git a/crlcore/src/ccore/SearchPath.cpp b/crlcore/src/ccore/SearchPath.cpp index 8b952216..ae2aa3d2 100644 --- a/crlcore/src/ccore/SearchPath.cpp +++ b/crlcore/src/ccore/SearchPath.cpp @@ -1,5 +1,26 @@ // -*- C++ -*- +// +// This file is part of the Coriolis Software. +// Copyright (c) UPMC/LIP6 2008-2010, All Rights Reserved +// +// =================================================================== +// +// $Id$ +// +// x-----------------------------------------------------------------x +// | | +// | C O R I O L I S | +// | Alliance / Hurricane Interface | +// | | +// | Author : Jean-Paul CHAPUT | +// | E-mail : Jean-Paul.Chaput@asim.lip6.fr | +// | =============================================================== | +// | C++ Module : "./SearchPath.cpp" | +// | *************************************************************** | +// | U p d a t e s | +// | | +// x-----------------------------------------------------------------x # include "crlcore/SearchPath.h" @@ -7,13 +28,14 @@ namespace CRL { + using namespace std; const size_t SearchPath::npos = (size_t)-1; SearchPath::SearchPath () - : _paths() - , _index(npos) + : _paths () + , _index (npos) , _selected("") { } @@ -44,11 +66,11 @@ namespace CRL { } - bool SearchPath::hasPath ( const string& path ) const + size_t SearchPath::hasPath ( const string& path ) const { for ( size_t i=0 ; i < _paths.size() ; i++ ) - if ( _paths[i] == path ) return true; - return false; + if ( _paths[i] == path ) return i; + return npos; } diff --git a/crlcore/src/ccore/crlcore/AllianceLibrary.h b/crlcore/src/ccore/crlcore/AllianceLibrary.h index 0bbff49f..6d8ed6db 100644 --- a/crlcore/src/ccore/crlcore/AllianceLibrary.h +++ b/crlcore/src/ccore/crlcore/AllianceLibrary.h @@ -89,13 +89,13 @@ namespace CRL { AllianceLibrary ( const Name& path, Library* library=NULL ); // Operators AllianceLibrary& operator= ( const AllianceLibrary& directory ); - AllianceLibrary& operator= ( const string& path ); + AllianceLibrary& operator= ( const std::string& path ); // Accessors inline const Name& getPath () const; inline Library* getLibrary () const; // Hurricane management. - inline string _getTypeName () const; - string _getString () const; + inline std::string _getTypeName () const; + std::string _getString () const; Record* _getRecord () const; protected: @@ -110,9 +110,9 @@ namespace CRL { // Inline Functions. - inline const Name& AllianceLibrary::getPath () const { return _path; } - inline Library* AllianceLibrary::getLibrary () const { return _library; } - inline string AllianceLibrary::_getTypeName () const { return _TName("AllianceLibrary"); } + inline const Name& AllianceLibrary::getPath () const { return _path; } + inline Library* AllianceLibrary::getLibrary () const { return _library; } + inline std::string AllianceLibrary::_getTypeName () const { return _TName("AllianceLibrary"); } } // End of CRL namespace. diff --git a/crlcore/src/ccore/crlcore/Environment.h b/crlcore/src/ccore/crlcore/Environment.h index 77c590b2..b8d0a209 100644 --- a/crlcore/src/ccore/crlcore/Environment.h +++ b/crlcore/src/ccore/crlcore/Environment.h @@ -1,5 +1,26 @@ // -*- C++ -*- +// +// This file is part of the Coriolis Software. +// Copyright (c) UPMC/LIP6 2008-2010, All Rights Reserved +// +// =================================================================== +// +// $Id$ +// +// x-----------------------------------------------------------------x +// | | +// | C O R I O L I S | +// | Alliance / Hurricane Interface | +// | | +// | Author : Jean-Paul CHAPUT | +// | E-mail : Jean-Paul.Chaput@asim.lip6.fr | +// | =============================================================== | +// | C++ Header : "./Environment.h" | +// | *************************************************************** | +// | U p d a t e s | +// | | +// x-----------------------------------------------------------------x #ifndef __CRL_ENVIRONMENT__ @@ -16,126 +37,128 @@ namespace CRL { class Environment { + public: + enum AddMode { Append=1, Prepend=2, Replace=3 }; public: // Internal: Static Methods. - static const char* getEnv ( const char* variable, const char* defaultValue ); + static const char* getEnv ( const char* variable, const char* defaultValue ); // Constructors & destructors. - Environment (); - ~Environment (); + Environment (); + ~Environment (); // Accessors. - inline const string& getCORIOLIS_TOP () const; - inline const string& getDisplayStyle () const; - inline long getSCALE_X () const; - inline const string& getSYMBOLIC_TECHNOLOGY () const; - inline const string& getREAL_TECHNOLOGY () const; - inline const string& getLEF_TECHNOLOGY () const; - inline const string& getDISPLAY () const; - inline const string& getIN_LO () const; - inline const string& getIN_PH () const; - inline const string& getOUT_LO () const; - inline const string& getOUT_PH () const; - inline const string& getPOWER () const; - inline const string& getGROUND () const; - inline const string& getCLOCK () const; - inline const string& getOBSTACLE () const; - inline const string& getCATALOG () const; - inline SearchPath& getLIBRARIES (); + inline const std::string& getCORIOLIS_TOP () const; + inline const std::string& getDisplayStyle () const; + inline long getSCALE_X () const; + inline const std::string& getSYMBOLIC_TECHNOLOGY () const; + inline const std::string& getREAL_TECHNOLOGY () const; + inline const std::string& getLEF_TECHNOLOGY () const; + inline const std::string& getDISPLAY () const; + inline const std::string& getIN_LO () const; + inline const std::string& getIN_PH () const; + inline const std::string& getOUT_LO () const; + inline const std::string& getOUT_PH () const; + inline const std::string& getPOWER () const; + inline const std::string& getGROUND () const; + inline const std::string& getCLOCK () const; + inline const std::string& getOBSTACLE () const; + inline const std::string& getCATALOG () const; + inline SearchPath& getLIBRARIES (); // Predicates. - bool isPOWER ( const char* name ) const; - bool isGROUND ( const char* name ) const; - bool isCLOCK ( const char* name ) const; - bool isOBSTACLE ( const char* name ) const; + bool isPOWER ( const char* name ) const; + bool isGROUND ( const char* name ) const; + bool isCLOCK ( const char* name ) const; + bool isOBSTACLE ( const char* name ) const; // Modifiers. - void loadFromXml ( const string& path="", bool warnNotFound=true ); - void loadFromShell (); - inline void setDisplayStyle ( const char* ); - inline void setSCALE_X ( long value ); - inline void setSYMBOLIC_TECHNOLOGY ( const char* value ); - inline void setREAL_TECHNOLOGY ( const char* value ); - inline void setLEF_TECHNOLOGY ( const char* value ); - inline void setDISPLAY ( const char* value ); - inline void setIN_LO ( const char* value ); - inline void setIN_PH ( const char* value ); - inline void setOUT_LO ( const char* value ); - inline void setOUT_PH ( const char* value ); - void setPOWER ( const char* value ); - void setGROUND ( const char* value ); - void setCLOCK ( const char* value ); - void setOBSTACLE ( const char* value ); - inline void setCATALOG ( const char* value ); - inline void setWORKING_LIBRARY ( const char* value ); - inline void addSYSTEM_LIBRARY ( const char* value ); + void loadFromXml ( const std::string& path="", bool warnNotFound=true ); + void loadFromShell (); + inline void setDisplayStyle ( const char* ); + inline void setSCALE_X ( long value ); + inline void setSYMBOLIC_TECHNOLOGY ( const char* value ); + inline void setREAL_TECHNOLOGY ( const char* value ); + inline void setLEF_TECHNOLOGY ( const char* value ); + inline void setDISPLAY ( const char* value ); + inline void setIN_LO ( const char* value ); + inline void setIN_PH ( const char* value ); + inline void setOUT_LO ( const char* value ); + inline void setOUT_PH ( const char* value ); + void setPOWER ( const char* value ); + void setGROUND ( const char* value ); + void setCLOCK ( const char* value ); + void setOBSTACLE ( const char* value ); + inline void setCATALOG ( const char* value ); + inline void setWORKING_LIBRARY ( const char* value ); + void addSYSTEM_LIBRARY ( const char* value, unsigned int mode=Append ); // Methods. - string getPrint () const; + std::string getPrint () const; protected: // Internal: Attributes. - string _CORIOLIS_TOP; - string _displayStyle; - long _SCALE_X; - string _SYMBOLIC_TECHNOLOGY; - string _LEF_TECHNOLOGY; - string _REAL_TECHNOLOGY; - string _DISPLAY; - string _IN_LO; - string _IN_PH; - string _OUT_LO; - string _OUT_PH; - string _POWER; - string _GROUND; - string _CLOCK; - string _OBSTACLE; - string _CATALOG; - SearchPath _LIBRARIES; - regex_t _PowerRegex; - regex_t _GroundRegex; - regex_t _ClockRegex; - regex_t _ObstacleRegex; - bool _inConstructor; + std::string _CORIOLIS_TOP; + std::string _displayStyle; + long _SCALE_X; + std::string _SYMBOLIC_TECHNOLOGY; + std::string _LEF_TECHNOLOGY; + std::string _REAL_TECHNOLOGY; + std::string _DISPLAY; + std::string _IN_LO; + std::string _IN_PH; + std::string _OUT_LO; + std::string _OUT_PH; + std::string _POWER; + std::string _GROUND; + std::string _CLOCK; + std::string _OBSTACLE; + std::string _CATALOG; + SearchPath _LIBRARIES; + regex_t _PowerRegex; + regex_t _GroundRegex; + regex_t _ClockRegex; + regex_t _ObstacleRegex; + bool _inConstructor; - // Internal: Modifiers. - void setRegex ( regex_t* regex, const string& pattern, const char* name ); - void check () const; + private: + void _setRegex ( regex_t* regex, const std::string& pattern, const char* name ); + void _check () const; + static std::string _getLibraryName ( const std::string& path ); }; // Inline Member Functions. - inline const string& Environment::getCORIOLIS_TOP () const { return _CORIOLIS_TOP; } - inline const string& Environment::getDisplayStyle () const { return _displayStyle; } - inline long Environment::getSCALE_X () const { return _SCALE_X; } - inline const string& Environment::getSYMBOLIC_TECHNOLOGY () const { return _SYMBOLIC_TECHNOLOGY; } - inline const string& Environment::getREAL_TECHNOLOGY () const { return _REAL_TECHNOLOGY; } - inline const string& Environment::getLEF_TECHNOLOGY () const { return _LEF_TECHNOLOGY; } - inline const string& Environment::getDISPLAY () const { return _DISPLAY; } - inline const string& Environment::getIN_LO () const { return _IN_LO; } - inline const string& Environment::getIN_PH () const { return _IN_PH; } - inline const string& Environment::getOUT_LO () const { return _OUT_LO; } - inline const string& Environment::getOUT_PH () const { return _OUT_PH; } - inline const string& Environment::getPOWER () const { return _POWER; } - inline const string& Environment::getGROUND () const { return _GROUND; } - inline const string& Environment::getCLOCK () const { return _CLOCK; } - inline const string& Environment::getOBSTACLE () const { return _OBSTACLE; } - inline const string& Environment::getCATALOG () const { return _CATALOG; } - inline SearchPath& Environment::getLIBRARIES () { return _LIBRARIES; } - - inline void Environment::setDisplayStyle ( const char* value ) { _displayStyle = value; } - inline void Environment::setSCALE_X ( long value ) { _SCALE_X = value; } - inline void Environment::setSYMBOLIC_TECHNOLOGY ( const char* value ) { _SYMBOLIC_TECHNOLOGY = value; } - inline void Environment::setREAL_TECHNOLOGY ( const char* value ) { _REAL_TECHNOLOGY = value; } - inline void Environment::setLEF_TECHNOLOGY ( const char* value ) { _LEF_TECHNOLOGY = value; } - inline void Environment::setDISPLAY ( const char* value ) { _DISPLAY = value; } - inline void Environment::setIN_LO ( const char* value ) { _IN_LO = value; } - inline void Environment::setIN_PH ( const char* value ) { _IN_PH = value; } - inline void Environment::setOUT_LO ( const char* value ) { _OUT_LO = value; } - inline void Environment::setOUT_PH ( const char* value ) { _OUT_PH = value; } - inline void Environment::setCATALOG ( const char* value ) { _CATALOG = value; } - inline void Environment::setWORKING_LIBRARY ( const char* value ) { _LIBRARIES.replace(value,0); } - inline void Environment::addSYSTEM_LIBRARY ( const char* value ) { _LIBRARIES.append(value); } + inline const std::string& Environment::getCORIOLIS_TOP () const { return _CORIOLIS_TOP; } + inline const std::string& Environment::getDisplayStyle () const { return _displayStyle; } + inline long Environment::getSCALE_X () const { return _SCALE_X; } + inline const std::string& Environment::getSYMBOLIC_TECHNOLOGY () const { return _SYMBOLIC_TECHNOLOGY; } + inline const std::string& Environment::getREAL_TECHNOLOGY () const { return _REAL_TECHNOLOGY; } + inline const std::string& Environment::getLEF_TECHNOLOGY () const { return _LEF_TECHNOLOGY; } + inline const std::string& Environment::getDISPLAY () const { return _DISPLAY; } + inline const std::string& Environment::getIN_LO () const { return _IN_LO; } + inline const std::string& Environment::getIN_PH () const { return _IN_PH; } + inline const std::string& Environment::getOUT_LO () const { return _OUT_LO; } + inline const std::string& Environment::getOUT_PH () const { return _OUT_PH; } + inline const std::string& Environment::getPOWER () const { return _POWER; } + inline const std::string& Environment::getGROUND () const { return _GROUND; } + inline const std::string& Environment::getCLOCK () const { return _CLOCK; } + inline const std::string& Environment::getOBSTACLE () const { return _OBSTACLE; } + inline const std::string& Environment::getCATALOG () const { return _CATALOG; } + inline SearchPath& Environment::getLIBRARIES () { return _LIBRARIES; } + + inline void Environment::setDisplayStyle ( const char* value ) { _displayStyle = value; } + inline void Environment::setSCALE_X ( long value ) { _SCALE_X = value; } + inline void Environment::setSYMBOLIC_TECHNOLOGY ( const char* value ) { _SYMBOLIC_TECHNOLOGY = value; } + inline void Environment::setREAL_TECHNOLOGY ( const char* value ) { _REAL_TECHNOLOGY = value; } + inline void Environment::setLEF_TECHNOLOGY ( const char* value ) { _LEF_TECHNOLOGY = value; } + inline void Environment::setDISPLAY ( const char* value ) { _DISPLAY = value; } + inline void Environment::setIN_LO ( const char* value ) { _IN_LO = value; } + inline void Environment::setIN_PH ( const char* value ) { _IN_PH = value; } + inline void Environment::setOUT_LO ( const char* value ) { _OUT_LO = value; } + inline void Environment::setOUT_PH ( const char* value ) { _OUT_PH = value; } + inline void Environment::setCATALOG ( const char* value ) { _CATALOG = value; } + inline void Environment::setWORKING_LIBRARY ( const char* value ) { _LIBRARIES.replace(value,0); } } // End of CRL namespace. diff --git a/crlcore/src/ccore/crlcore/Measures.h b/crlcore/src/ccore/crlcore/Measures.h index bb052b23..6a432a7a 100644 --- a/crlcore/src/ccore/crlcore/Measures.h +++ b/crlcore/src/ccore/crlcore/Measures.h @@ -52,23 +52,26 @@ namespace CRL { class BaseMeasure { public: - inline BaseMeasure ( const Name& ); - virtual ~BaseMeasure (); - inline const Name& getName () const; - virtual std::string toString () const = 0; + inline BaseMeasure ( const Name&, unsigned int width ); + virtual ~BaseMeasure (); + inline const Name& getName () const; + inline unsigned int getFieldWidth () const; + virtual std::string toString () const = 0; private: Name _name; + unsigned int _fieldWidth; }; - inline BaseMeasure::BaseMeasure ( const Name& name ) : _name(name) {} - inline const Name& BaseMeasure::getName () const { return _name; } + inline BaseMeasure::BaseMeasure ( const Name& name, unsigned int width ) : _name(name), _fieldWidth(width) {} + inline const Name& BaseMeasure::getName () const { return _name; } + inline unsigned int BaseMeasure::getFieldWidth () const { return _fieldWidth; } template class Measure : public BaseMeasure { public: - inline Measure ( const Name&, const Data& ); + inline Measure ( const Name&, const Data&, unsigned int width ); inline const Data& getData () const; inline void setData ( const Data& ); virtual std::string toString () const; @@ -78,8 +81,8 @@ namespace CRL { template - inline Measure::Measure ( const Name& name, const Data& data ) - : BaseMeasure(name), _data(data) { } + inline Measure::Measure ( const Name& name, const Data& data, unsigned int width ) + : BaseMeasure(name,width), _data(data) { } template @@ -121,24 +124,24 @@ namespace CRL { public: typedef StandardPrivateProperty Extension; public: - template friend void addMeasure ( DBo*, const Name&, const Data& ); - template friend const Measure* getMeasure ( const DBo*, const Name& ); - static const MeasuresSet* get ( const DBo* ); + template friend inline void addMeasure ( DBo*, const Name&, const Data&, unsigned int width=8 ); + template friend inline const Measure* getMeasure ( DBo*, const Name& ); + static const MeasuresSet* get ( const DBo* ); private: - static Extension* _getOrCreate ( DBo* ); + static Extension* _getOrCreate ( DBo* ); }; template - static void addMeasure ( DBo* object, const Name& name, const Data& data ) + inline void addMeasure ( DBo* object, const Name& name, const Data& data, unsigned int width ) { Measures::Extension* extension = Measures::_getOrCreate ( object ); - extension->getValue()._measures.insert ( std::make_pair(name,new Measure(name,data)) ); + extension->getValue()._measures.insert ( std::make_pair(name,new Measure(name,data,width)) ); } template - static Measure* getMeasure ( DBo* object, const Name& name ) + inline const Measure* getMeasure ( DBo* object, const Name& name ) { Measures::Extension* extension = Measures::_getOrCreate ( object ); MeasuresSet::iterator imeasure = extension->getValue()._measures.find(name); diff --git a/crlcore/src/ccore/crlcore/ParsersDrivers.h b/crlcore/src/ccore/crlcore/ParsersDrivers.h index 59df55ba..82717109 100644 --- a/crlcore/src/ccore/crlcore/ParsersDrivers.h +++ b/crlcore/src/ccore/crlcore/ParsersDrivers.h @@ -74,8 +74,8 @@ namespace CRL { }; - typedef list ParserSlots; - typedef list::iterator ParserSlotIter; + typedef std::list ParserSlots; + typedef std::list::iterator ParserSlotIter; // ------------------------------------------------------------------- @@ -93,8 +93,8 @@ namespace CRL { inline LibraryParser_t* getParsLib (); inline CellParser_t* getParsCell (); // Modifiers. - void registerCell ( const string& tag, CellParser_t* p, const string& ext ); - void registerLib ( const string& tag, LibraryParser_t* p, const string& ext ); + void registerCell ( const std::string& tag, CellParser_t* p, const std::string& ext ); + void registerLib ( const std::string& tag, LibraryParser_t* p, const std::string& ext ); bool unRegisterCell ( const Name& ext ); bool unRegisterLib ( const Name& ext ); // Iterators handling. @@ -133,10 +133,10 @@ namespace CRL { // Constructor. ParsersMap (); // Methods. - ParserFormatSlot& getParserSlot ( const string& tag ); - ParserFormatSlot& getParserSlot ( const string& tag, unsigned int mode, const Environment& env ); - void registerSlot ( const string& tag, LibraryParser_t* p, const string& ext ); - void registerSlot ( const string& tag, CellParser_t* p, const string& ext ); + ParserFormatSlot& getParserSlot ( const std::string& tag ); + ParserFormatSlot& getParserSlot ( const std::string& tag, unsigned int mode, const Environment& env ); + void registerSlot ( const std::string& tag, LibraryParser_t* p, const std::string& ext ); + void registerSlot ( const std::string& tag, CellParser_t* p, const std::string& ext ); void unRegisterSlot ( const Name& tag, const Name& ext, bool lib ); }; @@ -157,8 +157,8 @@ namespace CRL { inline CellDriver_t* getDrivCell (); // Modifiers. - inline void setExtLib ( const string &ext ); - inline void setExtCell ( const string &ext ); + inline void setExtLib ( const std::string &ext ); + inline void setExtCell ( const std::string &ext ); inline void setDrivLib ( LibraryDriver_t *driv ); inline void setDrivCell ( CellDriver_t *driv ); @@ -184,8 +184,8 @@ namespace CRL { inline const Name& DriverSlot::getExtCell () { return ( _extCell ); } inline LibraryDriver_t* DriverSlot::getDrivLib () { return ( _drivLib ); } inline CellDriver_t* DriverSlot::getDrivCell () { return ( _drivCell ); } - inline void DriverSlot::setExtLib ( const string& ext ) { _extLib = ext; } - inline void DriverSlot::setExtCell ( const string& ext ) { _extCell = ext; } + inline void DriverSlot::setExtLib ( const std::string& ext ) { _extLib = ext; } + inline void DriverSlot::setExtCell ( const std::string& ext ) { _extCell = ext; } inline void DriverSlot::setDrivLib ( LibraryDriver_t* driv ) { _drivLib = driv; } inline void DriverSlot::setDrivCell ( CellDriver_t* driv ) { _drivCell = driv; } @@ -201,10 +201,10 @@ namespace CRL { // Constructor. DriversMap (); // Methods. - DriverSlot& getDriverSlot ( const string& tag ); - DriverSlot& getDriverSlot ( const string& tag, unsigned int mode, const Environment& env ); - void registerSlot ( const string& tag, CellDriver_t *d, const string& ext ); - void registerSlot ( const string& tag, LibraryDriver_t *d, const string& ext ); + DriverSlot& getDriverSlot ( const std::string& tag ); + DriverSlot& getDriverSlot ( const std::string& tag, unsigned int mode, const Environment& env ); + void registerSlot ( const std::string& tag, CellDriver_t *d, const std::string& ext ); + void registerSlot ( const std::string& tag, LibraryDriver_t *d, const std::string& ext ); void unRegisterSlot ( const Name& tag ); }; diff --git a/crlcore/src/ccore/crlcore/SearchPath.h b/crlcore/src/ccore/crlcore/SearchPath.h index f39d67e2..27d48afd 100644 --- a/crlcore/src/ccore/crlcore/SearchPath.h +++ b/crlcore/src/ccore/crlcore/SearchPath.h @@ -1,77 +1,87 @@ // -*- C++ -*- +// +// This file is part of the Coriolis Software. +// Copyright (c) UPMC/LIP6 2008-2010, All Rights Reserved +// +// =================================================================== +// +// $Id$ +// +// x-----------------------------------------------------------------x +// | | +// | C O R I O L I S | +// | Alliance / Hurricane Interface | +// | | +// | Author : Jean-Paul CHAPUT | +// | E-mail : Jean-Paul.Chaput@asim.lip6.fr | +// | =============================================================== | +// | C++ Header : "./SearchPath.h" | +// | *************************************************************** | +// | U p d a t e s | +// | | +// x-----------------------------------------------------------------x -# ifndef __CRL_SEARCH_PATH__ -# define __CRL_SEARCH_PATH__ +#ifndef __CRL_SEARCH_PATH__ +# define __CRL_SEARCH_PATH__ -# include -# include +#include +#include -# include "hurricane/Commons.h" -# include "hurricane/Slot.h" +#include "hurricane/Commons.h" +#include "hurricane/Slot.h" namespace CRL { - using namespace std; - using Hurricane::Record; using Hurricane::_TName; class SearchPath { - public: - // Constants. - static const size_t npos; - - // Constructors. - SearchPath (); - - // Methods. - inline void reset (); - inline void append ( const string& path ); - void replace ( const string& path, size_t index ); - size_t locate ( const string& file - , ios::openmode mode =ios::in - , int first=0 - , int last =64 ); - inline size_t getSize () const; - inline const string& getSelected () const; - inline size_t getIndex () const; - bool hasSelected () const; - bool hasPath ( const string& path ) const; - const string& operator[] ( size_t index ) const; - - // Internal - Attributes. - private: - vector _paths; - size_t _index; - string _selected; - - // Internal - Constructors. - private: - SearchPath ( const SearchPath& ); - - // Hurricane management. + static const size_t npos; + SearchPath (); public: - inline string _getTypeName () const; - string _getString () const; - Record* _getRecord () const; + inline void reset (); + inline void append ( const std::string& path ); + inline void prepend ( const std::string& path ); + void replace ( const std::string& path, size_t index ); + size_t locate ( const std::string& file + , std::ios::openmode mode =std::ios::in + , int first=0 + , int last =64 ); + inline size_t getSize () const; + inline const std::string& getSelected () const; + inline size_t getIndex () const; + bool hasSelected () const; + size_t hasPath ( const std::string& path ) const; + const std::string& operator[] ( size_t index ) const; + private: + std::vector _paths; + size_t _index; + std::string _selected; + private: + SearchPath ( const SearchPath& ); + public: + inline std::string _getTypeName () const; + std::string _getString () const; + Record* _getRecord () const; }; // Inline Functions. - inline void SearchPath::reset () { _paths.resize(1); } - inline void SearchPath::append ( const string& path ) { _paths.push_back(path); } - inline size_t SearchPath::getSize () const { return _paths.size(); } - inline const string& SearchPath::getSelected () const { return _selected; } - inline size_t SearchPath::getIndex () const { return _index; } - inline bool SearchPath::hasSelected () const { return _index != npos; } - inline string SearchPath::_getTypeName () const { return _TName("SearchPath"); } + inline void SearchPath::reset () { _paths.resize(1); } + inline void SearchPath::prepend ( const std::string& path ) { _paths.insert ( _paths.begin(), path ); } + inline void SearchPath::append ( const std::string& path ) { _paths.push_back(path); } + inline size_t SearchPath::getSize () const { return _paths.size(); } + inline const std::string& SearchPath::getSelected () const { return _selected; } + inline size_t SearchPath::getIndex () const { return _index; } + inline bool SearchPath::hasSelected () const { return _index != npos; } + inline std::string SearchPath::_getTypeName () const { return _TName("SearchPath"); } diff --git a/crlcore/src/ccore/lefdef/DefParser.cpp b/crlcore/src/ccore/lefdef/DefParser.cpp index bb89de09..25fa822a 100644 --- a/crlcore/src/ccore/lefdef/DefParser.cpp +++ b/crlcore/src/ccore/lefdef/DefParser.cpp @@ -56,6 +56,7 @@ namespace { + using namespace std; using Hurricane::Warning; using Hurricane::DbU; diff --git a/crlcore/src/ccore/lefdef/LefParser.cpp b/crlcore/src/ccore/lefdef/LefParser.cpp index 66f94e40..1f05091d 100644 --- a/crlcore/src/ccore/lefdef/LefParser.cpp +++ b/crlcore/src/ccore/lefdef/LefParser.cpp @@ -75,6 +75,7 @@ namespace { + using namespace std; using Hurricane::Warning; using Hurricane::Error; diff --git a/crlcore/src/ccore/properties/Measures.cpp b/crlcore/src/ccore/properties/Measures.cpp index 97d05ed2..c61049d3 100644 --- a/crlcore/src/ccore/properties/Measures.cpp +++ b/crlcore/src/ccore/properties/Measures.cpp @@ -79,7 +79,7 @@ namespace CRL { if ( imeasure == end() ) continue; const BaseMeasure* measure = (*imeasure).second; - out << setw(8) << right << measure->getName(); + out << setw(measure->getFieldWidth()) << right << measure->getName(); } return out.str(); @@ -96,7 +96,7 @@ namespace CRL { if ( imeasure == end() ) continue; const BaseMeasure* measure = (*imeasure).second; - out << setw(8) << right << measure->toString(); + out << setw(measure->getFieldWidth()) << right << measure->toString(); } return out.str(); diff --git a/crlcore/src/cyclop/CyclopMain.cpp b/crlcore/src/cyclop/CyclopMain.cpp index 1080b3b0..f1ab1528 100644 --- a/crlcore/src/cyclop/CyclopMain.cpp +++ b/crlcore/src/cyclop/CyclopMain.cpp @@ -180,11 +180,15 @@ int main ( int argc, char *argv[] ) if ( arguments.count("cell") ) { cell = af->getCell (arguments["cell"].as().c_str(), Catalog::State::Views ); - if (!cell) { + if ( cell == NULL ) { cerr << af->getPrint() << endl; cerr << "[ERROR] Cell not found: " << arguments["cell"].as().c_str() << endl; exit ( -45 ); } + + // Slot* slot = getSlot ( "_netMap", &(cell->_getNetMap()) ); + // Record* record = slot->getDataRecord(); + // cerr << "_netMap(0): " << record->getSlot(0)->getDataString() << endl; } if ( not textMode ) {