]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkBlackBoxOutputConnector.h
*** empty log message ***
[bbtk.git] / kernel / src / bbtkBlackBoxOutputConnector.h
index d40703db7638a868d67c523ee79a23155df53b9b..53248857fd1adc3cb6da0ce829b286b32bf37bf0 100644 (file)
@@ -2,8 +2,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbtkBlackBoxOutputConnector.h,v $
   Language:  C++
-  Date:      $Date: 2009/05/28 08:12:05 $
-  Version:   $Revision: 1.9 $
+  Date:      $Date: 2009/06/08 14:50:03 $
+  Version:   $Revision: 1.10 $
 =========================================================================*/
 
 /* ---------------------------------------------------------------------
 #ifndef __bbtkBlackBoxOutputConnector_h__
 #define __bbtkBlackBoxOutputConnector_h__
 
+#include "bbtkPimpl.h"
 #include "bbtkConnection.h"
 #include "bbtkBlackBox.h"
 #include "bbtkMessageManager.h"
 #include <vector>
 
-// Change time management
-//#include <bbtkChangeTime.h>
-
-// Signal/slot mechanism for output change events
-//#include <boost/signal.hpp>
-//#include <boost/bind.hpp>
 
 namespace bbtk
 {
 
-  //  class BlackBox;
-  //  BBTK_FORWARD_DECLARE_POINTER(BlackBox);
-
-  //  void  operator (void*)(ChangeCallbackType t) { return (void*)t; };
  
-/*
-  typedef void (*ChangeSignalFunctionType)(BlackBoxOutputConnector*);
-  bool operator==(void (*sg1)(BlackBoxOutputConnector*),
-                 void (*sg2)(BlackBoxOutputConnector*)) 
-  { return sg1==sg2;}
-*/
-/*
-  bool operator==(boost::function1<void, bbtk::BlackBoxOutputConnector*, std::allocator<void> >,boost::function1<void, bbtk::BlackBoxOutputConnector*, std::allocator<void> >)
-  {
-  }
-*/
-  //boost::function<void ()(bbtk::BlackBoxOutputConnector*), std::allocator<void> >]
   class BBTK_EXPORT BlackBoxOutputConnector 
   {
   public:
  
-    //    typedef boost::signals::trackable ChangeObserverType;
-    //    typedef boost::signal<void (bbtk::BlackBox::Pointer*,const std::string&,IOStatus)>  ChangeSignalType;
-    //    typedef ChangeSignalType::slot_function_type ChangeCallbackType;
-
+  
     typedef BlackBox::OutputChangeCallbackType OutputChangeCallbackType;
 
+    /// Ctor
     BlackBoxOutputConnector(BlackBoxPointer b);
+    /// Dtor
     ~BlackBoxOutputConnector();
 
+    /// Sets a connection
     void SetConnection(Connection* c);
+    /// Unsets the connection 
     void UnsetConnection(Connection* c);
+    /// The type of vector of output connections
     typedef std::vector<Connection*> ConnectionVector;
-    const ConnectionVector& GetConnectionVector() const { return mConnection; }
+    /// Returns the vector of connection plugged into this output (const)
+    const ConnectionVector& GetConnectionVector() const;
+    
+    /// Returns the status of the input 
+    IOStatus GetStatus() const;
+    /// Sets the status of the input 
+    void SetStatus( IOStatus s );
     
-    IOStatus GetStatus() const { return mStatus; }
-    void SetStatus( IOStatus s ) { mStatus = s; }
+    /// Signals the change observers that the output has changed
     void SignalChange( BlackBox::Pointer box, const std::string& output );
 
 
-    //    void SetModifiedStatus();
-
-    /// Returns the ChangeTime of the output (const)
-    //  const ChangeTime& GetChangeTime() const { return mChangeTime; }
-    /// Returns the ChangeTime of the output 
-    //    ChangeTime& GetChangeTime() { return mChangeTime; }
-
-    /// To be called when the output has changed
-    /// (sets the ChangeTime to current time and 
-    ///  signals the change to observers)
-    //    void SetChangeTime(const ChangeTime&); 
-   
-    /// To be called when the output has changed
-    /// (sets the ChangeTime to current time and 
-    ///  signals the change to observers)
-    //    void SetChangeTimeToCurrentTime(); 
-
     /// Adds the function f to the list of functions to call when 
     /// the output changes.
     void AddChangeObserver(OutputChangeCallbackType f); 
@@ -121,16 +90,12 @@ namespace bbtk
     /// the output changes (TO WRITE)
     void RemoveChangeObserver(OutputChangeCallbackType f); 
 
-
+      /// Private implementation
+    BBTK_DECLARE_PIMPL(BlackBoxOutputConnector);
+    
   private:
-    /// 
-    BlackBoxWeakPointer mBox;
-    /// The vector of output connections
-    ConnectionVector mConnection;
-    /// The status of the output 
-    IOStatus mStatus;
-    /// The output changed signal 
-    BlackBox::OutputChangeSignalType mChangeSignal;
+    /// Purposedly not implemented
+    BlackBoxOutputConnector(const BlackBoxOutputConnector&);
 
   };