X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkConnection.h;h=36b20b8a39b0310d34342e99372093e2198c7f3b;hb=284c682653a60e969e2cff74445702fe54c32a76;hp=2b1fe73d680ac0182199c16703eeb17fc7c1aea6;hpb=236a8e2fee9937c050e2d16c7222e1caa993f01c;p=bbtk.git diff --git a/kernel/src/bbtkConnection.h b/kernel/src/bbtkConnection.h index 2b1fe73..36b20b8 100644 --- a/kernel/src/bbtkConnection.h +++ b/kernel/src/bbtkConnection.h @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkConnection.h,v $ Language: C++ - Date: $Date: 2008/11/13 14:46:43 $ - Version: $Revision: 1.9 $ + Date: $Date: 2009/04/21 14:36:51 $ + Version: $Revision: 1.13 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -56,14 +56,16 @@ namespace bbtk class BlackBoxInputConnector; class BlackBoxOutputConnector; - /// - typedef int IOStatus; - /// - const int MODIFIED = 0; - /// - const int UPTODATE = 1; - /// OBSOLETE - /// const int UPDATING = 2; + /// The type of input / output status + typedef unsigned char IOStatus; + /// Up-to-date status value + const IOStatus UPTODATE = 0; + /// Modified status value + const IOStatus MODIFIED = 1; + /// Out-of-date status value + const IOStatus OUTOFDATE = 2; + + BBTK_EXPORT const std::string& GetIOStatusString( IOStatus ); class BBTK_EXPORT Connection : public Object @@ -82,17 +84,18 @@ namespace bbtk // void Delete(); - /// Amont direction pipeline processing - /// 1) call bbBackwardUpdate(this) on the upstream box - /// 2) copies the upstream box output to the downstream box input adapting it if needed - virtual IOStatus BackwardUpdate(); - - /// Aval direction pipeline processing : - /// 1) copies the upstream box output to the downstream box input adapting it if needed - /// 2) call bbForwardUpdate(this) on the downstream box - // virtual void ForwardUpdate(); + /// Pipeline processing method + /// 1) call bbRecursiveExecute(this) on the from box + /// 2) copies the from box output to the to box input + /// adapting it if needed + /// 3) sets the new IOStatus of the to box input to the + /// status of the from box output + void RecursiveExecute(); + + /// Change callback + void OnOutputChange(BlackBoxPointer, const std::string&, + IOStatus); - virtual void SetModifiedStatus(); std::string GetFullName() const; /// Returns the original initial black box of the connection @@ -163,7 +166,7 @@ namespace bbtk /// Sets the members but does not test compatibility (used by bbtk::AdaptiveConnection) // Connection(BlackBox* from, const std::string& output, // BlackBox* to, const std::string& input, int ); - + public: void TransferData(); private: