From 191491b3aee6a182606d011ce8ce83468d67a756 Mon Sep 17 00:00:00 2001 From: florent <florent@laas.fr> Date: Sat, 1 Jan 2011 22:08:16 +0100 Subject: [PATCH] Add a function to get the list of type names registered for signals. * src/signal-caster-py.cc: new. --- src/signal-caster-py.cc | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/signal-caster-py.cc diff --git a/src/signal-caster-py.cc b/src/signal-caster-py.cc new file mode 100644 index 0000000..dfb4ed2 --- /dev/null +++ b/src/signal-caster-py.cc @@ -0,0 +1,40 @@ +/* + * Copyright 2010 (C) CNRS + * Author: Florent Lamiraux + */ + +#include <Python.h> +#include <iostream> +#include <sstream> + +#include <dynamic-graph/signal-caster.h> + +namespace dynamicgraph { + namespace python { + + extern PyObject* error; + + namespace signalCaster { + PyObject* getSignalTypeList(PyObject* self, PyObject* args) + { + void * pointer = NULL; + PyObject* object = NULL; + + if (!PyArg_ParseTuple(args, "")) + return NULL; + std::vector<std::string> typeList = + dynamicgraph::g_caster.listTypenames(); + unsigned int typeNumber = typeList.size(); + // Build a tuple object + PyObject* typeTuple = PyTuple_New(typeNumber); + + for (unsigned int iType = 0; iType < typeNumber; iType++) { + PyObject* className = Py_BuildValue("s", typeList[iType].c_str()); + PyTuple_SetItem(typeTuple, iType, className); + } + + return Py_BuildValue("O", typeTuple); + } + } //namespace signalCaster + } // namespace dynamicgraph +} // namespace python -- GitLab