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