Forgotten, as usual.
This commit is contained in:
parent
67020af4e6
commit
201902897f
|
@ -0,0 +1,106 @@
|
|||
|
||||
// -*- C++ -*-
|
||||
//
|
||||
// This file is part of the Coriolis Software.
|
||||
// Copyright (c) UPMC/LIP6 2010-2010, 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@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"
|
||||
|
||||
|
||||
namespace Mauka {
|
||||
|
||||
using std::cerr;
|
||||
using std::endl;
|
||||
using Hurricane::tab;
|
||||
using Hurricane::in_trace;
|
||||
using Isobar::__cs;
|
||||
|
||||
|
||||
#if !defined(__PYTHON_MODULE__)
|
||||
|
||||
// x=================================================================x
|
||||
// | "PyMauka" Shared Library Code Part |
|
||||
// x=================================================================x
|
||||
|
||||
|
||||
# else // End of PyHurricane Shared Library Code Part.
|
||||
|
||||
|
||||
// x=================================================================x
|
||||
// | "PyMauka" Python Module Code Part |
|
||||
// x=================================================================x
|
||||
|
||||
|
||||
extern "C" {
|
||||
|
||||
|
||||
// x-------------------------------------------------------------x
|
||||
// | "PyMauka" Module Methods |
|
||||
// x-------------------------------------------------------------x
|
||||
|
||||
|
||||
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 */
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Module Initialization : "initMauka ()"
|
||||
|
||||
DL_EXPORT(void) initMauka () {
|
||||
trace << "initMauka()" << endl;
|
||||
|
||||
PyMaukaEngine_LinkPyType ();
|
||||
|
||||
PYTYPE_READY ( MaukaEngine );
|
||||
|
||||
// Identifier string can take up to 10 characters.
|
||||
__cs.addType ( "mauka", &PyTypeMaukaEngine, "<MaukaEngine>", false );
|
||||
|
||||
|
||||
PyObject* module = Py_InitModule ( "Mauka", PyMauka_Methods );
|
||||
if ( module == NULL ) {
|
||||
cerr << "[ERROR]\n"
|
||||
<< " Failed to initialize Mauka module." << endl;
|
||||
return;
|
||||
}
|
||||
|
||||
PyObject* dictionnary = PyModule_GetDict ( module );
|
||||
//DbULoadConstants ( dictionnary );
|
||||
}
|
||||
|
||||
|
||||
} // End of extern "C".
|
||||
|
||||
|
||||
#endif // End of Python Module Code Part.
|
||||
|
||||
|
||||
} // End of Mauka namespace.
|
|
@ -0,0 +1,164 @@
|
|||
|
||||
// -*- C++ -*-
|
||||
//
|
||||
// This file is part of the Coriolis Software.
|
||||
// Copyright (c) UPMC/LIP6 2010-2010, 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@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"
|
||||
|
||||
|
||||
namespace Mauka {
|
||||
|
||||
using std::cerr;
|
||||
using std::endl;
|
||||
using std::hex;
|
||||
using std::ostringstream;
|
||||
using Hurricane::tab;
|
||||
using Hurricane::in_trace;
|
||||
using Hurricane::Error;
|
||||
using Hurricane::Warning;
|
||||
using Isobar::ProxyProperty;
|
||||
using Isobar::ProxyError;
|
||||
using Isobar::ConstructorError;
|
||||
using Isobar::HurricaneError;
|
||||
using Isobar::HurricaneWarning;
|
||||
using Isobar::ParseOneArg;
|
||||
using Isobar::ParseTwoArg;
|
||||
using Isobar::PyCell;
|
||||
using Isobar::PyCell_Link;
|
||||
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__)
|
||||
|
||||
|
||||
// Standart Accessors (Attributes).
|
||||
DirectVoidMethod(MaukaEngine,mauka,Run)
|
||||
|
||||
// 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 */
|
||||
};
|
||||
|
||||
|
||||
PythonOnlyDeleteMethod(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)
|
||||
|
||||
|
||||
#endif // End of Shared Library Code Part.
|
||||
|
||||
|
||||
} // End of extern "C".
|
||||
|
||||
|
||||
} // End of Mauka namespace.
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
|
||||
// -*- C++ -*-
|
||||
//
|
||||
// This file is part of the Coriolis Software.
|
||||
// Copyright (c) UPMC/LIP6 2010-2010, 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@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 "mauka/MaukaEngine.h"
|
||||
|
||||
|
||||
namespace Mauka {
|
||||
|
||||
|
||||
extern "C" {
|
||||
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// Python Object : "PyMaukaEngine".
|
||||
|
||||
typedef struct {
|
||||
PyObject_HEAD
|
||||
Mauka::MaukaEngine* _object;
|
||||
} PyMaukaEngine;
|
||||
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// Functions & Types exported to "PyMauka.ccp".
|
||||
|
||||
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 ();
|
||||
|
||||
|
||||
#define IsPyMaukaEngine(v) ( (v)->ob_type == &PyTypeMaukaEngine )
|
||||
#define PYMAUKAENGINE(v) ( (PyMaukaEngine*)(v) )
|
||||
#define PYMAUKAENGINE_O(v) ( PYALLIANCEFRAMEWORK(v)->_object )
|
||||
|
||||
|
||||
} // End of extern "C".
|
||||
|
||||
|
||||
} // End of Mauka namespace.
|
||||
|
||||
|
||||
#endif // __PY_MAUKA_ENGINE__
|
Loading…
Reference in New Issue