]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkBlackBoxOutputConnector.h
re indent
[bbtk.git] / kernel / src / bbtkBlackBoxOutputConnector.h
index c97cdc55e939434096bd992897738d7629b5f249..53248857fd1adc3cb6da0ce829b286b32bf37bf0 100644 (file)
@@ -2,8 +2,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbtkBlackBoxOutputConnector.h,v $
   Language:  C++
-  Date:      $Date: 2008/10/17 08:18:12 $
-  Version:   $Revision: 1.4 $
+  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>
 
+
 namespace bbtk
 {
 
-
   class BBTK_EXPORT BlackBoxOutputConnector 
   {
   public:
-     
-    BlackBoxOutputConnector();
+  
+    typedef BlackBox::OutputChangeCallbackType OutputChangeCallbackType;
+
+    /// Ctor
+    BlackBoxOutputConnector(BlackBoxPointer b);
+    /// Dtor
     ~BlackBoxOutputConnector();
+
+    /// Sets a connection
     void SetConnection(Connection* c);
+    /// Unsets the connection 
     void UnsetConnection(Connection* c);
-    //IOStatus Update();
-    void SetModifiedStatus();
+    /// 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 );
+    
+    /// Signals the change observers that the output has changed
+    void SignalChange( BlackBox::Pointer box, const std::string& output );
+
+
+    /// Adds the function f to the list of functions to call when 
+    /// the output changes.
+    void AddChangeObserver(OutputChangeCallbackType f); 
+
+    /// Removes the function f from the list of functions to call when 
+    /// the output changes (TO WRITE)
+    void RemoveChangeObserver(OutputChangeCallbackType f); 
+
+      /// Private implementation
+    BBTK_DECLARE_PIMPL(BlackBoxOutputConnector);
     
   private:
-    /// The vector of output connections
-    ConnectionVector mConnection;
-    /// The status of the output 
-    //IOStatus mStatus;
+    /// Purposedly not implemented
+    BlackBoxOutputConnector(const BlackBoxOutputConnector&);
+
   };
   
 }