diff --git a/mauka/src/CMakeLists.txt b/mauka/src/CMakeLists.txt index f76c625b..2691c686 100644 --- a/mauka/src/CMakeLists.txt +++ b/mauka/src/CMakeLists.txt @@ -22,7 +22,9 @@ mauka/MaukaEngine.h ) set ( mocIncludes mauka/GraphicMaukaEngine.h ) - set ( pyIncludes mauka/PyMaukaEngine.h ) + set ( pyIncludes mauka/PyMaukaEngine.h + mauka/PyGraphicMaukaEngine.h + ) set ( cpps Configuration.cpp BBPlacer.cpp FeedCells.cpp @@ -40,6 +42,7 @@ ) set ( pyCpps PyMauka.cpp PyMaukaEngine.cpp + PyGraphicMaukaEngine.cpp ) qt4_wrap_cpp ( mocCpps ${mocIncludes} ) @@ -68,7 +71,9 @@ PREFIX "" OUTPUT_NAME "Mauka" ) - target_link_libraries ( pyMauka mauka ) + target_link_libraries ( pyMauka mauka + ${CORIOLIS_PYTHON_LIBRARIES} + ) install ( TARGETS mauka DESTINATION lib${LIB_SUFFIX} ) install ( TARGETS pyMauka DESTINATION ${PYTHON_SITE_PACKAGES} ) diff --git a/mauka/src/Configuration.cpp b/mauka/src/Configuration.cpp index b8cd3710..5707c1b7 100644 --- a/mauka/src/Configuration.cpp +++ b/mauka/src/Configuration.cpp @@ -2,14 +2,9 @@ // -*- C++ -*- // // This file is part of the Coriolis Software. -// Copyright (c) UPMC/LIP6 2008-2010, All Rights Reserved +// Copyright (c) UPMC/LIP6 2008-2012, All Rights Reserved // -// =================================================================== -// -// $Id$ -// -// x-----------------------------------------------------------------x -// | | +// +-----------------------------------------------------------------+ // | C O R I O L I S | // | M a u k a - P l a c e r | // | | @@ -17,10 +12,7 @@ // | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | =============================================================== | // | C++ Module : "./Configuration.cpp" | -// | *************************************************************** | -// | U p d a t e s | -// | | -// x-----------------------------------------------------------------x +// +-----------------------------------------------------------------+ #include diff --git a/mauka/src/MaukaEngine.cpp b/mauka/src/MaukaEngine.cpp index 0596335d..abbfd283 100644 --- a/mauka/src/MaukaEngine.cpp +++ b/mauka/src/MaukaEngine.cpp @@ -222,15 +222,19 @@ void MaukaEngine::Construct() { //cerr << "unplaced " << (*ioccurrence) << (*ioccurrence).getBoundingBox() << endl; Cell* model = instance->getMasterCell(); - DbU::DbU::Unit insWidth = model->getAbutmentBox().getWidth(); - DbU::DbU::Unit insHeight = model->getAbutmentBox().getHeight(); - if (standardCellHeight == 0) - standardCellHeight = insHeight; + DbU::Unit insWidth = model->getAbutmentBox().getWidth(); + DbU::Unit insHeight = model->getAbutmentBox().getHeight(); + if (standardCellHeight == 0) { + cmess1 << " - Slice height deduced from: <" << model << ">." << endl; + standardCellHeight = insHeight; + } else if (insHeight != standardCellHeight) { throw Error("All non-standard instances : " + getString(instance->getName()) - + " must be placed"); + + " must be placed " + + getString(standardCellHeight) + " " + + DbU::getValueString(standardCellHeight) ); } _instanceOccurrencesVector.push_back(*ioccurrence); //VerifyPathCellBox(*ioccurrence); diff --git a/mauka/src/PyGraphicMaukaEngine.cpp b/mauka/src/PyGraphicMaukaEngine.cpp new file mode 100644 index 00000000..06dd7c98 --- /dev/null +++ b/mauka/src/PyGraphicMaukaEngine.cpp @@ -0,0 +1,123 @@ + +// -*- C++ -*- +// +// This file is part of the Coriolis Software. +// Copyright (c) UPMC/LIP6 2008-2012, All Rights Reserved +// +// +-----------------------------------------------------------------+ +// | C O R I O L I S | +// | M a u k a - P l a c e r | +// | | +// | Author : Jean-Paul Chaput | +// | E-mail : Jean-Paul.Chaput@lip6.fr | +// | =============================================================== | +// | C++ Module : "./PyGraphicMaukaEngine.cpp" | +// +-----------------------------------------------------------------+ + + +#include "mauka/PyGraphicMaukaEngine.h" +#include "hurricane/isobar/PyCell.h" +#include "hurricane/Cell.h" + + +#undef ACCESS_OBJECT +#undef ACCESS_CLASS +#define ACCESS_OBJECT _baseObject._object +#define ACCESS_CLASS(_pyObject) &(_pyObject->_baseObject) +#define METHOD_HEAD(function) GENERIC_METHOD_HEAD(GraphicMaukaEngine,gtool,function) + + +namespace Mauka { + +using namespace Hurricane; +using namespace Isobar; + +extern "C" { + + +// +=================================================================+ +// | "PyGraphicMaukaEngine" Python Module Code Part | +// +=================================================================+ + +#if defined(__PYTHON_MODULE__) + + + // +-------------------------------------------------------------+ + // | "PyGraphicMaukaEngine" Attribute Methods | + // +-------------------------------------------------------------+ + + + static PyObject* PyGraphicMaukaEngine_grab ( PyObject* ) + { + trace << "PyGraphicMaukaEngine_grab()" << endl; + PyGraphicMaukaEngine* pyGraphicMaukaEngine = NULL; + + HTRY + pyGraphicMaukaEngine = PyObject_NEW ( PyGraphicMaukaEngine, &PyTypeGraphicMaukaEngine ); + if ( pyGraphicMaukaEngine == NULL ) return NULL; + + pyGraphicMaukaEngine->ACCESS_OBJECT = GraphicMaukaEngine::grab(); + HCATCH + + return (PyObject*)pyGraphicMaukaEngine; + } + + + static PyObject* PyGraphicMaukaEngine_getCell ( PyGraphicMaukaEngine* self ) + { + trace << "PyGraphicMaukaEngine_getCell ()" << endl; + + Cell* cell = NULL; + + HTRY + METHOD_HEAD("GraphicMaukaEngine.getCell()") + cell = gtool->getCell (); + HCATCH + + if (cell == NULL) Py_RETURN_NONE; + return PyCell_Link(cell); + } + + + GetNameMethod(GraphicMaukaEngine, gtool) + + // Standart destroy (Attribute). + + + PyMethodDef PyGraphicMaukaEngine_Methods[] = + { { "grab" , (PyCFunction)PyGraphicMaukaEngine_grab , METH_NOARGS|METH_STATIC + , "Returns the GraphicMaukaEngine singleton." } + , { "getName" , (PyCFunction)PyGraphicMaukaEngine_getName , METH_NOARGS + , "Returns the name of the GraphicMaukaEngine (class attribute)." } + , { "getCell" , (PyCFunction)PyGraphicMaukaEngine_getCell , METH_NOARGS + , "Returns the Cell on which this GraphicMaukaEngine is attached." } + , {NULL, NULL, 0, NULL} /* sentinel */ + }; + + + // --------------------------------------------------------------- + // PyGraphicMaukaEngine Type Methods. + + + PythonOnlyDeleteMethod(GraphicMaukaEngine) + PyTypeObjectLinkPyType(GraphicMaukaEngine) + + +#else // End of Python Module Code Part. + + +// +=================================================================+ +// | "PyGraphicMaukaEngine" Shared Library Code Part | +// +=================================================================+ + + // Link/Creation Method. + LinkCreateMethod(GraphicMaukaEngine) + + PyTypeInheritedObjectDefinitions(GraphicMaukaEngine,GraphicTool) + + +#endif // End of Shared Library Code Part. + +} // extern "C". + +} // CRL namespace. diff --git a/mauka/src/PyMauka.cpp b/mauka/src/PyMauka.cpp index 070f1f66..161cc41b 100644 --- a/mauka/src/PyMauka.cpp +++ b/mauka/src/PyMauka.cpp @@ -2,14 +2,9 @@ // -*- C++ -*- // // This file is part of the Coriolis Software. -// Copyright (c) UPMC/LIP6 2010-2010, All Rights Reserved +// Copyright (c) UPMC/LIP6 2010-2012, All Rights Reserved // -// =================================================================== -// -// $Id$ -// -// x-----------------------------------------------------------------x -// | | +// +-----------------------------------------------------------------+ // | C O R I O L I S | // | M a u k a - P l a c e r | // | | @@ -17,15 +12,13 @@ // | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | =============================================================== | // | C++ Module : "./PyMauka.cpp" | -// | *************************************************************** | -// | U p d a t e s | -// | | -// x-----------------------------------------------------------------x +// +-----------------------------------------------------------------+ #include "hurricane/isobar/PyHurricane.h" #include "hurricane/isobar/PyCell.h" #include "mauka/PyMaukaEngine.h" +#include "mauka/PyGraphicMaukaEngine.h" namespace Mauka { @@ -35,6 +28,8 @@ namespace Mauka { using Hurricane::tab; using Hurricane::in_trace; using Isobar::__cs; + using CRL::PyTypeToolEngine; + using CRL::PyTypeGraphicTool; #if !defined(__PYTHON_MODULE__) @@ -61,11 +56,7 @@ extern "C" { static PyMethodDef PyMauka_Methods[] = - { { "get" , (PyCFunction)PyMaukaEngine_get , METH_VARARGS - , "Gets MaukaEngine from a Cell." } - , { "create" , (PyCFunction)PyMaukaEngine_create, METH_VARARGS - , "Create MaukaEngine on a Cell." } - , {NULL, NULL, 0, NULL} /* sentinel */ + { {NULL, NULL, 0, NULL} /* sentinel */ }; @@ -78,8 +69,10 @@ extern "C" { trace << "initMauka()" << endl; PyMaukaEngine_LinkPyType (); + PyGraphicMaukaEngine_LinkPyType (); - PYTYPE_READY ( MaukaEngine ); + PYTYPE_READY_SUB ( MaukaEngine , ToolEngine ); + PYTYPE_READY_SUB ( GraphicMaukaEngine, GraphicTool ); // Identifier string can take up to 10 characters. __cs.addType ( "mauka", &PyTypeMaukaEngine, "", false ); @@ -91,9 +84,11 @@ extern "C" { << " Failed to initialize Mauka module." << endl; return; } - - PyObject* dictionnary = PyModule_GetDict ( module ); - //DbULoadConstants ( dictionnary ); + + Py_INCREF ( &PyTypeMaukaEngine ); + PyModule_AddObject ( module, "MaukaEngine", (PyObject*)&PyTypeMaukaEngine ); + Py_INCREF ( &PyTypeGraphicMaukaEngine ); + PyModule_AddObject ( module, "GraphicMaukaEngine", (PyObject*)&PyTypeGraphicMaukaEngine ); } diff --git a/mauka/src/PyMaukaEngine.cpp b/mauka/src/PyMaukaEngine.cpp index efc9d0ea..0ec724a5 100644 --- a/mauka/src/PyMaukaEngine.cpp +++ b/mauka/src/PyMaukaEngine.cpp @@ -2,14 +2,9 @@ // -*- C++ -*- // // This file is part of the Coriolis Software. -// Copyright (c) UPMC/LIP6 2010-2010, All Rights Reserved +// Copyright (c) UPMC/LIP6 2010-2012, All Rights Reserved // -// =================================================================== -// -// $Id$ -// -// x-----------------------------------------------------------------x -// | | +// +-----------------------------------------------------------------+ // | C O R I O L I S | // | M a u k a - P l a c e r | // | | @@ -17,16 +12,19 @@ // | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | =============================================================== | // | C++ Module : "./PyMaukaEngine.cpp" | -// | *************************************************************** | -// | U p d a t e s | -// | | -// x-----------------------------------------------------------------x +// +-----------------------------------------------------------------+ #include "hurricane/isobar/PyCell.h" #include "nimbus/NimbusEngine.h" #include "mauka/PyMaukaEngine.h" +# undef ACCESS_OBJECT +# undef ACCESS_CLASS +# define ACCESS_OBJECT _baseObject._object +# define ACCESS_CLASS(_pyObject) &(_pyObject->_baseObject) +#define METHOD_HEAD(function) GENERIC_METHOD_HEAD(MaukaEngine,mauka,function) + namespace Mauka { @@ -47,111 +45,119 @@ namespace Mauka { using Isobar::ParseTwoArg; using Isobar::PyCell; using Isobar::PyCell_Link; + using CRL::PyToolEngine; using Nimbus::NimbusEngine; extern "C" { - -#define METHOD_HEAD(function) GENERIC_METHOD_HEAD(MaukaEngine,mauka,function) - - -// x=================================================================x -// | "PyMaukaEngine" Python Module Code Part | -// x=================================================================x - #if defined(__PYTHON_MODULE__) +// +=================================================================+ +// | "PyMaukaEngine" Python Module Code Part | +// +=================================================================+ + + + static PyObject* PyMaukaEngine_get ( PyObject*, PyObject* args ) + { + trace << "PyMaukaEngine_get()" << endl; + + MaukaEngine* mauka = NULL; + + HTRY + PyObject* arg0; + + if (not ParseOneArg( "Mauka.get", args, CELL_ARG, &arg0)) return NULL; + mauka = MaukaEngine::get(PYCELL_O(arg0)); + HCATCH + + return PyMaukaEngine_Link(mauka); + } + + + static PyObject* PyMaukaEngine_create ( PyObject*, PyObject* args ) + { + trace << "PyMaukaEngine_create()" << endl; + + MaukaEngine* mauka = NULL; + + HTRY + PyObject* arg0; + + if (not ParseOneArg( "Mauka.get", args, CELL_ARG, &arg0)) return NULL; + + Cell* cell = PYCELL_O(arg0); + mauka = MaukaEngine::get(cell); + + if ( mauka == NULL ) { + NimbusEngine* nimbus = NimbusEngine::get(cell); + if (nimbus == NULL) + nimbus = NimbusEngine::create(cell); + + mauka = MaukaEngine::create(cell); + } else + cerr << Warning("%s already has a Mauka engine.",getString(cell).c_str()) << endl; + HCATCH + + return PyMaukaEngine_Link(mauka); + } + + + PyObject* PyMaukaEngine_regroupOverloadedGCells ( PyMaukaEngine*, PyObject* args ) + { + trace << "PyMaukaEngine_regroupOverloadedGCells()" << endl; + + HTRY + PyObject* arg0; + + if (not ParseOneArg("Mauka.regroupOverloadedGCells", args, CELL_ARG, &arg0)) return NULL; + MaukaEngine::regroupOverloadedGCells(PYCELL_O(arg0)); + HCATCH + + Py_RETURN_NONE; + } + // Standart Accessors (Attributes). DirectVoidMethod(MaukaEngine,mauka,Run) + DirectVoidMethod(MaukaEngine,mauka,printConfiguration) // Standart Destroy (Attribute). DBoDestroyAttribute(PyMaukaEngine_destroy,PyMaukaEngine) PyMethodDef PyMaukaEngine_Methods[] = - { { "run" , (PyCFunction)PyMaukaEngine_Run , METH_NOARGS - , "Runs Mauka on it's Cell." } - , { "destroy" , (PyCFunction)PyMaukaEngine_destroy, METH_NOARGS - , "Destroy the associated hurricane object. The python object remains." } - , {NULL, NULL, 0, NULL} /* sentinel */ + { { "get" , (PyCFunction)PyMaukaEngine_get , METH_VARARGS|METH_STATIC + , "Return the Mauka engine associated to the Cell, None if there isn't." } + , { "create" , (PyCFunction)PyMaukaEngine_create , METH_VARARGS|METH_STATIC + , "Create a Mauka engine on this Cell." } + , { "printConfiguration" , (PyCFunction)PyMaukaEngine_printConfiguration , METH_NOARGS + , "Display on the console the configuration of Mauka." } + , { "regroupOverloadedGCells", (PyCFunction)PyMaukaEngine_regroupOverloadedGCells, METH_VARARGS|METH_STATIC + , "Destroy hierarchical levels that cannot satisfy the placement." } + , { "run" , (PyCFunction)PyMaukaEngine_Run , METH_NOARGS + , "Runs Mauka on it's Cell." } + , { "destroy" , (PyCFunction)PyMaukaEngine_destroy , METH_NOARGS + , "Destroy the associated hurricane object. The python object remains." } + , {NULL, NULL, 0, NULL} /* sentinel */ }; - PythonOnlyDeleteMethod(MaukaEngine) + DBoDeleteMethod(MaukaEngine) PyTypeObjectLinkPyType(MaukaEngine) #else // End of Python Module Code Part. -// x=================================================================x +// +=================================================================+ // | "PyMaukaEngine" Shared Library Code Part | -// x=================================================================x - - - extern PyObject* PyMaukaEngine_get ( PyObject *module, PyObject* args ) - { - trace << "PyMaukaEngine_get()" << endl; - - MaukaEngine* mauka = NULL; - PyMaukaEngine* pyMauka = NULL; - - HTRY - PyObject* arg0; - - if ( not ParseOneArg ( "Mauka.get", args, CELL_ARG, &arg0) ) return NULL; - mauka = MaukaEngine::get ( PYCELL_O(arg0) ); - - pyMauka = PyObject_NEW ( PyMaukaEngine, &PyTypeMaukaEngine ); - if ( pyMauka == NULL ) return NULL; - - pyMauka->_object = mauka; - HCATCH - - return (PyObject*)pyMauka; - } - - - extern PyObject* PyMaukaEngine_create ( PyObject *module, PyObject* args ) - { - trace << "PyMaukaEngine_create()" << endl; - - MaukaEngine* mauka = NULL; - PyMaukaEngine* pyMauka = NULL; - - HTRY - PyObject* arg0; - - if ( not ParseOneArg ( "Mauka.get", args, CELL_ARG, &arg0) ) return NULL; - - Cell* cell = PYCELL_O(arg0); - mauka = MaukaEngine::get ( cell ); - - if ( mauka == NULL ) { - NimbusEngine* nimbus = NimbusEngine::get ( cell ); - if ( nimbus == NULL ) - NimbusEngine::create ( cell ); - - mauka = MaukaEngine::create ( cell ); - if ( cmess1.enabled() ) - mauka->getConfiguration()->print( cell ); - } else - cerr << Warning("%s already has a Mauka engine.",getString(cell).c_str()) << endl; - - pyMauka = PyObject_NEW ( PyMaukaEngine, &PyTypeMaukaEngine ); - if ( pyMauka == NULL ) return NULL; - - pyMauka->_object = mauka; - HCATCH - - return (PyObject*)pyMauka; - } +// +=================================================================+ // Link/Creation Method. - PyTypeObjectDefinitions(MaukaEngine) + PyTypeInheritedObjectDefinitions(MaukaEngine,PyToolEngine) + DBoLinkCreateMethod(MaukaEngine) #endif // End of Shared Library Code Part. diff --git a/mauka/src/mauka/GraphicMaukaEngine.h b/mauka/src/mauka/GraphicMaukaEngine.h index 75bfbe98..7c8b03e2 100644 --- a/mauka/src/mauka/GraphicMaukaEngine.h +++ b/mauka/src/mauka/GraphicMaukaEngine.h @@ -2,26 +2,17 @@ // -*- C++ -*- // // This file is part of the Coriolis Software. -// Copyright (c) UPMC/LIP6 2008-2010, All Rights Reserved +// Copyright (c) UPMC/LIP6 2008-2012, All Rights Reserved // -// =================================================================== -// -// $Id$ -// -// x-----------------------------------------------------------------x -// | | +// +-----------------------------------------------------------------+ // | C O R I O L I S | // | M a u k a - P l a c e r | // | | // | Author : Jean-Paul Chaput | // | E-mail : Jean-Paul.Chaput@lip6.fr | // | =============================================================== | -// | C++ Header : "./GraphicMaukaEngine.h" | -// | *************************************************************** | -// | U p d a t e s | -// | | -// x-----------------------------------------------------------------x - +// | C++ Header : "./mauka/GraphicMaukaEngine.h" | +// +-----------------------------------------------------------------+ #ifndef __MAUKA_GRAPHIC_MAUKA_ENGINE__ @@ -38,7 +29,6 @@ namespace Hurricane { } #include "crlcore/GraphicToolEngine.h" - #include "mauka/MaukaEngine.h" diff --git a/mauka/src/mauka/MaukaEngine.h b/mauka/src/mauka/MaukaEngine.h index 46ccae1f..4e1ece7c 100644 --- a/mauka/src/mauka/MaukaEngine.h +++ b/mauka/src/mauka/MaukaEngine.h @@ -2,25 +2,16 @@ // -*- C++ -*- // // This file is part of the Coriolis Software. -// Copyright (c) UPMC/LIP6 2008-2010, All Rights Reserved -// -// =================================================================== -// -// $Id$ +// Copyright (c) UPMC/LIP6 2006-2012, All Rights Reserved // // x-----------------------------------------------------------------x -// | | // | C O R I O L I S | // | M a u k a - P l a c e r | // | | // | Author : Christophe Alexandre | -// | E-mail : Christophe.Alexandre@lip6.fr | -// | Date : 19/07/2006 | +// | E-mail : Jean-Paul.Chaput@lip6.fr | // | =============================================================== | -// | C++ Header : "./MaukaEngine.h" | -// | *************************************************************** | -// | U p d a t e s | -// | | +// | C++ Header : "./mauka/MaukaEngine.h" | // x-----------------------------------------------------------------x @@ -92,6 +83,7 @@ namespace Mauka { static const Name& staticGetName (); virtual const Name& getName () const; inline Configuration* getConfiguration () const; + inline void printConfiguration () const; inline const FeedCells& getFeedCells () const; inline DbU::Unit getPitch () const; inline DbU::Unit getSliceHeight () const; @@ -153,6 +145,7 @@ namespace Mauka { // Inline Methods. inline Configuration* MaukaEngine::getConfiguration () const { return _configuration; } + inline void MaukaEngine::printConfiguration () const { _configuration->print(getCell()); } inline const FeedCells& MaukaEngine::getFeedCells () const { return _feedCells; } inline DbU::Unit MaukaEngine::getPitch () const { return _configuration->getPitch(); } inline DbU::Unit MaukaEngine::getSliceHeight () const { return _configuration->getSliceHeight(); } diff --git a/mauka/src/mauka/PyGraphicMaukaEngine.h b/mauka/src/mauka/PyGraphicMaukaEngine.h new file mode 100644 index 00000000..0417a137 --- /dev/null +++ b/mauka/src/mauka/PyGraphicMaukaEngine.h @@ -0,0 +1,56 @@ + +// -*- C++ -*- +// +// This file is part of the Coriolis Software. +// Copyright (c) UPMC/LIP6 2008-2012, All Rights Reserved +// +// +-----------------------------------------------------------------+ +// | C O R I O L I S | +// | Alliance / Hurricane Interface | +// | | +// | Author : Damien DUPUIS | +// | E-mail : Jean-Paul.Chaput@lip6.fr | +// | =============================================================== | +// | C++ Header : "./mauka/PyGraphicMaukaEngine.h" | +// +-----------------------------------------------------------------+ + + +#ifndef __MAUKA_PY_GRAPHIC_MAUKA_ENGINE__ +#define __MAUKA_PY_GRAPHIC_MAUKA_ENGINE__ + +#include "crlcore/PyGraphicToolEngine.h" +#include "mauka/GraphicMaukaEngine.h" + + +namespace Mauka { + +extern "C" { + + +// ------------------------------------------------------------------- +// Python Object : "PyGraphicMaukaEngine". + + typedef struct { + CRL::PyGraphicTool _baseObject; + } PyGraphicMaukaEngine; + + +// ------------------------------------------------------------------- +// Functions & Types exported to "PyMauka.ccp". + + extern PyTypeObject PyTypeGraphicMaukaEngine; + extern PyMethodDef PyGraphicMaukaEngine_Methods[]; + + extern void PyGraphicMaukaEngine_LinkPyType (); + + +#define IsPyGraphicMaukaEngine(v) ( (v)->ob_type == &PyTypeGraphicMaukaEngine ) +#define PY_GRAPHIC_MAUKA_ENGINE(v) ( (PyGraphicMaukaEngine*)(v) ) +#define PY_GRAPHIC_MAUKA_ENGINE_O(v) ( PY_GRAPHIC_MAUKA_ENGINE(v)->_baseObject.object ) + + +} // End of extern "C". + +} // Mauka namespace. + +#endif // __MAUKA_PY_GRAPHIC_MAUKA_ENGINE__ diff --git a/mauka/src/mauka/PyMaukaEngine.h b/mauka/src/mauka/PyMaukaEngine.h index d244aeb6..099a9bd8 100644 --- a/mauka/src/mauka/PyMaukaEngine.h +++ b/mauka/src/mauka/PyMaukaEngine.h @@ -2,14 +2,9 @@ // -*- C++ -*- // // This file is part of the Coriolis Software. -// Copyright (c) UPMC/LIP6 2010-2010, All Rights Reserved +// Copyright (c) UPMC/LIP6 2010-2012, All Rights Reserved // -// =================================================================== -// -// $Id$ -// -// x-----------------------------------------------------------------x -// | | +// +-----------------------------------------------------------------+ // | C O R I O L I S | // | M a u k a - P l a c e r | // | | @@ -17,16 +12,14 @@ // | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | =============================================================== | // | C++ Header : "./PyMaukaEngine.cpp" | -// | *************************************************************** | -// | U p d a t e s | -// | | -// x-----------------------------------------------------------------x +// +-----------------------------------------------------------------+ #ifndef __PY_MAUKA_ENGINE__ #define __PY_MAUKA_ENGINE__ #include "hurricane/isobar/PyHurricane.h" +#include "crlcore/PyToolEngine.h" #include "mauka/MaukaEngine.h" @@ -40,8 +33,7 @@ extern "C" { // Python Object : "PyMaukaEngine". typedef struct { - PyObject_HEAD - Mauka::MaukaEngine* _object; + CRL::PyToolEngine _baseObject; } PyMaukaEngine; @@ -51,15 +43,13 @@ extern "C" { extern PyTypeObject PyTypeMaukaEngine; extern PyMethodDef PyMaukaEngine_Methods[]; - extern PyObject* PyMaukaEngine_get ( PyObject* module, PyObject* args ); - extern PyObject* PyMaukaEngine_create ( PyObject* module, PyObject* args ); - extern PyObject* PyMaukaEngine_Link ( Mauka::MaukaEngine* ); - extern void PyMaukaEngine_LinkPyType (); + extern PyObject* PyMaukaEngine_Link ( Mauka::MaukaEngine* ); + extern void PyMaukaEngine_LinkPyType (); #define IsPyMaukaEngine(v) ( (v)->ob_type == &PyTypeMaukaEngine ) #define PYMAUKAENGINE(v) ( (PyMaukaEngine*)(v) ) -#define PYMAUKAENGINE_O(v) ( PYALLIANCEFRAMEWORK(v)->_object ) +#define PYMAUKAENGINE_O(v) ( PYMAUKAENGINE(v)->_baseObject._object ) } // End of extern "C".