142 lines
4.1 KiB
C++
142 lines
4.1 KiB
C++
|
|
|
|
// -*- C++ -*-
|
|
//
|
|
// This file is part of the Coriolis Software.
|
|
// Copyright (c) UPMC/LIP6 2008-2008, 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 : "./CellGauge.cpp" |
|
|
// | *************************************************************** |
|
|
// | U p d a t e s |
|
|
// | |
|
|
// x-----------------------------------------------------------------x
|
|
|
|
|
|
|
|
|
|
#include <sstream>
|
|
|
|
#include "crlcore/CellGauge.h"
|
|
|
|
|
|
|
|
|
|
namespace {
|
|
|
|
|
|
// const char *missingMandatoryAttr =
|
|
// "CRoutingGauge::createFromXml () :\n\n"
|
|
// " Can't found mandatory attribute \"%s\".\n";
|
|
|
|
// const char *badAttrValue =
|
|
// "CRoutingGauge::createFromXml () :\n\n"
|
|
// " Invalid value \"%s\" for attribute \"%s\".\n";
|
|
|
|
// const char *missingCellGaugeTag =
|
|
// "::createCellGaugeFromXml () :\n\n"
|
|
// " Can't found \"cellgauge\" tag.\n"
|
|
// " (XML file := \"%s\").\n";
|
|
|
|
// const char *missingCellGaugeNameAttr =
|
|
// "::createCellGaugeFromXml () :\n\n"
|
|
// " Can't found cellgauge name tag attribute.\n";
|
|
|
|
// const char *emptyCellGaugeNameAttr =
|
|
// "::createCellGaugeFromXml () :\n\n"
|
|
// " cellgauge name tag attribute is empty.\n";
|
|
|
|
|
|
} // End of Anonymous namespace.
|
|
|
|
|
|
|
|
|
|
namespace CRL {
|
|
|
|
|
|
// -------------------------------------------------------------------
|
|
// Class : "CRL::CellGauge".
|
|
|
|
|
|
CellGauge::CellGauge ( const char* name
|
|
, const char* pinLayerName
|
|
, const DbU::Unit pitch
|
|
, const DbU::Unit sliceHeight
|
|
, const DbU::Unit sliceStep
|
|
) : _name(name)
|
|
, _pinLayerName(pinLayerName)
|
|
, _pitch(pitch)
|
|
, _sliceHeight(sliceHeight)
|
|
, _sliceStep(sliceStep)
|
|
{ }
|
|
|
|
|
|
CellGauge* CellGauge::create ( const char* name
|
|
, const char* pinLayerName
|
|
, const DbU::Unit pitch
|
|
, const DbU::Unit sliceHeight
|
|
, const DbU::Unit sliceStep
|
|
)
|
|
{
|
|
if ( !name || (name[0] == '\0') )
|
|
throw Error ( "CellGauge::create() : Empty name." );
|
|
|
|
CellGauge* gauge = new CellGauge ( name, pinLayerName, pitch, sliceHeight, sliceStep );
|
|
|
|
if ( gauge == NULL )
|
|
throw Error ( BadCreate, "CRL::CellGauge::create()" );
|
|
|
|
return gauge;
|
|
}
|
|
|
|
|
|
CellGauge::~CellGauge()
|
|
{ }
|
|
|
|
|
|
void CellGauge::destroy ()
|
|
{ delete this; }
|
|
|
|
|
|
string CellGauge::_getTypeName () const
|
|
{ return _TName("CellGauge"); }
|
|
|
|
|
|
string CellGauge::_getString () const
|
|
{
|
|
return ( "<" + _TName("CellGauge ")
|
|
+ getString(_name)
|
|
//+ " pinLayerName=" + getString(_pinLayerName)
|
|
//+ " pitch=" + getValueString(_pitch)
|
|
//+ " height=" + getValueString(_sliceHeight)
|
|
//+ " step=" + getValueString(_sliceStep)
|
|
+ ">" );
|
|
}
|
|
|
|
|
|
Record* CellGauge::_getRecord () const
|
|
{
|
|
Record* record = new Record ( getString(this) );
|
|
record->add ( getSlot ( "Name" , &_name ) );
|
|
record->add ( getSlot ( "PinLayerName" , &_pinLayerName) );
|
|
record->add ( getSlot ( "pitch" , _pitch ) );
|
|
record->add ( getSlot ( "sliceHeight" , _sliceHeight ) );
|
|
record->add ( getSlot ( "sliceStep" , _sliceStep ) );
|
|
return ( record );
|
|
}
|
|
|
|
|
|
} // End of CRL namespace.
|