cantera/src/python/ctxml_methods.cpp
Ray Speth 2528df0f75 Reorganized source tree structure
These changes make it unnecessary to copy header files around during
the build process, which tends to confuse IDEs and debuggers. The
headers which comprise Cantera's external C++ interface are now in
the 'include' directory.

All of the samples and demos are now in the 'samples' subdirectory.
2012-02-12 02:27:14 +00:00

295 lines
6 KiB
C++

static PyObject*
py_xml_new(PyObject* self, PyObject* args)
{
char* nm;
if (!PyArg_ParseTuple(args, "s:xml_new", &nm)) {
return NULL;
}
int n = xml_new(nm);
PyObject* pn = Py_BuildValue("i",n);
return pn;
}
static PyObject*
py_xml_get_XML_File(PyObject* self, PyObject* args)
{
char* file;
int debug;
if (!PyArg_ParseTuple(args, "si:xml_get_XML_File", &file, &debug)) {
return NULL;
}
int n = xml_get_XML_File(file, debug);
if (n < 0) {
return reportError(n);
}
PyObject* pn = Py_BuildValue("i",n);
return pn;
}
static PyObject*
py_xml_del(PyObject* self, PyObject* args)
{
int n;
if (!PyArg_ParseTuple(args, "i:xml_del", &n)) {
return NULL;
}
int iok = xml_del(n);
if (iok < 0) {
return reportError(iok);
}
return Py_BuildValue("i",0);
}
static PyObject*
py_xml_clear(PyObject* self, PyObject* args)
{
int iok = xml_clear();
if (iok < 0) {
return reportError(iok);
}
return Py_BuildValue("i",0);
}
static PyObject*
py_xml_attrib(PyObject* self, PyObject* args)
{
int n;
char* key;
if (!PyArg_ParseTuple(args, "is:xml_attrib", &n, &key)) {
return NULL;
}
char* val = new char[81];
int iok = xml_attrib(n, key, val);
if (iok < 0) {
return reportError(iok);
}
PyObject* r = Py_BuildValue("s",val);
delete[] val;
return r;
}
static PyObject*
py_xml_tag(PyObject* self, PyObject* args)
{
int n;
if (!PyArg_ParseTuple(args, "i:xml_tag", &n)) {
return NULL;
}
char* val = new char[81];
int iok = xml_tag(n, val);
if (iok < 0) {
return reportError(iok);
}
PyObject* r = Py_BuildValue("s",val);
delete val;
return r;
}
static PyObject*
py_xml_value(PyObject* self, PyObject* args)
{
int n;
if (!PyArg_ParseTuple(args, "i:xml_value", &n)) {
return NULL;
}
char* val = new char[81];
int iok = xml_value(n, val);
if (iok < 0) {
return reportError(iok);
}
PyObject* r = Py_BuildValue("s",val);
delete val;
return r;
}
static PyObject*
py_xml_child(PyObject* self, PyObject* args)
{
int n;
char* loc;
if (!PyArg_ParseTuple(args, "is:xml_child", &n, &loc)) {
return NULL;
}
int m = xml_child(n, loc);
if (m < 0) {
return reportError(m);
}
return Py_BuildValue("i",m);
}
static PyObject*
py_xml_childbynumber(PyObject* self, PyObject* args)
{
int n, k;
if (!PyArg_ParseTuple(args, "ii:xml_childbynumber", &n, &k)) {
return NULL;
}
int m = xml_child_bynumber(n, k);
if (m < 0) {
return reportError(m);
}
return Py_BuildValue("i",m);
}
static PyObject*
py_xml_findID(PyObject* self, PyObject* args)
{
int n;
char* id;
if (!PyArg_ParseTuple(args, "is:xml_findID", &n, &id)) {
return NULL;
}
int m = xml_findID(n, id);
if (m < 0) {
return reportError(m);
}
return Py_BuildValue("i",m);
}
static PyObject*
py_xml_findByName(PyObject* self, PyObject* args)
{
int n;
char* nm;
if (!PyArg_ParseTuple(args, "is:xml_findID", &n, &nm)) {
return NULL;
}
int m = xml_findByName(n, nm);
if (m < 0) {
return reportError(m);
}
return Py_BuildValue("i",m);
}
static PyObject*
py_xml_nChildren(PyObject* self, PyObject* args)
{
int n;
if (!PyArg_ParseTuple(args, "i:xml_nChildren", &n)) {
return NULL;
}
int m = xml_nChildren(n);
if (m < 0) {
return reportError(m);
}
return Py_BuildValue("i",m);
}
static PyObject*
py_xml_addChild(PyObject* self, PyObject* args)
{
int n;
char* name, *value;
if (!PyArg_ParseTuple(args, "iss:xml_addChild", &n, &name, &value)) {
return NULL;
}
int m = xml_addChild(n, name, value);
if (m < 0) {
return reportError(m);
}
return Py_BuildValue("i",m);
}
static PyObject*
py_xml_addChildNode(PyObject* self, PyObject* args)
{
int n, j;
if (!PyArg_ParseTuple(args, "ii:xml_addChildNode", &n, &j)) {
return NULL;
}
int m = xml_addChildNode(n, j);
if (m < 0) {
return reportError(m);
}
return Py_BuildValue("i",m);
}
static PyObject*
py_xml_addAttrib(PyObject* self, PyObject* args)
{
int n;
char* name, *value;
if (!PyArg_ParseTuple(args, "iss:xml_addAttrib", &n, &name, &value)) {
return NULL;
}
int m = xml_addAttrib(n, name, value);
if (m < 0) {
return reportError(m);
}
return Py_BuildValue("i",m);
}
static PyObject*
py_xml_addComment(PyObject* self, PyObject* args)
{
int n;
char* comment;
if (!PyArg_ParseTuple(args, "is:xml_addComment", &n, &comment)) {
return NULL;
}
int m = xml_addComment(n, comment);
if (m < 0) {
return reportError(m);
}
return Py_BuildValue("i",m);
}
static PyObject*
py_xml_removeChild(PyObject* self, PyObject* args)
{
int n, m;
if (!PyArg_ParseTuple(args, "ii:xml_removeChild", &n, &m)) {
return NULL;
}
int iok = xml_removeChild(n, m);
if (iok < 0) {
return reportError(iok);
}
return Py_BuildValue("i",iok);
}
static PyObject*
py_xml_write(PyObject* self, PyObject* args)
{
int n;
char* file;
if (!PyArg_ParseTuple(args, "is:xml_write", &n, &file)) {
return NULL;
}
int iok = xml_write(n, file);
if (iok < 0) {
return reportError(iok);
}
return Py_BuildValue("i",iok);
}
static PyObject*
py_ctml_getFloatArray(PyObject* self, PyObject* args)
{
int n;
int iconv, ia;
if (!PyArg_ParseTuple(args, "iii", &n, &iconv, &ia)) {
return NULL;
}
#ifdef HAS_NUMPY
npy_intp nia = ia;
PyArrayObject* a =
(PyArrayObject*)PyArray_SimpleNew(1, &nia, PyArray_DOUBLE);
#else
PyArrayObject* a =
(PyArrayObject*)PyArray_FromDims(1, &ia, PyArray_DOUBLE);
#endif
double* x = (double*)a->data;
int iok = ctml_getFloatArray(n, ia, x, iconv);
if (iok < 0) {
return reportError(iok);
}
return PyArray_Return(a);
}