]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkAtomicBlackBox.h
*** empty log message ***
[bbtk.git] / kernel / src / bbtkAtomicBlackBox.h
index fa311113456fe1bafff71dfe0ff41ebb6501d0f4..3be67510c8afd8f5a0b24e96c4cae4c913b44a45 100644 (file)
@@ -2,8 +2,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbtkAtomicBlackBox.h,v $
   Language:  C++
-  Date:      $Date: 2008/10/17 08:18:12 $
-  Version:   $Revision: 1.5 $
+  Date:      $Date: 2008/12/11 09:50:34 $
+  Version:   $Revision: 1.8 $
 =========================================================================*/
 
 /* ---------------------------------------------------------------------
@@ -55,7 +55,7 @@
 
 /**
  *  \file 
- *  \brief class bbtk::AtomicBlackBox : ancestor of all user defined (concrete) black boxes which are atomic (vs. complex boxes which are made up of other (atomic or complex) boxes).
+ *  \brief class bbtk::AtomicBlackBox : ancestor of all user defined (concrete) black boxes which are atomic (vs. ComplexBlackBox objects which are made up of other (atomic or complex) boxes).
  */
 
 /**
@@ -83,6 +83,8 @@ namespace bbtk
     {
       return bbmDescriptorPointer;
     }
+    //==================================================================
+
     //==================================================================
     /// Gets the output Data of a given label
     Data bbGetOutput( const std::string &label );
@@ -113,37 +115,13 @@ namespace bbtk
     /// Constructor from an existing box (copy) with a new instance name 
     AtomicBlackBox(AtomicBlackBox& from, const std::string &name, 
                 bool alloc = true);
-    //==================================================================
-    //==================================================================
     ///  Destructor
     virtual ~AtomicBlackBox();
-    //==================================================================
-
-    //==================================================================
-  protected:
-    virtual void bbLockDescriptor() = 0;
-    //  private:
-    //    virtual void bbReleaseDescriptor();
-    //==================================================================
-
-  public:
-    //==================================================================   
-    /// Recursive pipeline processing in backward direction 
-    /// (recursion is in backward direction however execution always goes forward).
     /// 
-    /// \returns The final status of the box (UPTODATE or MODIFIED)
-    ///
-    /// First checks that re-processing is needed (either Status==MODIFIED or InputProcessMode==Always)
-    /// then : 
-    /// - updates its inputs by calling bbUpdateInputs (which recursively calls bbBackwardUpdate on upstream boxes)
-    /// - calls bbProcess which here simply calls the user callback bbUserProcess which does the actual processing. 
-    ///    bbProcess is overloaded in WxBlackBox to handle widget creation and show
-    virtual IOStatus bbBackwardUpdate(Connection::Pointer caller);
+    virtual void bbLockDescriptor() = 0;
     //==================================================================
 
     //==================================================================
-  protected:
-    //==================================================================
     /// Calls the user defined processing method.
     /// Overloaded in WxBlackBox to handle widget creation and show
     virtual void bbProcess() { this->bbUserProcess(); }
@@ -151,8 +129,8 @@ namespace bbtk
 
     //==================================================================
     /// User callback which computes the outputs as a function of the inputs. 
-    /// It is assumed to be deterministic and thus is only called is the inputs have changed 
-    /// (i.e. if the black box is marked as modified)
+    /// It is assumed to be deterministic and thus is only called 
+    /// if the inputs have changed 
     virtual void bbUserProcess() 
     {
       bbtkWarning("AtomicBlackBox::bbUserProcess() not overloaded for box '"
@@ -166,7 +144,7 @@ namespace bbtk
     /// User callback called in the box contructor
     virtual void bbUserConstructor() {}
     /// User callback called in the box copy constructor
-    virtual void bbUserCopyConstructor() {}
+    virtual void bbUserCopyConstructor(bbtk::BlackBox::Pointer) {}
     /// User callback called in the box destructor
     virtual void bbUserDestructor() {}
     //==================================================================    
@@ -187,8 +165,7 @@ namespace bbtk
 
   };
   // Class AtomicBlackBox
-  //===========================================================================
-
+  //====================================================================
 
 
 }