Program: bbtk
Module: $RCSfile: bbtkAtomicBlackBox.h,v $
Language: C++
- Date: $Date: 2008/11/25 11:17:13 $
- Version: $Revision: 1.6 $
+ Date: $Date: 2008/12/11 09:50:34 $
+ Version: $Revision: 1.8 $
=========================================================================*/
/* ---------------------------------------------------------------------
/**
* \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).
*/
/**
{
return bbmDescriptorPointer;
}
+ //==================================================================
+
//==================================================================
/// Gets the output Data of a given label
Data bbGetOutput( const std::string &label );
/// 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(); }
//==================================================================
/// 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 '"
};
// Class AtomicBlackBox
- //===========================================================================
-
+ //====================================================================
}