From 8ac26f93138d765f27f4419e7fdbb545002ec4f7 Mon Sep 17 00:00:00 2001
From: Mansard <nmansard@laas.fr>
Date: Mon, 7 Nov 2011 16:38:01 +0100
Subject: [PATCH] Modify the policy for plugin a sigptr in input.

---
 include/dynamic-graph/signal-ptr.h     |  1 +
 include/dynamic-graph/signal-ptr.t.cpp | 11 +++++++++++
 2 files changed, 12 insertions(+)

diff --git a/include/dynamic-graph/signal-ptr.h b/include/dynamic-graph/signal-ptr.h
index f048f8e8..4c6909c6 100644
--- a/include/dynamic-graph/signal-ptr.h
+++ b/include/dynamic-graph/signal-ptr.h
@@ -107,6 +107,7 @@ namespace dynamicgraph
     { setConstantDefault( accessCopy () ); }
     inline void unsetConstantDefault (){ modeNoThrow = false; }
 
+    virtual void checkCompatibility();
 
   public:  /* --- INHERITANCE --- */
 
diff --git a/include/dynamic-graph/signal-ptr.t.cpp b/include/dynamic-graph/signal-ptr.t.cpp
index 1d32bfa1..82b03bd4 100644
--- a/include/dynamic-graph/signal-ptr.t.cpp
+++ b/include/dynamic-graph/signal-ptr.t.cpp
@@ -135,6 +135,17 @@ namespace dynamicgraph
     dgTDEBUGOUT(5);
   }
 
+  template< class T,class Time >
+  void SignalPtr<T,Time>::
+  checkCompatibility  ()
+  {
+    if( isPluged()&&(!autoref ()) )
+      { getPtr()->checkCompatibility(); }
+    else if( isAbstractPluged()&&(!autoref ()) )
+      { abstractTransmitter->checkCompatibility(); }
+    else Signal<T,Time>::checkCompatibility();
+  }
+
   template< class T,class Time >
   bool SignalPtr<T,Time>::
   needUpdate( const Time& t ) const
-- 
GitLab