diff --git a/cumulus/src/plugins/alpha/block/hfns.py b/cumulus/src/plugins/alpha/block/hfns1.py similarity index 100% rename from cumulus/src/plugins/alpha/block/hfns.py rename to cumulus/src/plugins/alpha/block/hfns1.py diff --git a/hurricane/src/isobar/PyEntity.cpp b/hurricane/src/isobar/PyEntity.cpp index a21469d5..bf752116 100644 --- a/hurricane/src/isobar/PyEntity.cpp +++ b/hurricane/src/isobar/PyEntity.cpp @@ -1,14 +1,14 @@ // -*- C++ -*- // // This file is part of the Coriolis Software. -// Copyright (c) UPMC 2010-2018, All Rights Reserved +// Copyright (c) SU 2010-2020, All Rights Reserved // // +-----------------------------------------------------------------+ // | C O R I O L I S | // | I s o b a r - Hurricane / Python Interface | // | | // | Author : Jean-Paul Chaput | -// | E-mail : Jean-Paul.Chaput@asim.lip6.fr | +// | E-mail : Jean-Paul.Chaput@lip6.fr | // | =============================================================== | // | C++ Module : "./PyEntity.cpp" | // +-----------------------------------------------------------------+ @@ -47,55 +47,38 @@ extern "C" { #define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Entity,entity,function) - - // +-------------------------------------------------------------+ - // | "PyEntity" Attribute Methods | - // +-------------------------------------------------------------+ - - DirectGetUIntAttribute(PyEntity_getId, getId, PyEntity, Entity) + GetBoundStateAttribute(PyEntity_isPyBound, PyEntity,Entity) + DirectGetUIntAttribute(PyEntity_getId ,getId,PyEntity,Entity) DBoDestroyAttribute(PyEntity_destroy ,PyEntity) - // --------------------------------------------------------------- - // Attribute Method : "PyEntity_getCell ()" - - static PyObject* PyEntity_getCell ( PyEntity *self ) { - cdebug_log(20,0) << "PyEntity_getCell ()" << endl; - + static PyObject* PyEntity_getCell ( PyEntity *self ) + { + cdebug_log(20,0) << "PyEntity_getCell()" << endl; Cell* cell = NULL; - HTRY - METHOD_HEAD ( "Entity.getCell()" ) - cell = entity->getCell (); + METHOD_HEAD( "Entity.getCell()" ) + cell = entity->getCell(); HCATCH - - return PyCell_Link ( cell ); + return PyCell_Link( cell ); } - // --------------------------------------------------------------- - // PyEntity Attribute Method table. - PyMethodDef PyEntity_Methods[] = { { "getCell" , (PyCFunction)PyEntity_getCell , METH_NOARGS , "Returns the entity cell." } , { "getId" , (PyCFunction)PyEntity_getId , METH_NOARGS , "Returns unique object (DBo) identifier." } + , { "isBound" , (PyCFunction)PyEntity_isPyBound , METH_NOARGS , "Returns true if the Entity is bounded to it's Hurricane counterpart." } , { "destroy" , (PyCFunction)PyEntity_destroy , METH_NOARGS , "Destroy associated hurricane object, the python object remains." } - , {NULL, NULL, 0, NULL} /* sentinel */ + , {NULL, NULL, 0, NULL} /* sentinel */ }; - // +-------------------------------------------------------------+ - // | "PyEntity" Object Methods | - // +-------------------------------------------------------------+ - DBoDeleteMethod(Entity) PyTypeObjectLinkPyType(Entity) - #else // End of Python Module Code Part. - // +=================================================================+ // | "PyEntity" Shared Library Code Part | // +=================================================================+ @@ -107,44 +90,45 @@ extern "C" { // No PyEntity should ever be created, it's not a terminal object // of the class hierarchy. Instead create the real underlying PyObject. - PyObject* PyEntity_NEW ( Entity* entity ) { - if ( !entity ) { - PyErr_SetString ( HurricaneError, "Invalid Entity (bad occurrence)" ); \ + PyObject* PyEntity_NEW ( Entity* entity ) + { + if (not entity) { + PyErr_SetString( HurricaneError, "Invalid Entity (bad occurrence)" ); return NULL; } - Cell* cell = dynamic_cast(entity); - if ( cell ) return PyCell_Link ( cell ); + Cell* cell = dynamic_cast( entity ); + if (cell) return PyCell_Link( cell ); - Instance* instance = dynamic_cast(entity); - if ( instance ) return PyInstance_Link ( instance ); + Instance* instance = dynamic_cast( entity ); + if (instance) return PyInstance_Link( instance ); - Reference* reference = dynamic_cast(entity); - if ( reference ) return PyReference_Link ( reference ); + Reference* reference = dynamic_cast( entity ); + if (reference) return PyReference_Link( reference ); - RoutingPad* rp = dynamic_cast(entity); - if ( rp ) return PyRoutingPad_Link ( rp ); + RoutingPad* rp = dynamic_cast( entity ); + if (rp) return PyRoutingPad_Link( rp ); - Horizontal* horizontal = dynamic_cast(entity); - if ( horizontal ) return PyHorizontal_Link ( horizontal ); + Horizontal* horizontal = dynamic_cast( entity ); + if (horizontal) return PyHorizontal_Link( horizontal ); - Vertical* vertical = dynamic_cast(entity); - if ( vertical ) return PyVertical_Link ( vertical ); + Vertical* vertical = dynamic_cast( entity ); + if (vertical) return PyVertical_Link( vertical ); - Pad* pad = dynamic_cast(entity); - if ( pad ) return PyPad_Link ( pad ); + Pad* pad = dynamic_cast( entity ); + if (pad) return PyPad_Link( pad ); - Contact* contact = dynamic_cast(entity); - if ( contact ) return PyContact_Link ( contact ); + Contact* contact = dynamic_cast( entity ); + if (contact) return PyContact_Link( contact ); - Plug* plug = dynamic_cast(entity); - if ( plug ) return PyPlug_Link ( plug ); + Plug* plug = dynamic_cast( entity ); + if (plug) return PyPlug_Link( plug ); - Pin* pin = dynamic_cast(entity); - if ( pin ) return PyPin_Link ( pin ); + Pin* pin = dynamic_cast( entity ); + if (pin) return PyPin_Link( pin ); - Net* net = dynamic_cast(entity); - if ( net ) return PyNet_Link ( net ); + Net* net = dynamic_cast( entity ); + if (net) return PyNet_Link( net ); Py_RETURN_NONE; }