From fe7281de1627ffc94d4436110167e7cce72fa668 Mon Sep 17 00:00:00 2001
From: Mansard <nmansard@laas.fr>
Date: Wed, 2 Feb 2011 13:48:24 +0100
Subject: [PATCH] Added display and displayDep in entity and signal.

---
 src/dynamic-graph-py.cc          |  6 +++++-
 src/dynamic_graph/signal_base.py |  5 +++++
 src/signal-base-py.cc            | 23 +++++++++++++++++++++++
 3 files changed, 33 insertions(+), 1 deletion(-)

diff --git a/src/dynamic-graph-py.cc b/src/dynamic-graph-py.cc
index bf70bba..2bb1d9b 100644
--- a/src/dynamic-graph-py.cc
+++ b/src/dynamic-graph-py.cc
@@ -31,6 +31,7 @@ namespace dynamicgraph {
       extern PyObject* getTime(PyObject* self, PyObject* args);
       extern PyObject* getName(PyObject* self, PyObject* args);
       extern PyObject* display(PyObject* self, PyObject* args);
+      extern PyObject* displayDependencies(PyObject* self, PyObject* args);
       extern PyObject* getValue(PyObject* self, PyObject* args);
       extern PyObject* setValue(PyObject* self, PyObject* args);
       extern PyObject* recompute(PyObject* self, PyObject* args);
@@ -39,6 +40,7 @@ namespace dynamicgraph {
     namespace entity {
       extern PyObject* create(PyObject* self, PyObject* args);
       extern PyObject* display(PyObject* self, PyObject* args);
+      extern PyObject* display(PyObject* self, PyObject* args);
       extern PyObject* getName(PyObject* self, PyObject* args);
       extern PyObject* getSignal(PyObject* self, PyObject* args);
       extern PyObject* listSignals(PyObject* self, PyObject* args);
@@ -151,9 +153,11 @@ static PyMethodDef dynamicGraphMethods[] = {
    METH_VARARGS, "Get the name of a signal"},
   {"signal_base_display", dynamicgraph::python::signalBase::display,
    METH_VARARGS, "Print the signal in a string"},
+  {"signal_base_display_dependencies", dynamicgraph::python::signalBase::displayDependencies,
+   METH_VARARGS, "Print the signal dependencies in a string"},
   {"signal_base_get_value", dynamicgraph::python::signalBase::getValue,
    METH_VARARGS, "Read the value of a signal"}, 
- {"signal_base_set_value", dynamicgraph::python::signalBase::setValue,
+  {"signal_base_set_value", dynamicgraph::python::signalBase::setValue,
    METH_VARARGS, "Set the value of a signal"},
   {"signal_base_recompute", dynamicgraph::python::signalBase::recompute,
    METH_VARARGS, "Recompute the signal at given time"},
diff --git a/src/dynamic_graph/signal_base.py b/src/dynamic_graph/signal_base.py
index 7661b8d..be99a20 100644
--- a/src/dynamic_graph/signal_base.py
+++ b/src/dynamic_graph/signal_base.py
@@ -222,6 +222,11 @@ class SignalBase (object) :
         Print signal in a string
         """
         return wrap.signal_base_display(self.obj)
+    def displayDependencies(self,iter):
+        """
+        Print signal dependencies in a string
+        """
+        return(wrap.signal_base_display_dependencies(self.obj,iter))
 
     # Script short-cuts: don't use this syntaxt in python coding,
     # use it for debuging online only!
diff --git a/src/signal-base-py.cc b/src/signal-base-py.cc
index dc5d5e1..23a5001 100644
--- a/src/signal-base-py.cc
+++ b/src/signal-base-py.cc
@@ -99,6 +99,29 @@ namespace dynamicgraph {
 	return Py_BuildValue("s", oss.str().c_str());
       }
 
+      PyObject* displayDependencies(PyObject* /*self*/, PyObject* args)
+      {
+	void* pointer = NULL;
+	PyObject* object = NULL;
+	int time;
+	if (!PyArg_ParseTuple(args,"OI", &object,&time))
+	  return NULL;
+	if (!PyCObject_Check(object))
+	  return NULL;
+
+	pointer = PyCObject_AsVoidPtr(object);
+	SignalBase<int>* obj = (SignalBase<int>*)pointer;
+
+	std::ostringstream oss;
+	try {
+	  obj->displayDependencies(oss,time);
+	} catch (std::exception& exc) {
+	  PyErr_SetString(error, exc.what());
+	  return NULL;
+	}
+	return Py_BuildValue("s", oss.str().c_str());
+      }
+
       PyObject* getValue(PyObject* /*self*/, PyObject* args)
       {
 	void* pointer = NULL;
-- 
GitLab