coriolis/crlcore/src/pyCRL/PySystem.cpp

115 lines
3.1 KiB
C++

// -*- C++ -*-
//
// This file is part of the Coriolis Software.
// Copyright (c) UPMC 2019-2019, All Rights Reserved
//
// +-----------------------------------------------------------------+
// | C O R I O L I S |
// | Alliance / Hurricane Interface |
// | |
// | Author : Jean-Paul CHAPUT |
// | E-mail : Jean-Paul.Chaput@lip6.fr |
// | =============================================================== |
// | C++ Module : "./PySystem.cpp" |
// +-----------------------------------------------------------------+
#include "crlcore/PySystem.h"
namespace CRL {
using std::cerr;
using std::endl;
using std::hex;
using std::ostringstream;
using Hurricane::tab;
using Hurricane::Exception;
using Hurricane::Bug;
using Hurricane::Error;
using Hurricane::Warning;
using Hurricane::DataBase;
using Isobar::__cs;
using Isobar::Converter;
using Isobar::ProxyProperty;
using Isobar::ProxyError;
using Isobar::ConstructorError;
using Isobar::HurricaneError;
using Isobar::HurricaneWarning;
using Isobar::PyAny_AsLong;
using Isobar::getPyHash;
using Isobar::ParseOneArg;
using Isobar::ParseTwoArg;
extern "C" {
#define METHOD_HEAD(function) GENERIC_METHOD_HEAD(System,sys,function)
// +=================================================================+
// | "PySystem" Python Module Code Part |
// +=================================================================+
#if defined(__PYTHON_MODULE__)
static PyObject* PySystem_get ( PyObject* args )
{
cdebug_log(30,0) << "PySystem_get()" << endl;
System* sys = NULL;
PySystem* pySys = NULL;
HTRY
sys = System::get();
pySys = PyObject_NEW( PySystem, &PyTypeSystem );
if (pySys == NULL) return NULL;
pySys->_object = sys;
HCATCH
return (PyObject*)pySys;
}
// Standart Accessors (Attributes).
// Standart Destroy (Attribute).
// DBoDestroyAttribute(PySystem_destroy,PySystem)
PyMethodDef PySystem_Methods[] =
{ { "get" , (PyCFunction)PySystem_get , METH_NOARGS|METH_STATIC
, "Gets the Coriolis System singleton." }
//, { "destroy" , (PyCFunction)PySystem_destroy , METH_NOARGS
// , "Destroy the associated hurricane object. The python object remains." }
, {NULL, NULL, 0, NULL} /* sentinel */
};
PythonOnlyDeleteMethod(System)
PyTypeObjectLinkPyType(System)
#else // Python Module Code Part.
// x=================================================================x
// | "PySystem" Shared Library Code Part |
// x=================================================================x
// Link/Creation Method.
PyTypeObjectDefinitions(System)
#endif // Shared Library Code Part.
} // extern "C".
} // CRL namespace.